You're reading the documentation for an older, but still supported, version of ROS 2. For information on the latest version, please have a look at Iron.
Bouncy Bolson (
Table of Contents
Bouncy Bolson is the second release of ROS 2.
This version of ROS 2 is supported on four platforms (see REP 2000 for full details):
Ubuntu 18.04 (Bionic)
Debian packages for amd64 as well as arm64
Ubuntu 16.04 (Xenial)
no Debian packages but building from source is supported
Mac macOS 10.12 (Sierra)
Windows 10 with Visual Studio 2017
Binary packages as well as instructions for how to compile from source are provided (see install instructions as well as documentation).
New features in this ROS 2 release
New launch system featuring a much more capable and flexible Python API.
Parameters can be passed as command line arguments to C++ executables.
Static remapping via command line arguments.
Various improvements to the Python client library.
Support for publishing and subscribing to serialized data. This is the foundation for the upcoming work towards a native rosbag implementation.
More command line tools, e.g. for working with parameters and lifecycle states.
Binary packages / fat archives support three RMW implementations by default (without the need to build from source):
eProsima’s Fast RTPS (default)
For an overview of all features available, including those from earlier releases, please see the Features page.
Changes since the Ardent release
Changes since the Ardent Apalone release:
The Python package
launchhas been redesigned. The previous Python API has been moved into a submodule
launch.legacy. You can update existing launch files to continue to use the legacy API if a transition to the new Python API is not desired.
The ROS topic names containing namespaces are mapped to DDS topics including their namespaces. DDS partitions are not being used anymore for this.
The recommended build tool is now
ament_tools. This switch has no implications for the code in each ROS 2 package. The install instructions have been updated and the read-the-docs page describes how to map an existing
The argument order of this rclcpp::Node::create_subscription() signature has been modified.
New-style launch files may hang on shutdown for some combinations of platform and RMW implementation.
Static remapping of namespaces not working correctly when addressed to a particular node.
Opensplice error messages may be printed when using
ros2 lifecyclecommand-line tools.