Automotive Research
header foto

Robot Operating System 2 (ROS2) Data Distribution Service (DDS) Middleware Comparison

ROS2 uses DDS for communication between nodes. A number of different implementations of ROS2 MiddleWare (RMW) exist, and as part of a cyber security semester project, a group of students from The Hague University of Applied Sciences (THUAS) compared three RMW implementations. The focus was mainly on the usability, interoperability, and security aspects of the middleware.

The THUAS students Max Aartsen, Kanta Banga, Konrad Talko, Dustin Touw, and Bertus Wisman, together with their project supervisor Mathias Björkqvist, set out to evaluate three different RMW implementations: Fast DDS and Cyclone DDS, open-source RMW implementations available with the latest ROS2 distributions; and RTI Connext, a proprietary RMW implementation, for which a university research license was obtained. The aforementioned three RMWs are the only ones currently supported by ROS2, and this is why they were selected for this project.

Each RMW supports all three mandatory security features: Authentication, Access Control, and Cryptography. RTI Connext also supports the optional Logging security feature, whereas Fast DDS supports both Logging and Data tagging, on top of the mandatory features.

The most recent ROS2 distributions are Foxy Fitzroy and Galactic Geochelone, released in June 2020 and May 2021, respectively. By default, all RMW implementations have the security features disabled. Installing Fast DDS and RTI Connext with security features enabled was relatively simple on both distributions, but for Cyclone DDS, some dependencies were missing in Foxy Fitzroy, and installing the dependencies was also tricky, so for Cyclone DDS the Galactic Geochelone distribution is recommended.

The RMWs support two communication patterns: publish-subscribe, and client-server. In our interoperability tests, with security disabled, all RMWs could communicate with each other in the publish-subscribe mode. For the client-server mode, some RMW combinations did not work, and one only worked with a specific compatibility mode turned on. After enabling security, the number of supported publish-subscribe configurations were further reduced, with only two RMW combinations working with different publisher and subscriber implementations, whereas with client-server mode, only one combination of different client and server implementations worked. Most of the interoperability issues seem to be the result of (too much) flexibility in the specification, rather than programming errors, although the latter cannot be ruled out. Some combinations are mentioned as non-working interoperability-wise on the official ROS2 website, whereas for other combinations, the issues were only discovered as part of our testing.

The final details of the study are still being verified, along with some performance measurements. For more details, contact Mathias Björkqvist -