Rmw_coredds: new RMW implementation for Crystal and Dashing


We developed a new RMW implementation package using CoreDDS from GurumNetworks. GurumNetworks, Inc. is officially registered as an OMG member and DDS vendor. We believe that this new implementation can provide an opportunity to try more RMW implementations and decide which one fits your needs the most.
This RMW implementation contains two projects:

These packages can be built and installed just like the other rmw and typesupport packages.

To try this, you need a trial copy of CoreDDS, which can be found on our website. Before building these packages, you need to set an environment variable COREDDS_HOME to specify where CoreDDS is located. After that, another environment variable COREDDS_LICENSE_PATH must be set to where CoreDDS license file is located. By default, it should be $COREDDS_HOME/coredds.lic. Please follow below in your terminal.

$ download and unzip CoreDDS trial to ~/coredds
$ copy your coredds.lic file to ~/coredds/
$ export COREDDS_HOME=~/coredds
$ export COREDDS_LICENSE_PATH=~/coredds/coredds.lic

Once everything is ready, you can use colcon to build the packages.

colcon build


colcon build --symlink-install

No additional arguments are required.

After building the packages, we suggest you to set an environment variable COREDDS_CONFIG=$COREDDS_HOME/coredds.yaml and set the entry allow_loopback to true. The RMW will publish/subscribe messages properly without this, but some APIs like rmw_get_node_names() may not work as intended.

Please note that these packages are still work in progress. Some features are not fully supported and we are working on them. These packages support ROS2 Crystal Clemmys and Dashing Diademata. Also, supported architectures are amd64, arm64, and arm32.


Welcome to our ROS community!!! :raised_hands:

One of the biggest changes in ROS 2 is that it supports the industry standards DDS and has a ‘No vendor lock-in’ feature that does not depend on one vendor. So the ROS Middleware interface (a.k.a. rmw) contains the key abstractions required for standard DDS and functions to support them. There are four vendors known to our community so far:

  • eProsima’s FastRTPS
  • RTI’s Connext
  • ADLink’s OpenSplice
  • Eclipse’s Cyclone DDS (former ADLink OpenSplice)

Today, CoreDDS from GurumNetworks was introduced and we have a stronger diversity. The ROS 2 LTS version, Dashing Diademata, is now available, and ROS 2 will be applied to a wide range of robots. There will be a variety of usage environments and applications, and if we have support from these powerful DDS vendors, we will be able to choose from a variety of features depending on the situation.

Once more, I congratulate you and welcome you to the ROS community. :slight_smile:

1 Like

Thank you for your welcome!

We will diligently follow up ROS 2 LTS versions and master versions also. Please try our CoreDDS trial and rmw_coredds also. I am sure you will have a good expression about that.

1 Like