Data Distribution Service
数据分发服务DDSCommonA publish/subscribe communication standard from the OMG, and the default underlying transport for ROS 2.
DDS is a real-time publish/subscribe communication middleware standard defined by the Object Management Group (OMG), originally used in distributed systems such as defense and aerospace that demand high real-time performance and reliability. It has no central node — participants automatically discover each other over the network — and its QoS (Quality of Service) policies configure things like reliable versus best-effort delivery and how much message history to keep. ROS 2 dropped ROS 1’s home-grown communication layer in favor of connecting to DDS through the RMW (ROS middleware interface), with common implementations including eProsima Fast DDS, Eclipse Cyclone DDS, and RTI Connext. When multi-machine communication breaks or a topic isn’t receiving anything, the DDS configuration is often where to start looking.
ExampleSetting the environment variable RMW_IMPLEMENTATION=rmw_cyclonedds_cpp switches ROS 2’s underlying communication from the default Fast DDS to Cyclone DDS.
- Also called
- DDS
- Related
- Robot Operating System 2 · ROS Middleware Interface (RMW) · eProsima Fast DDS · Eclipse Cyclone DDS · ROS 2 Quality of Service (QoS) · Eclipse Zenoh
- Sources
- OMG: Data Distribution Service specification
ROS 2 Documentation: Different ROS 2 middleware vendors