ROS 2 Documentation
.. toctree:: :titlesonly: :maxdepth: 1 :hidden: Installation Tutorials Concepts Troubleshooting Contributing Contact ROSCon-Content Releases Features Roadmap Feature-Ideas Governance Marketing Related-Projects
The Robot Operating System (ROS) is a set of software libraries and tools for building robot applications. From drivers to state-of-the-art algorithms, and with powerful developer tools, ROS has what you need for your next robotics project. And it's all open source.
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.
Here you will find the official documentation on ROS 2, the newest version of ROS.
If you're looking for documentation on ROS 1 (i.e., ROS as it has existed for several years, and what you might be using right now), check the ROS wiki.
Where to start
Newcomers and experienced ROS users should consult this overview of our user-centric content to find what they're looking for.
- :ref:`Installation <InstallationGuide>` pages will help you setup ROS 2 for the first time. You can choose your platform as well as the installation type and distribution that suits your needs.
- :ref:`Tutorials <Tutorials>` walk you through learning ROS 2, whether you're learning from scratch or looking for guidance on achieving more specific goals.
- :ref:`Concepts <ConceptsHome>` are high-level explanations and background information on core ROS 2 concepts, which should provide some context for topics covered in the tutorials.
- :ref:`Troubleshooting <Troubleshooting>` guides cover some specific common cases where issues can arise.
- :ref:`Contributing <Contributing>` is what makes ROS 2 great! We have guides on best practices and methodology for contributing new ROS 2 content as well as migrating existing content from ROS 1 to ROS 2.
- :ref:`Getting help <Help>` is always encouraged. Here you'll find several ways to get answers to your questions or start a discussion.
There are plenty of resources available online to learn more about ROS 2. Here's a few to start with:
- design.ros2.org contains various articles on the design decisions behind ROS 2, like:
- The code for ROS 2 is open source and broken into various repositories. You can find the code for most of the repositories on the ros2 GitHub organization.
- awesome-ros2 is a "cheat sheet" style quick reference for ROS 2 packages and resources to help GitHub users get to know ROS 2.
- This set of :ref:`ROSCon talks <ROSCon>` provides some context for various ROS 2 concepts.
About ROS 2
If you're interested in the business and advancement side of the ROS 2 project, these pages provide high-level details in various related areas.
- :ref:`Releases <Releases>` of past, present and future ROS 2 distributions, including dates and changes made between distributions.
- :ref:`Features <Features>` that are a part of the current ROS 2 release, plus content elaborating on each new feature.
- :ref:`Roadmap <Roadmap>` is a collection of feature ideas for ROS 2 not yet implemented, but coming soon.
- :ref:`Project governance <Governance>` is handled by the Technical Steering Committee, which you can learn more about here.
- :ref:`Marketing <Marketing>` materials promoting ROS 2 can be downloaded from this page.
About this documentation
We're always working hard on improving our documentation. You can help by submitting pull requests for fixes or issues for suggestions on our GitHub repository.
Written purely in ReST markup format, it is processed using Sphinx during ROSIndex builds. Intersphinx support <Contributing/Inter-Sphinx-Support> is readily available for cross-linking package specific entities.