659.109 다중 로봇 변환 트리 통합

1. 개요

다중 로봇 시스템에서 각 로봇의 독립적인 TF2 변환 트리를 공통의 글로벌 프레임 하에 통합하면, 임의의 로봇에서 다른 로봇의 좌표 프레임으로의 변환 조회가 가능해진다. 이는 협업 내비게이션, 대형 편대 제어, 협동 매니퓰레이션 등에 필수적이다.

2. 통합 구조

2.1 공유 map 프레임 기반

모든 로봇이 동일한 map 프레임을 기준으로 자신의 odom 프레임에 대한 변환을 발행한다.

map (공유)
  ├── robot1/odom
  │     └── robot1/base_link
  │           └── robot1/sensor_frames...
  └── robot2/odom
        └── robot2/base_link
              └── robot2/sensor_frames...

이 구조에서 map → robot1/base_linkmap → robot2/base_link 변환이 모두 동일한 TF2 트리에 존재하므로, 한 로봇에서 다른 로봇의 위치를 직접 조회할 수 있다.

auto transform = tf_buffer_->lookupTransform(
    "robot1/base_link", "robot2/base_link",
    tf2::TimePointZero);

2.2 earth 프레임 기반

각 로봇이 서로 다른 지도를 사용하는 경우, earth 프레임으로 통합한다.

earth
  ├── robot1/map
  │     └── robot1/odom → robot1/base_link
  └── robot2/map
        └── robot2/odom → robot2/base_link

3. 통합 방법

3.1 TF 브리징

분리된 네트워크 도메인에 있는 로봇 간의 TF 데이터를 중계하는 브리지 노드를 구현한다.

3.2 DDS 도메인 브리지

서로 다른 DDS 도메인에 있는 로봇의 /tf, /tf_static 토픽을 브리징한다.

3.3 공유 지도 서버

모든 로봇이 동일한 map_server에서 지도를 수신하고, 동일한 map 프레임을 기준으로 위치를 추정하면 자연스럽게 트리가 통합된다.

4. 고려 사항

  1. 대역폭: 모든 로봇의 TF 데이터를 공유하면 네트워크 부하가 증가한다. 필요한 프레임만 선택적으로 공유한다.
  2. 시간 동기화: 로봇 간의 시스템 시계가 동기화되어야 변환 조회가 정확하다. NTP 또는 PTP를 사용한다.
  3. 확장성: 로봇 수가 증가하면 TF 트리 크기와 네트워크 부하가 선형적으로 증가한다.

5. 요약

다중 로봇 변환 트리 통합은 공유 글로벌 프레임(map 또는 earth) 하에 각 로봇의 네임스페이싱된 프레임 트리를 연결하여 로봇 간의 좌표 변환 조회를 가능하게 한다. 네트워크 대역폭과 시간 동기화에 대한 체계적 관리가 시스템의 확장성을 결정한다.


참고 문헌 및 출처

  • T. Foote, “REP 105 – Coordinate Frames for Mobile Platforms,” ROS Enhancement Proposals, https://www.ros.org/reps/rep-0105.html (2010, 최종 갱신 2022)
  • S. Macenski et al., “Robot Operating System 2: Design, Architecture, and Uses in the Wild,” Science Robotics, vol. 7, no. 66, 2022.