A ROS implementation of the Monte Carlo Localisation (MCL) and some of its variations as described in Probablistic Robotics.
In addition to the "vanilla" MCL algorithm, this code also implementes:
- Augmented Resampling MCL
- KLD MCL
⚠️ NOTE: Basic testing of this implementation shows that it works; however, it was written primarily as a learning excercise. As a result, there are several areas where the code can be improved.
My main goal before writing this code was to gain an intuitive understanding of MCL and its well known variants. I wanted to play around with an implementation of the algorithm and modify it to build this intuition.
Initially I was planning to use an existing implementation and I have found several ones out there (most notably ROS' AMCL). However, most of the implemenations that I came across were overly complicated so I decided to write my own.