프로그래밍/ROS2

DDS(Data Distribution Service) 란?

techwin 2024. 10. 22. 23:09
DDS(Data Distribution Service)는 OMG(Object Management Group)에서 표준화한 데이터 중심 통신 미들웨어입니다. ROS2에서는 이를 기본 통신 프로토콜로 채택하고 있습니다.DDS의 주요 특징은 다음과 같습니다:
  1. 통신 방식:
    UDP 기반의 멀티캐스트 통신을 사용하며, RTPS(Real-Time Publish-Subscribe) 프로토콜을 구현합니다.
  2. 분산 시스템:
    중앙 서버 없이 분산된 노드 간 통신이 가능합니다.
  3. 실시간성:
    데이터의 실시간 전송을 지원합니다.
  4. QoS(Quality of Service):
    다양한 통신 품질 설정을 제공합니다.
  5. 동적 발견:
    노드들이 서로를 자동으로 발견하고 연결할 수 있습니다.
ROS2에서 DDS는 다음과 같은 역할을 수행합니다:
  1. 노드 간 통신:
    토픽, 서비스, 액션 등의 통신을 DDS를 통해 구현합니다.
  2. 디스커버리:
    ROS1의 마스터 노드 없이도 노드 간 연결이 가능합니다.
DDS는 여러 벤더에서 구현체를 제공하며, ROS2는 이들을 RMW(ROS Middleware Interface)를 통해 추상화하여 사용합니다. 주요 DDS 벤더로는 Fast DDS, Cyclone DDS, RTI Connext 등이 있습니다.DDS 사용의 주요 장점은 다음과 같습니다:
  1. 산업 표준:
    다양한 분야에서 사용되는 표준 프로토콜입니다.
  2. 확장성:
    대규모 분산 시스템에서도 효율적으로 동작합니다.
  3. 보안:
    DDS 보안 표준을 통해 안전한 통신을 제공합니다.
ROS1과 비교했을 때, DDS는 UDP 기반으로 더 효율적인 통신이 가능하며, 중앙 집중식 마스터 노드가 필요 없어 시스템의 안정성이 향상되었습니다.결론적으로, DDS는 ROS2의 핵심 통신 기술로서 로봇 시스템의 성능, 확장성, 안정성을 크게 향상시키는 역할을 수행합니다. 이를 통해 복잡한 로봇 애플리케이션 개발에 있어 중요한 기반을 제공합니다.