ROS 2의 미들웨어 계층에 의해 추상화
DDS(Domain Discovery Service)를 기반으로 하는 RMW(ROS Middleware) 계층을 사용
하여 노드 간의 통신을 처리DDS(Domain Distribution Service)
네트워크 대역폭 사용
, 메시지의 압축 및 분할 전송
등 다양한 기법을 사용하나의 소스에서 여러 목적지로 데이터 패킷을 동시에 전송하는 통신 방법
한 소스에서 단일 목적지로 데이터 패킷을 전송하는 가장 일반적인 통신 방식
ROS 2 설치 시 DDS 구현체를 선택한다고 함!
특정 리눅스 배포판
이나 다른 운영 체제에서 ROS 2를 패키지 관리자를 통해 설치하는 경우, 일반적으로 기본 DDS 구현체가 함께 설치Fast RTPS(eProsima)
가 기본 DDS 구현체로 설정되어 있습니다.실시간으로 데이터를 주고받기 위한 규칙의 집합
매우 빠르게 서로 정보를 교환할 수 있게
해줌분산 시스템
과 로봇 애플리케이션에서의 데이터 통신, 특히 다양한 네트워크 환경과 플랫폼 간 호환성
이 중요한 경우. (Python multiprocessing.shared_memory 등과 비교했을 때)Fast RTPS와 비슷한 목적
을 가지고 있지만, 특히 더 넓은 범위의 기기들과 더 안정적으로 통신할 수 있게 설계된 기술
특히 매우 복잡하고 큰 시스템에서의 통신을 위해 설계
공유 메모리를 사용
같은 도메인
내에 있는 참여자들이 서로를 자동으로 발견할 수 있도록 함ROS 2 애플리케이션
과 하부 통신 미들웨어(주로 DDS, Data Distribution Service)
간의 인터페이스 역할ROS 2 애플리케이션
이 다양한 DDS 구현과 호환될 수 있도록 해줌
Fast RTPS, Cyclone DDS, Connext DDS
등 다양한 DDS 구현체를 지원할 수 있음