XRCE-DDS
- “eXtremely Resource-Constrained Environments Data Distribution Service”의 약자
- ROS2와 PX4 또는 다른 시스템간의 외부 통신을 위한 미들웨어
- 주로 리소스가 제한된 임베디드 시스템에서 DDS(Data Distribution Service) 프로토콜을 사용하여 데이터를 주고받기 위해 사용된다.
특징
- PX4와 외부시스템(ex.ROS2)간의 통신을 중계하는 미들웨어
- XRCE-DDS는 PX4 내부의 uORB 메시지를 변환해 ROS2 메시지로 송수신할 수 있다.
즉, PX4와 ROS2간의 데이터 흐름을 관리하는 역할을 한다.
- uORB에서 발행된 메시지를 외부로 전달하거나 외부 명령을 PX4로 전달할 때 사용된다.
- DDS는 분산 시스템간의 데이터 공유를 표준화한 프로토콜이다.
XRCE-DDS는 이 DDS를 임베디드 시스템에서 사용할 수 있도록 경량화한 버전
- PX4에서 XRCE-DDS는 클라이언트로서 작동하고 ROS2나 다른 DDS 네트워크에 연결된 컴퓨터(Companion Computer)는 에이전트로 작동하여 데이터 통신을 중계한다.
uORB
- “Micro Object Request Broker”의 약자
- PX4 내부에서 사용되는 프로세스 간 통신(IPC:Inter-Process Communication)을 위한 시스템이다.
- PX4의 여러 모듈(비행제어, 네비게이션 등)간에 데이터를 교환하기 위해 사용된다.
특징
- uORB는 PX4의 내부 모듈 간 실시간 통신을 담당하는 경량화된 메시징 시스템
- 리소스가 제한된 시스템에서 저지연 메시지 전달을 보장하도록 설계되었다.
실시간 비행 제어 시스템에서는 빠르고 효율적인 통신이 중요
- 메시지의 발행(Publish)과 구독(Subscribe) 메커니즘을 사용해 모듈들이 데이터를 주고받는다.
예시로 센서 모듈이 데이터를 발행하고, 비행 제어 모듈이 그 데이터를 구독하여 제어에 사용
특징 |
XRCE-DDS |
uORB |
주요 목적 |
PX4와 외부 시스템(ROS 2 등) 간의 통신 |
PX4 내부 모듈 간의 통신 |
통신 범위 |
PX4와 외부 시스템(예: ROS 2) 간의 데이터 전송 |
PX4 내부에서 모듈 간의 데이터 전송 |
기술 기반 |
DDS (Data Distribution Service) 프로토콜 기반 |
IPC (Inter-Process Communication) 시스템 |
사용 환경 |
리소스 제한적인 환경에서의 분산 시스템 간 데이터 공유 |
실시간 임베디드 시스템(PX4) 내부의 데이터 공유 |
데이터 흐름 |
PX4 내부 -> XRCE-DDS -> 외부 시스템 |
PX4 모듈 간(센서 모듈 -> 제어 모듈) |
주요 활동 |
ROS 2와 PX4 간의 메시지 교환 및 외부 제어 시스템 통합 |
PX4 내부에서 센서 데이터와 제어 명령을 교환 |