본문으로 바로가기

ROS 2 Humble rqt Plugins 정리 #3

category 강좌/ROS2 2026. 5. 24. 01:40

 

1. ROS 2 Humble rqt 기본 플러그인 전체 목록

ros-humble-rqt-common-plugins 메타패키지는 여러 rqt 플러그인 패키지를 한 번에 설치해 주는 묶음입니다. 해당 메타패키지에는 rqt_action, rqt_bag, rqt_console, rqt_graph, rqt_image_view, rqt_msg, rqt_plot, rqt_publisher, rqt_reconfigure, rqt_service_caller, rqt_shell, rqt_srv, rqt_topic 등이 포함됩니다.

 

대표 메뉴 구조는 다음과 같이 이해하면 됩니다.

 

                         메뉴                                          분류                                                            플러그인역할

Actions Action Type Browser 액션 타입 확인
Configuration Dynamic Reconfigure 노드 파라미터 확인/수정
Introspection Node Graph 노드-토픽 연결 그래프 확인
Logging Console ROS 로그 확인/필터링
Logging Bag rosbag 데이터 확인/재생
Miscellaneous Tools Python Console Python 인터랙티브 콘솔
Miscellaneous Tools Shell 터미널 셸
Robot Tools Controller Manager ros2_control 컨트롤러 상태 확인/관리
Robot Tools Diagnostics Viewer 로봇 진단 상태 확인
Robot Tools Joint trajectory controller 로봇팔 조인트 궤적 테스트
Robot Tools Motion builder 로봇 동작 프리셋 생성/관리
Robot Tools Moveit! Monitor MoveIt 상태 모니터링
Robot Tools Robot Steering /cmd_vel 기반 모바일 로봇 수동 조작
Robot Tools Runtime Monitor diagnostics 실시간 모니터링
Services Service Caller 서비스 호출
Services Service Type Browser 서비스 타입 구조 확인
Topics Message Publisher 토픽 메시지 발행
Topics Message Type Browser 메시지 타입 구조 확인
Topics Topic Monitor 토픽 상태 확인
Visualization Image View 이미지 토픽 보기
Visualization Plot 숫자 토픽 그래프 표시
                            

 

위 표를 조금 더 쉽게 풀어서 말하면 다음과 같습니다.

Actions              → 오래 걸리는 작업 구조 확인
Configuration        → 노드 설정값 확인/수정
Introspection        → ROS 2 시스템 연결 구조 확인
Logging              → 로그와 기록 데이터 확인
Miscellaneous Tools  → Python 콘솔, 셸 같은 보조 도구
Robot Tools          → 실제 로봇 제어기, 진단, 조작 관련 도구
Services             → 서비스 구조 확인 및 호출
Topics               → 토픽 구조 확인, 상태 확인, 메시지 발행
Visualization        → 이미지와 숫자 데이터를 시각적으로 확인
 

 

즉, rqt 플러그인은 크게 다음 목적별로 나눌 수 있습니다.

                           목적                                                                    사용하는 플러그인
ROS 2 구조 파악 Node Graph, Topic Monitor
메시지/서비스/액션 타입 확인 Message Type Browser, Service Type Browser, Action Type Browser
직접 테스트 명령 보내기 Message Publisher, Service Caller, Robot Steering
로그와 오류 확인 Console, Diagnostics Viewer, Runtime Monitor
센서 데이터 확인 Image View, Plot
로봇 제어기 확인 Controller Manager, Joint trajectory controller
MoveIt/로봇팔 확인 Moveit! Monitor, Motion builder
기록 데이터 분석 Bag

2. Actions → Action Type Browser

2.1 개념 설명

 

메뉴 위치:

Plugins → Actions → Action Type Browser
 

 

Action Type Browser는 ROS 2에 설치된 Action 타입 구조를 확인하는 플러그인입니다.

ROS 2에서 Action은 오래 걸리는 작업에 사용합니다.

 

대표 예시는 다음과 같습니다.

로봇팔 목표 자세 이동
모바일 로봇 내비게이션 목표점 이동
드론 이륙
드론 착륙
그리퍼 열기/닫기
장시간 스캔 작업
 
 

Action은 시간이 걸리는 작업을 처리합니다.

Goal 요청
Feedback 반복 수신
Result 최종 수신
 

 

Action은 보통 세 부분으로 구성됩니다.

                  구성                                의미                                       예시
Goal 목표값 목표 위치, 목표 자세, 이동 명령
Feedback 진행 상태 현재 진행률, 현재 위치, 남은 거리
Result 최종 결과 성공 여부, 최종 위치, 오류 코드

 

예를 들어 내비게이션 Action이라면 다음처럼 생각할 수 있습니다.

Goal:
  목표 위치로 이동해라.

Feedback:
  현재 목표까지 2.3m 남았다.
  현재 목표까지 1.5m 남았다.
  현재 목표까지 0.5m 남았다.

Result:
  목표 지점 도착 성공.
 
 

2.2 CLI로 Action 타입 확인하기

 

설치된 action 타입 목록을 확인합니다.

 
ros2 interface list | grep action
 

 

특정 action 타입 구조를 확인합니다.

 

예:

 
ros2 interface show action_tutorials_interfaces/action/Fibonacci
 

 

Navigation2를 설치했다면 다음과 같은 타입도 볼 수 있습니다.

 
ros2 interface show nav2_msgs/action/NavigateToPose
 

 

MoveIt을 사용하는 환경이라면 다음 계열 Action을 확인할 수도 있습니다.

 
ros2 interface list | grep moveit
 
 
 

 

3.3 rqt에서 실행

 
rqt
 

 

메뉴 선택

Plugins → Actions → Action Type Browser
 

 

왼쪽 또는 상단 목록에서 Action 타입 선택

 

예:

action_tutorials_interfaces/action/Fibonacci
nav2_msgs/action/NavigateToPose
control_msgs/action/FollowJointTrajectory
 
 
 '+' 아이콘을 클릭하고 화살표를 눌러 확장하면 액션의 내용을 확인할 수 있습니다.

 

Goal, Feedback, Result 구조 확인

 

예를 들어 control_msgs/action/FollowJointTrajectory는 로봇팔이나 조인트 컨트롤러에서 자주 나오는 Action 타입입니다.

 

Action Type Browser는 Action을 실행하는 도구가 아닙니다.
Action 메시지 구조를 보는 설명서 뷰어입니다.
 
 

2.4 사용

다음 상황에서 사용합니다.

Action client 코드를 작성하기 전
MoveIt Action 구조를 확인할 때
Nav2 NavigateToPose 구조를 확인할 때
FollowJointTrajectory Goal 필드를 확인할 때
드론 이륙/착륙 Action 인터페이스를 설계할 때
 

 

