If you are a ROS1 user, it is important to keep an eye on the development of ROS2. ROS2 is expected to become mature and fully replace ROS1 by 2023, and the Foxy version released in June 2020 is mature and contain several advanced features. The course is being updated to the new features of ROS2 as they emerge.
The course was first released with ROS2 Bouncy and now is being updated to ROS Foxy released in June 2020.
I am changing all the lectures that are outdated (e.g. installation). Some lectures remain the same as they hold for any version of ROS2.
December 5, 2020
August 21, 2020
You are a ROS user, and you have heard about ROS2 as being the next generation ROS, but,
you are still unsure what ROS2 is?
How does it improve on and differ from ROS1?
Is it time to migrate to ROS2?
Is it easy to install ROS2 and get it up and running?
How to create a workspace, a package, and write programs with ROS?
This course is the right place to address all the questions about ROS2.
ROS2 is the next generation of Robot Operating System (ROS) and the community is starting the migration to this new framework.
In July 2018, ROS2 Bouncy was released and includes most of the planned ROS2 functionalities. However, there is very little documentation and tutorials about ROS2, thus the purpose of this course is to fill the gap and provides a quick introduction to ROS2 for existing ROS users and developers.
Why I am teaching this course?
ROS2 is the next generation robot operating system and is actively being developed to fully replace ROS1 in the near future. With the release of ROS2 bouncy in July 2018, ROS2 has gained a lot of maturities and most of its design goals were achieved and implemented.
However, when started to learn ROS2, I realized that there is a very little documentation and tutorials about it, there are no courses and only a few and short tutorials on the official GitHub repository were available, but does not give the overall picture as it does not stand as official documentation but rather a technical guide to ROS2.
So, I have developed this course, which the first to the best of my knowledge, to provide comprehensive coverage of ROS2, starting from explaining the design concepts, installing it on different operating systems, and explaining how to create ROS2 projects in both C++ and Python.
This is a course that I wish I could have found it when I started to learn ROS2.
The objectives of this course are as follow:
First, I will unveil the secrets of ROS2 by explaining its design concepts and how to develop projects with it.
Second, I aim at clarifying the differences between ROS1 and ROS2 (the code explanation will compare between the code written in ROS1 and that for ROS2 in both C++ and Python).
Third, the course also intends to provide comprehensive coverage of the ROS2 ecosystem and will demonstrate how to create a ROS2 workspace, ROS2 packages for C++ and Python, and discussed in detail implementation aspects of ROS2 topics, and services.
Course Learning Outcomes
At the end of the course, you will able to:
Recognize the features of ROS2 (DDS, design, …)
Install ROS2 (Bouncy) on Ubuntu (Debian) and Mac-OS
Create a workspace in ROS2
Create ROS2 packages for C++ and Python
Develop ROS2 programs using topics and services in C++ and Python
Understand how to deal with the documentation of ROS2
Recognize the difference between ROS1 and ROS2
Familiarity or ROS1 basic concepts
Knowledge in C++ and/or Python programming languages
Basic understanding of Linux Ubuntu Operating System
If you want to be one of the first ROS users to learn ROS2 and be up to date with next-generation robot operating system framework, which sooner or later, will be fully replacing ROS2, as the ROS developer community is actively pushing towards ROS2, then, do not let time running out and enrol right away in this course to start your ROS2 experience.