ROS2 (Foxy-Humble) For Beginners I: Basics, Motion & Lasers (Udemy.com)
Master the Next-Gen ROS2 Robot Software Development Framework and Unlock the Power of Robotics!
Created by: Anis Koubaa
Last updated April 2023
What you will learn
- Install ROS2 on Ubuntu
- Recognize the concepts of ROS2 and its ecosystem
- Understand the difference between ROS1 and ROS2
- Recognize the features of Data Distribution Service (DDS) used in ROS2
- Create ROS2 workspaces and packages
- Develop programs with ROS2 (C++ and Python)
- Execute applications using ROS2
- Practice ROS2 Computation Graph Concepts using Hands-on with Turtlesim
Course Description
UPDATE 14 APRIL 2023: ADDING LAUNCH FILES [PYTHON, XML, YAML] WITH ILLUSTRATIONS.
Announcing Major Upgrades to Our Mastering ROS2 Course ?
We are excited to announce that our Mastering ROS2 course has undergone extensive upgrades and has been extended to offer you an even better learning experience! Here's what's new:
Support for the latest ROS2 Humble version: Our course now supports and is fully compatible with the most recent release of ROS2, ensuring that you stay up-to-date with the latest features and improvements.
Detailed ROS2 motion section in Python and C++: We've added comprehensive content on motion control in ROS2, covering both Python and C++ programming languages to cater to various skill sets and preferences.
A Robot Cleaner application in Python: As a practical, hands-on project, you will have the opportunity to develop a robot cleaner application using Python, enabling you to apply the concepts you've learned throughout the course.
Laser Scanner in ROS2: We've introduced a complete section on laser scanners in ROS2, which covers the theory, drivers, recording and replaying data using ROSBAG, and programming in Python.
A GitHub repository with all code examples: To make your learning experience even smoother, we've created a GitHub repository containing all the code examples used in the course. Each example is well-documented and thoroughly explained, allowing you to follow along with ease.
We are confident that these upgrades and extensions will significantly enhance your learning experience and help you master ROS2 more effectively. If you're not enrolled yet, don't miss the chance to join our growing community of robotics enthusiasts!
WHAT IS IT ABOUT?
Attention ROS users! Are you curious about ROS2, the next generation of the popular ROS framework? Do you want to learn how ROS2 can improve and differentiate from ROS1 and whether it's time to migrate to ROS2?
Look no further! Our comprehensive Udemy course has everything you need to know about ROS2, from installation to creating workspaces, packages and writing programs with ROS. Our expert instructors will guide you through the process step-by-step, providing you with the skills and knowledge you need to master this exciting new framework.
Whether you're an experienced ROS user or just getting started in the field of robotics, our course is designed to help you get the most out of ROS2. Don't miss this opportunity to unlock the full potential of ROS2 and take your robotics career to the next level. Join us today!
Are you in the right place?
You are a ROS user, and you have heard about ROS2 as being the next generation ROS, but,
are you 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?
How to make a robot move in space and control its distance?
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 migrating to this new framework.
Why do you need to take a ROS2 course now?
ROS1 has emerged since 2009 and has been evolving as the de facto standard Ecosystem for developing all kinds of robotics applications, including mobile robots, robotics arms, unmanned aerial systems and drones, self-driving cars, and much more. At ROSCon 2014 conference, the Open Source Robotics Foundations (OSRF) and the ROS community started to discuss and identify some gaps in ROS1, including (1) a single point of failure with the ROS Master Node, (2) nonsupport of multi-robots systems as ROS1 was designed for a single robot usage, (3) and no support of real-time guarantee or quality of service profiles, and thus its reliability was questionable.
The ROS community has formed several working groups to design and develop the next-generation version of ROS1, which is currently ROS2. Alpha and Beta versions started to show up from August 2015 until September 2017, and the first official ROS2 release, known as Ardent Apalone, was launched. On December 8th, 2017. Despite the release of ROS2, ROS1 was still being used more actively than ROS2 until 2022, and the main reason is that ROS2 has been under continuous development and did not reach the same level of maturity as ROS1. In fact, the ROS2 developers created the ROS1 Bridge package to be able to communicate between ROS1 and ROS2 when ROS1 is needed from missing functionalities in ROS2.
However, things have changed since 2021, when ROS2 has accomplished most of the missing functionalities, including navigation, transformations, and others. It is expected that ROS2 will completely dominate or at least start to dominate ROS1 in 2023. For this reason, learning about ROS2, even if you are an experienced ROS1 developer, is becoming more and more in need to cope with the future changes and transition from ROS1 and ROS2. As a matter of fact, the latest ROS1 version, ROS Noetic, released in May 2020, has an end of life in May 2025, while ROS2 will continue developing.
I provide this course to all ROS users with prior knowledge on ROS1 or even those entirely new to the ROS ecosystem to present the features of ROS2 and how it differs and compares with ROS1.
Course Objectives:
The objectives of this course are as follows:
Unveil the secrets of ROS2
Explain the concepts of ROS2 using a hands-on approach
Clarify the differences between ROS1 and ROS2
Provide comprehensive coverage of the ROS2 ecosystem
Demonstrate how to create a ROS2 workspace and packages using C++ and Python
Discuss in detail the implementation aspects of ROS2 topics, services, messages, and actions
Course Learning Outcomes
At the end of the course, you will be able to:
Install ROS2 on Ubuntu
Recognize the concepts of ROS2 and its ecosystem
Understand the difference between ROS1 and ROS2
Recognize the features of the Data Distribution Service (DDS) used in ROS2
Create ROS2 workspaces and packages
Develop programs with ROS2 (C++ and Python)
Execute applications using ROS2
Practice ROS2 Computation Graph Concepts using Hands-on with Turtlesim
Pre-Requisites
Familiarity or ROS1 basic concepts
Instructor Details
- 4.5 Rating
417 Reviews
Anis Koubaa
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.
More courses by Anis Koubaa
ROS for Beginners: Basics, Motion, and OpenCV (2023)
4.6 (5,328 Reviews)
Provider: Udemy
Time: 13.8h
$13.99
ROS for Beginners II: Localization, Navigation and SLAM (2023)
4.4 (1,608 Reviews)
Provider: Udemy
Time: 4.3h
$14.99
Object-Oriented Software Engineering with Java (2023)
4.7 (210 Reviews)
Provider: Udemy
Time: 6.5h
$84.99
More Software Development courses
MATLAB Programming Simulink: Beginner to Pro with ChatGPT (2026)
5.0 (930 Reviews)
Provider: Udemy
Time: 9.6h
$10.99
Build Web Apps with Nuxt.js 3: Master TypeScript & API [New] (2026)
4.9 (635 Reviews)
Provider: Udemy
Time: 6.7h
$19.99
Terraform 101: The Ultimate Hands-On Guide [Azure Edition] (2025)
4.8 (1,975 Reviews)
Provider: Udemy
Time: 11.9h
$94.99
Reviews
By Iric Do on 4/25/2023
This is a helpful course for everyone who wants to do with ROS2. Like ROS1 but it has some change about syntax and structure
By Selim Ouirari on 8/16/2021
Missing update to ROS 2 Foxy,and missing explaination on action scripts , i hope that it will be updated soon
By Leandro Alves on 7/31/2020
The course was very relevant to my professional qualification at that time. He also updated me on ROS! I look forward to the rest of the ROS2 content. Thank you very much!
By Ana de Sousa on 7/29/2020
This course is great, the only problem for me is that is not updated to the current ROS distributions (eloquent and foxy). Things changed a lot for building python packages, for example. I also thought that we would have more explanations about servers, what are they for, why to use them, etc.
By Nguyen Trong Nghia on 6/5/2020
The course focuses on the comparison between ROS1 and ROS2, introducing new advantages in using ROS2. I found it very easy to follow the course, and the examples. This course improved my knowledge about ROS2, which will help me explore its potential in creating new robotic applications.
By Mihir Somalwar on 8/2/2019
He went over some of the concepts of ROS2 like creating sub/pub nodes, talker, listener, and services which are listed in the ros wiki. However, he does not go too deep into the why's and the how's.. It was just like going through the wiki. Good for a introductory course to get started with ROS2.
By Amalie Hansen on 6/19/2019
The course gives a good introduction, but I had some problems running the same code as shown in the lectures (probably because of some updates). This meant that I did not complete the exercise and this limited my learning. Of course this is due to the fact that ROS2 is still in its immature state and not caused by a bad course. Thank you for the introduction to ROS2! May I suggest some more practical (and less conceptual) examples of how ROS2 is different from ROS in the future.
By Michael Ray Porter on 5/30/2019
I wanted a good, fairly quick, overview of ROS2, as compared to ROS1. And he's right, there is *NOTHING* out there yet. This is the first course, and I wish I had a professor like him around me! :) He's good! ANd I can't fathom the difficulty of teaching such content and not having English be your native language. Major props for this guy! Wicked smart. You want a fast runway to ROS2? This was it for me.
By Jerry L on 12/12/2018
This seems to be the only course for ROS 2. It is excellent. The instructor has a bit of an accent, but his presentation skills and previous teaching experience of the material easily overcome that minor inconvenience.
By Jacob Cox on 8/25/2018
Pretty good course considering it is the only one out there I could find. Thanks for putting it together. I did learn a few things. Unfortunately, ROS is a moving beast. Half of the course is on setting up ROS 1 and then ROS 2; however, those instructions are no longer valid. The referenced URLs have changed as well. Being able to have a working install of ROS 1 and ROS 2 that doesn't create conflicts would be a great objective for this class. The instructor has a good speaking pace and volume, and I did not find his accent distracting; however, he occasionally jumps from one video snippet to next without finishing some CLI commands, so following along is difficult as some points. I was hoping I would learn more about implementing ROS 2 packages and communicating with ROS 1 nodes over a ROS 1 ROS 2 bridge. That would be an excellent addition. It would have also been nice to see some of this implemented in a simulation environment. We never get beyond publish and subscribe, though the last three courses get at services.
Quality Score
No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.
Overall Score : 90 / 100






![Build Web Apps with Nuxt.js 3: Master TypeScript & API [New]](/programming/software-development/images/6457785_5adc_4.jpg?v=1789443959)

![Terraform 101: The Ultimate Hands-On Guide [Azure Edition]](/programming/software-development/images/6208847_f60a_7.jpg?v=1791193600)
