ROS 2 Ardent Apalone (codename 'ardent'; December 2017)
Welcome to the first non-beta release of ROS 2 software named Ardent Apalone!
Supported Platforms
This version of ROS 2 is supported on three platforms:
- Ubuntu 16.04 (Xenial)
- Mac OS X 10.12 (Sierra)
- Windows 10
Binary packages as well as instructions for how to compile from source are provided for all 3 platforms (see install instructions as well as documentation).
Features
- Distributed discovery, publish / subscribe, request / response communication
- Provided by a C API
- Implemented using different vendors:
- eProsima's FastRTPS as well as ADLINK's OpenSplice (from binary and source)
- RTI's Connext (only from source)
- Numerous quality of service settings for handling non-ideal networks
- DDS Security support (with Connext and FastRTPS)
- C++ and Python 3 client libraries
- Sharing common code in C to unify the implementation
- Execution model separated from the nodes, composable nodes
- Node-specific parameters (only in C++ atm)
- Life cycle (only in C++ atm)
- Optionally intra-process communication using the same API (only in C++)
- Message definitions (with bounded arrays and strings as well as default values)
- Command line tools (e.g.
ros2 run
) rviz
with a few display types (the Windows version will likely follow in a few weeks)- File system-based resource index (querying information without recursive crawling)
- Realtime safe code paths for pub / sub (with compatible DDS implementations only)
- Bridge between ROS 1 and ROS 2
- HSR demo see Beta 3
- Turtlebot demo see Beta 2
For a more detailed description please see the Features page.
Changes since Beta 3 release
Improvements since the Beta 3 release:
rviz
- Different initialization options for message data structures in C++ (see design doc)
- Logging API improvements, now also used in the demos
- Time support in C++ with different clocks
- wait-for-service support in the Python client library
- Draft implementation of REP 149 specifying format 3 of the package manifest files
Known Issues
- FastRTPS performance with larger data like the image demo
- Using Connext it is currently not allowed for two topics with the same base name but different namespaces to have a different type (see issue).
- Listing of node names (e.g. using
ros2 node list
) does not work across some rmw implementations. - On Windows Python launch files might hang when trying to abort using
Ctrl-C
(see issue). In order to continue using the shell which is blocked by the hanging command you might want to end the hanging Python process using the process monitor.