CSM 2012-12-03

The C(anonical) Scan Matcher (CSM) is a pure C implementation of a very fast variation of ICP using a point-to-line metric optimized for range-finder scan matching.

It is robust enough to be used in industrial prototypes of autonomous mobile robotics, for example at Kuka. CSM is used by a variety of people, though it is hard to keep track because of the open source distribution, especially as packaged in ROS. If you use this software for something cool, let me know.

Download

Documentation

Please see the manual contained in the file csm_manual.pdf.

The method is described in the paper:

Andrea Censi. An ICP variant using a point-to-line metric. In Proceedings of the IEEE International Conference on Robotics and Automation (ICRA). Pasadena, CA, May 2008. pdfdoi supp. material slidesbibtex

The package also contains two methods for estimating the uncertainty of scan matching. Those are described in the following papers:

Andrea Censi. On achievable accuracy for pose tracking. In Proceedings of the IEEE International Conference on Robotics and Automation (ICRA). Kobe, Japan, May 2009. pdfdoi supp. material slidesbibtex

Andrea Censi. An accurate closed-form estimate of ICP's covariance. In Proceedings of the IEEE International Conference on Robotics and Automation (ICRA), 3167–3172. Rome, Italy, April 2007. pdfdoi supp. material slidesbibtex

Andrea Censi. On achievable accuracy for range-finder localization. In Proceedings of the IEEE International Conference on Robotics and Automation (ICRA), 4170–4175. Rome, Italy, April 2007. pdfdoi supp. material slidesbibtex

Design goals

I created this package:

The package contains also a Ruby wrapper for the C library, and additional Ruby and a Matlab implementations of the same algorithm. These are not as usable or documented as the C version.

What it is NOT: Note that this is not a full-featured SLAM solution: this only does pairwise scan-matching between scans (but it's really good at it!). If you are looking for a more complete SLAM solution, please see the projects listed in the OpenSLAM page; in particular you can have a look at GMapping. Many pointers to other SLAM software can be found on the pages of the Euron SLAM summer schools: 2002 (Stockholm), 2004 (Toulouse), 2006 (Oxford). Other related projects are Carmen and Stage.

Please link here using the PURL: http://purl.org/censi/2007/csm.