IEEE Robotics & Automation Magazine - December 2015 - 115

structure of the input data exist. Most notably, a special two-dimensional (2-D) variant (" CorrespondenceRejectorSampleConsensus2D ) of the RANSAC-based
correspondence rejector discards pairs based on their pixel
distance in the image plane after the source point is transformed and projected into the target camera plane.
5) Rejection Based on Normal Compatibility: This filter uses the
normal information about the points and rejects those pairs
that have inconsistent normals, i.e., the angle between their
normals is larger than a given threshold. It can reject erroneous pairs that seem correct when judged only by the distance
between the points, such as the case depicted in Figure 3(b)
(" CorrespondenceRejectorSurfaceNormal).
6) Rejection Based on Surface Boundaries: Furthermore, when
two point clouds captured by a projective sensor represent
surfaces that have a partial overlap, accepting correspondences containing surface boundary points can introduce
errors [Figure 3(d)]. To detect such points, we can exploit
the organized nature of the depth maps and eliminate the
correspondences that contain points on depth discontinuities by moving a window across the depth image and checking if there are enough points in the window that are within
a threshold depth from the center point (" CorrespondenceRejectorBoundaryPoints).
7) Rejector Pipelines: Most often, not only is a single rejector
applied, but several correspondence rejectors are queued to
implement a filtering pipeline. For example, Diebel et al.
[7] apply a combination of different solutions for rejecting
point pairs in their active stereo point clouds, emphasizing
the importance of rejecting points on mesh boundaries
(see the RGB-D example in the "Transformation Estimation and Weighting" section). They also reject pairs based
on their normal compatibility and based on their point-topoint distance using a distance threshold based on the median distance. In the PCL, multiple rejectors can be easily
concatenated using the output correspondences of the previous rejector as input to the next one.
We provide a usage example for PCL correspondence rejection in Listing 5. Given the input point clouds and a set of estimated correspondence pairs, getCorrespondences runs
the rejection and returns the vector of filtered correspondence
pairs. Moreover, all correspondence rejection methods in the
PCL feature getRejectedQueryIndices to retrieve the
Listing 5. Correspondence rejection
(based on distance).
#include 
(...)
CorrespondenceRejectorDistance rejector;
rejector.setInputSource (cloud_src);
rejector.setInputTarget (cloud_tgt);
rejector.setInputCorrespondences
(corresps_in);
rejector.setMaximumDistance (max_dist);
rejector.getCorrespondences (corresps_
filtered);

indices of query points of rejected correspondence pairs. This
information is useful, for example, to determine nonoverlapping parts between the source and the target point cloud.
Alignment-Error Metrics and
Transformation Estimation
Over the years, there have been numerous mathematical approaches for solving for the rigid transformation T that minimizes the error of the point pairs. T is composed of a rotation
R and a translation t. Note that when referring to a transform
T and a point p, homogeneous coordinates will be used.
There are two main error metrics to be minimized that
have been considered in literature: point-to-point (2) and
point-to-plane (3), where ^ p l, q lh is the l th of the N pair
correspondences from the source cloud to the target cloud:
N

E point - to - point ^T h = / w k || T p k - q k || 2, and
k =1
N

E point - to - plane ^T h = / w k ^^T p k - q kh $ n q kh2 .
k =1

(2)
(3)

