  The Iterative Closest Point (ICP) algorithm is one of the most important
algorithms for geometric alignment of three-dimensional surface registration,
which is frequently used in computer vision tasks, including the Simultaneous
Localization And Mapping (SLAM) tasks. In this paper, we illustrate the
theoretical principles of the ICP algorithm, how it can be used in surface
registration tasks, and the traditional taxonomy of the variants of the ICP
algorithm. As SLAM is becoming a popular topic, we also introduce a
SLAM-oriented taxonomy of the ICP algorithm, based on the characteristics of
each type of SLAM task, including whether the SLAM task is online or not and
whether the landmarks are present as features in the SLAM task. We make a
synthesis of each type of SLAM task by comparing several up-to-date research
papers and analyzing their implementation details.
