IEEE Robotics & Automation Magazine - December 2015 - 120

of the acquisition viewpoints are available (in which case
the initial estimate only needs to be refined) as opposed to
the situation where they are unknown (in which case an
initial alignment needs to be computed solely using the acquired data).
In addition to these differences, which often require
adopting ad hoc solutions, one can also exploit certain characteristics of the data to
improve speed or robustness. Since a fundamental
Publicly available software
problem of registration is
to find the most suitable
libraries and data sets are
algorithm with an appropriate parameterization,
a way to promote such
we dicuss three different
examples ranging from
research and to make
dense RGB-D image sequences for object modelresults comparable.
ing to high-resolution and
low-resolution laser range
scans for the outdoor mapping of buildings and cities.
Large-Scale 3-D Laser Scans
Commercially available 3-D laser scanners, such as those
used by surveying technicians, acquire high-resolution
large-scale scans that usually consist of several million
points. With a comparably ample maximum measurement
range, these sensors can be used to capture large scenes
such as buildings and streets. To create a complete model
(e.g., a whole city or an urban district), the acquired scans
need to be aligned and aggregated. Frequently, surveying
technicians use additional means, such as special reflectors, that assist in obtaining a fine alignment of the data.
In our example, we assume that such information is not
available and that we want to 1) compute an initial alignment for a pair of large-scale 3-D laser scans, and 2) refine
Listing 10. Multiscale keypoint and descriptor
computation.
#include 
#include 
(...)
FPFHEstimation::Ptr fest (new (...));
fest->setInputCloud (cloud)
fest->setInputNormals (normals);
MultiscaleFeaturePersistence fper;
std::vector keypoints;
std::vector scale_values = { 0.5f,
l.Of, 1.5f };
fper.setScalesVector (scale_values);
fper.setAlpha (1.3f);
fper.setFeatureEstimator (fpfh_estimation);
fper.setDistanceMetric (pci::CS);
fper.determinePersistentFeatures (*features,
keypoints);

120

*

IEEE ROBOTICS & AUTOMATION MAGAZINE

*

DECEMBER 2015

the initial estimate to obtain a perfect overlay of the acquired data.
Initial Alignment
As mentioned in the "Coarse Alignment via Descriptor
Matching" section, the PCL provides implementations for a
variety of 3-D descriptors that can be used for initial alignment. Here, the key issue is not only to find an appropriate
descriptor for the problem at hand, but also an appropriate
scale, i.e., the support size on which to compute each descriptor. Of particular interest in this context is the distinctiveness
of each descriptor that influences the number of possible ambiguities in the matching stage as well as the repeatability,
such that the descriptor computed on the same scene point
over different scans looks the same. A particularly robust approach is to compute the same class of descriptor at various
scales and to focus the registration on points and associated
descriptors that prove to be distinctive at the same scale, and
are persistent over multiple scales. The PCL provides joint estimation components that finds such keypoints and descriptors (" MultiScaleFeaturePersistence).
Listing 10 shows an example for computing keypoints
for an input point cloud and the respective persistent feature descriptors. First, the selected descriptor (in our example we use FPFH [24]) is fetched to an instance of the

Listing 11. Initial alignment using keypoints
and descriptors.
#include 
#include 
#include  (...)
Correspondences::Ptr correspondences (new
Correspondences);
CorrespondenceEstimation cest;
cest.setInputSource (source_features);
cest.setInputTarget (target_features);
cest.determineCorrespondences
(*correspondences);
Correspondences::Ptr corr_filtered (new
Correspondences);
CorrespondenceRejectorSampleConsensus
 rejector;
rejector.setInputSource (source_keypoints);
rejector.setInputTarget (target_keypoints);
rejector.setInlierThreshold (2.5);
rejector.setMaximumIterations (1000000);
rejector.setRefineModel (false);
rejector.setInputCorrespondences
(correspondences);;
rejector.getCorrespondences (*corr_
filtered);
TransformationEstimationSVD trans_est;
trans_est.estimateRigidTransformation
(*source_keypoints, *target_keypoints,
*corr_filtered, transform);



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