659.104 view_frames를 이용한 프레임 트리 PDF 생성

1. 개요

view_framestf2_tools 패키지에 포함된 도구로, 현재 TF2 변환 트리의 전체 구조를 수집하여 PDF 파일로 시각화한다. 이 도구는 일정 시간(기본 5초) 동안 /tf/tf_static 토픽을 수신하여 프레임 간의 관계, 발행자, 갱신 주파수, 최근 변환 시간 등의 정보를 Graphviz DOT 형식으로 생성하고, 이를 PDF로 변환한다.

2. 사용법

ros2 run tf2_tools view_frames

이 명령은 현재 디렉토리에 frames_<timestamp>.pdf 파일을 생성한다.

3. 출력 정보

3.1 PDF 내용

생성된 PDF에는 각 프레임에 대하여 다음 정보가 포함된다.

정보설명
프레임 이름TF2에 등록된 프레임의 이름
발행자 (Broadcaster)해당 변환을 발행하는 노드 이름
평균 갱신 주기변환의 평균 발행 주기 (ms)
가장 최근 변환 시간마지막으로 변환이 갱신된 시간
버퍼 길이해당 프레임의 변환 데이터 버퍼 기간
부모-자식 화살표프레임 간의 부모-자식 관계를 화살표로 표시

3.2 전형적인 구조

map
 └── [broadcaster: /amcl, avg delay: 100ms]
     odom
      └── [broadcaster: /ekf_node, avg delay: 10ms]
          base_footprint
           └── [broadcaster: /robot_state_publisher, static]
               base_link
                ├── laser_link [static]
                ├── camera_link [static]
                │    └── camera_optical_frame [static]
                ├── imu_link [static]
                └── wheel_left_link [50Hz]

4. 활용 사례

4.1 TF2 트리 구조 검증

로봇 시스템을 처음 설정한 후, view_frames를 실행하여 의도한 프레임 트리 구조가 올바르게 구성되었는지 확인한다.

4.2 분리된 트리 발견

view_frames의 PDF에 복수의 독립적 트리가 나타나면 프레임 간의 연결이 누락된 것이다. 이는 ConnectivityException의 원인이 되므로 누락된 변환을 추가하여야 한다.

4.3 다중 발행자 감지

동일한 변환에 대하여 복수의 발행자가 표시되면 충돌이 발생하고 있는 것이므로, 중복 발행을 제거하여야 한다.

5. 의존성

view_frames는 내부적으로 Graphviz를 사용하여 DOT 파일을 PDF로 변환한다.

# Graphviz 설치 (Ubuntu)
sudo apt install graphviz

6. 요약

view_frames는 TF2 변환 트리 전체를 PDF로 시각화하는 도구로, 프레임 구조, 발행자, 갱신 주기 등의 정보를 한눈에 파악할 수 있게 한다. 시스템 설정 후의 초기 검증, 분리된 트리 발견, 다중 발행자 감지 등에 활용된다.


참고 문헌 및 출처

  • tf2_tools 패키지, https://github.com/ros2/geometry2/tree/humble/tf2_tools
  • ROS2 공식 문서, “Debugging tf2”, https://docs.ros.org/en/humble/Tutorials/Intermediate/Tf2/ (ROS2 Humble Hawksbill)