Today, I would like to dedicate the episode to all of you that are starting with ROS. This is going to be tough, you are going to feel confused sometimes. Please, do not surrender. Start with small steps. Do not try to get all the knowledge at once. Keep pushing your ROS learning. And soon you will succeed. You have entered into an amazing and exciting world, which also has a big future. This episode is dedicated to you.
In this episode, I will talk about the basic knowledge we have to have in order to be called a ROS Developer. That is, what is the basics of ROS.
There is a lot to learn about ROS. But when you learn the basics of it, you are more than half the way done. The other half, I would divide it into finding errors in programs and learning new ROS parts like navigation, Moveit, OpenCV with ROS or so.
I would say that the main problems for learners of ROS are two:
- to learn the basics
- and then to generate the ROS instinct about which questions to ask to the system when there is an error, in order to catch it.
In this episode, we are going to concentrate on the former, since the latter is a matter of practice, practice, practice.
Prior to the basics: the pre-requisites for ROS
Before going into the basics of ROS you must already master the foundation that will allow you to understand ROS. That is:
- Linux. You must know how Linux works because at present (March 2020) most of the robots that run ROS run a Linux system. If you don’t know Linux, take this free online course, we specially prepared for learners of ROS: Linux for Robotics.
- Python or C++. ROS is programmed using any of those two languages. So you need to master at least one of them. If you don’t know any of them, then start learning Python. This will simplify your learning curve. We created a special Python learning course for ROS learners which you can take here: Python for robotics
Which are the basics of ROS?
What do I mean by the basics of ROS? Those are the concepts of ROS that you need to master in order to be able to create your own ROS programs, debug them and understand third party ROS programs. If you master those concepts, then you will be able to manage yourself in the ROS world. Of course, there will be more to learn about ROS than the basics: the ROS Navigation stack, MoveIt, behavior trees, ROS web programming,… but all those advanced concepts are basically more of the same basics. If you know the basics, you will deeply understand the basics of ROS you will understand how to manage the.
I identify 17 basic subjects required to master ROS. Each of those subjects is at the same time divided by subtopics.
Let’s have a look at all of them:
- ROS core
- ROS nodes
- ROS CLI
- ROS environmental variables
- ROS packages
- ROS topics
- ROS messages
- ROS parameter server
- ROS debugging tools
- ROS services
- ROS actions
- ROS logging
- Callback Queue
- ROS URDF
- ROS TF
- ROS installation
I have included an infographic that includes all the basic ROS subjects together with their subtopics. The infographic can provide you with a quick vision of the whole ROS map, as well as links to the proper entries in the ROS wiki where to learn more about the subject or subtopic. I call this infographic as the ROS Basics knowledge map. It is more interesting than the classical ROS cheat-sheets because cheat-sheet only focus on the terminal commands and their options. This infographic contains more knowledge and quick access to clarification in the
The ROS Classic Basic Knowledge Map
Here the infographic with all the elements that you need to master in order to become a ROS Developer.
Click on the figure to get the pdf version of it that contains links directly to the ROS wiki that explains the concept. This is very useful in order to remind you of the code of a publisher when you do not remember it, how to create a tf listener or the usage of a ROS parameter. I personally use this a lot because many times I do not remember the actual code when it has been a long time since the last time I used it.
Remember that we have an online course where we teach you all those elements of ROS, plus with practice with online simulations. That is called the ROS Basics in 5 days. On the course, we teach you the concepts along with practical exercises in online simulations that allow you to start building your ROS instinct. Everything without requiring any installation, so you can use any type of computer (Linux, Windows, Mac).
In the close future…
We will publish the ROS2 basics knowledge map, with the proper list of concepts to master as well as the links to the places where to find them. Stay tuned to the ROS Developers Podcast!
Subscribe to the podcast using any of the following methods
Or listen to it on Spotify:
- ROS Developers Podcast on Spotify