ROS2 (Foxy-Humble) For Beginners I: Basics, Motion & Lasers
What you'll 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
- Knowledge in C++ and/or Python Programming languages.
- Familiarity with ROS1 (recommended)
- Basic understanding of Linux Ubuntu Operating System
- Motivated to learn, explore and get started with ROS2
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.
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
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 the 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 enroll 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
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.