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 Humble.

ROS 2 Documentation

The Robot Operating System (ROS) is a set of software libraries and tools for building robot applications. From drivers and state-of-the-art algorithms to powerful developer tools, ROS has the open source tools you need for your next robotics project.

Since ROS was started in 2007, a lot has changed in the robotics and ROS community. The goal of the ROS 2 project is to adapt to these changes, leveraging what is great about ROS 1 and improving what isn’t.

This site contains the documentation for ROS 2. If you are looking for ROS 1 documentation, check out the ROS wiki.

If you use ROS 2 in your work, please see Citations to cite ROS 2.

Getting started

  • Installation

    • Instructions to set up ROS 2 for the first time

  • Tutorials

    • The best place to start for new users!

    • Hands-on sample projects that help you build a progression of necessary skills

  • How-to Guides

    • Quick answers to your “How do I…?” questions without working through the Tutorials

  • Concepts

    • High-level explanations of core ROS 2 concepts covered in the Tutorials

  • Contributing

    • Best practices and methodology for contributing to ROS 2, as well as instructions for migrating existing ROS 1 content to ROS 2

  • Contact

    • Answers to your questions or a forum to start a discussion

The ROS 2 project

If you’re interested in the advancement of the ROS 2 project:

Other ROS resources

  • ROS Answers (ROS 1, ROS 2)

  • ROS Enhancement Proposals (REPs) (ROS 1, ROS 2)

    • Proposals for new designs and conventions

  • ROS Discourse (ROS 1, ROS 2)

    • Forum for general discussions and announcements for the ROS community

    • See the Contact Page for more information

  • ROS Index (ROS 1, ROS 2)

    • Indexed list of all packages (i.e. Python Package Index (PyPI) for ROS packages)

    • See which ROS distributions a package supports

    • Link to a package’s repository, API documentation, or website

    • Inspect a package’s license, build type, maintainers, status, and dependencies

    • Get more info for a package on ROS Answers

  • ROS Prerelease (ROS 1)

    • Generates commands to emulate the ROS Buildfarm on your local machine

    • Currently only shows ROS 1 distributions

  • ROS Robots (ROS 1, ROS 2)

    • Showcases robots proects from the community

    • Instructions on how to contribute a robot

  • ROS Wiki (ROS 1)

    • ROS 1 documentation and user modifiable content

    • Active until at least the last ROS 1 distribution is EOL

  • (ROS 1, ROS 2)

    • ROS 1 and ROS 2 product landing page, with high-level description of ROS and links to other ROS sites


The deprecated ROS 2 docs site has API documentation up to and including Galactic.


We’re always working to improve our documentation. You can help by submitting pull requests for fixes or issues for suggestions on our GitHub repository. See the contribution guide.