예를 들어 로봇팔을 제어할 때 FollowJointTrajectory Action을 보냅니다. 이때 Goal 안에 어떤 필드를 넣어야 하는지 모르면 코드를 작성할 수 없습니다. Action Type Browser로 먼저 구조를 확인한 뒤 코드를 작성하면 삽질이 줄어듭니다.

 

Action Type Browser = Action 메시지 설계도 확인 도구



 

 

 

3. Miscellaneous Tools → Python Console

3.1 개념 설명

 

메뉴 위치:

Plugins → Miscellaneous Tools → Python Console
 

 

Python Console은 rqt 안에서 Python 코드를 바로 실행할 수 있는 인터랙티브 콘솔입니다.

 

복잡한 프로그램을 개발하는 용도라기보다는, 간단한 Python 테스트를 빠르게 해보는 용도입니다.

 

예:

 
1 + 1
 
 
import math
math.sin(3.14)
 
 
import rclpy
 

 

 

3.2 사용

 

다음 상황에서 유용합니다.

간단한 Python 계산 확인
ROS 2 Python 모듈 import 확인
메시지 타입 import 가능 여부 확인
문자열 처리 테스트
수식 테스트
토픽 값 계산식 검증
 

 

예를 들어 로봇 제어에서 각도를 radian으로 바꿔야 할 때가 많습니다.

 
import math
degree = 90
radian = degree * math.pi / 180.0
radian
 

 

결과:

1.57079632679
 
 
 
 

ROS 2 Python 라이브러리도 확인합니다.

 
import rclpy
 

메시지 타입 import도 확인합니다.

 
from geometry_msgs.msg import Twist
msg = Twist()
msg.linear.x = 0.2
msg.angular.z = 0.5
msg
 
 

 

 

3.3 주의할 점

Python Console은 노드 개발용 IDE가 아닙니다.

 

다음 작업은 일반 코드 편집기와 터미널에서 하는 것이 좋습니다.

ROS 2 노드 본격 개발
launch 파일 실행
장시간 실행 노드 테스트
복잡한 패키지 빌드
멀티스레드 테스트
 


 
 

4. Miscellaneous Tools → Shell

 

4.1 개념 설명

 

메뉴 위치:

Plugins → Miscellaneous Tools → Shell
 

 

Shell은 rqt 안에서 터미널 명령을 실행할 수 있는 플러그인입니다.

 

일반 터미널을 완전히 대체하는 용도는 아닙니다. rqt 화면 안에서 간단한 ROS 2 명령을 확인할 때 편합니다.

 

 

 

4.2 실습 명령어

 

rqt 실행:

 
rqt
 

 

메뉴:

Plugins → Miscellaneous Tools → Shell
 

 

Shell 창에서 다음 명령어를 입력합니다.

 
ros2 node list
 
 
ros2 topic list
 
 
ros2 service list
 
 
ros2 action list
 
 
ros2 interface list | grep Twist
 

 

 

 

 

4.3 언제 쓰는가?

다음 작업에 좋습니다.

노드 목록 빠르게 확인
토픽 목록 빠르게 확인
서비스 목록 확인
액션 목록 확인
환경변수 확인
간단한 echo 테스트
 

 

예:

 
echo $ROS_DOMAIN_ID
 
 
printenv | grep ROS
 

 

 

 

4.4 일반 터미널을 써야 하는 경우

 

다음 작업은 rqt Shell보다 일반 터미널이 낫습니다.

colcon build
ros2 launch 장시간 실행
tmux 작업
PX4 SITL 실행
Gazebo 실행
대용량 로그 출력
권한이 필요한 장치 설정
 
 
 
 
 

 

5. Services → Service Type Browser

5.1 개념 설명

 

메뉴 위치:

Plugins → Services → Service Type Browser
 

 

Service Type Browser는 ROS 2 서비스 타입 구조를 확인하는 플러그인입니다.

 

ROS 2 Service는 요청과 응답 구조입니다.

Client → Request → Server
Client ← Response ← Server
 

 

서비스 타입은 두 부분으로 나뉩니다.

Request
---
Response
 

 

예:

example_interfaces/srv/AddTwoInts
 

 

구조:

int64 a
int64 b
---
int64 sum
 

위에서 --- 위쪽은 요청이고, 아래쪽은 응답입니다.

 

 

 

5.2 CLI로 서비스 타입 확인하기

 

서비스 목록 확인:

 
ros2 service list
 

 

 

특정 서비스 타입 확인:

 
ros2 service type /clear
 

 

서비스 구조 확인:

 
ros2 interface show std_srvs/srv/Empty
 

 

turtlesim의 spawn 서비스 구조 확인:

 
ros2 interface show turtlesim/srv/Spawn
 

 

 

출력 예:

float32 x
float32 y
float32 theta
string name
---
string name
 

 

의미:

Request:
  x, y, theta, name을 보내면

Response:
  생성된 turtle 이름을 돌려준다.
 

 

 

 

5.3 rqt 실습

터미널 1:

 
ros2 run turtlesim turtlesim_node
 

 

터미널 2:

 
rqt
 

 

메뉴:

Plugins → Services → Service Type Browser
 

 

서비스 타입을 선택합니다.

 

예:

std_srvs/srv/Empty
turtlesim/srv/Spawn
turtlesim/srv/SetPen
turtlesim/srv/TeleportAbsolute
 

 

각 서비스의 Request와 Response 구조를 확인합니다.

 

 

 

5.4 자주 보는 서비스 예시

                                                    서비스                                                                                    타입용도
std_srvs/srv/Empty 입력/출력 없이 명령만 수행
std_srvs/srv/SetBool true/false 설정
example_interfaces/srv/AddTwoInts 두 정수 더하기 예제
turtlesim/srv/Spawn turtle 생성
turtlesim/srv/SetPen turtle 펜 색상 설정
turtlesim/srv/TeleportAbsolute turtle 위치 이동

 

 

5.5 실무 사용 예

 

서비스는 로봇 시스템에서 다음 상황에 자주 사용합니다.

모터 enable/disable
그리퍼 열기/닫기
맵 저장
센서 calibration 시작
로봇 상태 초기화
미션 시작/정지
파라미터 저장
시뮬레이터 reset
 

 

Service Type Browser는 서비스 클라이언트 코드를 작성하기 전에 반드시 확인하면 좋습니다.

 

예를 들어 turtlebot3의 서비스가 있다고 가정합니다.

/turtlebot3_msgs
 

 

먼저 타입 확인:

 
ros2 service type /turtlebot3_msgs
 

 

