Learn ROS2 From Scratch
You are learning ROS2 from scratch?
And you may ask yourself:
WHERE TO START?
HOW TO LEARN?
WHAT TO DO FIRST?
When I first started with ROS, it was really hard to answer those questions, and find a proper path to follow.
Thus, learning was hard. But it doesn’t have to be, if you learn with the right resources.
I have created this course so you can properly learn ROS2, without having to waste hundreds and hundreds of hours trying to find out what to do.
In fact, it will only take you about 1 week of work to complete the course.
Step by step, from a complete beginner, you will become a ROS2 developer who can write scalable robotics applications.
Master ROS2 Basics and become a ROS2 developer
I will teach you exactly what you need to learn to get started, to remove this big learning curve everyone faces when learning ROS2.
Here’s my teaching method:
- Step by step.
- Going to the point.
- Practice, practice, practice.
That’s it. No useless stuff and distraction, just the important things you need in order to create ROS2 applications.
Become a ROS2 developer in one week, and save months of unguided learning!
What will you learn?
At the end of the course you will be able to:
- Understand and master ROS2 basics.
- Create a complete robotics application using ROS2, with both Python and Cpp
- Build, debug, and monitor a ROS2 application.
- Know ROS2 best practices to speed up your development time on future projects.
For each concept, you’ll get:
- Concept explanation, with the context, and why you need to learn that.
- Step by Step “how to” videos (for both Python and Cpp).
- ++ An activity to practice + detailed solution video.
- ++ A complete recap + code download of everything we did in the section.
Also, as you progress you will get used to the most important ROS2 tools and debug functionalities.
At the end of the course you will work on a complete mini-project using Turtlesim.
With this course, you get 102 lectures divided into 11 modules.
The estimated completion time for the course, provided that you do the activities and mini-project, is 1 week.
The lectures have been designed to be short and to the point, with only one learning goal per video.
Each step is built on top of the previous step, so you can learn new things while practising on what you already saw before. The foundation you will build will be very solid and you will be able to rely on it for any new ROS2 project.
Is this course for you?
The course is for you if you want to:
- Learn ROS2 in a structured way.
- Not waste time and directly learn the important stuff you’ll mostly use.
- Create robot software faster.
- Build scalable robotics applications.
- Use a great robotics framework to teach, test, and simulate robots.
Whether you are a student, a developer, an engineer, a researcher, a teacher, or anyone else, if you recognize yourself in one of the points above, then it means you can benefit from the course.
!!! The course is not for you if you:
- Are already a ROS2 advanced or expert developer.
- Prefer to read source code and reference manuals instead of following a step by step course.
Prerequisites to learn ROS2
The course targets beginners in ROS2, but you have to have some basics in computer science:
- You are familiar with Ubuntu, writing code, and command line tools in general.
- You have basic programming knowledge (Python or Cpp) – this course can be used only with Python or only with Cpp.
Course Curriculum
- 3.1 Intro
- 3.2 Create a ROS2 Workspace (2:53)
- 3.3 Add auto-completion for Colcon (1:41)
- 3.4 Create a Python Package (5:57)
- 3.5 Create a C++ Package (4:08)
- 3.6 What is a Node? (7:35)
- 3.7 Write a Python Node - Minimal (14:51)
- 3.8 Write a Python Node - With OOP (7:46)
- 3.9 Write a C++ Node - Minimal (13:36)
- 3.10 Write a C++ Node - With OOP (9:44)
- 3.11 OOP Template for Your Nodes
- 3.12 More About the ROS2 Client Libraries for Different Languages (2:31)
- 3.13 Section Conclusion
- 5.1 Intro
- 5.2 What is a Topic? (9:00)
- 5.3 Write a Python Publisher (18:20)
- 5.4 Write a Python Subscriber (9:36)
- 5.5 Write a C++ Publisher (17:11)
- 5.6 Write a C++ Subscriber (10:01)
- 5.7 Debug Topics with Command Line Tools (7:07)
- 5.8 Remap a Topic at Runtime (3:38)
- 5.9 Monitor Topics with Rqt and rqt_graph (6:18)
- 5.10 Experiment on Topics with Turtlesim (4:52)
- 5.11 Topic Activity
- 5.12 Topic Activity - Solution [1/2] (8:47)
- 5.13 Topic Activity - Solution [2/2] (11:09)
- 5.14 Section Conclusion
- 6.1 Intro
- 6.2 What is a Service? (7:00)
- 6.3 Write a Python Service Server (13:39)
- 6.4 Write a Python Service Client - no OOP (13:44)
- 6.5 Write a Python Service Client - OOP (12:13)
- 6.6 Write a C++ Service Server (14:42)
- 6.7 Write a C++ Service Client - no OOP (14:23)
- 6.8 Write a C++ Service Client - OOP (17:13)
- 6.9 Debug Services with ROS2 Tools (4:50)
- 6.10 Remap a Service at Runtime (3:09)
- 6.11 Experiment on Services with Turtlesim (7:48)
- 6.12 Service Activity
- 6.13 Service Activity - Solution (11:56)
- 6.14 Section Conclusion
- 7.1 Intro
- 7.2 What are ROS2 Interfaces? (11:34)
- 7.3 Create and Build your First Custom Msg (13:50)
- 7.4 Use your Custom Msg in a Python Node (10:27)
- 7.5 Use your Custom Msg in a C++ Node (4:27)
- 7.6 Create and Build your First Custom Srv (4:32)
- 7.7 Debug Msg and Srv with ROS2 Tools (7:06)
- 7.8 Custom Interfaces Activity
- 7.9 Custom Interfaces Activity - Solution [1/3] (10:54)
- 7.10 Custom Interfaces Activity - Solution [2/3] (13:31)
- 7.11 Custom Interfaces Activity - Solution [3/3] (19:31)
- 7.12 Section Conclusion
- 8.1 Intro
- 8.2 What is a Parameter? (3:18)
- 8.3 Declare your Parameters (12:16)
- 8.4 Get Parameters from a Python Node (11:32)
- 8.5 Get Parameters from a C++ Node (9:38)
- 8.6 Parameter Activity
- 8.7 Parameter Activity - Solution [1/2] (5:58)
- 8.8 Parameter Activity - Solution [2/2] (4:20)
- 8.9 Section Conclusion
Your instructor
Hi, I'm Edouard. I’m a software engineer and entrepreneur.
I’ve been working on programming robots for years. When I first started I really had a lot of trouble trying to properly learn. I found what works and what doesn’t work, what I needed, and what I didn’t need. So now I’m sharing that with you, so you can save the precious time you have.
Also I have co founded a robotics startup and programmed an entire robotic arm from scratch, with ROS, Raspberry Pi and Arduino. My view on software and robotics is very practical: I’m interested in how to best use a language/framework to build useful applications.
And thus the approach I have in my online courses is really down to earth and practical.
I like to make complex stuff easy to understand, by teaching step by step, going to the point, and through a ton of practice.
Frequently Asked Questions
What ROS2 distribution will I need?
The course has been made using ROS2 Foxy and Ubuntu 20.04. In the course I give you all the installation instructions you need. Also 99% of the instructions are valid for other ROS2 distributions. (note: this course does not target ROS1)
What do I do if I need help during the course?
No problem, you’ll have access to a Q&A inside the course so you can ask all your questions. You will also be able to discuss with other people learning ROS2.
What if I’m unhappy with the course?
I’m confident that you’ll find this course useful for your ROS2 learning journey. However, if it’s not the case, well, I offer a 30-days money back guarantee. No questions asked. Just contact me and ask for a full refund (you’ll lose access to the course).
How long do you have access to the course?
You have a lifetime access to the course. Once you’ve bought it, you can come back to any lecture as many times as you want.
How can I pay?
You can pay with any credit/debit card, or Paypal.
How long will it take to finish the course?
The course contains 11h of video content. If you do all the proposed activities and mini-project, it should take you about a week of work.