Freshen up the readme (#131)

This commit is contained in:
Dan Rose 2020-04-01 04:45:16 -05:00 committed by GitHub
parent 6effe6bbc0
commit 9a4f567c6b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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) **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).
with [*Eclipse Cyclone DDS*](https://github.com/eclipse-cyclonedds/cyclonedds) as the underlying DDS
implementation.
## 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 1. Install:
source directory, and then run colcon build in the usual manner:
cd ros2_ws/src ```
git clone https://github.com/ros2/rmw_cyclonedds apt install ros-eloquent-rmw-cyclonedds-cpp
git clone https://github.com/eclipse-cyclonedds/cyclonedds ```
cd .. 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 rosdep install --from src -i
colcon build colcon build
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp 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.