You're reading the documentation for a version of ROS 2 that has reached its EOL (end-of-life), and is no longer officially supported. If you want up-to-date information, please have a look at Humble.

Roadmap

This page describes planned work for ROS 2. The set of planned features and development efforts should provide insight into the overall direction of ROS 2. If you would like to see other features on the roadmap, please get in touch with us at info@openrobotics.org.

Galactic Roadmap

Galactic Geochelone is the ROS 2 release expected in May 2021. See release for a detailed timeline.

The items in the roadmap below are the major features being worked on by the ROS 2 community. Note that the table is in priority order; the higher in the list they are, the more important they are. The “Size” is an estimated size of the task, where S means person-days to complete, M means person-weeks to complete, and L means person-months to complete.

If you are working on a feature for ROS 2 Galactic and would like to have it listed, please open a pull request to ROS 2 Documentation. If you’d like to take on one of these tasks, please get in touch with us.

Task

Size

Owner

Expected Completion

Middleware: Improve DDS service reliability

Medium

ADLINK, eProsima, and Open Robotics

1st quarter 2021

Middleware: Default middleware selection

Large

Open Robotics

Complete

Middleware: Improve DDS fully-connected overhead

Small

ADLINK, eProsima, and Open Robotics

1st quarter 2021

Documentation: Consolidate ROS 2 documentation in an easy to find/search place

Large

Open Robotics

1st quarter 2021

Documentation: Automatically generate and host per-package documentation

Large

Open Robotics

1st quarter 2021

Middleware: Switch to CycloneDDS as default RMW vendor

Small

ADLINK and Open Robotics

Complete

Galactic Release

Large

Open Robotics

2nd quarter 2021

Quality: Add code coverage checks to CI for packages that are QL 1

Medium

Open Robotics

2nd quarter 2021

Quality: Keep builds on ci.ros2.org and build.ros2.org green

Medium

Open Robotics and everyone

ongoing

rosbag2: Improve sqlite3 backend performance

Small

Apex and others

Complete

rosbag2: Separate threads for queueing messages and writing to disk

Small

Apex and others

Complete

rosbag2: Record /clock topic

Medium

AWS RoboMaker

2nd quarter 2021

Performance: Reduce the performance overhead of executors

Large

Quality: Turn on more compiler warnings

Small

Open Robotics

Complete

Quality: Increase testing coverage of C/C++ packages

Large

Open Robotics

Complete

Documentation: More intermediate/advanced tutorials

Medium

Open Robotics

2nd quarter 2021

Quality: Quality Level 1 declaration up to rclcpp

Large

Open Robotics

Complete

Features: Specific demo to show public adoption of ROS 2

Medium

PickNik Robotics (with Hello Robot ‘Stretch’)

ROS 1 -> ROS 2 Porting: Enhance documentation to ease porting from ROS 1

Small

Quality: Setup configuration so packages can opt-in to clang-tidy for build.ros2.org PR builds

Small

Quality: Setup configuration so packages can opt-in to scan-build for build.ros2.org PR builds

Small

Open Robotics

2nd quarter 2021

Quality: Enable scan-build for core package PR builds

Medium

Open Robotics

2nd quarter 2021

Launch: Rewrite launch_testing to be a pytest extension

Medium

Launch: Re-enable previously disabled tests in launch

Medium

Features: Make multi-robot configurations easier to setup and use with ROS 2

Medium

Open Robotics

1st quarter 2021

Quality: Increase testing coverage of Python packages

Large

Quality: Create and maintain an asan job on ci.ros2.org for the ROS 2 core packages

Large

Quality: Create and maintain a tsan job on ci.ros2.org for the ROS 2 core packages

Large

Quality: Create and maintain a ubsan job on ci.ros2.org for the ROS 2 core packages

Large

Quality: Create and maintain a valgrind job on ci.ros2.org for the ROS 2 core packages

Large

Middleware: Evaluate middlewares other than DDS

Large

Middleware: Documentation for implementing new RMWs

Medium

Tech Debt: Rewrite rclpy to use pybind11

Large

Quarterly Roadmap

Product Readiness is the current focus topic for ROS 2. Over the next two quarters we will concentrate development efforts on topics that make ROS 2 more suitable for use in production scenarios. This includes improving the out-of-box experience for common use cases, documentation improvements, and addressing disparities between ROS 1 and ROS 2.

## 2020 Q3(Jul - Sep)

  • Transport Documentation and Configurations: Describe and document the ROS 2 transport system. Provide default configurations for common uses cases along with documentation. Tracking ticket.

## 2020 Q4(Oct - Dec)

  • Performance Improvements: Analyze rcl*-level performance and resource usage. Develop a strategy to improve performance and reduce resource usage based on data from the analysis. Tracking ticket.

  • Launch: Address current shortcoming in launch, and improve launch testing. Tracking ticket.

  • Documentation Infrastructure: Develop package-level documentation generation infrastructure, deploy documentation, and consolidate existing documentation. Tracking ticket.

Planned releases

Please see the Distributions page for the timeline of and information about future distributions.

Contributing to ROS 2

Looking for something to work on, or just want to help out? Here are a few resources to get you going.

  1. The Contributing guide describes how to make a contribution to ROS 2.

  2. Check out the list of Feature Ideas for inspiration.

  3. For more information on the design of ROS 2 please see design.ros2.org.

  4. The core code for ROS 2 is in the ros2 GitHub organization.

  5. The Discourse forum/mailing list for discussing ROS 2 design is ng-ros.

  6. Questions should be asked on ROS answers, make sure to include at least the ros2 tag and the rosdistro version you are running, e.g. ardent.