659.105 RViz2에서의 TF 프레임 시각화
1. 개요
RViz2(ROS Visualization 2)는 ROS2의 표준 3D 시각화 도구이며, TF2 프레임의 시각적 검증에 가장 직관적인 인터페이스를 제공한다. TF Display 플러그인을 통하여 모든 프레임의 좌표축, 이름, 부모-자식 관계를 3D 공간에 렌더링하며, 센서 데이터와 로봇 모델의 좌표 정합을 시각적으로 검증할 수 있다.
2. TF Display 설정
2.1 추가 방법
- RViz2 좌측 패널의 “Add” 버튼을 클릭한다.
- “By display type” 탭에서 “TF“를 선택한다.
- “OK“를 클릭하여 디스플레이를 추가한다.
2.2 주요 설정 항목
| 설정 | 설명 | 기본값 |
|---|---|---|
| Show Names | 각 프레임의 이름 표시 여부 | true |
| Show Axes | 각 프레임의 XYZ 축 표시 여부 | true |
| Show Arrows | 부모-자식 프레임 간 화살표 표시 여부 | true |
| Marker Scale | 축과 이름의 크기 조절 | 1.0 |
| Update Interval | 프레임 위치 갱신 간격 (초) | 0.0 (실시간) |
2.3 좌표축 색상 규약
| 축 | 색상 | 방향 |
|---|---|---|
| X축 | 빨간색 (Red) | 전방 |
| Y축 | 초록색 (Green) | 좌측 |
| Z축 | 파란색 (Blue) | 상방 |
3. Fixed Frame 설정
RViz2의 “Fixed Frame” 설정은 시각화의 기준 좌표계를 결정한다.
| Fixed Frame | 용도 |
|---|---|
map | 글로벌 위치 기반 시각화 (내비게이션, 지도 작성) |
odom | 주행 측정 기반 시각화 (로컬 제어) |
base_link | 로봇 중심 기반 시각화 (센서 데이터 확인) |
Fixed Frame이 TF2 트리에 존재하지 않으면 RViz2에 “Fixed Frame does not exist” 경고가 표시되며, 시각화가 정상적으로 작동하지 않는다.
4. 센서 데이터와의 정합 확인
4.1 LaserScan 정합
- TF Display와 LaserScan Display를 동시에 활성화한다.
- LaserScan의 데이터 포인트가 로봇 모델의 LiDAR 프레임 위치에서 올바른 방향으로 방사되는지 확인한다.
- 벽면이나 장애물의 위치가 실제 환경과 일치하는지 확인한다.
4.2 카메라 영상 정합
- Camera Display를 추가하여 카메라 영상을 표시한다.
- TF 프레임에서
camera_optical_frame의 Z축(파란색)이 카메라 전방(렌즈 방향)을 가리키는지 확인한다. - 포인트 클라우드와 영상의 오버레이가 일치하는지 확인한다.
5. 일반적인 시각화 문제
| 문제 | 원인 | 해결 |
|---|---|---|
| 프레임이 전혀 표시되지 않음 | TF 발행 노드 미실행 | robot_state_publisher 등 실행 확인 |
| 프레임 위치가 비정상적 | URDF 또는 정적 변환 값 오류 | tf2_echo로 변환 값 확인 |
| “Fixed Frame does not exist” | Fixed Frame 이름 오류 | 존재하는 프레임으로 변경 |
| 로봇 모델이 원점에 고정 | odom → base_link 변환 미발행 | 주행 측정 노드 실행 확인 |
| 센서 데이터가 로봇과 분리 | 센서 프레임의 frame_id 불일치 | 드라이버의 frame_id 설정 확인 |
6. RViz2 설정 파일
TF 시각화 설정을 RViz2 설정 파일(.rviz)에 저장하여 재사용할 수 있다.
Visualization Manager:
Displays:
- Class: rviz_default_plugins/TF
Enabled: true
Show Arrows: true
Show Axes: true
Show Names: true
Marker Scale: 0.5
Update Interval: 0
Global Options:
Fixed Frame: map
7. 요약
RViz2의 TF Display는 TF2 프레임의 위치, 방향, 계층 관계를 3D 공간에서 시각적으로 검증하는 핵심 도구이다. 좌표축의 RGB 색상 규약(X=빨강, Y=초록, Z=파랑)에 따라 각 프레임의 방향을 직관적으로 파악할 수 있으며, 센서 데이터와의 정합을 시각적으로 확인할 수 있다.
참고 문헌 및 출처
- RViz2 공식 문서, https://docs.ros.org/en/humble/Tutorials/Intermediate/RViz/ (ROS2 Humble Hawksbill)
rviz_default_pluginsTF Display, https://github.com/ros2/rviz (ROS2 Humble 브랜치)