ROS2 for Beginners Level 3 – Advanced Concepts

ROS2 for Beginners Level 3 – Advanced Concepts

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 75 lectures (13h 57m) | 7.73 GB

Get Your ROS 2 Skills to the Next Level – ROS2 Actions, Lifecycle Nodes, Executors, Components, and More.

You have learned ROS2 basic concepts and you want to:

  • dive into more advanced core concepts,
  • so you can take advantage of all the ROS2 features,
  • and create better robotics applications ?

And maybe you are already stuck and you feel lost in documentation?

This course is for you: read on to learn more.

– Why this course?

I still remember when I first learned ROS2. Understanding the basic concepts was already super hard, but then when diving into the more intermediate/advanced stuff, I really understood what the word “frustration” means.

It was so hard to find valuable information and then to make sense of all of it. In the end, it took me a lot of trial and error.

Now that I understand and use those concepts, I just created the course I wish I had at the beginning, so that you can save a lot of time, and learn without frustration.

And the concepts you will see here will not only help you create better robotics applications, they will also be super helpful when you start to learn about ros2_control, nav2, or moveit2. (Note: I don’t teach those frameworks in this course, but they rely a lot on the advanced ROS2 concepts, so this course will help you learn the frameworks faster)

– What will you do and learn in the course?

This course is divided into 4 main parts:

  • Actions
  • Lifecycle Nodes
  • Executors
  • Components

Each part can be seen as a mini-course inside the course, which means that you can learn them independently from each other.

For each part, I teach you the concept step by step, with a clear structure, and you learn by doing and writing the code.

In addition to that, I also give you additional practice to make you think on your own, and learn how to combine several concepts in the same application.

What you’ll learn

  • Master ROS 2 intermediate and advanced concepts
  • ROS2 Actions, Lifecycle Nodes, Executors, Components
  • Take your ROS2 skills to the next level
  • Generate and build an Action Definition
  • Write a complete Action server and client
  • Choose and implement an Action goal policy
  • Use Lifecycle nodes to create an initialization sequence for your nodes
  • Understand how the spin works
  • Use the single threaded and multi threaded executors
  • Add several nodes in one executable (composition)
  • Create a ROS2 component to load at run time
  • Discover more ROS2 command line tools
  • Learn the best practices right from the start
  • Practice with extra challenges and projects
Table of Contents

Introduction
1 Welcome!
2 How to follow this course
3 Setup Your Environment (+ Tools)
4 Node OOP Template

ROS2 Actions – Python ROS2 Action
5 Intro
6 Why and When to use ROS 2 Actions
7 How do ROS 2 Actions Work
8 Create an Action Definition
9 Write a Minimal Python Action Server
10 Write a Minimal Python Action Client
11 Accept or Reject a Goal
12 Goal State Machine Explained
13 Set a Goal as Succeeded or Aborted
14 Send Goal Feedback
15 Cancel a Goal
16 Introspect Actions with ros2 action (command line)
17 Goal Policy Multiple goals in parallel
18 Goal Policy Refuse new goal if current goal is active
19 Goal policy Preempt current goal if new goal received
20 Goal policy Queue goals

C++ ROS2 Actions
21 Intro
22 C++ Action Server
23 C++ Action Client
24 Accept or Reject a Goal
25 Set a Goal as Succeeded or Aborted
26 Send Goal Feedback
27 Cancel a Goal
28 Goal Policy Multiple goals in parallel
29 Goal Policy Refuse new goal if current goal is active
30 Goal Policy Preempt current goal if new goal received
31 Goal Policy Queue goals

ROS2 Actions – Challenge
32 Intro – Project Overview
33 Step 1 – Create and Generate the Action
34 Step 2 – Action Server
35 Step 3 – Action Client
36 Step 4 – Accept Goal and Goal Policy
37 Step 5 – Cancel with a Subscriber
38 Actions Challenge – C++ Code

ROS2 Lifecycle Nodes
39 Intro
40 What are Lifecycle Nodes, When to Use Them
41 Code Setup
42 Write a Lifecycle Node in Python
43 Transition Between States (with ros2 lifecycle cmd line)
44 Processing Errors
45 Lifecycle Node Manager (using Lifecycle Services)
46 Create a Launch File for Lifecycle Nodes
47 Write a Lifecycle Node in C++

ROS2 Lifecycle Nodes – Challenge
48 Intro
49 Step 1 – Transform the Node Into a Lifecycle Node
50 Step 2 – Start Several Nodes (Params + Launch File)
51 Step 3 – Lifecycle Manager
52 Lifecycle Node Challenge – C++

ROS2 Executors
53 Intro
54 Understand How Callbacks and Spin Work
55 The SingleThreaded Executor
56 Multi Threaded Executor and Callback Groups
57 Which ExecutorCallback Group Should You Use
58 Going back to the Actions Server Example
59 Run Several Nodes in One Executable
60 Executors With C++

ROS2 Components
61 Intro
62 Manual Composition with Python
63 Manual Composition with C++
64 Create a ROS2 Component (plugin)
65 Load a Component at Run-Time with ros2 component cmd line
66 Load Components From a Launch File

Final Project
67 Intro
68 Step 1 – Base Node and Executor
69 Step 2 – Action Server
70 Step 3 – Lifecycle Node
71 Step 4 – Component
72 Step 5 – Launch file
73 Step 6 – Adapt for Turtlebot3 in Gazebo

Conclusion
74 What to do next
75 Bonus Lecture

Homepage