11. rqt 도구를 왜 써야 하는가
ROS 2는 노드, 토픽, 서비스, 액션이 복잡하게 얽힙니다.
CLI 명령만으로도 확인은 가능하지만, 구조를 빠르게 이해하기에는 GUI 도구가 훨씬 편합니다.
예를 들어 CLI에서는 다음처럼 확인합니다.
ros2 node list
ros2 topic list
ros2 topic echo /turtle1/pose
ros2 topic info /turtle1/cmd_vel
하지만 rqt_graph를 사용하면 노드와 토픽 관계를 그림으로 볼 수 있습니다.
누가 발행하는지
누가 구독하는지
토픽 이름이 맞는지
노드가 실제로 연결되었는지
이것을 한눈에 확인할 수 있습니다.
12. rqt_graph로 노드와 토픽 관계 확인
rqt_graph는 ROS 2 시스템의 노드와 토픽 연결 관계를 시각적으로 보여줍니다.
실행 명령은 다음과 같습니다.
rqt_graph
또는 rqt에서 다음 메뉴를 선택합니다.
Plugins → Introspection → Node Graph
turtlesim_node를 실행하고 /turtle1/cmd_vel 토픽을 발행하면 그래프에서 다음 관계를 볼 수 있습니다.
/turtle1/cmd_vel → /turtlesim
의미는 다음과 같습니다.
명령 발행 노드 또는 CLI
↓
/turtle1/cmd_vel 토픽
↓
/turtlesim 노드
rqt_graph에서 확인할 수 있는 대표 항목은 다음과 같습니다.
| Node | 실행 중인 ROS 2 노드 |
| Topic | 노드 간 메시지 통신 채널 |
| Publisher | 메시지를 발행하는 쪽 |
| Subscriber | 메시지를 받는 쪽 |
| Action | 액션 통신 구조 |
| Service | 요청/응답 방식 통신 |
블로그에서는 rqt_graph를 “ROS 2 시스템 구조를 한눈에 보는 회로도”라고 설명하시면 이해가 쉽습니다.





13. rqt_plot으로 토픽 값 시각화
rqt_plot은 토픽으로 발행되는 숫자 데이터를 그래프로 확인하는 도구입니다.
실행 방법은 다음과 같습니다.
rqt
상단 메뉴에서 다음을 선택합니다.
Plugins → Visualization → Plot

또는 직접 실행합니다.
rqt_plot
예를 들어 turtle의 위치 정보를 보고 싶다면 다음 토픽을 사용할 수 있습니다.
/turtle1/pose/x
/turtle1/pose/y
/turtle1/pose/theta
입력창에 토픽 이름을 입력하고 + 버튼을 누르면 그래프가 추가됩니다.

14. rqt_plot 그래프 범위 조정
그래프는 기본적으로 자동 스케일로 표시됩니다.
하지만 강의나 분석 자료를 만들 때는 축 범위를 직접 지정하는 것이 더 좋습니다.
그래프 설정 아이콘을 누르면 Figure options 창이 나타납니다.

여기서 다음 값을 조정할 수 있습니다.
X-Axis Left
X-Axis Right
Y-Axis Bottom
Y-Axis Top
Scale
Title
Label
예를 들어 최근 5초 구간만 보고 싶다면 X축 범위를 다음처럼 설정할 수 있습니다.
X-Axis Left: 0
X-Axis Right: 5
Y축을 turtle 좌표 범위에 맞추고 싶다면 다음처럼 설정할 수 있습니다.
Y-Axis Bottom: 2
Y-Axis Top: 8


이렇게 하면 turtle의 위치 변화가 더 명확하게 보입니다.
실제 로봇이나 드론에서는 이 기능이 매우 중요합니다.
예를 들어 다음 값을 그래프로 보면 제어 상태를 빠르게 판단할 수 있습니다.
드론 고도
드론 위치 x, y, z
IMU 각속도
모터 속도
목표 위치와 현재 위치의 오차
PID 제어 출력
배터리 전압
실무적으로 rqt_plot은 다음 상황에서 유용합니다.
속도 변화 확인
위치 변화 확인
센서값 변화 확인
PID 제어 응답 확인
드론 고도 변화 확인
로봇 주행 오차 확인
예를 들어 드론 개발에서는 다음 토픽들을 그래프로 볼 수 있습니다.
/vehicle_odometry/position[2]
/fmu/out/vehicle_local_position/z
/imu/data/angular_velocity/z
/cmd_vel/linear/x
15. Topic Monitor로 토픽 값 관찰하기
Topic Monitor는 터미널의 ros2 topic echo와 비슷한 역할을 합니다.
GUI에서 토픽 리스트를 보고, 원하는 토픽의 현재 값을 확인할 수 있습니다.
실행 경로는 다음과 같습니다.
Plugins → Topics → Topic Monitor

화면에는 현재 구독 가능한 토픽 목록이 표시됩니다.

예시는 다음과 같습니다.
/parameter_events
/rosout
/turtle1/cmd_vel
/turtle1/color_sensor
/turtle1/pose
/turtle1/rotate_absolute/_action/feedback
/turtle1/rotate_absolute/_action/status
/turtle1/pose를 선택하면 다음과 같은 값을 볼 수 있습니다.
x
y
theta
linear_velocity
angular_velocity