그다음 구조 확인:

 
ros2 interface show 패키지명/srv/서비스타입
 

 

 

rqt에서는 이 과정을 GUI로 볼 수 있습니다.

 

 

 

6. Topics → Message Type Browser

6.1 개념 설명

 

메뉴 위치:

Plugins → Topics → Message Type Browser
 

 

Message Type Browser는 ROS 2 메시지 타입 구조를 확인하는 플러그인입니다. rqt_msg는 사용 가능한 ROS message type을 확인하는 GUI 플러그인으로 설명됩니다.

ROS 2 토픽은 반드시 메시지 타입을 가집니다.

 

예:

/std_msgs/msg/String
/geometry_msgs/msg/Twist
/sensor_msgs/msg/Image
/sensor_msgs/msg/Imu
/nav_msgs/msg/Odometry
/trajectory_msgs/msg/JointTrajectory
 

 

토픽 이름만 알아서는 부족합니다. 메시지 내부 구조를 알아야 코드를 작성할 수 있습니다.

 

 

 

6.2 CLI로 메시지 타입 확인하기

토픽 목록:

 
ros2 topic list
 

토픽 타입 확인:

 
ros2 topic info /turtle1/cmd_vel
 

 

메시지 구조 확인:

 
ros2 interface show geometry_msgs/msg/Twist
 

 

출력:

Vector3 linear
Vector3 angular
 

 

Vector3 구조 확인:

 
ros2 interface show geometry_msgs/msg/Vector3
 

 

출력:

float64 x
float64 y
float64 z
 

 

즉 Twist는 내부적으로 다음 구조입니다.

linear:
  x
  y
  z

angular:
  x
  y
  z
 

 

모바일 로봇에서는 보통 다음만 씁니다.

linear.x
angular.z
 

 

 

 

 

 

6.3 rqt 실습

rqt 실행:

 
rqt
 

 

메뉴:

Plugins → Topics → Message Type Browser
 

 

다음 메시지를 찾아봅니다.

std_msgs/msg/String
geometry_msgs/msg/Twist
sensor_msgs/msg/Image
sensor_msgs/msg/Imu
nav_msgs/msg/Odometry
trajectory_msgs/msg/JointTrajectory
 

 

각 메시지의 필드 구조를 확인합니다.

 

 

 

 

 

6.4 주요 메시지 타입 설명

 

std_msgs/msg/String

가장 단순한 문자열 메시지입니다.

string data
 

 

예:

 
ros2 topic pub /hello std_msgs/msg/String "{data: 'hello ros2'}"
 

 

 

geometry_msgs/msg/Twist

속도 명령에 자주 사용합니다.

Vector3 linear
Vector3 angular
 

 

모바일 로봇 예:

linear.x = 전진 속도
angular.z = 회전 속도
 

 

 

sensor_msgs/msg/Image

카메라 이미지 메시지입니다.

 

대표 필드:

height
width
encoding
data
step
 

 

Image View에서 볼 수 있습니다. rqt_image_view는 image_transport를 사용해 이미지를 표시하는 GUI 플러그인입니다.

 

 

 

sensor_msgs/msg/Imu

IMU 센서 메시지입니다.

 

대표 필드:

orientation
angular_velocity
linear_acceleration
 

 

드론, 모바일 로봇, 자세 추정에서 매우 중요합니다.

 

 

nav_msgs/msg/Odometry

로봇 위치와 속도 추정값입니다.

 

대표 필드:

pose
twist
 

 

모바일 로봇 위치 추정, SLAM, Navigation2에서 많이 사용합니다.

 

 

trajectory_msgs/msg/JointTrajectory

로봇팔 조인트 궤적 메시지입니다.

 

대표 필드:

joint_names
points
 

 

points 안에는 위치, 속도, 가속도, 시간이 들어갑니다.

 

 

 

6.5 실무 사용 예

Message Type Browser는 다음 상황에서 씁니다.

토픽 publisher 코드 작성 전
subscriber callback 작성 전
ros2 topic pub 명령 작성 전
rqt_plot에 넣을 필드 확인
Image View에서 볼 이미지 타입 확인
로봇팔 trajectory 구조 확인
Odometry 구조 확인
 

예를 들어 rqt_plot에 odometry x 위치를 넣으려면 메시지 구조를 알아야 합니다.

/odom/pose/pose/position/x
 

 

이 경로는 nav_msgs/msg/Odometry 구조를 알아야 찾을 수 있습니다.

 

 

 

 

7. Visualization → Image View

7.1 개념 설명

 

메뉴 위치:

Plugins → Visualization → Image View
 

 

Image View는 ROS 2 이미지 토픽을 화면에 보여주는 플러그인입니다.

공식 문서 기준으로 rqt_image_view는 image_transport를 사용해 이미지를 표시하는 GUI 플러그인입니다.

 

주로 다음 타입의 토픽을 봅니다.

sensor_msgs/msg/Image
sensor_msgs/msg/CompressedImage
 

 

대표 토픽 이름:

/camera/image_raw
/camera/color/image_raw
/camera/depth/image_raw
/image
 

 

 

 

 

7.2 왜 필요한가?

카메라 토픽은 터미널로 보면 의미가 없습니다.

 
ros2 topic echo /camera/image_raw
 

 

이렇게 보면 숫자 배열이 엄청나게 나옵니다.

data: [123, 42, 55, 98, ...]
 

사람이 볼 수 없습니다.

 

그래서 이미지 토픽은 Image View로 봐야 합니다.

 

 

 

7.3 USB 카메라 실습 예시

카메라 패키지는 환경마다 다를 수 있습니다. 예를 들어 v4l2_camera를 사용할 수 있습니다.

 

설치:

 
sudo apt install ros-humble-v4l2-camera
 

 

 

카메라 실행:

 
ros2 run v4l2_camera v4l2_camera_node
 

 

토픽 확인:

 
ros2 topic list
 
 

 

예상 토픽:

/image_raw
/camera_info
 

 

rqt 실행:

 
rqt
 

 

메뉴:

Plugins → Visualization → Image View
 

 

상단 토픽 선택:

/image_raw
 

 

이미지가 보이면 정상입니다.

 

 

 

7.4 Gazebo 카메라 실습 예시

Gazebo 또는 Ignition/Gazebo Sim에서 카메라 플러그인을 사용하면 다음 토픽이 나올 수 있습니다.

/camera/image_raw
 

 

확인:

 
ros2 topic list | grep image
 

 

타입 확인:

 
ros2 topic info /camera/image_raw
 

 

Image View에서 해당 토픽을 선택합니다.

 

 

 

7.5 OpenCV 처리 결과 확인

