ROS for Beginners II: Localization, Navigation and SLAM
4.2 (414 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
2,672 students enrolled

ROS for Beginners II: Localization, Navigation and SLAM

A practical approach to learn the foundation of mobile robots SLAM and Navigation with ROS
4.2 (414 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
2,672 students enrolled
Created by Anis Koubaa
Last updated 6/2020
English
English [Auto]
Current price: $139.99 Original price: $199.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 3.5 hours on-demand video
  • 6 articles
  • 1 downloadable resource
  • Full lifetime access
  • Access on mobile and TV
  • Assignments
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Theoretical foundations of 2D and 3D localization
  • Transformation between frames in 2D and 3D Spaces
  • The powerful feature of the tf package to represent frames and perform transformation and localization
  • Theoretical foundation of localization and mapping (SLAM)
  • Background on navigation concepts (global path planning, local path planning, collision avoidance)
  • Difference between Map-Based Navigation and Reactive Navigation
  • The navigation stack of ROS (move_base, amcl, gmapping)
Requirements
  • Prior knowledge of the basic concepts of the Robot Operating System (ROS) (required)
  • Knowledge in C++ and/or Python Programming language
  • Background on the concepts of Linear Algebra, Trigonometry and Geometry
  • Want to learn ROS
  • Eager to learn robotics navigation
Description

UPDATES

  • 9 August 2019: adding of a section on configuration of the navigation stack parameters

Overview

Localization, mapping and navigation are fundamental topics in Robot Operating System (ROS) and mobile robots. However, it is very complex to learn. Usually, beginners find it difficult to even know from where to start. The typical tutorials in ROS gives high-level information about how to run ROS nodes to performs mapping and navigation, but they do not give any details about the technical aspects. Some other courses focus more on the technical aspects, which is mathematically complex, but does not give a clear link to how these concepts are tied with the ROS navigation stack.

This course addresses this gap and follows a practical approach to introduce new learners to mobile robots navigation foundations and how it is implemented in ROS. The course is designed to introduce you to the world of mobile robot navigation in a quick and effective manner.

In this course, I presented a detailed coverage of the most important package in ROS for navigation: the tf package! Without understanding this package, it will be difficult to deeply understand how navigation works in ROS. Although there are tf tutorials, tf package heavily relies on important theoretical concepts not presented in ROS tutorials. This courses provides a systematic introduction to the necessary theoretical background and complement with demonstration and programming activities of the tf package utilities and API.

This course assumes that you have some background on the main concepts of Robot Operating System (ROS), such as ROS nodes, ROS topics, ROS services, and an understanding of the basic notion of motion with ROS. If you do not have these skills, them I would recommend to first enroll to my course ROS for Beginners: Basics, Motion and OpenCV to get the necessary background. 


My experience with ROS

I have been programming with ROS for many years both in academic and industrial projects. I am very passionate to develop program with ROS. I have also been teaching ROS at the University and providing training programs. I am R&D Director of Gaitech Robotics, and I have developed many ROS packages for robots and drones. I have been leading international scientific activities around ROS, and in particular, I am the editor of three volumes of books with Springer entitled Robot Operating System, The Complete Reference. I gained a lot of experience on what difficulties new users encounter to learn ROS and this contributed to pin right to the point addressing these problems through the different lectures of the course. 

Who this course is for:
  • Beginner ROS developers and users
  • Students at Universities learning ROS
  • Anyone interest to know about the navigation concepts of ROS and mobile robots
  • Curious about robotics
  • Whoever wants to learn ROS navigation without wasting time
Course content
Expand all 66 lectures 03:24:20
+ Course Overview
6 lectures 06:58

This lecture provides a short biography on the instructor.

You can read about him in these links

http://www.riotu-lab.org/akoubaa/

https://scholar.google.com/citations?user=aEoY-0IAAAAJ&hl=en

Preview 01:17
Installing Turtlebot3 Simulator
00:29
Get the code from GitHub Repository
01:40
Link to the pre-installed virtual machine
00:05
+ ROS Navigation Introductive Demo
9 lectures 13:14

This folder contains the two map files needed to redo the experiments.

Put them into your home directory in ROS and use the correct location to the yaml file when you load the navigation stack

Important note about the demo
00:36
Start the Turtlebot3 Simulator
01:02
If you have a problem starting Turtlebot3 simulator
00:36
Setting the initial location of the robot
01:24
Frames
02:58
Location of the robot in different frames
02:27
This assignment provides general questions about navigation that helps to understand the next chapters.
General Question on the Navigation Demo
4 questions
+ 2D Frames, Transformations and Localization
8 lectures 21:58

This lecture presents an overview of the section on frames.

Preview 00:41

This video introduces the concept of frames and the pose of an object in a frame.

Pose of a robot in a frame
03:25

This is a simple quiz about robot pose.

Pose of a robot
2 questions
Dealing with Multiple Frames
03:10
Transformations Overview
03:01
2D Translation
02:15
2D Rotation
03:08

In the previous lecture, we have presented the transformation matrix for a pure translation and the transformation of a pure rotation. However, in real world, transformation can be composed of translation plus rotation at the same time. In this lecture, we will present how to convert the coordinates between two frames with a general transformation.

The General Transformation Matrix: Translation + Rotation
02:53

In the previous lecture, you have learned how to transform location coordinates between two frames that are shifted by a translation and a rotation. But, you may ask, why this is useful and in which context we need it?

In this lecture, I will present a simple example to show you why transformations are very important indeed.

Let us get started.

Illustrative Example on 2D Transformation
03:25

The quiz contains review questions about 2D Transformations

2D Transformations
2 questions
+ 3D Frames, Transformations and Localization
4 lectures 13:02
The Right-Hand Rule
03:30
3D Frames and Transformations
06:13
3D Transformation Example
02:10
+ Orientation in 3D Space
4 lectures 10:43
How orientation is represented in 3D Space?
01:22
The Three-Angle Representation
02:13
The Arbitrary Vector Representation
00:41
Quaternions
06:27
+ The TF Package: Frames, Transformations and Localization in ROS Explained
15 lectures 45:18
URDF: Language for the Description of Frames and Transformation in a Robot Model
01:54
Why TF is important?
02:25
Overview of tf package utilities
04:15
Convert Orientation between Quaternion and Roll-Pitch-Yaw using TF
05:56
Reading the Yaw of a Robot from its Orientation in Quaternion
07:09
The tf package command line and utilities
03:10
view_frames command line
02:24
more about view_frames
02:01
tf_echo command line
02:33
tf_monitor command line
00:45
static transform publisher
03:37
Broadcast a transformation in a ROS Node
03:29
Listen to a transformation in a ROS Node
02:41
+ Map-based navigation
11 lectures 01:03:09
Mobile Robot Navigation Overview
01:31
Map-based Navigation Overview
05:16
SLAM Demonstration and Discussions
07:56
Understand the structure of Maps in ROS
03:33
Understand ROS Nodes and Launch File used for SLAM
06:44
Map-based Navigation Demo
06:19
The Recovery Behavior
02:15
Understand the navigation launch file
05:10
Writing a ROS Node for Robot Navigation (Python)
12:00
Understand the Recovery Behaviors of the Navigation Stack
04:51
Robot Setup to Support the ROS Navigation Stack
07:34
+ Configuration and Tuning of the Navigation Stack Parameters
9 lectures 29:58
Navigation Stack Tuning: Problem Statement
01:30
Tuning Max/Min Velocities and Accelerations of the Robot
04:12
Global Planner Parameter Tuning
04:05
Local Path Planner Overview
01:40
The Dynamic Window Approach (DWA) Algorithm
04:03
Tuning the Simulation Time of the DWA Algorithm
04:22
DWA Trajectory Scoring
02:33
Tuning the DWA Trajectory Scores
07:24
Next Lectures
00:09