ROS2 For Beginners (ROS Foxy - 2020)
Created by Edouard Renard, Last Updated 03-Oct-2020, Language:English
ROS2 For Beginners (ROS Foxy - 2020)
Master ROS2 basics and Become a Robot Operating System Developer - Step By Step
Created by Edouard Renard, Last Updated 03-Oct-2020, Language:English
What Will I Get ?
- Master ROS2 core concepts
- Build a complete ROS2 application from A to Z
- Use Robot Operating System 2 with both Python and Cpp
- Discover ROS2 Tools and how to use them
- Learn best practices for ROS2 development
- Practice a lot with many activities and a final project
- ROS2 Nodes, Topics, Services, Parameters, Launch Files, and much more
Requirements
- Programming basics in Python and/or C++
- Some basics in Object Oriented Programming (OOP) are welcome, although not 100% mandatory
- You need to know how to use basic commands in a terminal
- And of course, a strong willingness to learn
- Precision: No need to know anything about ROS1!
Description
In this course, I will take you, step by step, in a few hours, from a complete beginner to a ROS2 developer who can write scalable robotics applications.
→ You are learning ROS2 from scratch?
And you may ask yourself: Where to start? How to learn? What to do first?
When I first got started using Robot Operating System, it was really hard for me to answer those questions. Thus, learning ROS/ROS2 was hard. But it doesn’t have to be, if you learn with the right resources.
Also, something I noticed is that when people are teaching ROS2 (in 2020), they are often making comparisons with ROS1. But, what if you don’t know ROS1 ???
I have created this course so you can properly learn ROS2 from the beginning, with no prior knowledge in Robot Operating System, and without having to waste weeks, or even months, trying to find what to do. You can say goodbye to this big learning curve everyone faces when learning ROS2.
The course is structured so that you can follow it, one step at a time, and get everything you need in the right order. At the end of the course, you’ll be confident enough to start your own Robot Operating System 2 application.
→ How do I teach?
Here’s my teaching method, in 3 points:
- 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.
My experience with Robot Operating System is very practical. I actually used it to build a robotic arm that is now on the market. So I had no other choice than being practical and going to the point. And that’s the way I want to teach you.
→ So, what are you going to learn?
Here are the main concepts you’ll see in this course:
- ROS2 Installation, Workspace, Packages, …
- ROS2 Nodes
- ROS2 Topics
- ROS2 Services
- ROS2 Custom Messages
- ROS2 Parameters
- ROS2 Launch Files
- ...
Each section/module of the course is focused on one ROS2 key concept. 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 recap + code download of everything we did in the section.
I like to start with the “why” question, which is, to me, the most important question you can ask. If you understand the “why”, then everything after that will make sense because you know where you’re going, and why you’re going there.
I also take the time to write all the code with you. Some teachers and instructors like to show you a huge bunch of code and then tell you “ok this code does that”. I personally don’t do this. When I write code, I write it completely, with you, and I explain why I’m writing what I write.
At the end of the course, you will have the opportunity to work on a complete project, using the Turtlesim simulation. This will help you practice more on everything you’ll see in the course, and that will be your first real project from A to Z.
Along the course you’ll also learn how to use ROS2 tools to debug your application, monitor what’s going on, and build your code.
With everything you’ll learn + the best practices I’ll give you, you will be ready to start any ROS2 project with a good foundation.
So… Why should you guess what to learn? Start learning ROS2 now with this complete and structured course!
→ Note - this course is not for you if you:
- Are already a ROS2 advanced or expert developer.
- Have never used Python or C++ before.
- Also, this is not a “ROS1 to ROS2” guide. This is a course where you learn ROS2 from scratch, with no ROS1 knowledge required.
Course Content
-
Introduction
4 Lectures 00:09:58-
Welcome!
Preview00:03:11 -
What is ROS2, When to use it, and Why?
Preview00:06:47 -
How to get the most out of this course
-
Download PDFs for all the activities and final project
-
-
Install ROS2 and Setup Your Environment
7 Lectures 00:34:31-
Intro
00:01:00 -
Which ROS2 Distribution to Use
00:04:53 -
Install Ubuntu 20.04 on a Virtual Machine (VirtualBox)
00:16:09 -
Programming Tools I Will Use During This Course
00:03:44 -
Install ROS2 Foxy Fitzroy on Ubuntu 20.04
00:03:41 -
Setup Your Environment for ROS2
00:02:16 -
Launch a ROS2 Program!
00:02:48
-
-
Write Your First ROS2 Program
13 Lectures 01:13:58-
Intro
00:01:18 -
Install the ROS2 build tool - Colcon
00:02:18 -
Create a ROS2 Workspace
00:04:08 -
Create a Python Package
00:05:57 -
Create a C++ Package
00:04:08 -
What is a ROS2 Node?
00:07:35 -
Write a Python Node - Minimal Code
Preview00:14:57 -
Write a Python Node - With OOP
Preview00:07:46 -
Write a C++ Node - Minimal Code
Preview00:13:36 -
Write a C++ Node - With OOP
00:09:44 -
OOP Template for Your Nodes
-
More about the ROS2 Client Libraries for Different Languages
00:02:31 -
Code Download for this Section
-
-
Introduction to ROS2 Tools
8 Lectures 00:36:01-
Intro
00:01:03 -
Debug and Monitor Your Nodes With ros2 cli
00:09:57 -
Rename a Node at Runtime
00:06:02 -
Colcon
00:05:00 -
Rqt and rqt_graph
Preview00:03:48 -
Discover Turtlesim
00:04:53 -
Activity 001
00:00:53 -
Activity 001 - Solution
00:04:25
-
-
ROS2 Topics - Make Your Nodes Communicate Between Each Other
14 Lectures 01:47:46-
Intro
00:00:45 -
What is a ROS2 Topic?
00:09:00 -
Write a Python Publisher
Preview00:18:20 -
Write a Python Subscriber
00:09:36 -
Write a C++ Publisher
Preview00:17:11 -
Write a C++ Subscriber
00:10:01 -
Debug ROS2 Topics with Command Line Tools
00:07:07 -
Remap a Topic at Runtime
00:03:38 -
Monitor Topics with rqt and rqt_graph
00:06:18 -
Experiment on Topics with Turtlesim
00:04:53 -
Activity 002 - ROS2 Topics
00:01:01 -
Activity 002 - Solution [1/2]
00:08:47 -
Activity 002 - Solution [2/2]
00:11:09 -
Code Download for This Section
-
-
ROS2 Services - Client/Server Communication Between Nodes
14 Lectures 02:02:24-
Intro
00:00:54 -
What is a ROS2 Service?
00:07:00 -
Write a Python Service Server
00:13:40 -
Write a Python Service Server - no OOP
00:13:44 -
Write a Python Service Client - OOP
00:12:13 -
Write a C++ Service Server
00:14:43 -
Write a C++ Service Client - no OOP
00:14:23 -
Write a C++ Service Client - OOP
00:17:13 -
Debug Services with ROS2 Tools
00:04:50 -
Remap a Service at Runtime
00:03:09 -
Experiment on Services with Turtlesim
00:07:48 -
Activity 003 - ROS2 Services
00:00:51 -
Activity 003 - Solution
00:11:56 -
Code Download for This Section
-
-
Create Custom ROS2 Interfaces (Msg and Srv)
12 Lectures 01:38:31-
Intro
00:00:45 -
What are ROS2 Interfaces?
00:11:34 -
Create and Build Your First Cusom Msg
00:13:50 -
Use Your Custom Msg in a Python Node
00:10:27 -
Use Your Custom Msg in a C++ Node
00:04:27 -
Create and Build Your First Custom Srv
00:04:32 -
Debug Msg and Srv With ROS2 Tools
00:07:06 -
Activity 004 - ROS2 Custom Interfaces
00:01:53 -
Activity 004 - Solution [1/3]
00:10:54 -
Activity 004 - Solution [2/3]
00:13:31 -
Activity 004 - Solution [3/3]
00:19:32 -
Code Download for This Section
-
-
Change Node Settings at Runtime with ROS2 Parameters
9 Lectures 00:47:53-
Intro
00:00:31 -
What is a ROS2 Parameter?
00:03:18 -
Declare Your Parameters
00:12:17 -
Get Parameters from a Python Node
00:11:32 -
Get Parameters from a C++ Node
00:09:38 -
Activity 005 - ROS2 Parameters
00:00:19 -
Activity 005 - Solution [1/2]
00:05:58 -
Activity 005 - Solution [2/2]
00:04:20 -
Code Download for This Section
-
-
Scale Your Application with ROS2 Launch Files
7 Lectures 00:36:17-
Intro
00:00:49 -
What is a ROS2 Launch File?
00:02:31 -
Create and Install a Launch File
00:14:19 -
Configure Your Nodes in a Launch File
00:06:41 -
Activity 006 - ROS2 Launch Files
00:00:40 -
Activity 006 - Solution
00:11:17 -
Code Download for This Section
-
-
Complete Project With Turtlesim
8 Lectures 01:41:56-
Intro - Project Instructions
00:01:39 -
Project Solution [1/6]
00:28:29 -
Project Solution [2/6]
00:15:40 -
Project Solution [3/6]
00:17:09 -
Project Solution [4/6]
00:19:09 -
Project Solution [5/6]
00:07:26 -
Project Solution [6/6]
00:12:24 -
Code Download for the Turtlesim Project
-
-
Conclusion
2 Lectures 00:04:21-
What You've Learned
00:01:52 -
What to do next?
00:02:29
-

Edouard Renard
Software Engineer and Entrepreneur
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.