Skip to content

Getting Started

ROS has always been a somewhat large project to learn about. This page contains a set of suggested readings - and a suggested order - to get started:

  • Installation - The first thing to do is install ROS 2. Don't be fancy - just install from Debian packages on the proper version of Ubuntu on an AMD64 architecture computer (I know you are excited to try out that Raspberry Pi you got for cheap - but save those headaches for another day).
  • Beginner Concepts - Eventually you'll be ranting some day that ROS is just pub-sub - but first you need to know what that means. These concept pages cover everything at a high level before you actually just jump into doing stuff.
  • Beginner CLI Tools - Yes, these are boring. But also yes, you need to know this stuff. Definitely pay attention to the nodes and topics stuff - you can always come back later to learn about services and actions.
  • Beginner Client Libraries - Now we actually start writing some code. You don't have to do all of these - pick your language (C++ or Python) and focus on one language at a time.
  • Concepts - TF2 and Intermediate - TF2 - Assuming you want to actually play with real robots, you will want to learn TF2. This is used all over ROS for handling coordinate frame transformations.
  • Intermediate - Launch - Now you've written some code - as you start to build bigger systems, you'll want to use ROS launch.
  • Intermediate - Actions - Now would be a good time to learn about actions - if you skipped the "Beginner Concepts" and "Beginner CLI Tools" sections on actions, then go back and read them first.
  • Finally, go back and read the whole Concepts section of the documentation. We looked at some of it early on, but there is an intermediate and advanced section as well.

With this set of tutorials under your belt, you should have a pretty good handle on the main tools available in ROS. And with that understanding, it should be easier to start jumping around in the rest of the documentation and learning about writing and using composable nodes, or how to write tests in ROS 2.