비전 노드를 만들 때 원본 이미지와 처리 결과 이미지를 따로 발행하면 디버깅이 편합니다.

 

예:

/camera/image_raw
/edge_image
/detected_image
/segmentation_image
 

 

Image View에서 /detected_image를 선택하면 객체 검출 결과가 제대로 그려졌는지 확인할 수 있습니다.

 

 

 

7.6 자주 발생하는 문제

토픽이 목록에 안 보임

 

확인:

 
ros2 topic list
 
 
ros2 topic info /camera/image_raw
 

 

이미지가 안 뜸

 

확인:

 
ros2 topic hz /camera/image_raw
 

 

토픽이 실제로 발행 중인지 확인합니다.

encoding 문제

이미지 메시지의 encoding이 잘못되면 표시가 안 될 수 있습니다.

 

확인:

 
ros2 topic echo /camera/image_raw --once
 

 

대표 encoding:

rgb8
bgr8
mono8
16UC1
32FC1
 

 

압축 이미지 문제

일부 환경에서는 압축 이미지 transport 플러그인이 필요할 수 있습니다.

 
sudo apt install ros-humble-image-transport-plugins

 

 

 
 

7.7 실무 사용 예

USB 카메라 영상 확인
Depth 카메라 영상 확인
드론 하방 카메라 확인
객체 인식 결과 확인
라인 트레이싱 결과 확인
AprilTag 검출 결과 확인
SLAM용 카메라 입력 확인
 
 
 
 

8. Visualization → Plot

8.1 개념 설명

 

메뉴 위치:

Plugins → Visualization → Plot
 

 

Plot은 숫자 데이터를 시간 그래프로 보여주는 플러그인입니다.

공식 문서 기준으로 rqt_plot은 숫자 값을 2D plot으로 시각화하는 GUI 플러그인입니다.

로봇 개발에서는 숫자 데이터가 계속 변합니다.

 

예:

IMU 각속도
로봇 위치
모터 속도
배터리 전압
PID 오차
드론 고도
엔코더 값
온도
 

 

이런 값은 터미널로 보는 것보다 그래프로 보는 것이 훨씬 좋습니다.

 

 

 

8.2 rqt_plot에 넣는 토픽 경로

rqt_plot은 숫자 필드 경로를 입력합니다.

 

예:

/turtle1/pose/x
/turtle1/pose/y
/turtle1/pose/theta
 

 

Odometry 예:

/odom/pose/pose/position/x
/odom/pose/pose/position/y
/odom/twist/twist/linear/x
 

 

IMU 예:

/imu/data/angular_velocity/x
/imu/data/angular_velocity/y
/imu/data/angular_velocity/z
 

 

배터리 예:

/battery_state/voltage
/battery_state/current
/battery_state/percentage
 

 

 

 

8.3 turtlesim 실습

 

터미널 1:

 
ros2 run turtlesim turtlesim_node
 

 

터미널 2:

 
ros2 run turtlesim turtle_teleop_key
 

터미널 3:

 
rqt
 

 

메뉴:

Plugins → Visualization → Plot
 

 

Plot 입력창에 다음을 추가합니다.

/turtle1/pose/x
 

 

추가:

/turtle1/pose/y
 

 

추가:

/turtle1/pose/theta
 

 

키보드로 거북이를 움직이면 x, y, theta 값이 실시간 그래프로 표시됩니다.

 

 

 

 

8.4 메시지 구조 확인과 연결하기

rqt_plot에 필드를 넣으려면 메시지 구조를 알아야 합니다.

 

먼저 토픽 타입 확인:

 
ros2 topic info /turtle1/pose
 

 

출력 예:

Type: turtlesim/msg/Pose
 

 

구조 확인:

 
ros2 interface show turtlesim/msg/Pose
 

 

출력 예:

float32 x
float32 y
float32 theta
float32 linear_velocity
float32 angular_velocity
 

그래서 rqt_plot에 다음을 넣을 수 있습니다.

/turtle1/pose/x
/turtle1/pose/y
/turtle1/pose/theta
/turtle1/pose/linear_velocity
/turtle1/pose/angular_velocity
 

 

 

 

8.5 IMU 실습 예시

IMU 토픽이 있다고 가정합니다.

 
ros2 topic list | grep imu
 

 

예:

/imu/data
 

 

타입 확인:

 
ros2 topic info /imu/data
 

 

구조 확인:

 
ros2 interface show sensor_msgs/msg/Imu
 

 

rqt_plot에 입력:

/imu/data/angular_velocity/x
/imu/data/angular_velocity/y
/imu/data/angular_velocity/z
 

 

로봇이나 센서를 움직이면 각속도 변화가 그래프로 보입니다.

 

 

 

8.6 Odometry 실습 예시

 

Odometry 토픽:

/odom
 

 

타입:

nav_msgs/msg/Odometry
 

 

rqt_plot 입력:

/odom/pose/pose/position/x
/odom/pose/pose/position/y
/odom/twist/twist/linear/x
/odom/twist/twist/angular/z
 

 

모바일 로봇이 움직일 때 위치와 속도 변화를 볼 수 있습니다.

 

 

 

8.7 제어기 튜닝 예시

PID 제어기를 만들었다고 가정합니다.

다음 토픽을 발행하면 rqt_plot으로 튜닝하기 좋습니다.

/pid/error
/pid/output
/pid/target
/pid/current
 

Plot에 다음을 넣습니다.

/pid/target/data
/pid/current/data
/pid/error/data
 

확인할 것:

목표값을 잘 따라가는가?
오버슈트가 큰가?
진동이 있는가?
응답이 느린가?
 

이런 건 터미널 숫자보다 그래프가 압도적으로 좋습니다.

 

 

 

8.8 자주 발생하는 문제

그래프가 안 나옴

 

토픽이 실제로 발행 중인지 확인:

 
ros2 topic hz /topic_name
 

 

필드 경로가 틀림

 

메시지 구조 확인:

 
ros2 interface show 메시지타입
 

 

예:

 
ros2 interface show nav_msgs/msg/Odometry
 

 

숫자 필드가 아님

rqt_plot은 숫자 값을 그립니다.

 

가능:

float32
float64
int32
int64
uint8
 

 

부적합:

string
bool만 단독으로는 사용성이 낮음
배열 전체
복잡한 객체 전체
 

 

배열은 특정 인덱스를 지원하는 경우가 있지만, 강의에서는 처음부터 단일 숫자 필드로 설명하는 것이 좋습니다.

 

 

 

8.9 실무 사용 예

드론 고도 변화 확인
PX4 local position z 확인
모터 RPM 확인
배터리 전압 확인
IMU 각속도 확인
엔코더 속도 확인
로봇 위치 x/y 확인
PID target/current/error 비교
센서 필터 적용 전후 비교
 
 
 

