Monte Carlo Localisation
Simulation of Monte Carlo Localisation (MCL) for a 2D robot, showing particle filtering in action.
What is Monte Carlo Localisation?
Monte Carlo Localisation (MCL) is a probabilistic algorithm used in robotics to estimate a robot's position within a known map using particle filters.
Particles represent possible robot poses, which are updated using the motion model and sensor measurements.
Over time, the distribution of particles converges to the robot's true location, even in environments with noise or uncertainty.
Implementation Overview
This project implements the main components of the MCL algorithm:
Pose2D.addOdometry – updates robot pose using odometry measurements with added noise.
MotionModel.propagatePoses – applies a probabilistic motion model to all particles.
SensorModel.getVisibleLandmarks – determines which landmarks are visible to the robot.
SensorModel.likelihood – computes the likelihood of observations given the robot pose and landmarks.
ParticleFilter2D.processSensor – updates particle weights based on sensor measurements.
ParticleFilter2D.resample – performs stochastic universal sampling to generate the next generation of particles.
Simulation Results
The red circle represents the true robot position, the
white circles are landmarks, and the blue/purple particles represent possible poses of the robot.
Particles become more concentrated as the robot receives sensor information from landmarks.
The video demonstrates the simulation in action, showing how particles spread and contract as the robot moves and senses its environment.