.. redirect-from:: Beta3-Overview Beta 3 (``r2b3``) ================= .. contents:: Table of Contents :depth: 2 :local: 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 <../../Installation>` 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 ^^^^^^^^^^^^^^^^^^^^ * `HSR demo `__ * Remote control a HSR robot using a ROS 2 joystick controller * Running the ``ros1_bridge`` in a Docker container on the HSR (since the robot is running ROS 1 on Ubuntu Trusty) * Run a ROS 2 development version of `rviz `__ to visualize sensor data from the robot etc. (see `video `__) Selected features from previous Alpha/Beta releases ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ For the complete list, see `earlier release notes <../index>`. * 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 `__).