That's a good idea, maybe I'll give it a try. ICP stands for Iterative Closest Point; a Google search will provide a ton of references. Basically, however, you find pairs of points from the different point clouds, and then find a transformation the minimizes the sum of squared distances. If you iterate this process (find close pairs of points, estimate the transformation in a least-squares sense, transform the points and repeat) you will eventually converge on a transformation. The problem is that when the point sets are noisy, as in my case, the independence of the sample noise makes it difficult to find pairs of points that agree on a distance minimizing transformation.