ROS2 (Foxy) How To: Discover Next Generation ROS
What you'll learn
- Recognize the concepts of ROS2
- Develop simple applications with ROS2 (C++ and Python)
- Execute applications using ROS2
- Create ROS2 workspace and packages
Course content
- Preview05:04
Requirements
- Knowledge in C++ and/or Python Programming languages.
- Familiarity with ROS1 (recommended)
- Basic understanding of Linux Ubuntu Operating System
- Want to learn ROS2
Description
NOTE
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.
UPDATES
December 5, 2020
I added a new section on Turtlesim Simulator on ROS2 and ROS2 Computation Graph demos.
August 21, 2020
Installation of ROS2 Foxy released in June 2020 is presented
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.
Course Objectives:
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
Pre-Requisites
Familiarity or ROS1 basic concepts
Knowledge in C++ and/or Python programming languages
Basic understanding of Linux Ubuntu Operating System
Enrol now!
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.
Who this course is for:
- Existing ROS developers and users willing to discover ROS2
- Robotics Engineers
- University Students studying Robotics Courses
- University Instructors teaching Robotics Courses
- Anyone interest to know about the basic concepts of ROS2
Featured review
Instructor
I am Anis Koubaa, a Full Professor in Computer Science at Prince Sultan University and the Director of the Robotics and Internet-of-Things research lab. I am also R&D Director at Gaitech Robotics in China and Senior Researcher in CISTER/INESC TEC and ISEP-IPP, Porto, Portugal. I have been the Chair of the ACM Chapter in Saudi Arabia since 2014. I am also a Senior Fellow of the Higher Education Academy (HEA) in UK.
I received several distinctions and awards including the Rector Research Award in 2010 at Al-Imam Mohamed bin Saud University, and the Rector Teaching Award in 2016 at Prince Sultan University.
I have been teaching Programming courses for more than 16 years in particular Java and Web technologies, and different computer science courses. Programming is my passion for me and I have developed many software and applications. I have been also teaching robotics and developing several program with ROS in both academia and industry.
I am the Editor of three books on Robot Operating System (ROS) with Springer publisher, which are in the top 25% of most downloaded book in Springer database.
I have a lot of tutorials and course on the Internet provided on my YouTube Channel. I am very excited to provide my courses on Udemy to students around the world with practical hands-on activities.
My teaching philosophy is based on Teaching by Demonstration, where I like to explain the concepts by demonstrating them with real-world illustrations. The students will be mainly Learning by Doing.