. Bar

9.1 기능 설명

Bar 플러그인은 ROS 2 토픽으로 들어오는 수치 데이터를 막대 그래프 형태로 보여주는 플러그인입니다.

센서값, 속도값, 거리값, 배터리 전압, 모터 출력값처럼 단일 수치 또는 여러 수치 데이터를 직관적으로 확인할 때 사용합니다.

 

예를 들어 다음과 같은 데이터를 확인할 수 있습니다.

/velocity
/battery_voltage
/motor_pwm
/sensor_value
 
 
 
 

9.2 사용 목적

Bar는 값의 크기를 빠르게 비교할 때 좋습니다.

 

예를 들어 로봇에 좌우 모터가 있다면 다음처럼 비교할 수 있습니다.

left_motor_speed
right_motor_speed
 

 

막대 길이를 보면 양쪽 모터 출력이 비슷한지, 한쪽만 과하게 출력되는지 바로 확인할 수 있습니다.

 

 

 

9.3 사용 예시

turtlesim_node와 turtle_teleop_key 노드를 각각 다른 터미널에서 실행합니다.

 

rqt에서 다음 메뉴를 선택합니다.

Plugins → Visualization → Bar
 

 

이후 플러그인에서 /turtle1/cmd_vel/linear/x 토픽을 선택한 후에  Max Value를 10로 설정하면 배터리 전압 값이 막대 형태로 표시됩니다.

 

 

 

9.4 적합한 데이터 타입

주로 다음과 같은 수치형 메시지에 적합합니다.

std_msgs/msg/Float32
std_msgs/msg/Float64
std_msgs/msg/Int32
std_msgs/msg/Int64
 

 

배열 형태의 데이터도 플러그인 설정에 따라 일부 확인할 수 있습니다.

 

 

 

9.5 활용 예

로봇 개발에서는 다음 용도로 활용할 수 있습니다.

1. 배터리 전압 확인
2. 모터 출력값 확인
3. 센서 거리값 확인
4. PID 제어 출력값 확인
5. 좌우 바퀴 속도 비교
 
 
 
 

 

10. Dial

10.1 기능 설명

Dial 플러그인은 ROS 2 토픽의 수치 데이터를 계기판 형태로 보여주는 플러그인입니다.

자동차 속도계나 전압계처럼 원형 게이지로 데이터를 확인할 수 있습니다.

 

 

 

10.2 사용 목적

Dial은 값의 현재 상태를 직관적으로 확인할 때 사용합니다.

 

예를 들어 다음과 같은 데이터에 적합합니다.

1. 로봇 속도
2. 모터 RPM
3. 배터리 전압
4. 온도
5. 거리 센서 값
 

 

막대 그래프보다 계기판 형태가 더 보기 편한 경우에 사용합니다.

 

 

 

10.3 사용 예시

turtlesim_node와 turtle_teleop_key 노드를 각각 다른 터미널에서 실행합니다.

 
 
 

 

rqt에서 다음 메뉴를 실행합니다.

Plugins → Visualization → Dial
 

 

그리고 /turtle1/cmd_vel/angular/z 토픽을 선택하고 Subscribe 한 후에 Max Value 값을 10으로 설정하면 현재 속도값이 다이얼 형태로 표시됩니다.

 

 

 


10.4 활용 예

 

드론이나 로봇에서는 다음과 같이 사용할 수 있습니다.

1. 현재 고도 표시
2. 현재 속도 표시
3. 모터 RPM 표시
4. 배터리 잔량 또는 전압 표시
5. 센서 거리값 표시
 

 

특히 사람이 빠르게 상태를 확인해야 하는 시스템에서는 Dial이 보기 좋습니다.

 

 

 

 

11. Dot Graph Viewer

 

11.1 기능 설명

Dot Graph Viewer는 DOT 형식의 그래프 파일 또는 DOT 그래프 데이터를 시각화하는 rqt 플러그인입니다.

DOT는 Graphviz에서 사용하는 그래프 표현 언어입니다.
노드와 노드 사이의 연결 관계를 텍스트로 작성하면, 이를 그래프 형태로 보여줍니다.

rqt_dotgraph는 DOT 그래프 파일을 직접 불러오거나 ROS 2 토픽으로 전달되는 DOT 그래프 데이터를 구독해서 시각화할 수 있습니다.

 

 

11.2 Node Graph와 Dot Graph Viewer의 차이

초보자가 가장 헷갈리는 부분이 바로 이것입니다.

Dot Graph Viewer는 Node Graph와 비슷해 보이지만 목적이 다릅니다.

 

                구분                                        Node Graph                                                  Dot Graph Viewer
메뉴 위치 Plugins → Introspection → Node Graph Plugins → Visualization → Dot Graph Viewer
주 목적 현재 실행 중인 ROS 2 노드와 토픽 관계 확인 DOT 형식 그래프 시각화
데이터 입력 ROS 2 시스템 상태를 자동으로 읽음 DOT 파일 또는 DOT 데이터
turtlesim 연결 확인 바로 가능 DOT 그래프를 만들어서 확인
실전 사용 빈도 높음 보조적 사용

 

즉, 현재 실행 중인 ROS 2 노드 관계를 바로 보고 싶다면 보통 Node Graph를 사용합니다.

반면 Dot Graph Viewer는 사용자가 직접 작성한 그래프 구조, 상태 머신, 데이터 흐름도, 알고리즘 구조를 시각화할 때 사용합니다.

 

 

 

11.3 DOT 형식 기본 구조

DOT 그래프는 다음과 같은 형태로 작성합니다.

 
digraph G {
  node_a -> node_b;
  node_b -> node_c;
}
 

 

위 코드는 다음 의미입니다.

node_a가 node_b로 연결됨
node_b가 node_c로 연결됨
 

digraph는 방향성이 있는 그래프를 의미합니다.


ROS 2에서는 데이터가 어느 노드에서 어느 토픽으로 이동하고, 어느 노드가 그 토픽을 구독하는지 방향이 중요하므로 digraph 형태가 잘 맞습니다.

 

 

11.4 turtlesim 실습

이번 실습에서는 turtlesim을 실행한 뒤, turtlesim 구조를 DOT 그래프로 직접 작성해서 Dot Graph Viewer에서 확인합니다.

터미널을 3개 사용합니다.

 

 

a. 터미널 1 — turtlesim 실행

 
ros2 run turtlesim turtlesim_node
 

실행하면 파란색 배경의 TurtleSim 창이 열립니다.

이때 ROS 2 노드 이름은 보통 다음과 같습니다.

