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


Different types of questions or discussions correspond to different avenues of communication; check the descriptions below to ensure you choose the right method.


Need help troubleshooting your system? First, search ROS Answers to see if others have had similar issues, and if their solution works for you.

If not, ask a new question on ROS Answers. Make sure to add tags, at the very least the ros2 tag and the distro version you are running, e.g. eloquent. If your question is related to the documentation here, add a tag like docs, or more specifically, tutorials.

Contributing support

ROS 2 users come from a wide range of technical backgrounds, use a variety of different operating systems, and don’t necessarily have any prior experience with ROS (1 or 2). So, it’s important for users with any amount of experience to contribute support.

If you see an issue on ROS Answers that is similar to something you’ve run into yourself, please consider providing some pointers to what helped in your situation. Don’t worry if you aren’t sure if your response is correct. Simply say so, and other community members will jump in if necessary.


If you identify bugs, have suggestions for improvements, or a question specific to one package, you can open an issue on GitHub.

For example, if you are following the tutorials here and come across an instruction that doesn’t work on your system, you can open an issue in the ros2_documentation repo.

You can search for individual ROS 2 repositories on ROS 2’s GitHub.

Before opening an issue, check if other users have reported similar issues by searching across the ros2 and ament GitHub organizations: example search query.

If it has not been reported, feel free to open an issue in the appropriate repository tracker. If it’s not clear which tracker to use for a particular issue, file it in the ros2/ros2 repository and we’ll have a look at it.

When filing an issue, please make sure to:

  • Include enough information for another person to understand the issue.

  • Include information about the exact platform, software, versions, and environment relevant to the problem. This includes how you installed the software (from binaries or from source) and which ROS middleware/DDS vendor you are using (if you know it).

  • In case of a bug consider providing a short, self contained, correct (compilable), example.

Pull requests

When you feel comfortable enough to suggest a specific change directly to the code, you can submit a pull request. Pull requests are welcome for any of the ros2 repositories. See the Contributing page for more details and etiquette on how to contribute.


To start a discussion with other ROS 2 community members, visit the official ROS Discourse. Content on the Discourse should be high-level; it’s not a place to get questions about code answered, but it would be suitable to start a conversation about best practices or improving standards.

Discussions about ROS 2 development and plans are happening on the “Next Generation ROS” Discourse category. Participating in these discussions is an important way to have a say on how different features of ROS 2 will work and be implemented.

The diverse community behind the ROS ecosystem is one of its greatest assets. We encourage all members of the ROS community to participate in these design discussions so that we can leverage the experience of community members, and keep the varied use cases of ROS in mind.

Private contact

If you’d like to contact us privately (e.g., if your question contains information sensitive to your organization or project, or if it’s regarding a security issue), you can email us directly at