Self Driving and ROS 2 – Learn by Doing! Map & Localization

Self Driving and ROS 2 – Learn by Doing! Map & Localization

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 156 lectures (24h 46m) | 14.67 GB

Create a ROS2 Self-Driving robot with Python and C++. Master Robot Localization, Mapping and SLAM

Would you like to build a real Self-Driving Robot using ROS2, the second and last version of the Robot Operating System, by building a real robot?

Would you like to get started with Autonomous Navigation of robots and dive into the theoretical and practical aspects of Localization, Mapping, and SLAM from industry experts?

The philosophy of this course is the Learn by Doin,g and quoting the American writer and teacher Dale Carnegie

Learning is an Active Process. We learn by doing; only knowledge that is used sticks in your mind.

In order for you to master the concepts covered in this course and use them in your projects and also in your future job, I will guide you through the learning of all the functionalities of ROS both from the theoretical and practical point of view.

Each section is composed of three parts:

  • Theoretical explanation of the concept and functionality
  • Usage of the concept in a simple Practical example
  • Application of the functionality in a real Robot

There is more!

All the programming lessons are developed using both Python and C++ . This means that you can choose the language you are most familiar with or become an expert Robotics Software Developer in both programming languages!

By taking this course, you will gain a deeper understanding of self-driving robots and ROS 2, which will open up opportunities for you in the exciting field of robotics.

What you’ll learn

  • Create a Real Self-Driving Robot
  • Master ROS2, the last version of the Robot Operating System
  • Implement Mapping algorithms
  • Implement Localization algorithms
  • Implement SLAM algorithms
  • Simulate a Self-Driving robot in Gazebo
  • Programming Arduino for Robotics Applications
  • Master Nav2
  • Probability Theory
  • Use Laser Sensors for real world applications
  • Master the slam_toolbox library
Table of Contents

Introduction
1 Course Motivation
2 The Self-Driving Program
3 Course Presentation
4 Meet your Teacher
5 Get the Most out of the Course
6 Course Material

Setup
7 Install Ubuntu on Dual Boot
8 Install Ubuntu on Virtual Machine
9 LABInstall ROS 2 Jazzy on Ubuntu 24.04LAB
10 LABInstall ROS 2 Humble on Ubuntu 22.04LAB
11 LABConfigure the Development EnvironmentLAB
12 LABGetting Started with the Simulated RobotLAB
13 LABHow to use the Course MaterialLAB

Introduction to ROS 2
14 Why a Robot Operating System
15 What is ROS 2
16 Why a NEW Robot Operating System
17 ROS 2 Architecture
18 Hardware Abstraction
19 Low-Level Device Control
20 Messaging Between Process
21 Package Management
22 Architecture of a ROS 2 Application
23 LABCreate and Activate a WorksapceLAB
24 PYSimple PublisherPY
25 C++Simple PublisherC++
26 PYSimple SubscriberPY
27 C++Simple SubscriberC++

Path Planning
28 Path Planning
29 Plan and Execution
30 Configuration Space
31 From Path Planning to Graph Search
32 Graph Construction
33 OccupancyGrid
34 Introduction to Nav2
35 ROS 2 Lifecycle Nodes
36 PYCreate a Lifecycle NodePY
37 C++Create a Lifecycle NodeC++
38 LABROS 2 Lifecycle CLILAB
39 Nav2 map_server
40 LABNav2 map_serverLAB
41 ROS 2 Quality of Service
42 PYMulti QoS PublisherPY
43 C++Multi QoS PublisherC++
44 LABMulti QoS PublisherLAB
45 LABNav2 map_server CLILAB
46 Graph Search
47 Breadth-First Search
48 Depth-First Search
49 Dijkstra Algorithm
50 PYDijkstra PlannerPY
51 PYDijkstra AlgorithmPY
52 C++Dijkstra PlannerC++
53 C++Dijkstra AlgorithmC++
54 LABDijkstra AlgorithmLAB
55 A Algorithm
56 PYA AlgorithmPY
57 C++A AlgorithmC++
58 LABA AlgorithmLAB
59 LABSpeed TestLAB

