Learning ROS2

Robot Operating System (ROS) is a set of open source algorithms, hardware driver software and tools developed to develop robot control software. Even though it has operating system in its name it is not an operating system. It is

  • Communication System (Publish Subscribe and Remote Method Invocation),
  • Framework & Tools (Build system & dependency management, Visualization, Record and Replay)
  • Ecosystem (Language bindings, Drivers, libraries and simulation (Gazebo)).

(Quoted from https://medium.com/software-architecture-foundations/robot-operating-system-2-ros-2-architecture-731ef1867776)

Basically, ROS2 is just how we communicate and coordinate information and commands throughout a large and complicated robotics system with a lot of moving parts

The Basics

The basics concepts of ROS2 have shockingly good documentation that would be difficult to outdo, so for this part it will mostly be links to go do the tutorials yourself. Please download ROS2 if you haven’t already

Below are the links for the sections you should go through IN ORDER. The sub bullet points are the specific tutorials you should do, and the crossed out ones are not required though you can still do them if you want

Beginning Concepts

The links below will teach you the basics concepts of ROS2. You can follow along with the turtlebot examples if that would help you, but feel free to just read through the sections

Coding the Basic Concepts

These tutorials are when you actually start to get into programming these things. It is HIGHLY recommended that you set up a temporary repository and follow along with creating all this code. I personally recommend typing out the code yourself and adding more comments as you go rather than copy/pasting

What language you choose to write things in is up to you. You do not have to do both the Python and C++ versions of tutorials, though it may be useful to do both

Intermediate

This is where things start to get technical. Some of these sections are complicated enough to split into a more dedicated tutorial, so pay attention to which ones are crossed out as optional

Advanced

For the most part, advanced topics shouldn’t be necessary for you to learn right now. It is recommended that you briefly look through what’s in the list just to know the option to research it is there if needed, but you do not have to go through any of them in depth unless you feel like it

https://docs.ros.org/en/jazzy/Tutorials/Advanced.html

Author: Ella Moody (https://github.com/TheThingKnownAsKit)