Beta 3 (r2b3
)
Supported Platforms
We support ROS 2 Beta 3 on three platforms: Ubuntu 16.04 (Xenial), macOS 10.12 (Sierra), and Windows 10. We provide both binary packages and instructions for how to compile from source for all 3 platforms (see install instructions as well as documentation).
Features
Improvements since Beta 2 release
Execution model in Python, many fixes to memory management in Python C extension
Experimental rewrite of ros_control
Exposure of DDS implementation-specific symbols to users (for Fast RTPS and Connext) (see example)
Logging API in Python
Fixed several memory leaks and race conditions in various packages
Readded support for OpenSplice (on Linux and Windows atm) provided by PrismTech
Use bloom (without patches) to make ROS 2 releases
New demo application
Selected features from previous Alpha/Beta releases
For the complete list, see earlier release notes.
C++ and Python implementations of ROS 2 client libraries including APIs for:
Publishing and subscribing to ROS topics
Requesting and replying ROS services (synchronous (C++ only) and asynchronous)
Getting and setting ROS parameters (C++ only, synchronous and asynchronous)
Timer callbacks
Support for interoperability between multiple DDS/RTPS implementations
eProsima Fast RTPS is our default implementation, and is included in the binary packages
RTI Connext is supported: build from source to try it out
PrismTech OpenSplice: see limitations below
A graph API for network events
Distributed discovery
Realtime safe code paths for publish and subscribe with compatible DDS implementation (only Connext at the moment)
Support for custom allocators
ROS 1 <-> ROS 2 dynamic bridge node
Executor threading model (C++ and Python)
Component model to compose nodes at compile / link / runtime
Managed component using a standard lifecycle
Extended
.msg
format with new features:Bounded arrays
Default values
Known issues
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.OpenSplice support is currently not available for MacOS. Also access to native handles is not yet implemented.
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).