title: Iterative Closest Point (ICP) implementation on python
body: <p>I have been searching for an implementation of the ICP algorithm in python lately with no result.</p>
  
  <p>According to wikipedia article <a href="http://en.wikipedia.org/wiki/Iterative_closest_point">http://en.wikipedia.org/wiki/Iterative_closest_point</a>, the algorithm steps are:</p>
  
  <ul>
  <li><p>Associate points by the nearest neighbor criteria (for each point in one point cloud find the closest point in the second point cloud).</p></li>
  <li><p>Estimate transformation parameters (rotation and translation) using a mean square cost function (the transform would align best each point to its match found in the previous step).</p></li>
  <li><p>Transform the points using the estimated parameters.</p></li>
  <li><p>Iterate (re-associate the points and so on).</p></li>
  </ul>
  
  <p>Well, I know that ICP is a very useful algorithm and it is used in a variety of applications. However I could not find any built in solution in Python. Am, I missing anything here?</p>