Hi.
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:
-
rmw for coredds: https://github.com/gurumnet/rmw_coredds
-
typesupport for coredds: https://github.com/gurumnet/rosidl_typesupport_coredds
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
or
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.