ROS for Beginners II: Localization, Navigation and SLAM

A practical approach to learn the foundation of mobile robots SLAM and Navigation with ROS

4.36 (1494 reviews)
Udemy
platform
English
language
Engineering
category
instructor
ROS for Beginners II: Localization, Navigation and SLAM
9,808
students
4.5 hours
content
Apr 2023
last update
$109.99
regular price

What you will 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)

Why take this course?

UPDATE

  • OCT 9, 2020: I added the installation instruction of Turtlebot3 on ROS Noetic

Overview

Localization, mapping, and navigation are fundamental topics in the Robot Operating System (ROS) and mobile robots. However, it is very complex to learn. Usually, beginners find it difficult to even know where to start. The typical tutorials in ROS give 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 robot 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 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, the tf package heavily relies on important theoretical concepts not presented in ROS tutorials. This course 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, I would recommend first enroll in 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 programs with ROS. I have also been teaching ROS at the University and providing training programs. I am the 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 five volumes of books with Springer entitled Robot Operating System, The Complete Reference. I gained a lot of experience in 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. 

Content

Course Overview

What is this course about?
About the instructor
Installing Turtlebot3 Simulator
Get the code from GitHub Repository
Note

ROS Navigation Introductive Demo

Navigation Demo Intro
Important note about the demo
Start the Turtlebot3 Simulator
If you have a problem starting Turtlebot3 simulator
Setting the initial location of the robot
Frames
Location of the robot in different frames
How orientation is represented in 3D space?
Navigation Example

2D Frames, Transformations and Localization

Section Overview and Learning Outcomes
Pose of a robot in a frame
Pose of a robot
Dealing with Multiple Frames
Transformations Overview
2D Translation
2D Rotation
The General Transformation Matrix: Translation + Rotation
Illustrative Example on 2D Transformation
2D Transformations

3D Frames, Transformations and Localization

3D Frame Introduction
The Right-Hand Rule
3D Frames and Transformations
3D Transformation Example

Orientation in 3D Space

How orientation is represented in 3D Space?
The Three-Angle Representation
The Arbitrary Vector Representation
Quaternions

The TF Package: Frames, Transformations and Localization in ROS Explained

The tf package overview
What is TF in ROS?
URDF: Language for the Description of Frames and Transformation in a Robot Model
Why TF is important?
Overview of tf package utilities
Convert Orientation between Quaternion and Roll-Pitch-Yaw using TF
Reading the Yaw of a Robot from its Orientation in Quaternion
The tf package command line and utilities
view_frames command line
more about view_frames
tf_echo command line
tf_monitor command line
static transform publisher
Broadcast a transformation in a ROS Node
Listen to a transformation in a ROS Node

Map-based navigation

Mobile Robot Navigation Overview
Map-based Navigation Overview
SLAM Demonstration and Discussions
Understand the structure of Maps in ROS
Understand ROS Nodes and Launch File used for SLAM
Map-based Navigation Demo
The Recovery Behavior
Understand the navigation launch file
Writing a ROS Node for Robot Navigation (Python)
Understand the Recovery Behaviors of the Navigation Stack
Robot Setup to Support the ROS Navigation Stack

Configuration and Tuning of the Navigation Stack Parameters

Navigation Stack Tuning: Problem Statement
Tuning Max/Min Velocities and Accelerations of the Robot
Global Planner Parameter Tuning
Local Path Planner Overview
The Dynamic Window Approach (DWA) Algorithm
Tuning the Simulation Time of the DWA Algorithm
DWA Trajectory Scoring
Tuning the DWA Trajectory Scores
Next Lectures

Screenshots

ROS for Beginners II: Localization, Navigation and SLAM - Screenshot_01ROS for Beginners II: Localization, Navigation and SLAM - Screenshot_02ROS for Beginners II: Localization, Navigation and SLAM - Screenshot_03ROS for Beginners II: Localization, Navigation and SLAM - Screenshot_04

Our review

🌟 **Overview** 🌟 The global course rating stands at an impressive 4.36, indicating that the majority of students find it valuable and informative. The course is designed to provide a comprehensive introduction to Robot Operation System (ROS) and its applications in localization and navigation within the field of robotics. It covers both theoretical concepts and practical implementations, although some users have noted that for beginners, especially those without prior knowledge in robotics or related programming concepts, the course may require additional foundational learning. **Pros:** - The professor is **very knowledgeable and experienced** in the topic, providing a solid foundation for students. - The course offers a **complete introduction to ROS**, along with fundamental topics in robotics. - It includes **comprehensive explanations** for several key concepts in robotics. - The course structure is **well-organized** and the content is explained in a clear and simple manner by the instructor. - Most students report that the course effectively fills the gaps between ROS and navigation concepts, which are crucial for anyone working in this domain. - It is beneficial for those currently working on projects involving indoor robotic navigation using LiDAR. - The theoretical concepts are well-explained and then implemented in code, which is a practical approach to learning. **Cons:** - Some users have indicated that the course misses **key information and content**, particularly in terms of specific commands to run in terminal and detailed documentation. - A few students have noted that the videos could be of better quality, suggesting a more structured and planned video format. - There is an expectation for more **code examples** throughout the lectures, especially for complex approaches like BUG0, BUG1, or BUG2. - The course has been criticized for its lack of **interactive components**, as the instructor does not always respond to queries or provide solutions to open problems. - For some students, there was an expectation for a more balanced mix of theoretical and practical content, with a few expressing a desire for real-world robot implementations. - Section 9 is noted to be particularly challenging without accompanying notes for better follow-up. - Some users have mentioned that the course might be more effective if students had prior knowledge of ROS basics before diving in. **Additional Feedback:** - The documentation and supplementary materials could be improved to include important details in text files and links as referenced during lectures. - A few users suggest that the course would benefit from more practical projects and hands-on assignments to enhance learning and provide real-world experience. - It is clear from the feedback that while the theoretical aspects of the course are well covered, many students were looking forward to seeing these concepts applied to a real robot in action. Overall, the course is highly regarded for its depth and clarity on the subject matter, with room for improvement in terms of practical examples, interactive engagement, and supplementary materials. It is recommended for individuals with some background in ROS or robotics who are looking to deepen their understanding of navigation and SLAM within robotic systems.

Charts

Price

ROS for Beginners II: Localization, Navigation and SLAM - Price chart

Rating

ROS for Beginners II: Localization, Navigation and SLAM - Ratings chart

Enrollment distribution

ROS for Beginners II: Localization, Navigation and SLAM - Distribution chart
1912858
udemy ID
9/14/2018
course created date
8/22/2019
course indexed date
Bot
course submited by