/turtlesim
 
 
b. 터미널 2 — 키보드 조작 노드 실행
 
ros2 run turtlesim turtle_teleop_key
 

 

이 노드는 키보드 입력을 받아서 거북이를 움직이는 속도 명령을 발행합니다.

 

보통 노드 이름은 다음과 비슷하게 생성됩니다.

/teleop_turtle
 

 

키보드 방향키를 누르면 /turtle1/cmd_vel 토픽으로 속도 명령이 발행됩니다.

 

 

c. 터미널 3 — 토픽 확인

 

ros2 topic list
 

 

대표적으로 다음 토픽이 보입니다.

/turtle1/cmd_vel
/turtle1/color_sensor
/turtle1/pose
 

각 토픽의 역할은 다음과 같습니다.

 

 

 

11.5 turtlesim 노드 관계 이해

turtlesim에서 기본적인 데이터 흐름은 다음과 같습니다.

키보드 입력
   ↓
/teleop_turtle 노드
   ↓
/turtle1/cmd_vel 토픽
   ↓
/turtlesim 노드
   ↓
거북이 이동
 

 

그리고 /turtlesim 노드는 현재 거북이 상태를 다음 토픽으로 발행합니다.

/turtlesim
   ├── /turtle1/pose
   └── /turtle1/color_sensor
 

 

이 구조를 DOT 그래프로 표현해 보겠습니다.

 

 

 

11.6 turtlesim DOT 파일 만들기

터미널에서 작업 폴더를 하나 만듭니다.

 
mkdir -p ~/ros2_dotgraph_test
cd ~/ros2_dotgraph_test
 

 

다음 파일을 생성합니다.

 
gedit turtlesim_graph.dot
 
 

 

또는 터미널에서 바로 작성하려면 다음 명령어를 사용합니다.

 
cat > turtlesim_graph.dot << 'EOF'
digraph turtlesim_graph {
  rankdir=LR;

  keyboard [label="Keyboard Input", shape=box];
  teleop [label="/teleop_turtle\nnode", shape=ellipse];
  cmd_vel [label="/turtle1/cmd_vel\ntopic", shape=box];
  turtlesim [label="/turtlesim\nnode", shape=ellipse];
  pose [label="/turtle1/pose\ntopic", shape=box];
  color [label="/turtle1/color_sensor\ntopic", shape=box];

  keyboard -> teleop [label="arrow key"];
  teleop -> cmd_vel [label="publish"];
  cmd_vel -> turtlesim [label="subscribe"];
  turtlesim -> pose [label="publish"];
  turtlesim -> color [label="publish"];
}
EOF

 

 
 
 

 

a. DOT 코드 해석

위 DOT 파일의 핵심은 다음 부분입니다.

 
teleop -> cmd_vel [label="publish"];
cmd_vel -> turtlesim [label="subscribe"];
 

 

이 의미는 다음과 같습니다.

/teleop_turtle 노드가 /turtle1/cmd_vel 토픽을 발행한다.
/turtlesim 노드가 /turtle1/cmd_vel 토픽을 구독한다.
 

 

즉, 키보드 조작 노드가 명령을 만들고, turtlesim 노드가 그 명령을 받아 거북이를 움직입니다.

 

 

 

b. 2 shape 옵션 의미

DOT 파일에서 shape 옵션을 사용했습니다.

 
teleop [label="/teleop_turtle\nnode", shape=ellipse];
cmd_vel [label="/turtle1/cmd_vel\ntopic", shape=box];
 

여기서는 다음 규칙으로 표현했습니다.

 

                                                            구분                                                                                모양
ROS 2 노드 타원
ROS 2 토픽 사각형
외부 입력 사각형

 

이렇게 정해두면 그래프를 볼 때 노드와 토픽을 쉽게 구분할 수 있습니다.

 

 

 

11.7 Dot Graph Viewer에서 DOT 파일 열기

rqt를 실행합니다.

 
rqt
 

 

상단 메뉴에서 다음을 선택합니다.

Plugins → Visualization → Dot Graph Viewer
 

 

그다음 Dot Graph Viewer 화면에서 DOT 파일을 불러옵니다.

~/ros2_dotgraph_test/turtlesim_graph.dot
 

 

 

정상적으로 열리면 다음과 같은 흐름의 그래프를 볼 수 있습니다.

Keyboard Input
      ↓
/teleop_turtle
      ↓
/turtle1/cmd_vel
      ↓
/turtlesim
      ↓
/turtle1/pose
/turtle1/color_sensor
 
 
 

 

11.8 실제 ROS 2 명령어와 그래프 비교

DOT 그래프가 실제 시스템 구조와 맞는지 확인해 봅니다.

 

a. 노드 목록 확인

 
ros2 node list
 

예상 출력은 다음과 비슷합니다.

/teleop_turtle
/turtlesim
 
 
b. turtlwsim 노드 정보 확인
 
 
ros2 node info /turtlesim
 

 

출력에서 다음 항목을 확인할 수 있습니다.

Subscribers:
  /turtle1/cmd_vel

Publishers:
  /turtle1/color_sensor
  /turtle1/pose
 

 

이 구조는 DOT 그래프에서 다음 부분과 대응됩니다.

 
cmd_vel -> turtlesim [label="subscribe"];
turtlesim -> pose [label="publish"];
turtlesim -> color [label="publish"];
 
 
c. teleop 노드 정보 확인
 
 
ros2 node info /teleop_turtle
 

 

출력에서 다음 항목을 확인합니다.

Publishers:
  /turtle1/cmd_vel
 

 

이 구조는 DOT 그래프에서 다음 부분과 대응됩니다.

 
teleop -> cmd_vel [label="publish"];
 

 

 

 

11.9 Dot Graph Viewer 실전 활용 예

Dot Graph Viewer는 다음 상황에서 사용하면 좋습니다.

1. ROS 2 노드와 토픽 구조를 문서화할 때
2. 강의 자료에서 시스템 구조를 설명할 때
3. 상태 머신을 시각화할 때
4. 자율주행 미션 흐름을 정리할 때
5. 드론 배송 시스템의 전체 데이터 흐름을 표현할 때
6. 센서 → 인식 → 판단 → 제어 흐름을 설명할 때
7. 여러 노드가 얽힌 프로젝트 구조를 팀원에게 설명할 때
 

 

예를 들어 드론 배송 시스템에서는 다음과 같은 구조를 DOT 그래프로 만들 수 있습니다.

GPS
 ↓
Localization Node
 ↓
Mission Planner
 ↓
PX4 Offboard Control
 ↓
Gripper Control
 

 

