diff --git a/README.md b/README.md index 9e0c15c..1879246 100644 --- a/README.md +++ b/README.md @@ -1,35 +1,36 @@ -# A ROS2 RMW implementation for Eclipse Cyclone DDS +# ROS2 RMW for Eclipse Cyclone DDS -With the code in this repository, it is possible to use [*ROS2*](https://index.ros.org/doc/ros2) -with [*Eclipse Cyclone DDS*](https://github.com/eclipse-cyclonedds/cyclonedds) as the underlying DDS -implementation. +**Easy, fast, reliable, small [Eclipse Cyclone DDS](https://github.com/eclipse-cyclonedds/cyclonedds) middleware** for ROS2. Make your **🐢 run like a 🚀** [Eclipse Cyclone DDS has great adopters](https://iot.eclipse.org/adopters/) and contributors in the ROS community and is an [Eclipse Foundation](https://www.eclipse.org) open source project of [Eclipse IoT](https://iot.eclipse.org) and [OpenADx](https://openadx.eclipse.org) (autonomous driving). -## Getting, building and using it +This package lets [*ROS2*](https://index.ros.org/doc/ros2) use [*Eclipse Cyclone DDS*](https://github.com/eclipse-cyclonedds/cyclonedds) as the underlying DDS implementation. +Cyclone DDS is ready to use. It seeks to give the fastest, easiest, and most robust ROS2 experience. Let the Cyclone blow you away! -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: +1. Install: - cd ros2_ws/src - git clone https://github.com/ros2/rmw_cyclonedds - git clone https://github.com/eclipse-cyclonedds/cyclonedds - cd .. + ``` + apt install ros-eloquent-rmw-cyclonedds-cpp + ``` + or + ``` + apt install ros-dashing-rmw-cyclonedds-cpp + ``` + +2) Set env variable and run ROS2 apps as usual: + + ```export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp``` + +3) Confirm RMW: In Eloquent, to confirm which RMW you're using: + + ```ros2 doctor --report``` + + +## Building from source and contributing + +Note the `master` branch maintains compatibility with ROS releases Dashing and later, including the not-yet-released [*Foxy*](https://index.ros.org/doc/ros2/Releases/Release-Foxy-Fitzroy/). + +If building ROS2 from source ([ros2.repos](https://github.com/ros2/ros2/blob/master/ros2.repos)), you already have this package and Cyclone DDS: + + cd /opt/ros/master 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.