views:

634

answers:

4
+4  Q: 

SLAM Algorithm

Does anyone have any experience with developing or working on the autonomous robot problem, in particular developing the SLAM algorithm? I would like to know where would be a good place to get started on developing a very very basic version on SLAM. Also any pointers to resources on the topics (other than the obvious google searches) would be appreciated.

A: 

openCV is your best bet for this, it is a large library that handles a ton of Computer Vision problems that has a great history, community, and support.

http://opencv.willowgarage.com/wiki/

strife25
OpenCV is good for image processing but besides a kalman filter there are no complete mapping algorithms included
Janusz
+2  A: 

Some of the people working on robots at the university bielefeld rely on the following papers in their work with a robot.

  • I. Esteban, O. Booij, Z. Zivkovic, and B. Kröse. Omnivision trajectory based slam. In RSS Submitted. IEEE, 2008

  • A Harati, S Gachter, and R Siegwart. Fast range image segmentation for indoor 3D-SLAM. In The 6th IFAC Symposium on Intelligent Autonomous Vehicles (IAV), 2007.

  • A Harati and R Siegwart. Orthogonal 3D-SLAM for indoor environments using right angle corners. In The 3rd European Conference on Mobile Robotics (ECMR), 2007.

Another paper that could give you a starting point is:

  • R. SIEGWART, I.R.NOURBAKHSH (2004). Introduction to Autonomous Mobile Robots. MIT Press

Most of the paper should be found in google scholar.

Janusz
+4  A: 

The book Probabilistic Robotics by Thrun, et al spends a good deal of time on SLAM.

OpenSLAM has a lot of SLAM resources and implementations of different SLAM algorithms.

Eric Perko
Great book! Exactly what I was looking for, this book introduces everything from scratch, read about 1/5th into the book now and have a much better understanding.
ldog
Ya, it is definitely a great book. Make sure you check out the errata page though, since there are some math errors here and there depending on which printing you have. http://robots.stanford.edu/probabilistic-robotics/errata.html
Eric Perko
+1  A: 

Probabilistic Robotics is definitely a great book to start from, but current algorithms have moved past much of the scope that it covers.

Grisetti's TORO (available from OpenSLAM) is a speedy algorithm that can close loops in O(N) time (where N is the size of the loop). It might suit you under the following conditions:

  • You don't need optimal accuracy (e.g. you're not using this to perform structure-from-motion, or narrow the search range for visual features)
  • You don't use position-only sensors, such as GPS.

Kaess' iSAM is very good if you want optimal accuracy (optimal in a least-squares sense). It may suit you under the following conditions:

  • You use GPS.
  • You would benefit from optimal accuracy.
  • You don't mind that it closes loops in O(N^2) time, where N is the number of poses in the loop.
  • Your robot can stop to re-solve the map from scratch every few hundred waypoints. This will take a few seconds. (This weakness has been overcome in his recent tech report though).
  • Your initial pose estimates are decent. Otherwise, iSAM can get stuck in local minima.

Finally, you can skim my IROS 2010 paper on flexible SLAM, which gives you a knob with which you can adjust the cost of closing a loop, where more cost means more accuracy. The cost can be set anywhere from O(N) to O(N^2). Even at its least accurate, it is still more accurate than TORO. Use it if:

  • You would like to process even large loop-closures in real-time.
  • You want to use GPS

Also consider the goodness of your initial pose estimates. When using a good laser-scan matching algorithm in limited indoor areas, the pose drift can be quite small. This takes much of the accuracy burden off of SLAM, and the difference between the output of approximate techniques such as TORO and exact techniques such as iSAM becomes slim.

Good luck,

-- Matt

SuperElectric