이런 구조는 Node Graph보다 Dot Graph Viewer가 더 깔끔할 수 있습니다.
왜냐하면 Node Graph는 실제 실행 중인 모든 노드와 토픽을 보여주지만, Dot Graph Viewer는 블로그나 문서에 필요한 핵심 흐름만 사용자가 직접 정리해서 보여줄 수 있기 때문입니다.

 

 

 

11.10 주의할 점

Dot Graph Viewer는 실행 중인 ROS 2 시스템의 노드 관계를 자동으로 분석하는 도구가 아닙니다.

실시간 ROS 2 노드 관계를 바로 확인하려면 다음 메뉴를 사용하는 것이 맞습니다.

Plugins → Introspection → Node Graph
 

 

반면 Dot Graph Viewer는 다음 목적에 더 적합합니다.

1. 사용자가 작성한 DOT 파일 확인
2. 시스템 설계도 시각화
3. 상태 머신 시각화
4. 데이터 흐름도 정리
5. 블로그나 강의 자료용 그래프 작성
 

 

 

 

12. Rotational

12.1 기능 설명

Rotational 플러그인은 ROS 2 토픽에서 발행되는 회전값, 방향값, 각도값을 시각적으로 확인하는 rqt 플러그인입니다.

숫자로 표시되는 각도값은 바로 감이 오지 않을 수 있습니다.

 

예를 들어 다음 값이 있다고 가정합니다.

theta = 1.57
 

 

이 값은 라디안 기준으로 약 90도입니다.
하지만 숫자만 보면 로봇이 어느 방향을 바라보는지 바로 이해하기 어렵습니다.

이럴 때 Rotational 플러그인을 사용하면 회전 방향을 시각적으로 확인할 수 있습니다.

turtlesim은 ROS 2의 기본 학습용 시뮬레이터이고, 노드, 토픽, 서비스, 액션 같은 ROS 2 핵심 개념을 실습하기 좋습니다. rqt는 ROS 2 시스템을 GUI로 확인하고 조작할 수 있는 도구입니다.

 

 

 

12.2 turtlesim에서 확인할 회전값

turtlesim에서 거북이의 현재 위치와 방향 정보는 다음 토픽으로 발행됩니다.

/turtle1/pose
 

 

이 토픽의 메시지 타입은 다음과 같습니다.

turtlesim/msg/Pose
 

 

메시지 구조는 다음과 같습니다.

float32 x
float32 y
float32 theta
float32 linear_velocity
float32 angular_velocity
 

 

여기서 theta가 거북이의 현재 방향값입니다.

theta = 거북이가 바라보는 방향
 

 

따라서 Rotational 플러그인에서는 다음 값을 확인하면 됩니다.

/turtle1/pose/theta
 
 
 

12.3 실습 준비

이번 실습에서는 다음 순서로 진행합니다.

1. turtlesim 실행
2. 키보드 조작 노드 실행
3. /turtle1/pose 토픽 확인
4. rqt Rotational 실행
5. /turtle1/pose/theta 값을 연결
6. 거북이를 회전시키면서 방향 변화 확인
 

 

 

 

12.4 터미널 1 — turtlesim 실행

첫 번째 터미널에서 turtlesim_node를 실행합니다.

 
ros2 run turtlesim turtlesim_node
 

 

실행하면 파란색 배경의 TurtleSim 창이 열립니다.

기본 거북이는 화면 중앙 근처에 생성됩니다.

 

 

12.5 터미널 2 — 키보드 조작 노드 실행

두 번째 터미널에서 키보드 조작 노드를 실행합니다.

 
ros2 run turtlesim turtle_teleop_key
 

 

이 노드는 키보드 입력을 받아서 거북이에게 속도 명령을 보냅니다.

 

방향키를 누르면 거북이가 움직이고 회전합니다.

↑ : 앞으로 이동
← : 왼쪽 회전
→ : 오른쪽 회전
↓ : 뒤쪽 방향 이동 또는 감속
 

 

turtle_teleop_key는 방향키뿐 아니라 일부 키 입력으로 거북이의 방향을 특정 방향으로 회전시키는 액션 실습에도 사용됩니다. ROS 2 공식 튜토리얼에서는 G, B, V, C, D, E, R, T 키가 F 키 주변 방향에 대응한다고 설명합니다.

 

 

12.6 터미널 3 — pose 토픽 확인

세 번째 터미널에서 현재 발행 중인 토픽을 확인합니다.

 
ros2 topic list
 

 

다음과 같은 토픽이 보입니다.

/turtle1/cmd_vel
/turtle1/color_sensor
/turtle1/pose
 

 

이 중에서 Rotational 실습에 사용할 토픽은 다음입니다.

/turtle1/pose
 

 

토픽 타입을 확인합니다.

 
ros2 topic info /turtle1/pose
 

 

예상 출력은 다음과 비슷합니다.

Type: turtlesim/msg/Pose
Publisher count: 1
Subscription count: 0
 

 

이제 실제 데이터를 확인합니다.

 
ros2 topic echo /turtle1/pose
 

 

출력 예시는 다음과 같습니다.

x: 5.544445
y: 5.544445
theta: 0.0
linear_velocity: 0.0
angular_velocity: 0.0
 

여기서 중요한 값은 theta입니다.

 

 

12.7 theta 값 이해하기

turtlesim의 theta는 거북이의 방향을 나타냅니다.

단위는 보통 radian입니다.

 

                     theta 값                              대략적인 각도                                                   의미
0.0 0도 오른쪽 방향
1.57 90도 위쪽 방향
3.14 180도 왼쪽 방향
-1.57 -90도 아래쪽 방향
6.28 360도 한 바퀴 회전

 

즉, 거북이가 회전하면 /turtle1/pose의 theta 값이 계속 변합니다.

 

 


12.8 rqt 실행

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

 
rqt
 

 

메뉴에서 다음을 선택합니다.

Plugins → Visualization → Rotational
 

 

그러면 회전값을 표시하는 플러그인 창이 열립니다.

 

 

 

12.9 Rotational에서 토픽 선택

Rotational 플러그인에서 확인할 값은 다음입니다.

/turtle1/pose/theta
 

 

플러그인에서 토픽 또는 필드를 선택할 수 있다면 다음 경로를 선택합니다.

/turtle1/pose → theta
 

 

직접 입력해야 하는 방식이라면 다음과 같이 입력합니다.

/turtle1/pose/theta
 

 

정상적으로 연결되면 거북이의 방향값이 회전 표시 형태로 나타납니다.

 

 


12.10 거북이 회전 실습

이제 turtle_teleop_key 터미널을 클릭해서 키보드 입력이 들어가도록 합니다.

 

왼쪽 방향키를 누릅니다.

 

 

그러면 거북이가 왼쪽으로 회전합니다.

