IT/Embedded
ROS2 - DDS (Data Distribution Service)
athere
2024. 12. 22. 21:06
반응형
(1) 개요
DDS(Data Distribution Service)는 분산 시스템에서 데이터 교환을 위한 퍼블리셔-구독자(Publish-Subscribe) 모델을 기반으로 한 미들웨어 표준입니다. **Object Management Group (OMG)**에서 정의한 표준으로, **ROS2(Robot Operating System 2)**와 같은 시스템에서 핵심적인 데이터 전달 방식을 제공합니다.
(2) DDS의 주요 특징
- 퍼블리셔-구독자 모델
- 데이터의 생산자(Publisher)와 소비자(Subscriber)가 직접 연결되지 않고, 미들웨어가 데이터를 관리하여 효율적인 분산 시스템을 구성.
- 퍼블리셔는 데이터를 주제(Topic)로 송신하고, 구독자는 원하는 주제를 기반으로 데이터 수신.
- QoS(Quality of Service) 지원
- 데이터 전송의 신뢰성, 우선순위, 지연 시간, 가용성 등을 조정할 수 있는 다양한 QoS 정책을 제공합니다.
- 예: RELIABLE 또는 BEST-EFFORT 전송 방식 선택 가능.
- 실시간 데이터 처리
- DDS는 실시간 데이터를 낮은 지연 시간으로 안정적으로 전달하도록 설계되었습니다.
- 자율주행, 항공기, 공장 자동화와 같은 환경에서 요구되는 초저지연 데이터 통신을 지원.
- 분산 시스템에서 확장성
- 네트워크 상의 노드 추가 또는 제거가 동적이면서도 매끄럽게 이루어질 수 있습니다.
- 노드가 서로의 존재를 자동으로 인식하며 시스템 규모에 따라 유연하게 확장 가능.
- 플랫폼 독립성
- DDS는 여러 운영 체제와 하드웨어 플랫폼에서 동작 가능하며, 네트워크 구성도 유연하게 설정할 수 있음.
- 표준화된 인터페이스
- OMG에 의해 표준화된 인터페이스를 제공하며, 다양한 벤더의 DDS 구현체와 호환 가능.
- 주요 구현체: OpenDDS, RTI Connext, FastDDS, CycloneDDS 등.
(3) DDS와 ROS2의 관계
ROS2는 분산 시스템에서 실시간 데이터 전송을 효과적으로 구현하기 위해 DDS를 기본 통신 미들웨어로 채택했습니다.
- ROS2 노드 간의 데이터 전송은 DDS를 통해 이루어지며, ROS2의 유연성, 확장성, 실시간 처리 요구 사항을 충족합니다.
- DDS는 ROS2의 각 노드가 트랜스포트 계층에 의존하지 않고 메시지를 주고받을 수 있게 하며, 네트워크 상에서의 데이터 일관성을 보장합니다.
(4) DDS의 주요 사용 사례
- 자율주행 시스템
- LiDAR, 카메라, 레이더 센서에서 생성된 대량의 데이터를 차량 내 여러 모듈로 전송.
- V2X 통신과 결합하여 차량 외부와의 데이터를 교환.
- 항공기 시스템
- 항공기 내 모든 센서와 제어 시스템이 데이터의 신뢰성과 낮은 지연을 유지하며 통신.
- 공장 자동화
- 산업용 로봇과 생산 라인 모듈 간 데이터를 실시간으로 교환.
- 의료 시스템
- 병원 내 다양한 의료 장비 간 데이터 통신을 지원해 신뢰성과 실시간성을 보장.
(5) DDS의 장점
- 실시간성: 초저지연 데이터 전송.
- 확장성: 동적으로 노드를 추가하거나 제거할 수 있음.
- 효율성: 퍼블리셔-구독자 모델로 통신 오버헤드 최소화.
- 유연성: 다양한 QoS 정책과 플랫폼 독립성.
(6) DDS의 구현체 비교
- RTI Connext: 안정성 및 성능 최적화, 상용 프로젝트에 적합.
- FastDDS (eProsima): 빠른 성능과 오픈소스 특화.
- CycloneDDS: IoT 및 ROS2에 최적화된 경량 DDS.
- OpenDDS: 학습과 실험에 적합하며 오픈소스 기반.
핵심 키워드:
- DDS, 퍼블리셔-구독자 모델, QoS, ROS2, 실시간 처리, 확장성
DDS는 ROS2와 같은 분산 시스템에서 필수적인 데이터 통신 방식으로, 자율주행, IoT, 공장 자동화 등 다양한 산업 분야에서 활발히 사용됩니다.
반응형