Which path? ROS or ROS2?

Could you please tell me which learning path should I take?

ROS For Beginners

or

Get started with ROS2

Should I take both of them, ROS at first and then ROS2?

If you haven’t done anything ROS related, i’d suggest you to start with ROS2. ROS1 will be supported until 2025, so if you plan on doing robotics for a long time, it is not ideal. However, keep in mind that
ROS2 is relatively younger than ROS1, so you won’t find the same amount of learning material that is available with the previous version. Hope this helps.

1 Like

Thank you!

I did not learn ROS before.
Can I only learn and use ROS2 or do I also need to learn ROS1 to work with ROS1 projects when necessary?

For the two learning paths, I noticed that they are similar in terms of many courses but has also differences:
there is a robot control course for ROS1 and a Navigation course for ROS2.
Is the content the same or different?

Hi @min.wang.1997.01.13 ,

I had the exact same question 2 years back: What to do first - ROS1 or ROS2?

So I will share with you my insights and thoughts.

Firstly, what does the complete ROS1 and ROS2 have in common?
ROS1: Basics (Python & C++), TF, URDF, Navigation, Manipulation, Controls
ROS2: Basics (Python & C++), TF, URDF, Navigation, Manipulation, Controls
As you can see, both paths are the same. Learning the full set will make you a Master in that specific ROS version, 1 or 2.

If you are really very interested in learning the complete ROS framework, learn in the following order:

  1. ROS [1 or 2] Basics - Python and C++.
  2. Gazebo, TF and URDF - these three topics go together.
  3. Navigation - mobile robot path planning.
  4. Controls - design and implementation controllers.
  5. Manipulation - manipulator arm robot path planning.
    You can also learn Controls before Navigation, but that is up to you to decide.
    You can learn ROS1 and ROS2 side-by-side. I learnt them that way. It can be done and it is not hard.

Now that you have noted the above two information, coming to your question - ROS1 or ROS2 first?
ROS1 is at its Final LTS Release version - Noetic Ninjemys - reaches End-of-Life on May 2025.
ROS2 is there to stay forever, unless a ROS3 is planned. Current LTS Release version is Humble Hawksbill - reaches End-of-Life on May 2027.

At the time of writing this, we are just in the beginning of year 2024. There is about 1 whole year for ROS1 to reach EOL.
Many companies are still sticking with ROS1 and have not yet started the migration into ROS2, for several reasons like:

  • requires hardware update,
  • complete software update,
  • engineers not ready for ROS2,
  • the actual robot engineer has left the company
  • the new robotics engineer has no ROS2 knowledge or still learning,
  • etc,.

This is where it will be helpful for you. I am sure that by the end of May 2025, several companies will still be stuck with ROS1. So, if you have mastered ROS1 before that time, you have an upper hand (an advantage).
That does not mean you can completely avoid ROS2. You can learn ROS2 simultaneously alongside ROS1. The concepts are quite similar, however there are some syntax changes in program code, which is very easy and more of copy-paste-adapt situation.

Here is what I would recommend you:

  1. If you are interested and passionate about learning Robotics,
    [AND]
  2. If you want to become a Master of a Robotics Framework that is open-source and used by many,
    [AND]
  3. Ready to take up the challenge of learning the Robotics Framework of the future,

then do both ROS1 and ROS2, side-by-side, and learn the complete framework.
You learn both ROS1 and ROS2 in the same order mentioned above.

If you need more information or clarification, feel free to ask me your doubts.

Regards,
Girish

1 Like

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.