template: ../media/TB4Template.pptx
- Remember that robotics is hard. You will get stuck. You will make mistakes.
- Being able to quickly find help for your problems is crucial skill.
- The objective for this lesson is to introduce the resources available for ROS.
- You should bookmark all of these websites in your browser.
- ROS Discourse is the official ROS discussion forum.
- ROS Discourse is intended for community announcements and discussion.
- ROS Discourse should not be used for specific development questions.
- On ROS Discourse you find.
- Announcements of new packages and package releases.
- Announcements of ROS releases and updates.
- Technical discussions by package developers.
- Event announcements.
- Regular news updates.
- Meet other ROS developers and package maintainers.
- The ROS 2 Docs are the official ROS documentation pages.
- The ROS 2 Docs provide detailed API level documentation, tutorials, and examples.
- This is your best bet for comprehensive ROS information.
- Make sure you are viewing the correct documentation for your ROS version.
- Many other packages have documentation under the
*.ros.org
umbrella org.- navigation.ros.org -- the Nav2 documentation.
- moveit.ros.org -- MoveIt 2 documentation.
- micro.ros.org -- the micro-ROS documentation.
- Some packages maintain their own documentation from their own repository or website (e.g. SMACC).
- Other packages may be linked to from within the ROS 2 docs. These are available under related projects.
- ROS Answers are the official ROS Q&A Website.
- ROS Answers is a Q&A website where users post questions that are answered by the community
- Fun fact: ROS Answers was started roughly at the same time as Stack Overflow!
- Make sure to tag your question appropriately.
- Please search for your question before asking it!
- ROS Answers is maintained by volunteers and community members, please be considerate!
- The ROS 2 doctor CLI app can be used to quickly generate a report about your system. We'll cover this function in later classes.
- Writing a good question is a critical to getting a good response.
- Generally speaking, the shorter the question, the less likely it is to be answered.
- Longer, more complete questions, that provide all the necessary information, allow others to more easily help you.
- A good ROS question should contain:
- The body of question with as much detail as possible.
- General details about your system, such as host operating system, the version of ROS, and what packages you have installed.
- The error message in its entirety. This should be quoted text and not a screenshot,
- References to documentation, resources, and other questions you have tried but did not work.
- Distinguish between a discussion questions, poorly scoped questions, and legitimate errors and issues.
- A discussion question is one where there is no single correct answer.
- Questions like, "What is the best...", or "How should I make X?" are discussion questions.
- A poorly scoped question is one where the response could be multiple paragraphs long. These sort of questions need to broken down into smaller parts.
- Questions like, "How do I build a delta robot in ROS?" or "How do I build a perception pipeline to find X?" are poorly scoped.
- Legitimate errors and issues are usually easily described.
- Questions like, "When I do X, Y error occurs" or "When I use X, I expect Y but get Z, why is this?"
- A discussion question is one where there is no single correct answer.
- ROS Index is a non-exhaustive list of ROS packages.
- ROS Index will allow you to search packages by name and see relevant information about the supported distros, source repositories, documentation, and lots of other information.
- ROS Index is a great place to find out about commonly used packages.
- Most common packages are available on ROS index and its search features are quite helpful.
- The ROS Wiki is a collection of primarily ROS 1 tutorials and resources.
- While the wiki is primarily ROS 1 resources it still highly useful for new ROS 2 users.
- We suggest browsing the wiki but heed its advice with a grain of salt!
- Create 3 Manual -- manual for the TB4 mobile base.
- RPLidar Documentation -- manual for the RPLidar.
- OAK-D API Documentation -- depth camera documentation. Please be aware of the different models.
- TODO TurtleBot 4 Manual -- TurtleBot Manual
- TODO TurtleBot 4 Open Hardware Files -- TurtleBot 4 hardware files. Great for printing your own parts.
- RaspberryPi Documentation -- General help on raspberry Pi.
- Linux Cheat Sheet -- Basic Linux command.
- Ignition Gazebo has number of resources that are similar to ROS.
- GazeboSim.org -- Main landing page for Ignition.
- GazeboSim Community -- Similar to ROS Discourse. The GazeboSim Community is for announcements and discussion.
- Answers.gazebosim.org -- Q&A website for GazeboSim.
- Ignition Fuel -- Drag and drop models into a Gazebo Simulation! If you are trying to create a rich Ignition environment this is a great resource.
- Open Robotics Vimeo -- Lots of Vimeo tutorials for ROS.
- Build Farm -- The ROS build farm. Watch as ROS packages are built, tested, and released.
- ROS.org -- Main landing page for ROS. We welcome community contributions.
- ROS Status -- Check if any ROS website is down.
- ROS Metrics -- Useful information on the growth of ROS.
- ROSCon / ROSWorld -- Our yearly developer conference. Every talk is recorded and free online!
- OpenRobotics.org -- The organization behind ROS.
- Open Robotics Zazzle -- buy ROS swag!
- Open Robotics Vimeo -- Every ROS Video we've ever made!
- On Social Media -- Open Robotics Twitter, ROS Twitter, Gazebo Twitter, and LinkedIn.
- ROS Distro Images. ROS logos can be downloaded off the ROS.org website.
- ROS and Ignition are spread over a variety of Github organizations. Here are just a few of them.
- ROS Infrastructure -- Tools that support ROS but aren't ROS (websites, buildfarm, tools, etc).
- ROS 2 -- ROS 2 Core Packages
- ROS Perception Packages -- Perception libraries for ROS 1 and ROS 2
- TurtleBot -- TurtleBot tutorials and documentation.
- Ignition on Github -- Ignition source code.
- GazeboSim on Github -- Gazebo source code.
- OpenRMF on Github -- RMF is a layer on top of ROS and Ignition for multi-robot control.
- If you want to look for new packages, try the #ROS2 and #ROS topics on Github!
- The official ROS subreddit. They're open for questions and very friendly. The robotics subreddit is also really good..
- Robotics StackExchange -- Another Q&A website for ROS.
- Unofficial ROS Dockerhub images -- Docker images for most ROS distros.
- Awesome Robotic Tooling -- A fantastic list of robotics resources.
- Robotics World Wide -- A world wide listserv of robotics researchers.
- ROS Industrial Training
- Debugging is an important skill for software developers but it takes years to master.
- We recommend the
three then me
approach to debugging, where the me refers to another person. - Broadly, this means you should try using at least three resources before asking another human for help.
- For example, if you encounter an error building a ROS package you should first:
- Search for the error using a search engine and look at the results.
- Compare the offending code against its API documentation.
- Search Github for the function and see how others use it.
- If none of these approaches are fruitful, ask another person or post your question to a forum.
- One often overlooked developer resource are unit tests; for a given library the unit tests will show the function being used correctly.
- Searching Github for a function call is often another way to find useful examples.
- Good git practice also helps! You should compile, test, and commit your code often, generally every time you write a function.
- If you encounter an error that you can't solve use
git stash
to return to your last commit and systematically eliminate possible causes.
- If you encounter an error that you can't solve use