The optional w l can be used for weighting the pairs to give
them more or less importance in the least squares formulation (w l = 1 if no weighting is applied).
1) Standard Point-to-Point Error Metric: The standard error
metric used in the ICP algorithm is the point-to-point
error metric (2). When it was first mentioned by Arun [8],
researchers proposed various ways of minimizing it, which
led to the introduction of the ICP algorithm [2]. Eggert et
al. [9] evaluated each of these methods in terms of numerical stability and accuracy, reaching the conclusion that they
are close performers.
PCL provides an implementation using a closed-form
singular value decomposition (SVD) that was first proposed
by Horn [10] (" TransformationEstimationSVD).
2) Point-to-Plane Error Metric: Chen and Medioni [3] introduced the point-to-plane metric (3) and proved that it was
more stable and faster to converge than the previous approaches. This algorithm uses the distance between the
source point p l and the plane described by the target point
q l and its local surface normal n q k . Unlike the point-topoint metric, it does not have a closed-form solution, so the
minimization is done with nonlinear solvers (such as Levenberg-Marquadt, as proposed by [11]) or by linearizing it [12]
(under the assumption of small rotation angles, i.e.,
sin i + i and cos i + 1h .
Depending on the underlying surface and the distribution of points, using the point-to-plane error metric can be
considerably more robust. A standard procedure for minimizing it relies on the Levenberg-Marquardt nonlinear
optimizer [11] (" TransformationEstimationPointToPlane).
3) Linear Least Squares Point-to-Plane: The PCL also features
an alternative method that accumulates the point-to-plane
constraints of all the correspondences in a matrix A and estimates the rotation and translation in the least squares sense
by solving a linear system of the form A T A v = A T b, with
DECEMBER 2015

*

IEEE ROBOTICS & AUTOMATION MAGAZINE

*

115



Table of Contents for the Digital Edition of IEEE Robotics & Automation Magazine - December 2015

IEEE Robotics & Automation Magazine - December 2015 - Cover1
IEEE Robotics & Automation Magazine - December 2015 - Cover2
IEEE Robotics & Automation Magazine - December 2015 - 1
IEEE Robotics & Automation Magazine - December 2015 - 2
IEEE Robotics & Automation Magazine - December 2015 - 3
IEEE Robotics & Automation Magazine - December 2015 - 4
IEEE Robotics & Automation Magazine - December 2015 - 5
IEEE Robotics & Automation Magazine - December 2015 - 6
IEEE Robotics & Automation Magazine - December 2015 - 7
IEEE Robotics & Automation Magazine - December 2015 - 8
IEEE Robotics & Automation Magazine - December 2015 - 9
IEEE Robotics & Automation Magazine - December 2015 - 10
IEEE Robotics & Automation Magazine - December 2015 - 11
IEEE Robotics & Automation Magazine - December 2015 - 12
IEEE Robotics & Automation Magazine - December 2015 - 13
IEEE Robotics & Automation Magazine - December 2015 - 14
IEEE Robotics & Automation Magazine - December 2015 - 15
IEEE Robotics & Automation Magazine - December 2015 - 16
IEEE Robotics & Automation Magazine - December 2015 - 17
IEEE Robotics & Automation Magazine - December 2015 - 18
IEEE Robotics & Automation Magazine - December 2015 - 19
IEEE Robotics & Automation Magazine - December 2015 - 20
IEEE Robotics & Automation Magazine - December 2015 - 21
IEEE Robotics & Automation Magazine - December 2015 - 22
IEEE Robotics & Automation Magazine - December 2015 - 23
IEEE Robotics & Automation Magazine - December 2015 - 24
IEEE Robotics & Automation Magazine - December 2015 - 25
IEEE Robotics & Automation Magazine - December 2015 - 26
IEEE Robotics & Automation Magazine - December 2015 - 27
IEEE Robotics & Automation Magazine - December 2015 - 28
IEEE Robotics & Automation Magazine - December 2015 - 29
IEEE Robotics & Automation Magazine - December 2015 - 30
IEEE Robotics & Automation Magazine - December 2015 - 31
IEEE Robotics & Automation Magazine - December 2015 - 32
IEEE Robotics & Automation Magazine - December 2015 - 33
IEEE Robotics & Automation Magazine - December 2015 - 34
IEEE Robotics & Automation Magazine - December 2015 - 35
IEEE Robotics & Automation Magazine - December 2015 - 36
IEEE Robotics & Automation Magazine - December 2015 - 37
IEEE Robotics & Automation Magazine - December 2015 - 38
IEEE Robotics & Automation Magazine - December 2015 - 39
IEEE Robotics & Automation Magazine - December 2015 - 40
IEEE Robotics & Automation Magazine - December 2015 - 41
IEEE Robotics & Automation Magazine - December 2015 - 42
IEEE Robotics & Automation Magazine - December 2015 - 43
IEEE Robotics & Automation Magazine - December 2015 - 44
IEEE Robotics & Automation Magazine - December 2015 - 45
IEEE Robotics & Automation Magazine - December 2015 - 46
IEEE Robotics & Automation Magazine - December 2015 - 47
IEEE Robotics & Automation Magazine - December 2015 - 48
IEEE Robotics & Automation Magazine - December 2015 - 49
IEEE Robotics & Automation Magazine - December 2015 - 50
IEEE Robotics & Automation Magazine - December 2015 - 51
IEEE Robotics & Automation Magazine - December 2015 - 52
IEEE Robotics & Automation Magazine - December 2015 - 53
IEEE Robotics & Automation Magazine - December 2015 - 54
IEEE Robotics & Automation Magazine - December 2015 - 55
IEEE Robotics & Automation Magazine - December 2015 - 56
IEEE Robotics & Automation Magazine - December 2015 - 57
IEEE Robotics & Automation Magazine - December 2015 - 58
IEEE Robotics & Automation Magazine - December 2015 - 59
IEEE Robotics & Automation Magazine - December 2015 - 60
IEEE Robotics & Automation Magazine - December 2015 - 61
IEEE Robotics & Automation Magazine - December 2015 - 62
IEEE Robotics & Automation Magazine - December 2015 - 63
IEEE Robotics & Automation Magazine - December 2015 - 64
IEEE Robotics & Automation Magazine - December 2015 - 65
IEEE Robotics & Automation Magazine - December 2015 - 66
IEEE Robotics & Automation Magazine - December 2015 - 67
IEEE Robotics & Automation Magazine - December 2015 - 68
IEEE Robotics & Automation Magazine - December 2015 - 69
IEEE Robotics & Automation Magazine - December 2015 - 70
IEEE Robotics & Automation Magazine - December 2015 - 71
IEEE Robotics & Automation Magazine - December 2015 - 72
IEEE Robotics & Automation Magazine - December 2015 - 73
IEEE Robotics & Automation Magazine - December 2015 - 74
IEEE Robotics & Automation Magazine - December 2015 - 75
IEEE Robotics & Automation Magazine - December 2015 - 76
IEEE Robotics & Automation Magazine - December 2015 - 77
IEEE Robotics & Automation Magazine - December 2015 - 78
IEEE Robotics & Automation Magazine - December 2015 - 79
IEEE Robotics & Automation Magazine - December 2015 - 80
IEEE Robotics & Automation Magazine - December 2015 - 81
IEEE Robotics & Automation Magazine - December 2015 - 82
IEEE Robotics & Automation Magazine - December 2015 - 83
IEEE Robotics & Automation Magazine - December 2015 - 84
IEEE Robotics & Automation Magazine - December 2015 - 85
IEEE Robotics & Automation Magazine - December 2015 - 86
IEEE Robotics & Automation Magazine - December 2015 - 87
IEEE Robotics & Automation Magazine - December 2015 - 88
IEEE Robotics & Automation Magazine - December 2015 - 89
IEEE Robotics & Automation Magazine - December 2015 - 90
IEEE Robotics & Automation Magazine - December 2015 - 91
IEEE Robotics & Automation Magazine - December 2015 - 92
IEEE Robotics & Automation Magazine - December 2015 - 93
IEEE Robotics & Automation Magazine - December 2015 - 94
IEEE Robotics & Automation Magazine - December 2015 - 95
IEEE Robotics & Automation Magazine - December 2015 - 96
IEEE Robotics & Automation Magazine - December 2015 - 97
IEEE Robotics & Automation Magazine - December 2015 - 98
IEEE Robotics & Automation Magazine - December 2015 - 99
IEEE Robotics & Automation Magazine - December 2015 - 100
IEEE Robotics & Automation Magazine - December 2015 - 101
IEEE Robotics & Automation Magazine - December 2015 - 102
IEEE Robotics & Automation Magazine - December 2015 - 103
IEEE Robotics & Automation Magazine - December 2015 - 104
IEEE Robotics & Automation Magazine - December 2015 - 105
IEEE Robotics & Automation Magazine - December 2015 - 106
IEEE Robotics & Automation Magazine - December 2015 - 107
IEEE Robotics & Automation Magazine - December 2015 - 108
IEEE Robotics & Automation Magazine - December 2015 - 109
IEEE Robotics & Automation Magazine - December 2015 - 110
IEEE Robotics & Automation Magazine - December 2015 - 111
IEEE Robotics & Automation Magazine - December 2015 - 112
IEEE Robotics & Automation Magazine - December 2015 - 113
IEEE Robotics & Automation Magazine - December 2015 - 114
IEEE Robotics & Automation Magazine - December 2015 - 115
IEEE Robotics & Automation Magazine - December 2015 - 116
IEEE Robotics & Automation Magazine - December 2015 - 117
IEEE Robotics & Automation Magazine - December 2015 - 118
IEEE Robotics & Automation Magazine - December 2015 - 119
IEEE Robotics & Automation Magazine - December 2015 - 120
IEEE Robotics & Automation Magazine - December 2015 - 121
IEEE Robotics & Automation Magazine - December 2015 - 122
IEEE Robotics & Automation Magazine - December 2015 - 123
IEEE Robotics & Automation Magazine - December 2015 - 124
IEEE Robotics & Automation Magazine - December 2015 - 125
IEEE Robotics & Automation Magazine - December 2015 - 126
IEEE Robotics & Automation Magazine - December 2015 - 127
IEEE Robotics & Automation Magazine - December 2015 - 128
IEEE Robotics & Automation Magazine - December 2015 - 129
IEEE Robotics & Automation Magazine - December 2015 - 130
IEEE Robotics & Automation Magazine - December 2015 - 131
IEEE Robotics & Automation Magazine - December 2015 - 132
IEEE Robotics & Automation Magazine - December 2015 - 133
IEEE Robotics & Automation Magazine - December 2015 - 134
IEEE Robotics & Automation Magazine - December 2015 - 135
IEEE Robotics & Automation Magazine - December 2015 - 136
IEEE Robotics & Automation Magazine - December 2015 - 137
IEEE Robotics & Automation Magazine - December 2015 - 138
IEEE Robotics & Automation Magazine - December 2015 - 139
IEEE Robotics & Automation Magazine - December 2015 - 140
IEEE Robotics & Automation Magazine - December 2015 - 141
IEEE Robotics & Automation Magazine - December 2015 - 142
IEEE Robotics & Automation Magazine - December 2015 - 143
IEEE Robotics & Automation Magazine - December 2015 - 144
IEEE Robotics & Automation Magazine - December 2015 - 145
IEEE Robotics & Automation Magazine - December 2015 - 146
IEEE Robotics & Automation Magazine - December 2015 - 147
IEEE Robotics & Automation Magazine - December 2015 - 148
IEEE Robotics & Automation Magazine - December 2015 - 149
IEEE Robotics & Automation Magazine - December 2015 - 150
IEEE Robotics & Automation Magazine - December 2015 - 151
IEEE Robotics & Automation Magazine - December 2015 - 152
IEEE Robotics & Automation Magazine - December 2015 - 153
IEEE Robotics & Automation Magazine - December 2015 - 154
IEEE Robotics & Automation Magazine - December 2015 - 155
IEEE Robotics & Automation Magazine - December 2015 - 156
IEEE Robotics & Automation Magazine - December 2015 - 157
IEEE Robotics & Automation Magazine - December 2015 - 158
IEEE Robotics & Automation Magazine - December 2015 - 159
IEEE Robotics & Automation Magazine - December 2015 - 160
IEEE Robotics & Automation Magazine - December 2015 - 161
IEEE Robotics & Automation Magazine - December 2015 - 162
IEEE Robotics & Automation Magazine - December 2015 - 163
IEEE Robotics & Automation Magazine - December 2015 - 164
IEEE Robotics & Automation Magazine - December 2015 - 165
IEEE Robotics & Automation Magazine - December 2015 - 166
IEEE Robotics & Automation Magazine - December 2015 - 167
IEEE Robotics & Automation Magazine - December 2015 - 168
IEEE Robotics & Automation Magazine - December 2015 - Cover3
IEEE Robotics & Automation Magazine - December 2015 - Cover4
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2010
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2010
https://www.nxtbookmedia.com