Repository Summary

Checkout URI
VCS Type git
VCS Version eloquent
Last Updated 2019-11-20
CI status No Continuous Integration
Package Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)


Name Version
cyclonedds_cmake_module 0.4.4
rmw_cyclonedds_cpp 0.4.4


A ROS2 RMW implementation for Eclipse Cyclone DDS

With the code in this repository, it is possible to use ROS2 with Eclipse Cyclone DDS as the underlying DDS implementation.

Getting, building and using it

All it takes to get Cyclone DDS support into ROS2 is to clone this repository into the ROS2 workspace source directory, and then run colcon build in the usual manner:

cd ros2_ws/src
git clone
git clone
cd ..
rosdep install --from src -i
colcon build
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp

This seems to work fine on Linux with a binary ROS2 installation as well as when building ROS2 from source. On macOS it has only been tested in a source build on a machine in an "unsupported" configuration (macOS 10.14 with SIP enabled, instead of 10.12 with SIP disabled), and apart from a few details that are caused by the machine configuration, that works fine, too. There is no reason why it wouldn't work the same on Windows, but I haven't tried.

If you want to use a pre-existing installation of Cyclone DDS, you don't need to clone it, but you may have to tell CMake where to look for it using the CycloneDDS_DIR variable. That also appears to be the case if there are other packages in the ROS2 workspace that you would like to use Cyclone DDS directly instead of via the ROS2 abstraction.

Known limitations

Cyclone DDS doesn't yet implement the DDS Security standard, nor does it fully implement the Lifespan, Deadline and some of the Liveliness QoS modes. Consequently these features of ROS2 are also not yet supported when using Cyclone DDS.


Any contribution that you make to this repository will be under the Apache 2 License, as dictated by that license:

5. Submission of Contributions. Unless You explicitly state otherwise,
   any Contribution intentionally submitted for inclusion in the Work
   by You to the Licensor shall be under the terms and conditions of
   this License, without any additional terms or conditions.
   Notwithstanding the above, nothing herein shall supersede or modify
   the terms of any separate license agreement you may have executed
   with Licensor regarding such Contributions.