터미널에서는 다음 명령과 비슷합니다.
ros2 topic echo /turtle1/pose
Topic Monitor의 장점은 여러 토픽을 동시에 확인할 수 있다는 점입니다.
특히 센서가 많은 로봇 시스템에서는 터미널을 여러 개 띄우는 것보다 훨씬 편합니다.
16. Topic Publisher로 GUI에서 토픽 발행하기
Topic Publisher는 터미널에서 ros2 topic pub 명령을 입력하는 대신, GUI에서 값을 입력하고 토픽을 발행할 수 있게 해주는 도구입니다.
실행 경로는 다음과 같습니다.
Plugins → Topics → Message Publisher

또는 환경에 따라 다음 이름으로 보일 수 있습니다.
Plugins → Topics → Topic Publisher

사용 순서는 다음과 같습니다.
1. Topic 이름 선택
2. 메시지 타입 선택
3. + 버튼으로 발행 항목 추가
4. 메시지 필드 값 수정
5. 체크박스를 활성화하여 발행 시작

turtlesim을 움직이려면 다음 토픽과 타입을 사용합니다.
Topic: /turtle1/cmd_vel
Type: geometry_msgs/msg/Twist
값은 예를 들어 다음처럼 지정할 수 있습니다.
linear.x = 10.0
linear.y = 0.0
linear.z = 0.0
angular.x = 0.0
angular.y = 0.0
angular.z = 5.0

이 설정은 turtle을 앞으로 이동시키면서 회전하게 만듭니다.

터미널 명령으로 쓰면 다음과 비슷합니다.
ros2 topic pub -r 1 /turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 10.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 5.0}}"
17. Service Caller
터미널에서 아래와 같은 명령어를 GUI 환경에서 실행할 수 있는 rqt 플러그인입니다.
ros2 service call /add_two_ints example_interfaces/srv/AddTwoInts "{a: 10, b: 20}"
먼저 새로운 터미널을 실행하고 turtlesim 노드를 실행합니다.
ros2 run turtlesim turtlesim_node

다른 터미널을 실행하고 my_service_server를 실행합니다.
ros2 run my_first_package my_service_server

또 다른 터미널에서 rqt를 실행합니다.
rqt

rqt 메뉴에서 다음 경로를 선택합니다.
Plugins → Services → Service Caller

화면에는 다음과 같은 요소가 나타납니다.
- Service 선택 드롭다운
- Request 입력 창
- Call 버튼
- Response 출력 창

Service의 아래 화살표를 클릭하면 현재 실행되고 있는 Service가 보입니다. 이 중에 /turtle1/set_pen을 선택하면 아래의 그림과 같이 서비스의 인터페이스가 보입니다.

이 값 중에 적색과 청색 값을 수정하고 선의 두께도 수정합니다. 수정이 완료되면 Call을 클릭하면 설정 값이 적용됩니다.

turtle_teleop_key를 입력하고 거북이를 움직여 보면 수정한 색과 두께의 자취를 출력합니다.

18. ROS2 rqt Parameter Reconfigure 플러그인 사용법
ROS 2에서 노드를 실행하다 보면 실행 중인 노드의 설정값을 확인하거나 변경해야 하는 경우가 있습니다.
예를 들어 다음과 같은 상황입니다.
거북이 배경색을 바꾸고 싶을 때
노드의 동작 주기를 바꾸고 싶을 때
디버그 모드를 켜고 끄고 싶을 때
서비스 서버 내부 설정값을 실행 중에 바꾸고 싶을 때
이때 사용하는 개념이 바로 Parameter입니다.
ROS 2에서는 터미널 명령어로 파라미터를 확인하고 변경할 수 있지만, rqt의 Parameter Reconfigure 플러그인을 사용하면 GUI 화면에서 훨씬 쉽게 파라미터를 확인하고 수정할 수 있습니다.
터미널에서 다음과 같이 입력하던 작업을 GUI에서 할 수 있습니다.
ros2 param list
ros2 param get /turtlesim background_r
ros2 param set /turtlesim background_r 255
즉, Parameter Reconfigure는 다음 작업을 쉽게 해 줍니다.
현재 실행 중인 노드 확인
노드가 가진 파라미터 목록 확인
파라미터 값 확인
파라미터 값 변경
변경 결과 즉시 확인
먼저 새로운 터미널을 실행하고 turtlesim 노드를 실행합니다.
ros2 run turtlesim turtlesim_node

이 노드는 기본적으로 /turtlesim이라는 이름으로 실행됩니다.
노드 목록을 확인해 보겠습니다.
ros2 node list
출력은 다음과 같습니다.

터미널에서 아래의 명령어를 입력하여 turtlesim 파라미터를 확인합니다.
ros2 param list /turtlesim

새로운 터미널을 실행하고 rqt를 실행합니다.
rqt
rqt 창이 실행되면 상단 메뉴에서 다음을 선택합니다.
Plugins → Configuration → Parameter Reconfigure

