Ros2 For Beginners Level 3  Advanced Concepts
Ros2 For Beginners Level 3 – Advanced Concepts
Published 10/2023
MP4 | Video: h264, 1920×1080 | Audio: AAC, 44.1 KHz

Get Your ROS 2 Skills to the Next Level – ROS2 Actions, Lifecycle Nodes, Executors, Components, and More.
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

Practice with extra challenges and projects

Requirements

You can also take the level 2 course, however a direct bridge between level 1 and level 3 is possible.

You need to have Ubuntu installed on your computer (best as a dual boot)

Description

Overview

Section 1: Introduction

Lecture 1 Welcome!

Lecture 2 How to follow this course

Lecture 3 Setup Your Environment (+ Tools)

Lecture 4 Node OOP Template

Section 2: ROS2 Actions – Python ROS2 Action
Lecture 5 Intro

Lecture 6 Why and When to use ROS 2 Actions
Lecture 7 How do ROS 2 Actions Work?
Lecture 8 Create an Action Definition
Lecture 9 Write a Minimal Python Action Server
Lecture 10 Write a Minimal Python Action Client
Lecture 11 Accept or Reject a Goal

Lecture 12 Goal State Machine Explained

Lecture 13 Set a Goal as Succeeded or Aborted

Lecture 14 Send Goal Feedback

Lecture 15 Cancel a Goal

Lecture 16 Introspect Actions with ros2 action (command line)
Lecture 17 Goal Policy: Multiple goals in parallel

Lecture 18 Goal Policy: Refuse new goal if current goal is active

Lecture 19 Goal policy: Preempt current goal if new goal received

Lecture 20 Goal policy: Queue goals

Section 3: C++ ROS2 Actions
Lecture 21 Intro

Lecture 22 C++ Action Server
Lecture 23 C++ Action Client
Lecture 24 Accept or Reject a Goal

Lecture 25 Set a Goal as Succeeded or Aborted

Lecture 26 Send Goal Feedback

Lecture 27 Cancel a Goal

Lecture 28 Goal Policy: Multiple goals in parallel

Lecture 29 Goal Policy: Refuse new goal if current goal is active

Lecture 30 Goal Policy: Preempt current goal if new goal received

Lecture 31 Goal Policy: Queue goals

Section 4: ROS2 Actions – Challenge
Lecture 32 Intro – Project Overview

Lecture 33 Step 1 – Create and Generate the Action
Lecture 34 Step 2 – Action Server
Lecture 35 Step 3 – Action Client
Lecture 36 Step 4 – Accept Goal and Goal Policy

Lecture 37 Step 5 – Cancel with a Subscriber

Lecture 38 Actions Challenge – C++ Code
Section 5: ROS2 Lifecycle Nodes

Lecture 39 Intro

Lecture 40 What are Lifecycle Nodes, When to Use Them

Lecture 41 Code Setup

Lecture 42 Write a Lifecycle Node in Python

Lecture 43 Transition Between States (with ros2 lifecycle cmd line)

Lecture 44 Processing Errors

Lecture 45 Lifecycle Node Manager (using Lifecycle Services)

Lecture 46 Create a Launch File for Lifecycle Nodes

Lecture 47 Write a Lifecycle Node in C++

Section 6: ROS2 Lifecycle Nodes – Challenge

Lecture 48 Intro

Lecture 49 Step 1 – Transform the Node Into a Lifecycle Node

Lecture 51 Step 3 – Lifecycle Manager

Lecture 52 Lifecycle Node Challenge – C++

Section 7: ROS2 Executors

Lecture 53 Intro

Lecture 54 Understand How Callbacks and Spin Work

Lecture 55 The SingleThreaded Executor

Lecture 56 Multi Threaded Executor and Callback Groups

Lecture 57 Which Executor/Callback Group Should You Use?

Lecture 58 Going back to the Actions Server Example
Lecture 59 Run Several Nodes in One Executable

Lecture 60 Executors With C++

Section 8: ROS2 Components

Lecture 61 Intro

Lecture 62 Manual Composition with Python

Lecture 63 Manual Composition with C++

Lecture 64 Create a ROS2 Component (plugin)

Lecture 65 Load a Component at Run-Time with ros2 component cmd line

Lecture 66 Load Components From a Launch File

ROS developers who know the basics and want to take their skills to the next level.,Engineers/Teachers/Researchers/Anyone who wants to fully exploit the intermediate and advanced features of ROS2, to create better robotics applications.,ROS developers who are interested in understanding the underlying ROS2 core concepts of ros2_control, nav2, and moveit2.,Anyone lost in documentation, or who doesn’t understand what they do.