Fast DDS
eProsima의 고성능 DDS 미들웨어 — ROS 2의 기본 전송 계층
라이선스
Apache-2.0
개요
Fast DDS(구 Fast RTPS)는 OMG Data Distribution Service 표준과 그 RTPS 와이어 프로토콜을 구현한 eProsima의 C++ 미들웨어입니다. 브로커 없는 탈중앙 퍼블리시-서브스크라이브 통신과 세밀한 QoS(Quality-of-Service) 제어를 제공하며, ROS 2의 기본 미들웨어(rmw_fastrtps)이기 때문에 전 세계 대부분의 ROS 2 로봇이 모든 토픽, 서비스, 액션 아래에서 Fast DDS를 실행하고 있는 셈입니다.
Fast DDS는 DDS 사양 전체를 구현합니다: DomainParticipant, 토픽, 퍼블리셔, 서브스크라이버가 UDP, TCP, 공유 메모리 또는 커스텀 전송 계층 위에서 서로를 자동으로 발견하고, 신뢰성(reliability), 지속성(durability), 데드라인, 라이블리니스(liveliness), 히스토리를 포괄하는 QoS 정책과 함께 피어-투-피어로 통신합니다. 성능 기능으로는 동일 호스트 프로세스 간 제로카피 전달이 가능한 공유 메모리 전송, 비동기 플로우 컨트롤러, 그리고 멀티캐스트 디스커버리가 확장되지 않는 대규모 또는 제약된 네트워크를 위한 정적 디스커버리 모드와 Discovery Server가 있습니다. 프로젝트에는 Fast DDS-Gen(IDL 코드 생성)과 eProsima의 Fast DDS Monitor가 사용하는 통계·모니터링 훅이 포함되며, 마이크로컨트롤러용 micro-ROS의 기반이기도 합니다. ROS 2의 기본 rmw 계층으로서 릴리스가 ROS 2 배포판을 밀접하게 따라가며, 어떤 미들웨어와 비교해도 손꼽히게 큰 규모의 로보틱스 배포 환경에서 검증되고 있습니다.
중요한 이유
Fast DDS는 대부분의 개발자가 들여다보지 않지만 가장 널리 배포된 로보틱스 인프라라고 할 수 있습니다: ROS 2의 기본 미들웨어로서 대다수 ROS 2 로봇의 트래픽을 실어 나르며, 상용 지원까지 갖춘 몇 안 되는 완전한 오픈소스 DDS 구현체 중 하나입니다.
해결하는 문제
분산 로봇 시스템은 단일 장애점이 되는 중앙 브로커 없이 프로세스와 머신 간에 신뢰성 있고 지연이 낮으며 세밀하게 설정 가능한 통신이 필요합니다. Fast DDS는 마이크로컨트롤러부터 다중 로봇 플릿까지, 실시간 시스템이 요구하는 QoS 제어를 갖춘 표준 기반 퍼블리시-서브스크라이브 통신을 제공합니다.
핵심 요점
- OMG DDS 표준과 RTPS 와이어 프로토콜의 완전한 오픈소스 구현
- 최근 ROS 2 배포판 전반의 기본 미들웨어(rmw_fastrtps)
- 동일 호스트 고처리량 통신을 위한 공유 메모리 및 제로카피 전송
- Discovery Server와 정적 디스커버리로 멀티캐스트가 어려운 네트워크에서도 DDS 확장 가능
- eProsima Micro XRCE-DDS를 통해 마이크로컨트롤러급 장치용 micro-ROS를 구동
대상
- 통신과 QoS를 튜닝하는 ROS 2 개발자
- 분산 및 실시간 시스템 엔지니어
- 로보틱스 플랫폼 및 인프라 팀
- micro-ROS를 사용하는 임베디드 개발자
한계
- DDS 개념과 QoS 매트릭스는 학습 곡선이 가파름
- XML 기반 프로파일 설정은 장황하고 미묘하게 틀리기 쉬움
- RTPS 기본선을 넘어서는 벤더 간 DDS 상호운용성에는 주의가 필요할 수 있음
- 손실이 많은 Wi-Fi 네트워크에 맞춘 미세 튜닝에는 전송 계층 수준의 전문성이 필요한 경우가 많음