2.13 ROS1-ROS2 브릿지(Bridge) 기반 이기종 미들웨어 메시지 변환 체계

2.13 ROS1-ROS2 브릿지(Bridge) 기반 이기종 미들웨어 메시지 변환 체계

로봇 소프트웨어 공학 측면에서 상용 드론 생태계에 축적된 방대한 ROS 1 자산(레거시 센서 드라이버, 검증된 자율주행 알고리즘 패키지)을 단기간 내에 ROS 2 환경으로 전면 재작성(Rewrite)하는 것은 막대한 비용과 안정성 리스크를 수반한다. 이에 따라, 서로 완전히 다른 이기종 미들웨어 생태계인 TCPROS(ROS 1)와 DDS(ROS 2) 간의 매끄러운 이행(Migration) 및 데이터 동기화를 지원하기 위해 ros1_bridge로 대표되는 범용 메시지 변환 체계 아키텍처가 제안되었다.

1. 이기종 통신 간의 크로스 컴파일(Cross-Compilation) 및 단일 프로세스 결합

ros1_bridge의 근본적인 작동 원리는 ROS 1의 클라이언트 라이브러리(roscpp)와 ROS 2의 클라이언트 라이브러리(rclcpp)를 단일 운영 프로세스(Process) 내에 동시 적재(Co-instantiation)하여 메모리 공간을 공유하는 것이다. 이를 구현하기 위해 브릿지 패키지는 빌드 타임에 양측 시스템의 메시지 타입 명세서(.msg, .srv)를 크로스 컴파일하여 변환 규칙을 생성한다. 런타임 시에 브릿지는 한쪽 공간에서 서브스크라이버로 유입된 직렬화(Serialization) 데이터를 해제하고, 이를 반대편 프로토콜의 데이터 구조체로 재매핑(Re-mapping)하여 퍼블리시하는 브리지 라우터(Router) 역할을 수행한다.

2. 탐색 모니터링 기반의 동적 브릿지(Dynamic Bridge) 아키텍처

브릿지 노드는 시스템에 존재하는 모든 토픽을 무조건적으로 양방향 변환하지 않는다. 기본적으로 동적 브릿지(Dynamic Bridge) 모드로 동작하는 브릿지 아키텍처는 한쪽에는 ROS 1 마스터(ROS Master)의 등록 리스트를 지속적으로 질의(Polling)하고, 반대쪽에서는 ROS 2 DDS의 그래프 탐색(Graph Discovery) 이벤트를 모니터링한다. 특정 토픽에 대해 ROS 1 네트워크에 퍼블리셔가 존재하고 ROS 2 네트워크에 서브스크라이버가 감지되는 등 논리적 수요가 매칭(Match)되었을 때에 한정하여, 백그라운드 스레드에 동적 파이프라인(Factory)을 적재함으로써 유휴 네트워크 대역폭 및 CPU 자원 낭비를 억제하는 공학적 효율성을 획득한다.

3. 토픽 변환 규칙의 제어와 정적 브릿지(Static Bridge) 대응 정책

고정익이나 멀티로터 제어 환경에서 동적 브릿지의 자동 탐색 기능은 이름 충돌이나 의도치 않은 환형 루프(Circular routing loop)를 초래할 수 있다. 예를 들어 /tf 트리를 양 미들웨어에서 퍼블리시할 경우 심각한 지오메트리 좌표 붕괴 현상이 야기된다. 이를 제어하기 위해 시스템 아키텍트는 브릿지 인스턴스 구동 시 yaml 기반의 화이트리스트(Whitelist) 파라미터를 입력하여 특정 센서 메시지만 단방향으로 통과시키도록 엄격히 통제하는 정적 브릿징(Static Bridging) 패턴을 사용한다. 이는 레거시 카메라 센서는 ROS 1 환경 구동을 허용하되 주 제어기능(Flight Control) 연산은 ROS 2로 철저히 격리(Isolation)하는 단계적 마이그레이션 전략에 활용된다.

4. 메시지 변환 지연 현상(Latency)과 시스템 병목 한계성

ROS 1과 ROS 2 간의 인터페이스 전환 과정에는 메모리 복사(Copy)와 역직렬화, 상이한 서비스 품질(QoS) 모델의 재해석 과정이 개입되므로 최소 수 밀리초(ms) 이상의 지연(Latency) 오버헤드가 필수 불가결하게 수반된다. 따라서 자율 에이전트 드론 설계 시에 브릿지를 통해 4K 비디오 스트림이나 고주파(400Hz 이상) IMU 데이터를 횡단시키는 아키텍처는 컨텍스트 병목(Bottleneck) 현상을 쉽게 유발하므로 권장되지 않으며, 제어 명령 수신이나 상태 추적과 같은 저대역폭/고신뢰 토픽을 중심으로 브릿지 의존 범위를 점진적으로 줄여나가는(Deprecation) 설계 방향성이 강제된다.

  • 참고문헌 및 버전 정보
  • ROS 1 to ROS 2 Migration Guide: ros1_bridge package internals, Open Robotics.
  • Integration of ROS 1 and ROS 2 middleware in Unmanned Aerial Systems.