top of page

GMapping - From Laser Scan to Gridmap

Updated: Feb 28, 2022

❓ Did You Know that #mapping is the ability of a #mobilerobot to understand the environment in which it needs to operate?

On the other hand, #localization is the robot’s knowledge of it’s own position in that map.

GMapping combines localization with mapping and provides the robot with a special representation of the world. Deciphering this tool is a great start for robotics enthusiasts to grasp the different levels of complexities involved in a robotic system. 🛣

🤖 In order for a robot to navigate autonomously, avoid obstacles, take critical decisions, perform tasks efficiently and safely, it needs to perceive its environment based on the constructed maps. A robot achieves this using information gathered from sensors such as cameras, lidars and radars to compute a best estimate of its own location, free space and obstacle space.

#Estimation is a very challenging problem as it relies heavily on probability distributions and uncertainties which broadly gets affected by various sensor noises. This is the #slam (simultaneous localization and mapping) problem which uses techniques such as the kalman filter to fuse data together, feature matching, pose estimation and loop closure.

🔦 #Gmapping is an #opensource package that provides laser-based SLAM as a ROS node. It is implemented based on Rao-Blackwellized particle filters. The input data it mainly needs is the raw laser scan and odometry. Along with that it also needs transforms such as the base_link (robot base frame) and the laser_link (origin of the laser sensor).

🗺️ The #SLAM algorithm in gmapping uses the above inputs to estimate the robot’s pose and most importantly create a 2-D occupancy #grid map (like a building floor plan), where the environment is represented as a regular grid of cells. The value of each cell encodes a probability of its state as free, occupied, or 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.

🧭 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. Some of the other packages that gmapping is compared with are Core SLAM, Graph SLAM, Hector, filter-based SLAM etc.

📌 GMapping has been explained in detail in the following video and resource links:

🎬 Basics of what is SLAM and overview of GMapping:

📜 ROS documentation on GMapping :

📜 Slam_gmapping #Github repo :

Contributing Editor: Koyal Bhartia, Women in AI & Robotics community member.

29 views0 comments


bottom of page