Wish to get into shoes of Robotics Software Engineer and see the complete cycle of mobile robot development. Also learn and impelement robotics concepts using ROS with a great simulator named Webots. Then you are at the right place. Soft_illusion Channel is back with a new video..!! (A channel which aims to help the robotics community).
0:00 GMapping Introduction
3:38 Glimpse of Implementation and Results
#Gmapping #SLAM #Localization #Mapping
Link of Video with implementation of Gmapping : • GMapping | ROS with Webots | Robotic Soft...
In the video we touch upon the basics and importance of gmapping.
These concepts are essential to allow an autonomous mobile robot to perform complicated tasks that require successful navigation from any point A to point B in static as well as dynamic environments. We start with a story to ease the learning process.
In the 4th video of the robotics picodegree series ( • Robotics Software Engineer PicoDegree | In... ) you will find this implementation of gmapping on our custom stark robot. We will teleop our stark robot in the webots simulator using a keyboard and create our own map of a home using the lidar data, GPS and IMU mounted on the robot. We publish the base_link and lidar link using tf broadcaster package. It’s a perfect map or an occupancy grid where the environment is discretized into a matrix of cells where each cell is assigned a value that represents the probability that the cell is occupied by an obstacle.
The generated map is saved in a file and used in the further videos of the series for navigation and obstacle avoidance. You can then use the process to create a map of your custom world.
Why is SLAM difficult?
When you have a map its easy to look around for features, landmarks etc and localize yourself. When you are localized, you can create a map of your surroundings and storing wat you see as a 3d or a special model. However, when you have neither know where you are, not what the environment looks like, it becomes very challenging because now you completely rely on probability distributions, uncertainties and estimation which can broadly get effected by different kinds of sensor noise.
What is GMapping?
Gmapping is the most widely used SLAM package available in ROS. Some of the other packages that gmapping is compared with are Core SLAM, Graph SLAM, and Hector, filter-based SLAM etc.
Gmapping is implemented based on Rao-Blackwellized particle filters. This approach uses a particle filter in which each particle carries an individual map of the environment. The number of particles is reduced using several adaptive techniques to learn the grid maps. Gmapping proposes an approach to compute an accurate proposal distribution taking into account not only the movement of the robot but also the most recent observation. This drastically decreases the uncertainty about the robot's pose in the prediction step of the filter. Furthermore, it also applies an approach to selectively carry out re-sampling operations which seriously reduces the problem of particle depletion.
The input data gmapping mainly needs is the raw laser scan, that provides distances based on the time of fight technique, and odometry. Along with that it also needs a few transforms i.e the base_link ( robot base frame ) and the laser_link. The laser link is a the origin of the laser sensor which could be mounted anywhere on the robot, but maintains a static relationship to the base_link.
Now the laser scan provides distances based on the time of fight technique, and hence the distance between the robot and surroundings will seem to change of the position of lidar changes. And as this data is being used by the rosnode to not just create the map but also estimate the robot position, this relationship between the 2 links a critical piece input.
The above inputs are used by the SLAM algorithm to estimate the robot’s pose wrt the odom and provides the map to odom link as an output. The odom link is initialized at the beginning of the gmapping process. The other most crucial output of gmapping is the creation of a 2-D occupancy grid map (like a building floor plan), where the environment is represented as a regular grid of cells, where the value of each cell encodes a probability of its state as free, occupied, or undefined i.e unmapped, calculated using a bayesian approach.
Parameters such as wheel slippage, robot speed, frequency of map update etc can produce a noisy odometry resulting in discontinuous and distorted maps. Gmapping performs the correction by continuously merging measurements from previous positions and provides the updated map to odom link.
GMapping’s resulting model can be used directly as a map of the environment in navigational tasks such as path planning, obstacle avoidance, and pose estimation. The main advantages of gmapping is that it is easy to construct and it can be as accurate as necessary.