- Iterative Closest Point
Iterative Closest Point (ICP) is an
algorithm employed to match two clouds of points. This matching is used to reconstruct 3D surfaces from different scans, to localize robots and achieve optimal path planning (especially when wheel odometry is unreliable due to slippery terrain), to matchbone models with measures in real-time, etc.The algorithm is very simple and is commonly used in real-time. It iteratively estimates the transformation (translation, rotation) between two raw scans.
Inputs: two raw scans, initial estimation of the transformation, criteria for stopping the iteration.
Output: refined transformation.
Essentially the algorithm steps are :
# Associate points by the nearest neighbor criteria.
# Estimate the parameters using a mean square cost function.
# Transform the points using the estimated parameters.
# Iterate (re-associate the points and so on).ee also
MeshLab an open source mesh processing tool that includes a GPL implementation of the ICP algorithm.External links
* [http://citeseer.ist.psu.edu/zhang92iterative.html Iterative Point Matching for Registration of Free-Form Curves and Surfaces (1992) (Zhengyou Zhang)]
* [http://www.cs.princeton.edu/~smr/papers/icpstability.pdf Derivation of ICP Equations]
* [http://graphics.stanford.edu/papers/fasticp/ Efficient Variants of the ICP Algorithm]
* [http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId=12627&objectType=file Iterative Closest Point Method in Matlab]
* [http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId=16766&objectType=file Iterative Closest Point Method in C++]
Wikimedia Foundation. 2010.