이때 /turtle1/pose/theta 값이 변하고, Rotational 플러그인의 방향 표시도 같이 변해야 합니다.

 

오른쪽 방향키도 눌러봅니다.

 

 

거북이가 반대 방향으로 회전하면서 theta 값이 다시 변합니다.

 

 


12.11 터미널 출력과 Rotational 비교하기

ros2 topic echo를 켜둔 상태에서 거북이를 회전시키면 다음처럼 값이 변합니다.

x: 5.544445
y: 5.544445
theta: 0.52
linear_velocity: 0.0
angular_velocity: 2.0
 

 

조금 더 회전하면 다음처럼 바뀔 수 있습니다.

x: 5.544445
y: 5.544445
theta: 1.57
linear_velocity: 0.0
angular_velocity: 2.0
 

 

여기서 확인할 핵심은 다음입니다.

theta 값이 변한다.
Rotational 표시 방향도 같이 변한다.
 

 

 

즉, Rotational은 단순히 숫자를 보여주는 것이 아니라 회전 방향을 눈으로 확인하게 해주는 도구입니다.

 

 

12.12 Plot과 Rotational을 같이 사용하기

Rotational만 사용하면 현재 방향을 직관적으로 볼 수 있습니다.

하지만 시간에 따른 변화량까지 보고 싶다면 Plot 플러그인을 같이 사용하면 좋습니다.

 

메뉴에서 다음을 추가로 실행합니다.

Plugins → Visualization → Plot
 

 

Plot에는 다음 값을 입력합니다.

/turtle1/pose/theta
 

그러면 다음 두 가지를 동시에 볼 수 있습니다.

 

                   플러그인 확인                                                           내용
Rotational 현재 방향
Plot 시간에 따른 방향 변화

 

즉, Rotational은 현재 상태를 보는 데 좋고, Plot은 변화 추세를 보는 데 좋습니다.

 

 

 

 

12.13 angular_velocity도 함께 확인하기

turtlesim/msg/Pose에는 angular_velocity 값도 있습니다.

angular_velocity
 

 

이 값은 현재 거북이가 얼마나 빠르게 회전하고 있는지를 나타냅니다.

 

Plot에서는 다음 값을 확인할 수 있습니다.

/turtle1/pose/angular_velocity
 

 

왼쪽 또는 오른쪽 방향키를 누르고 있으면 angular_velocity 값이 변합니다.

정리하면 다음과 같습니다.

theta            : 현재 방향
angular_velocity : 회전 속도
 

 

Rotational에서는 theta를 보는 것이 맞고, Plot에서는 theta와 angular_velocity를 함께 보면 좋습니다.

 

 

 

13. TF Tree

13.1 기능 설명

TF Tree 플러그인은 ROS 2의 TF 프레임 관계를 트리 구조로 보여주는 플러그인입니다.

로봇 시스템에서는 여러 좌표계가 존재합니다.

예를 들어 모바일 로봇에서는 다음과 같은 프레임이 자주 사용됩니다.

map
odom
base_link
base_footprint
laser
camera_link
imu_link
 

 

TF Tree는 이러한 프레임들이 어떻게 연결되어 있는지 확인할 수 있게 해줍니다.

 

 

 

13.2 사용 목적

TF가 제대로 연결되어 있는지 확인할 때 사용합니다.

 

ROS 2에서 TF가 꼬이면 다음 문제가 발생할 수 있습니다.

1. RViz에서 로봇 모델이 이상하게 보임
2. 센서 위치가 맞지 않음
3. Navigation이 제대로 동작하지 않음
4. SLAM 좌표계가 깨짐
5. 카메라와 라이다 데이터 정합이 안 됨
6. 드론 위치 추정이 이상해짐
 

 

그래서 TF Tree는 로봇 개발에서 매우 중요한 디버깅 도구입니다.

 

 

 

13.3 사용 예시

먼저 TF가 발행되고 있는지 확인합니다.

 
ros2 topic list
 

 

다음 토픽이 있어야 합니다.

/tf
/tf_static
 

 

그 다음 rqt에서 다음 메뉴를 실행합니다.

Plugins → Visualization → TF Tree
 

 

그러면 현재 시스템의 TF 연결 구조가 트리 형태로 표시됩니다.

 

 

 

13.4 일반적인 TF 구조 예시

모바일 로봇에서는 보통 다음 구조를 가집니다.

map
 └── odom
      └── base_link
           ├── laser
           ├── camera_link
           └── imu_link
 

 

각 프레임의 의미는 다음과 같습니다.

map         : 전역 좌표계
odom        : 오도메트리 좌표계
base_link   : 로봇 본체 기준 좌표계
laser       : 라이다 센서 좌표계
camera_link : 카메라 좌표계
imu_link    : IMU 센서 좌표계
 
 
 
 

13.4 TF Tree에서 확인해야 할 것

TF Tree를 볼 때는 다음 항목을 확인해야 합니다.

1. 프레임이 끊어져 있지 않은가?
2. map → odom → base_link 순서가 정상인가?
3. 센서 프레임이 base_link 아래에 연결되어 있는가?
4. 중복된 프레임 이름이 없는가?
5. 불필요한 루프 구조가 없는가?
6. static transform이 정상적으로 들어왔는가?
 
 
 

14. 플러그인별 핵심 정리표

               플러그인핵심                             기능                                                          숙지 내용

         

Action Type Browser Action 타입 구조 확인 Goal, Feedback, Result 구조 이해
Console 로그 확인/필터링 WARN/ERROR를 빠르게 찾는 도구
Python Console Python 즉석 실행 계산, import, 메시지 객체 테스트
Shell rqt 내부 셸 간단한 ROS 2 명령 확인
Controller Manager ros2_control 컨트롤러 관리 active/inactive 상태 확인
Diagnostics Viewer 로봇 진단 상태 확인 로봇 건강검진표
Joint trajectory controller 조인트 궤적 테스트 MoveIt 없이 controller 직접 테스트
Motion builder 동작 프리셋 생성/관리 home, ready, wave 같은 동작 관리
Moveit! Monitor MoveIt 상태 확인 move_group, robot_description, joint state 확인
Robot Steering /cmd_vel 발행 모바일 로봇 수동 조작
Runtime Monitor diagnostics 실시간 확인 개발자용 진단 메시지 모니터
Service Type Browser 서비스 타입 구조 확인 Request/Response 구조 이해
Message Type Browser 메시지 타입 구조 확인 토픽 필드 구조 확인
Image View 이미지 토픽 표시 카메라 토픽 확인
Plot 숫자 데이터 그래프 센서/제어값 오실로스코프

 

 

 

 

728x90
728x90