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 --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
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.