Grid Slam Explorer
Note:This is a preview release. The final release will be more intuitive and less technical.
This is a test application that lets you explore the Grid SLAM algorythm. It allows you to vary the number, position, orientation and interpretation of a number of range sensors of different types to see how the grid slam algorythm can help reduce uncertainty in mapping.
This version is an early release for feedback purposes. If you would like to contribute to the project, have feedback or have strong feelings about whether this should become open source or not, please get in touch.
This screen is the meat of the application, the rest are support screens for configuration.
Here you can alter the robot's max speed and change the cone model. The 'spray' of sonar cones can clearly be seen. It also lets you explore an obstacle avoidance algorythm based on minimum deviation from the current path and minumum turn sharpness. Currently this algorythm in not used in the rest of the app.
This lets you tweak the parameters of the motion model to choose an ammount of noise appropriate for your tests.
The beam model is used to calculate the correspondance between the expected reading and the real reading. To prevent over confidence it is usual to include quite a large amount of randomness.
This defines how new information is added to each particle's map. Future versions will allow for standard types (IR, Sonars, laser) and allow custom configuration on a per-sensor basis.
Currently the Vector Field Histogram algorythm is being used. At each step a VFH is made from the current best particle's map and the existing direction is altered so as to follow a 'valley' closest to the desired direction while keeping a distance from the walls.
When the app loads, click 'Do SLAM' and you should get an animation similar to this.
Things to try:
- Reduce the 'Info Reduction' to 0.1 to maintain greater particle diversity. This
raises all the evidence to the power of 0.1, effectively reducing the variance of
evidence to make re-sampling less brutal.
- Try more or less particles. Although the screen updates are fairly efficient, they
take at least as long as the algorythm itself. You'll need a fast machine to do
any more than 300 particles - hopefully when this is exposed as a headless service
this number could be increased to around 600 if required, though 150 often produces
- Load a different map from the file menu. Included are a variety of different maps
- all grayscale jpegs which test the algorythm under different circumstances. Note
that the exploration is currently done as 'full speed forwards and avoid walls'.
If you want the robot to go through smaller gaps you can vary the parameters on
the navigation page. Future versions may include a purposeful entropy reduction
wander which will be more likely to complete all the corners of the map.
- Allow full editing of all sensors.
- Work is underway to expose this algorythm as a Microsoft Robotics Studio Service. The plan is for it to receive posed 'sonar' updates (x,y,theta,range,type) and merge these with dead-reckoning information from a PID Drive service (dx,dy,dtheta).
Many thanks to all the great researchers who publish their work in an open manner. Inspiring papers include:
- G. Grisetti, C. Stachniss, and W. Burgard. Improving grid-based SLAM with RaoBlackwellized particle filters by adaptive proposals and selective resampling. In Proc. of the IEEE Int. Conf. on Robotics & Automation (ICRA), 2005.
- M. Montemerlo, S. Thrun, D. Koller, and B. Wegbreit. FastSLAM 2.0: An improved particle filtering algorithm for simultaneous localization and mapping that provably converges. In Proceedings of the seventeenth International Joint Conference on Artificial Intelligence (IJCAI-03). Morgan Kaufmann Publishers, Inc., 2003.
- Cyrill Stachniss, Giorgio Grisetti, and Wolfram Burgard Recovering Particle Diversity in a Rao-Blackwellized Particle Filter for SLAM After Actively Closing Loops. In Proc. of the IEEE International Conference on Robotics and Automation (ICRA), pages 667-672, Barcelona, Spain, 2005
- Borenstein, J, and Koren, Y., 1991, "Histogramic In-motion Mapping for Mobile Robot Obstacle Avoidance." IEEE Journal of Robotics and Automation, Vol. 7, No. 4, 1991, pp. 535-539.
Please remember that this is an early release for feedback purposes and there are many improvements to be made.