Particle Filter Localization and Mapping
for Lidars
ROB521 Mobile Robotics and Perception
Spring 2026
Last Revised: March 24, 2026
, 1 Introduction
This is the fourth laboratory exercise of ROB521-Mobile Robotics and Perception.
2 Objective
The objective of this lab is to explore the properties of particle filters in the context of
localization and mapping. The two ROS packages that you will be using today are Adapt-
able Monte-Carlo Localization (AMCL) and Gmapping. Both algorithms use a particle
filter to estimate the state of the robot in an occupancy map. AMCL estimates the pose
of the robot by fusing lidar scan match estimates with the robot inputs.1 Gmapping uses
a Rao-Blackwellized Particle Filter (RBPF) to model the probability of the map and robot
trajectory given the lidar measurements and robot inputs.2 Papers describing the RBPF
used in Gmapping can be found in Section 6. In this lab you will:
• Use particle filtering for localization
• Investigate potential issues with particle filtering
• Remap the environment from Lab 3 and discuss the differences between your new
map and the previous
• Map a portion of the environment from Lab 2 and discuss the challenges that you
encountered while mapping
• Map the real-life environment in Myhal and discuss the differences between simula-
tion and real-life deployment
To understand the effects of the various parameters that you will be tuning for AMCL
and Gmapping, you should read the original AMCL and Gmapping papers.
These papers are
Monte Carlo Localization: Efficient Position Estimation for Mobile Robots (https:
//www.ri.cmu.edu/pub_files/pub1/fox_dieter_1999_1/fox_dieter_
1999_1.pdf)
and
Improving Grid-based SLAM with Rao-Blackwellized Particle Filters by Adaptive
Proposals and Selective Resampling (http://www2.informatik.uni-freiburg.
de/~stachnis/pdf/grisetti05icra.pdf),
respectively. Additionally, these papers will help you understand how AMCL and Gmap-
ping operate, which will assist in answering some of the deliverables.
1
The code for AMCL is available at http://wiki.ros.org/amcl and https://github.com/
ros-planning/navigation.
2
The gmapping code is available at https://github.com/ros-perception/slam_
gmapping and https://github.com/OpenSLAM-org/openslam_gmapping.
Last Revised: March 24, 2026 2