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 Galactic.
Roadmap
Table of Contents
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.
The Contributing guide describes how to make a contribution to ROS 2.
Check out the list of Feature Ideas for inspiration.
For more information on the design of ROS 2 please see design.ros2.org.
The core code for ROS 2 is in the ros2 GitHub organization.
The Discourse forum/mailing list for discussing ROS 2 design is ng-ros.
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
.