<p>Fall 2010: <ahref='http://www.ros.org/wiki/canonical_scan_matcher'>CSM has been integrated and packaged</a> for <ahref='http://www.ros.org/'>ROS</a> by <ahref='http://robotics.ccny.cuny.edu/blog/People/Dryanovski'>Ivan Dryanovski</a>.</p>
<h3id='overview'>Overview</h3>
</li>
</ul>
<p>This is a pure C implementation of a very fast variation of ICP using a point-to-line metric optimized for range-finder scan matching.</p>
<p>author = “Censi, Andrea”, doi = “10.1109/ROBOT.2008.4543181”, title = “An {ICP} variant using a point-to-line metric”, url = “http://purl.org/censi/2007/plicp”, booktitle = “Proceedings of the {IEEE} International Conference on Robotics and Automation ({ICRA})”, year = “2008”, month = “May”, slides = “http://purl.org/censi/research/2008-icra-plicp-slides.pdf”, address = “Pasadena, CA”, pdf = “http://purl.org/censi/research/2008-icra-plicp.pdf”, abstract = “This paper describes PLICP, an ICP (Iterative Closest/Corresponding Point) variant that uses a point-to-line metric, and an exact closed-form for minimizing such metric. The resulting algorithm has some interesting properties: it converges quadratically, and in a finite number of steps. The method is validated against vanilla ICP, IDC (Iterative Dual Correspondences), and MbICP (Metric-Based ICP) by reproducing the experiments performed in Minguez et al. (2006). The experiments suggest that PLICP is more precise, and requires less iterations. However, it is less robust to very large initial displacement errors. The last part of the paper is devoted to purely algorithmic optimization of the correspondence search; this allows for significant speed-up of the computation. The source code is available for download.” }</p>
</code></pre>
</pre>
</p><divclass='desc'><p>
<p>
<p>An extremely fast and precise ICP variant for range-finder scan matching, which converges quadratically in a finite number of steps.</p>
</p>
<ahref='http://purl.org/censi/2007/plicp'>
<p>
<p>The implementation is available</p>
</p>
</a>
<p>
<p>and included also in ROS.</p>
</p>
</p>
</div>
</div>
<p>The package also contains two methods for estimating the uncertainty of scan matching. Those are described in the following papers:</p>
<h3id='download'>Download</h3>
<ul>
<li>
<p>CSM can be download from GitHub (.zip package available) at the url:</p>
<p>Please see the manual contained in “csm_manual.pdf”. See below for a quick description.</p>
<p><strong>What is this.</strong> I created this package:</p>
<ul>
<li>
<p>To have a well-documented reference implementation of <ahref='http://purl.org/censi/2007/plicp'>PL-ICP</a>. If you are only interested in the core algorithm of PL-ICP, a <ahref='http://purl.org/censi/2007/gpc'>separate concise implementation in C/Matlab/Ruby</a> is available.</p>
</li>
<li>
<p>To have a <strong>trustworthy</strong> scan matcher to be used in the experiments for some papers on <ahref='http://purl.org/censi/2006/icpcov'>ICP covariance</a>, <ahref='http://purl.org/censi/2006/accuracy'>the Cramer-Rao bound for range finders</a>, and <ahref='http://purl.org/censi/2007/calib'>robot calibration</a>. For batch experiments, it’s also useful that it’s pretty fast.</p>
</li>
<li>
<p>To have a collection of utilies for command line (UNIX-style) manipulation of laser data, and creating <ahref='../plicp/laserazosSM3.log.pdf'>beautiful maps</a> and animations.</p>
</li>
</ul>
<p>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.</p>
<body>
<p>Please see here: <ahref='http://purl.org/censi/2007/csm'>http://purl.org/censi/2007/csm</a>.</p>
<p><strong>What it is NOT</strong>: 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 <ahref='http://www.openslam.org'>OpenSLAM</a> page; in particular you can have a look at <ahref='http://www.openslam.org/gmapping.html'>GMapping</a>. Many pointers to other SLAM software can be found on the pages of the Euron SLAM summer schools: <ahref='http://www.cas.kth.se/SLAM/'>2002 (Stockholm)</a>, <ahref='http://www.laas.fr/SLAM/'>2004 (Toulouse)</a>, <ahref='http://www.robots.ox.ac.uk/~SSS06/Website/index.html'>2006 (Oxford)</a>. Other related projects are <ahref='http://carmen.sourceforge.net/'>Carmen</a> and <ahref='http://playerstage.sourceforge.net/'>Stage</a>.</p>
<hr/>
<p>Please link to this page using the url <ahref='http://purl.org/censi/2007/csm'>http://purl.org/censi/2007/csm</a>.</p>