Monte Carlo Localization for Robots
In this article I present an application including C# source code (see download section) that implements the Monte Carlo localization algorithm in conjunction with a simulated robot and its environment. The Monte Carlo localization algorithm allows a robot with access to a map of its environment to locate itself based on its (noisy) drive commands and sensor readings. As a quick introduction you might want to read through the Wikipedia article. For an in depth description of the algorithm and the underlying theory I can highly recommend the book Probabilistic Robotics by Sebastian Thrun, Wolfram Burgard, and Dieter Fox.
Last Updated Sunday, 28 March 2010 19:04
The application provides a graphical interface that makes it easy to 'play' with the Monte Carlo localization algorithm and see it in action. As a quick teaser here is an animated gif that shows the content of main tab of the application through multiple simulation steps demonstrating the Monte Carlo localization of a simulated robot driving within the confines of a two dimensional area.
The following subsections dig into the various components of the application and the underlying algorithm in more detail. We start with the probabilistic motion model of the robot.
References
- Probabilistic Robotics by Sebastian Thrun, Wolfram Burgard, and Dieter Fox
- Velocity Motion Model by Çetin Meriçli
- Mobile Robot Localization using Sonar Ranging and WLAN Intensity Maps; Bachelor’s thesis by Janne Laaksonen