그러면 Parameter Reconfigure 화면이 나타납니다.

Parameter Reconfigure 화면은 보통 다음과 같은 구조로 되어 있습니다.
왼쪽: 노드 목록
오른쪽: 선택한 노드의 파라미터 목록
왼쪽에서 /turtlesim 노드를 선택하면 오른쪽에 turtlesim_node가 가진 파라미터들이 표시됩니다.
대표적으로 다음 값들이 보입니다.
background_r
background_g
background_b
use_sim_time

파란색 배경 만들기
Parameter Reconfigure에서 /turtlesim을 선택한 후 다음과 같이 값을 변경합니다.
background_r = 0
background_g = 0
background_b = 255
값을 변경한 후 적용하면 turtlesim 화면의 배경이 파란색으로 변경됩니다.


19. rosbag으로 토픽 기록하기
rosbag은 ROS 2에서 토픽 데이터를 기록하고 다시 재생하는 도구입니다.
센서 데이터, 위치 데이터, 제어 명령 등을 저장해 두었다가 나중에 다시 분석할 수 있습니다.
토픽을 기록하는 기본 명령은 다음과 같습니다.
ros2 bag record -o turtle_test -a
의미는 다음과 같습니다.
ros2 bag record : 토픽 기록 시작
-o turtle_test : 저장 폴더 이름을 turtle_test로 지정
-a : 현재 발행 중인 모든 토픽 기록
특정 토픽만 기록하려면 다음처럼 입력합니다.
ros2 bag record -o turtle_pose /turtle1/pose
여러 토픽을 지정할 수도 있습니다.
ros2 bag record -o turtle_data /turtle1/pose /turtle1/cmd_vel
기록 중에는 터미널에 구독 중인 토픽 목록이 표시됩니다.
예시는 다음과 같습니다.
Subscribed to topic '/turtle1/pose'
Subscribed to topic '/turtle1/color_sensor'
Subscribed to topic '/turtle1/cmd_vel'
Subscribed to topic '/rosout'
Subscribed to topic '/parameter_events'
기록을 멈추려면 터미널에서 다음 키를 누릅니다.
Ctrl + C
그러면 turtle_test 폴더가 생성되고, 그 안에 기록 데이터가 저장됩니다.
먼저 turtlesim_node를 실행합니다.
그리고 다음과 같은 cmd_vel 토픽을 발행합니다.
ros2 topic pub --rate 1 /turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x: 2.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 1.8}}"

새로운 터미널을 실행하여 아래와 같이 ros2 bag 명령을 실행합니다.
ros2 bag record -o turtle_test -a


20. rosbag 재생하기
기록한 rosbag 데이터를 다시 재생하려면 다음 명령을 사용합니다.
ros2 bag play turtle_test
실행 순서는 다음과 같이 구성하면 됩니다.
1. 기존 실행 노드 종료
2. turtlesim_node 다시 실행
3. ros2 bag play turtle_test 실행
4. 기록된 cmd_vel 토픽이 다시 발행됨
5. turtle이 이전과 같은 움직임을 재현함
즉, rosbag은 단순 저장 파일이 아니라 토픽 재생 장치라고 보시면 됩니다.
드론 개발에서는 rosbag이 특히 중요합니다.
비행 중 발생한 문제를 현장에서 바로 분석하기 어렵기 때문입니다.
이때 다음 데이터를 rosbag으로 저장해 두면 사후 분석이 가능합니다.
GPS 위치
IMU 데이터
고도 정보
속도 명령
Offboard setpoint
배터리 상태
RC 입력
카메라 인식 결과
장애물 거리 센서값


21. rqt의 Bag 플러그인 사용
rosbag 데이터는 터미널뿐 아니라 rqt에서도 확인할 수 있습니다.
실행 순서는 다음과 같습니다.
1. rqt 실행
2. Plugins → Logging → Bag 선택
3. 파일 열기 아이콘 클릭
4. 저장한 bag 폴더 선택
5. 기록된 토픽 타임라인 확인





Bag 플러그인에서는 각 토픽이 언제 발행되었는지를 시간축으로 볼 수 있습니다.

표시되는 토픽 예시는 다음과 같습니다.
/parameter_events
/rosout
/turtle1/cmd_vel
/turtle1/color_sensor
/turtle1/pose
이 기능은 토픽의 발행 타이밍을 확인할 때 유용합니다.
예를 들어 제어 명령은 50Hz로 나가야 하는데 실제로는 끊기고 있다면, Bag 화면에서 발행 간격 이상을 확인할 수 있습니다.
'강좌 > ROS2' 카테고리의 다른 글
| 로봇 개발자를 위한 Python 기초 교육 #2 (0) | 2026.05.24 |
|---|---|
| 6일차 강의 (0) | 2026.05.24 |
| ROS2 Action Server에 Cancel 기능 추가하기 (0) | 2026.05.23 |
| ROS 2 단위, 좌표, 시간, 파일 시스템, 빌드 시스템, 패키지 구조 정리 #1 (0) | 2026.05.23 |
| 3일차 강의 (0) | 2026.05.23 |