
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
Explore how robotics navigation blends linear algebra, geometry, trigonometry, physics, and mechanics with practical ROS implementations through an interactive demo that links theory to real-world localization, navigation, and SLAM concepts.
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
Set the robot’s initial location and orientation to align the ARV navigation view with the real map, using the two depots estimate to place the robot and align laser scans.
Explore localizing the robot using a grid map with an origin, and visualize frames and a fixed frame to relate location and orientation.
Explore how the robot’s location varies with reference frames, comparing the odom frame to the map frame and highlighting how frame shifts affect global map localization readings.
This lecture presents an overview of the section on frames.
This video introduces the concept of frames and the pose of an object in a frame.
Explore how multiple coordinate frames affect localization, and learn to transform positions between world and robot frames to determine an object's location.
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.
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.
Use the tf package command line utilities to view and print frames and their transformations in a Gazebo ros setup, including translations and quaternion rotations for frames like base_footprint.
Use the tf_monitor command line to monitor transforms in ROS, view delays and broadcaster statistics for specific frames like odom to base_footprint, or display all transformations.
Learn to broadcast a transformation in a ROS node using Python or C++, creating a transform broadcaster and publishing translated and quaternion-rotated frames at a set rate.
Demonstrates building a 2D occupancy grid map via slam on a Turtlebot3 in gazebo using laser and odometry data, marking free, occupied, unknown cells, and saving the map for navigation.
Learn how to save a ROS map to file with the map server and saver, generating an image and a YAML with image path, resolution, origin, and thresholds.
Configure the robot to support the ROS navigation stack by implementing per-robot blue modules, publishing tf transforms, odometry, and sensor data for global and local planning.
Use a tf listener to compute the transformation between turtle two and turtle one frames, extract translation, and drive the follower with a velocity publisher.
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.