659.103 tf2_monitor를 이용한 변환 지연 시간 모니터링

1. 개요

tf2_monitor는 TF2 변환의 발행 주파수와 지연 시간을 실시간으로 모니터링하는 명령행 도구이다. 각 변환 발행자의 평균 지연, 최대 지연, 발행 빈도를 측정하여 변환 시스템의 건전성을 진단할 수 있다.

2. 사용법

2.1 전체 변환 모니터링

ros2 run tf2_ros tf2_monitor

2.2 특정 프레임 간 모니터링

ros2 run tf2_ros tf2_monitor frame1 frame2

3. 출력 정보

3.1 전체 모니터링 출력 예시

Frames:
Frame: base_link, published by /robot_state_publisher,
    Average Delay: 0.0001 Max Delay: 0.003
Frame: laser_link, published by /robot_state_publisher,
    Average Delay: 0.0001 Max Delay: 0.001
Frame: odom, published by /ekf_node,
    Average Delay: 0.005 Max Delay: 0.012

All Broadcasters:
Node: /robot_state_publisher 50.00 Hz, Average Delay: 0.0001 Max Delay: 0.003
Node: /ekf_node 100.02 Hz, Average Delay: 0.005  Max Delay: 0.012

3.2 출력 필드

필드설명정상 범위
published by변환을 발행하는 노드 이름-
Hz발행 주파수설정과 일치
Average Delay평균 지연 시간 (s)< 0.01 s
Max Delay최대 지연 시간 (s)< 0.1 s

4. 진단 기준

4.1 정상 상태

  • 발행 주파수가 설정된 값과 일치
  • 평균 지연이 10 ms 미만
  • 최대 지연이 100 ms 미만

4.2 이상 상태 진단

증상가능한 원인대응
발행 주파수 0 Hz발행 노드 미실행 또는 멈춤노드 상태 확인 및 재시작
평균 지연 > 100 ms시스템 과부하 또는 네트워크 지연CPU 부하 확인, 발행 주파수 조절
최대 지연만 높음 (간헐적)GC(Garbage Collection) 또는 순간 부하실시간 설정 확인, 우선순위 조절
동일 프레임에 복수 발행자다중 노드가 동일 변환 발행중복 발행 노드 제거
주파수 불안정발행 타이머 정확도 문제Executor 설정 및 콜백 부하 확인

5. 네트워크 환경에서의 활용

분산 시스템에서 TF2 변환이 네트워크를 통하여 전달되는 경우, tf2_monitor로 네트워크 지연에 의한 변환 지연을 관측할 수 있다. 이는 DDS QoS 설정의 최적화에 유용한 정보를 제공한다.

6. 요약

tf2_monitor는 TF2 변환의 발행 주파수와 지연 시간을 모니터링하여 변환 시스템의 성능과 건전성을 진단하는 도구이다. 발행 주체, 주파수, 평균/최대 지연을 확인하여 변환 지연, 발행 중단, 다중 발행 충돌 등의 문제를 식별할 수 있다.


참고 문헌 및 출처

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