659.105 RViz2에서의 TF 프레임 시각화

1. 개요

RViz2(ROS Visualization 2)는 ROS2의 표준 3D 시각화 도구이며, TF2 프레임의 시각적 검증에 가장 직관적인 인터페이스를 제공한다. TF Display 플러그인을 통하여 모든 프레임의 좌표축, 이름, 부모-자식 관계를 3D 공간에 렌더링하며, 센서 데이터와 로봇 모델의 좌표 정합을 시각적으로 검증할 수 있다.

2. TF Display 설정

2.1 추가 방법

  1. RViz2 좌측 패널의 “Add” 버튼을 클릭한다.
  2. “By display type” 탭에서 “TF“를 선택한다.
  3. “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 정합

  1. TF Display와 LaserScan Display를 동시에 활성화한다.
  2. LaserScan의 데이터 포인트가 로봇 모델의 LiDAR 프레임 위치에서 올바른 방향으로 방사되는지 확인한다.
  3. 벽면이나 장애물의 위치가 실제 환경과 일치하는지 확인한다.

4.2 카메라 영상 정합

  1. Camera Display를 추가하여 카메라 영상을 표시한다.
  2. TF 프레임에서 camera_optical_frame의 Z축(파란색)이 카메라 전방(렌즈 방향)을 가리키는지 확인한다.
  3. 포인트 클라우드와 영상의 오버레이가 일치하는지 확인한다.

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_plugins TF Display, https://github.com/ros2/rviz (ROS2 Humble 브랜치)