659.110 TF2의 성능 최적화 전략

1. 개요

TF2 변환 시스템은 로봇의 모든 좌표 변환을 중앙 집약적으로 관리하므로, 시스템의 확장과 더불어 성능 부하가 증가한다. 대규모 프레임 트리, 고빈도 변환 발행, 다수의 변환 조회가 결합되면 CPU 사용량, 메모리 소비, 네트워크 대역폭이 증가할 수 있다.

2. 성능 영향 요소

요소영향비례 관계
프레임 수TF2 버퍼 메모리 사용량선형
발행 주파수네트워크 대역폭, CPU 부하선형
캐시 기간메모리 사용량선형
조회 빈도CPU 부하선형
트리 깊이변환 합성 계산 비용선형

3. 최적화 전략

3.1 변환 발행 주파수 최적화

각 변환의 발행 주파수를 실제 필요에 맞게 조절한다.

변환 유형권장 주파수
정적 변환1회 발행 (/tf_static)
저속 관절10~30 Hz
고속 관절50~100 Hz
주행 측정 (odom→base_link)30~100 Hz
위치 추정 (map→odom)10~30 Hz

3.2 정적 변환의 적극적 활용

변하지 않는 변환은 반드시 StaticTransformBroadcaster(/tf_static)를 사용하여야 한다. 고정 변환을 /tf로 발행하면 불필요한 주기적 네트워크 부하가 발생한다.

3.3 캐시 기간 최적화

tf2::Buffer의 캐시 기간을 필요 최소한으로 설정한다. 기본값인 10초는 대부분의 경우 적절하나, 메모리가 제한된 임베디드 시스템에서는 축소를 고려한다.

3.4 변환 조회 최적화

  • 조회 결과 캐싱: 동일한 변환을 반복 조회하지 않고 결과를 캐싱한다.
  • 배치 변환: 다수의 데이터 포인트를 변환할 때, 변환을 한 번 조회한 후 모든 포인트에 적용한다.
  • 비동기 조회: waitForTransform()의 콜백 기반 비동기 조회를 활용하여 블로킹을 감소시킨다.

3.5 불필요한 프레임 제거

디버깅이나 테스트 목적으로 추가한 임시 프레임은 운영 환경에서 제거한다.

4. 요약

TF2 성능 최적화는 발행 주파수 조절, 정적 변환 활용, 캐시 기간 최적화, 변환 조회 효율화, 불필요한 프레임 제거의 다섯 가지 전략으로 구성된다. 각 전략을 시스템의 요구 사항에 맞게 적용하여 효율적인 TF2 운용을 달성한다.


참고 문헌 및 출처

  • tf2 패키지, https://github.com/ros2/geometry2 (ROS2 Humble 브랜치)
  • S. Macenski et al., “Robot Operating System 2: Design, Architecture, and Uses in the Wild,” Science Robotics, vol. 7, no. 66, 2022.