SCAN MATCHING WITHOUT ODOMETRY INFORMATION
Francesco Amigoni, Simone Gasparini
Dipartimento di Elettronica e Informazione, Politecnico di Milano
Piazza Leonardo da Vinci 32, 20133 Milano, Italy
Maria Gini
Dept of Computer Science and Engineering, University of Minnesota
Minneapolis, USA
Keywords:
Scan Matching. Robot Mapping. Laser Range Scanner.
Abstract:
We present an algorithm for merging two partial maps obtained with a laser range scanner into a single map.
The most unique original aspect of our algorithm is that it does not require any information on the position
where the scans were collected but uses only geometrical features of the scans.
1 INTRODUCTION
The increasing use of mobile robots equipped with
laser range scanners has stimulated the development
of methods for matching and aligning scan data col-
lected by these sensors. Usually these methods align
two scans starting from some information about the
relative position of the sensors obtained from odome-
try (Lu and Milios, 1997; Cox, 1991; R
¨
ofer, 2001).
Some methods (Einsele, 1997; Martignoni III and
Smart, 2002) do not use information coming from
odometry, but they work well only in rectilinear en-
vironments and for small displacements of the robot.
In this paper we present a method for matching two
scans that does not require any odometry informa-
tion and that works for significant displacements of
the robot. For the purposes of this paper, a scan is
a collection of segments. In our experimental setting
each scan is obtained by acquiring with a SICK LMS
200 laser range scanner (mounted on a Robuter mo-
bile platform at a height of approximatively 50 cm) a
sequence of distance measurements along directions
separated by a programmable angle (1
, in our case)
sweeping 180
. The result of the sensing operation
is thus a set of points expressed in polar coordinates,
with the origin of the coordinate frame in the sensor
itself. We approximate these points with a set of seg-
ments following the method described in (Gonz
´
ales-
Ba
˜
nos and Latombe, 2002). The use of segments in-
stead of points reduces the computational complexity
of finding the match between scans. Since the method
does not use odometry information, it relies exclu-
sively on the geometry of the scans. In particular, we
consider the angles between pairs of segments in the
scans as a sort of “geometrical landmarks” on which
the matching process is based. We assume that the
robot moves on an indoor 2D surface and that walls
and vertical objects are at the height of the laser scan.
The method integrates two scans, S
1
and S
2
, into a
map S
1,2
. It is composed of three major steps:
1. find the possible transformations of S
2
on S
1
;
2. evaluate the transformations to identify the best
transformation
¯
t of S
2
on S
1
;
3. apply the best transformation to S
2
(obtaining S
¯
t
2
)
and fuse the segments of S
1
and of S
¯
t
2
to obtain
S
1,2
.
This paper is structured as follows. The next Sec-
tion describes in detail our method, while in Section 3
we discuss the experimental activity performed to val-
idate it. Section 4 concludes the paper.
2 THE PROPOSED METHOD
In the algorithms, two points are considered to co-
incide when they are closer than POINTDISTANC E-
TOLERANCE (in our experiments we set this param-
eter to 15 mm) and two angles are considered equal
when their values differ for less than ANGLE DI FFER-
ENCETOLERANCE (in our experiments we set this pa-
rameter to 0.2 rad).
2.1 Finding Transformations
This step, given the scans S
1
and S
2
, first finds the an-
gles between the segments in S
1
and between the seg-
349
Amigoni F., Gasparini S. and Gini M. (2004).
SCAN MATCHING WITHOUT ODOMETRY INFORMATION.
In Proceedings of the First International Conference on Informatics in Control, Automation and Robotics, pages 349-352
DOI: 10.5220/0001141303490352
Copyright
c
SciTePress
ments in S
2
and, second, finds the possible transfor-
mations (namely, the rotations and translations) that
superimpose at least one angle α
2
of S
2
to an equal
angle α
1
of S
1
. Angles between pairs of segments in a
scan are the geometrical landmarks we adopt. Finding
the possible transformations is a difficult combinato-
rial problem since in principle, without any informa-
tion about the relative positions of the two scans, there
are O(n
2
1
n
2
2
) possible transformations, where n
1
and
n
2
are the numbers of segments in S
1
and S
2
, respec-
tively. We have therefore devised three heuristics for
reducing this complexity and finding a set of (hope-
fully) significant transformations between two scans.
They are described in the following.
1. Considering Angles between Consecutive Seg-
ments. In each scan, we select the angles between
two consecutive segments; let A
s
1
and A
s
2
be the sets
of such angles for S
1
and S
2
, respectively. Two seg-
ments are considered consecutive when they have an
extreme point in common. Then, we find the set of
all the transformations that make an angle in A
s
2
to
correspond to an equal angle in A
s
1
. The number
of possible transformations found by this method is
O(n
1
n
2
). We note that finding the sets A
s
1
and A
s
2
is
greatly facilitated when the segments in S
1
and in S
2
are ordered. This is usually the case with laser range
scanners, since the points returned by the sensor are
ordered counterclockwise and it is straightforward to
maintain the same order in the segments that approx-
imate the points.
Although this method seems to perform well in in-
door environments where the angles are usually nor-
mal, the errors introduced by the sensor and by the
algorithm that approximates points with segments al-
ter the representation of these angles.
2. Considering Angles between Randomly Se-
lected Segments. In each scan, we examine a num-
ber of angles between pairs of segments selected ran-
domly. We assign a higher probability to be selected
to longer segments, since they provide more precise
information about the environment. Let A
r
1
and A
r
2
be the sets of the selected angles for S
1
and S
2
, re-
spectively. We find the set of all the transformations
that brings an angle in A
r
2
to correspond to an equal
angle in A
r
1
. The number of transformations gener-
ated by this method is O(a
1
a
2
), where a
1
= |A
r
1
| and
a
2
= |A
r
2
| are the number of selected angles in A
r
1
and A
r
2
, respectively.
Instead of assigning directly to each segment the
probability of being selected (according to its length)
and of selecting the a
1
(respectively a
2
) pairs, the
following approximate and easy-to-implement tech-
nique is employed. Initially only segments longer
than SEGMENTDIVISIONFAC TOR times the length of
the longest segment in S
1
(resp. S
2
) are considered
for selection. All the segments considered have equal
probability of being selected. Then, we proceed to it-
erate with k = 1, . . . , K. In the k-th iteration, we use
a threshold equal to SEGMENTDIVISIONFACTOR
k
times the length of the longest segment in S
1
(resp.
S
2
). Out of the segments longer than this threshold
we select one with equal probability. Thus, the pa-
rameter SEGMENTDIV IS IO NFAC TOR determines the
length of the segments that are considered for selec-
tion and, implicitly, the probability of selection. This
technique tries first to find transformations based on
angles between long segments; then it progressively
considers transformations based on angles between
shorter and shorter segments.
3. Considering Angles between Perpendicular Seg-
ments. In each scan, we select only angles between
perpendicular segments. This heuristic is particularly
convenient for indoor environments, where the pres-
ence of regular walls usually involves perpendicular
segments. The heuristic is based on histograms. The
histogram of S
1
(and, in similar way, that of S
2
)
is an array of nslots elements, where nslots is the
number of buckets of the histogram. Each bucket
L
i
(i = 0, 1, . . . , nslots 1) contains the segments
with orientation comprised between π × i/nslots and
π × (i + 1)/nslots, measured with respect to a given
reference axis. To each element L
i
of the histogram
of S
1
is associated a value calculated as the sum of the
lengths of the segments in L
i
. The principal direction
of an histogram is the element with maximum value.
The normal direction of an histogram is the element
that is π/2 rad away from the principal direction. Let
A
h
1
and A
h
2
be the sets of angles formed by a seg-
ment in the principal direction and by a segment in
the normal direction of the histograms of S
1
and S
2
,
respectively. The set of possible transformations is
then found comparing the angles in A
h
1
and A
h
2
. The
number of possible transformations generated by the
above heuristic is O(p
1
n
1
p
2
n
2
), where p
i
and n
i
are
the number of segments in the principal and normal
directions of the histogram of scan S
i
.
2.2 Evaluating Transformations
Every transformation found in the previous step
is evaluated in order to identify the best one. To
determine the goodness of a transformation t we
transform S
2
on S
1
(in the reference frame of S
1
)
according to t (obtaining S
t
2
), then we calculate
the approximate length of the segments of S
1
that
correspond to (namely, match with) segments of
S
t
2
. The measure of a transformation is the length
of the corresponding segments that the transforma-
tion produces. More precisely, the measure of a
transformation is the sum of all the matching values
calculated for every pair of segments s
1
S
1
and
s
t
2
S
t
2
. The matching value between two segments
s
1
and s
t
2
is calculated as follows. We project s
t
2
on the line supporting s
1
thus getting a projected
ICINCO 2004 - ROBOTICS AND AUTOMATION
350
segment s
t
2p
and then we compute the length l
1
of
the common part of s1 and s
t
2p
; we do the same but
projecting s
1
on s
t
2
, obtaining l
2
. The matching value
of s
1
and s
t
2
is calculated as the average of l
1
and l
2
.
When s
1
and s
t
2
do not intersect, the matching value
is multiplied by 0.95
d(s
1
,s
t
2
)/PO I N T DI S TANCETO L E R A N C E
to penalize the match between segments that are
far away. Note that 0.95 is an empirical constant
whose value has been determined during exper-
imental activities and d(s
1
, s
2
) is the distance
between two segments, calculated as d(s
1
, s
2
) =
min(max(dist(s
1
, start(s
2
)), dist(s
1
, end(s
2
))),
max(dist(s
2
, start(s
1
)), dist(s
2
, end(s
1
)))) where
start(s) and end(s) are the extremes of seg-
ment s. Finally, two special cases can appear
during the evaluation of the matching values
of s
1
and s
t
2
. The matching value is set to 0
when the two segments are too far away, namely
when d(s
1
, s
t
2
)/POI NT DI STANCETOLERANCE >
SEGMENTDISTANCE TH RE SH OL D. SEGMENTDIS-
TANCE TH RE SH OL D is usually set to 5 to obtain good
experimental results. The matching value is set to
1 when the two segments intersect and are longer
than SEGMENTLENGTHREFUSE; in this case the
transformation is discarded.
The above algorithm evaluates a single transforma-
tion by considering all the pairs of segments of the
two scans that are O(n
1
n
2
).
2.3 Transforming and Fusing Scans
Once the best transformation
¯
t has been found, the
third and last step of our method transforms the sec-
ond scan S
2
in the reference frame of S
1
according to
¯
t obtaining S
¯
t
2
.
The map that constitutes the output of our scan
matching method is obtained by fusing the seg-
ments of S
1
with the segments of S
¯
t
2
. To this
end, we use the idea of matching chains. A
matching chain of the pair of scans S
1
and S
¯
t
2
is a set C = {hs
1
, s
¯
t
2
i|s
1
S
1
and s
¯
t
2
S
¯
t
2
have a positive matching value for
¯
t} alge-
braically closed under segment belong-to relation.
Specifically, a matching chain C is such that if
hs
1
, s
¯
t
2
i C, then also hs
1
, si C and hs, s
¯
t
2
i C
for all the segments s that have a positive match
value (namely, have matched with) s
1
or with s
¯
t
2
.
We explicitly note that, given an element hs
1
, s
¯
t
2
i,
the matching chain C that contains (that is generated
by) hs
1
, s
¯
t
2
i is uniquely identified. A transformation
¯
t generates a set of (disjoint) matching chains. The
main idea behind the fusion of segments is that each
matching chain (i.e., each set of matching segments)
is substituted in the final map by a single polyline.
Therefore, the final map is obtained by adding the
polylines that represent the matched segments to the
unmatched segments of S
1
and S
¯
t
2
. The problem is
thus reduced to build a polyline that approximates the
segments in a matching chain C. With this polyline,
it is easy to smoothly connect the different segments
inserted in the final map.
The solution to the above problem consists in itera-
tively building a sequence of approximating polylines
P
0
, P
1
, . . . that converges to the polyline P that ade-
quately approximates (and substitutes in the resulting
map) the matching segments in C. The polyline P
0
is
composed of a single segment connecting the pair of
farthest points in C. Given the polyline P
n1
, call s
the segment in (a pair belonging to) C that is at max-
imum distance from its (closest) corresponding seg-
ment ¯s in P
n1
. If the distance d(s, ¯s) is less than the
acceptable error, then P
n1
is the final approximation
P . Otherwise, s substitutes ¯s in P
n1
and s is con-
nected to the two closest segments in P
n1
to obtain
the new polyline P
n
.
3 EXPERIMENTAL RESULTS
The method presented in this paper has been coded
in ANSI C++ employing LEDA libraries 4.2 (LEDA
Library, 2004) for two-dimensional geometry and has
been run on a 1GHz Pentium III processor with Linux
SuSe 8.0. We considered 31 pairs of scans (from
S
1
S
2
to S
31
S
32
) that have been acquired by
driving the robot manually and without recording any
odometric information. The scans have been collected
in a laboratory, a very scattered environment, in a nar-
row hallway with rectilinear walls, and in a depart-
ment hall, a large open space with long perpendicular
walls. The correctness of the scan matches has been
determined by visually evaluating the initial scans and
the final map with respect to the real environment. For
every scan match, we tested the basic method and the
three heuristics, sometimes modifying the values of
the parameters.
In general, our experimental results demonstrate
that our method performs very well: 28 pairs of scans
out of 31 have been correctly matched. Unsurpris-
ingly, the histogram-based heuristic worked well with
scans containing long and perpendicular segments, as
those taken in the hallway and in the hall. The heuris-
tic based on consecutive segments seems to work well
in all three kinds of environment, even if sometimes
it needs some parameter adjustments.
Table 1 shows the results obtained for three inter-
esting scan matches (see also Fig. 1). S
4
and S
5
were
taken inside the laboratory: they contain a large num-
ber of short segments since the environment is highly
scattered. S
18
and S
19
were taken along the hallway:
they contain fewer segments than the previous scans
SCAN MATCHING WITHOUT ODOMETRY INFORMATION
351
1m
1m
1m
1m
1m
1m
1m
1m
1m
Figure 1: Top, left to right: scans S
4
, S
5
, S
18
, S
19
, S
25
, and S
26
; bottom, left to right: final maps S
4,5
, S
18,19
, and S
25,26
and are characterized by long rectilinear segments.
S
25
and S
26
were taken in the hall: they contain only
few segments since the environment is characterized
by long rectilinear and perpendicular walls.
Table 1: Some experimental results
S
4
S
5
S
18
S
19
S
25
S
26
# of segments 47 36 24 24 10 12
All 936 s [41260]
1
32 s [3096] 0.38 s [231]
Consecutive 1.25 s [2] 0.73 s [27] 0.13 s [4]
Random
2
7.69 s 2.51 s 0.78 s
Histogram 3.29 s [73] 1.97 s [192] 0.15 s [32]
1
[Number of possible transformations that have been evaluated]
2
Obtained by generating about 20000 angles
4 CONCLUSIONS
We have described a method for scan matching that
works without any information about the relative po-
sitions of the two scans but relies exclusively on the
geometrical features of the scans. This is the major
feature which distinguishes our method from most of
the scan alignment and matching methods reported
in the literature. Extensive experimental results vali-
dated the effectiveness of the approach. We are work-
ing to apply this method to the integration of n scans.
ACKNOWLEDGEMENTS
The authors would like to thank Jean-Claude Latombe
for his generous hospitality at Stanford University
where this research was started, H
´
ector Gonz
´
ales-
Ba
˜
nos for sharing his programs and expertise with
collecting laser range scan data, Paolo Mazzoni and
Emanuele Ziglioli for the initial implementation of
the fusing algorithm. Francesco Amigoni was par-
tially supported by a Fulbright fellowship and by
“Progetto Giovani Ricercatori” 1999 grant, Maria
Gini by NSF under grants EIA-0224363 and EIA-
0324864.
REFERENCES
Cox, I. (1991). Blanche: An experiment in guidance and
navigation of an autonomous robot vehicle. IEEE
Trans Rob Autom, 7(2):193–204.
Einsele, T. (1997). Real-time self-localization in unknown
indoor environments using a panorama laser range
finder. In Proc. IROS, pages 697–702.
Gonz
´
ales-Ba
˜
nos, H. H. and Latombe, J. C. (2002). Naviga-
tion strategies for exploring indoor environments. Int
J Robot Res, 21(10-11):829–848.
LEDA Library (2004). http://www.algorithmic-
solutions.com/enleda.htm.
Lu, F. and Milios, E. (1997). Robot pose estimation
in unknown environments by matching 2D range
scans. Journal of Intelligent and Robotic Systems,
18(3):249–275.
Martignoni III, A. and Smart, W. (2002). Localizing while
mapping: A segment approach. In Proc. Eighteen Nat.
Conf. on AI, pages 959–960.
R
¨
ofer, T. (2001). Building consistent laser scan map. In
Proc. EUROBOT, pages 83–90.
ICINCO 2004 - ROBOTICS AND AUTOMATION
352