[ROS 2]035: 토픽 프로그래밍(C++)

maroo·2022년 7월 26일
0

ROS2

목록 보기
17/39

https://cafe.naver.com/openrt/24802


위 그림과 같이, 토픽을 생성한 시간(POSIX Time)과 연산에 사용할 변수 a와 변수 b를 퍼블리시하는 토픽 퍼블리셔와 그를 서브스크라이브하는 토픽 서브스크라이버를 작성해 보자.

2. 토픽 퍼블리셔 코드

header파일은 include에 있고 cpp파일은 src에 위치해 있다.
이 코드들은 오로카 포스팅에 첨부된 github를 직접 보거나, ros2-seminar-examples로 끌어와 가져오면 된다.

/topic_service_action_rclcpp_example/include/arithmetic/argument.hpp
코드 해석: https://github.com/hwang-chaewon/STUDY__ROS2/blob/main/topic_service_action_rclcpp_example/arithmetic/argument.hpp

topic_service_action_rclcpp_example/src/arithmetic/argument.cpp
코드 해석: https://github.com/hwang-chaewon/STUDY__ROS2/blob/main/topic_service_action_rclcpp_example/arithmetic/argument.cpp

3. 토픽 서브스크라이버 코드

header파일은 include에 있고 cpp파일은 src에 위치해 있다.

(calculator노드는 많은 역할을 하므로 035에서 모두 해석할 수 없어,
추후 전체 해석 코드 링크를 첨부할 예정이다)

topic_service_action_rclcpp_example/include/calculator/calculator.hpp

topic_service_action_rclcpp_example/src/calculator/calculator.cpp

5. 노드 실행 코드

실행 명령어는 034에서 살펴봤고,
CMakeLists.txt에서 add_executable을 통해 cpp파일을 실행 가능하도록 만들었다.
예를 들어 argument.cpp 파일의 main 함수를 보면 rclcpp를 초기화하고 함수를 호출하고 소멸시키는 과정을 확인할 수 있다.

profile
할수이따 ~

0개의 댓글