Motion Planning
60 Plan and Execution
61 Motion Planners
62 Path Tracking
63 PID Control
64 PID Tuning
65 PYPD Motion PlannerPY
66 C++PD Motion PlannerC++
67 LABPD Motion PlannerLAB
68 Robot Localization
69 Robotics Convention for Localization
70 Why a Robotics Convention for Localization
71 Pose of a Mobile Robot
72 Translation Vector
73 Rotation Matrix
74 Transformation Matrix
75 Transform Reference Frames
76 PYTransform Coordinates in PD Motion PlannerPY
77 C++Transform Coordinates in PD Motion PlannerC++
78 PYPD Motion Planner Control AlgotithmPY
79 C++PD Motion Planner Control AlgorithmC++
80 LABComplete PD Motion PlannerLAB
81 DWA – Dynamic Window Approach (DWB)
82 VFH – Vector Field Histogram
83 MPC – Model Predictive Control (MPPI)
84 Pure Pursuit (RPP)
85 PYPure PursuitPY
86 C++Pure PursuitC++
87 LABPure PursuitLAB

Obstacle Avoidance
88 Obstacle Avoidance
89 Costmap
90 Layered Costmap
91 Nav2 Costmap 2D
92 Static Layer
93 LABnav2_costmap_2d – Static LayerLAB
94 Obstacle Layer
95 LABnav2_costmap_2d – Obstacle LayerLAB
96 Inflation Layer
97 LABnav2_costmap_2d – Inflation LayerLAB
98 Using Costmap
99 PYDijkstra Costmap PlannerPY
100 C++Dijkstra Costmap PlannerC++
101 LABDijkstra Costmap PlannerLAB

Navigation
102 Navigation
103 ROS 2 Actions
104 PYCreate an Action ServerPY
105 C++Create an Action ServerC++
106 LABCreate an Action ServerLAB
107 PYCreate an Action ClientPY
108 C++Create an Action ClientC++
109 LABCreate an Action ClientLAB
110 Nav2 Planner
111 LABnav2_plannerLAB
112 C++Dijkstra Nav2 PlannerC++
113 C++Dijkstra Nav2 Planner – PluginC++
114 LABDijkstra Nav2 PlannerLAB
115 C++A Nav2 PlannerC++
116 C++A Nav2 Planner – PluginC++
117 LABA Nav2 PlannerLAB
118 Nav2 Smoother
119 LABnav2_smootherLAB
120 C++Smoothing Dijkstra PlanC++
121 LABSmoothing Dijkstra PlanLAB
122 Nav2 Controller
123 LABnav2_controllerLAB
124 C++PD Nav2 ControllerC++
125 C++PD Nav2 Controller – PluginC++
126 LABPD Nav2 ControllerLAB
127 C++Pure Pursuit Nav2 ControllerC++
128 C++Pure Pursuit Nav2 Controller – PluginC++
129 LABPure Pursuit Nav2 ControllerLAB
130 Nav2 Lifecycle Manager
131 LABnav2_lifecycle_managerLAB

Decision Making
132 Behavior Trees
133 Behavior Tree Nodes
134 How tick works
135 Blackboard and Ports
136 Nav2 BT Navigator
137 LABnav2_bt_navigatorLAB
138 LABCreate a Behavior TreeLAB
139 LABUse the Behavior Tree for NavigationLAB
140 LABImprove Planner and Controller PluginsLAB
141 LABNavigate to Pose with ReplanningLAB
142 Nav2 Behaviors
143 Autonomous Navigation Overview
144 LABnav2_behaviorsLAB
145 LABNavigate to Pose with Replanning and RecoveriesLAB

Build the Robot
146 HWLABConfigure the Development Environment in Raspberry PiHWLAB
147 HWLABInstall ROS 2 on Raspberry PiHWLAB
148 HWLABAssemble the Robot – Part 1HWLAB
149 HWLABAssemble the Robot – Part 2HWLAB
150 HWLABAssemble the Robot – Part 3HWLAB
151 HWLABAssemble the Robot – Part 4HWLAB
152 HWLABLinux udev rulesHWLAB
153 HWLABROS DOMAIN IDHWLAB

Conclusions
154 Recap
155 What’s Next
156 BONUS

Homepage