rqt-graph 는 현재 구동 중인 노드와 ros 네크워크상에 전송되고 있는 message 간의 상관 관계를 graph로 나타내주는 tool 이다. 현재 실행중인 ros 네트워크의 상황을 파악하는 데에 매우 유용하다. 사용법은 매우 간단하다. 예를 들어 다음 예제와 같이 turtlesim 패키지의 turtlesim_node와 turtle_teleop_key 그리고 uvc_camera 패키지의 uvc_camera_node 노드를 확인할 목적으로 서로 다른 터미널에서 각각 실행시켜본다.
$ rosrun turtlesim turtlesim_node
$ rosrun turtlesim turtle_teleop_key
$ rosrun uvc_camera uvc_camera_node
$ rosrun image_view image_view image:=image_raw
그 다음 다음 예제와 같이 'rqt_graph' 명령어로 실행하면 된다.
$ rqt_graph

위 그림과 같이 동그라미는 노드(/teleop_turtle, /turtlesim)를 의미하고 네모(/turtle1/cmd_vel)는 토픽 메시지를 의미한다. 화살표는 메시지의 송수신을 의미한다. 이전 예제에서 turtle_teleop_key 를 실행할 때 teleop_turtle 노드, turtlesim_node 노드를 실행할 때 turtlesim 노드가 각각 실행되었다. 이 두 노드는 키보드의 방향키 값을 병진속도와 회전속도 메시지 형태(토픽명: /turtle1/cmd_vel)로 데이터를 송수신하고 있다는 것을 확인할 수 있다.
uvc_camera 패키지도 uvc_camera 노드가 /image_raw 토픽 메시지를 발행하고 image_view_xxxxx 노드가 이를 서브스크라이브(sub) 하고 있다는 것을 rqt_graph를 통하여 확인할 수 있다. 매우 간단한 노드들을 실행하여 확인해 보았지만 실제 ros 프로그래밍에서는 수십 개에 달하는 노드들이 다양한 토픽 메시지를 주고받게 된다. 이때에 rqt_graph는 현재 ros 네트워크상의 노도들의 상호관계를 확인하는데 매우 유용하게 쓰인다.
위의 정리 내용은 표윤석 저자님의 ros 로봇 프로그래밍에서 참조하여 정리한 내용이다. ros의 한국어 정보가 부족한데 이렇게 정리된 책에 매우 감사함을 표한다.
| 윈도우11 + 우분투 18.04 (with nvidia mx450) 듀얼부팅 방법 (0) | 2022.01.05 |
|---|---|
| ROS2 Parameter 이해 (0) | 2021.12.22 |
| ros2 토픽에 대해 (0) | 2021.12.19 |
| ROS Point Cloud Library (0) | 2021.06.04 |
| ROS Message 의 이해 (0) | 2021.06.04 |
댓글 영역