Content uploaded by Andreas Birk
Author content
All content in this area was uploaded by Andreas Birk on Oct 19, 2023
Content may be subject to copyright.
Multi-robot mapping for rescue robotics
S. Carpin V. Jucikas A. Birk
International University of Bremen
Campus Ring 1 Bremen, 28725, Germany
E-mail {s.carpin,v.jucikas,a.birk}@iu-bremen.de
Abstract
We illustrate our progresses in developing multi-
robot systems to be used for mapping in rescue sce-
narios. The problem we are currently investigating
is to combine poor quality multiple maps produced by
different robots into a single map to be used by human
operators. In particular we motivate our approach and
we illustrate the different techniques we implemented
and that are at the moment being compared.
Keywords: stochastic processes, robot mapping
1 Introduction
One of the main tasks to be carried out by robots
operating in a rescue scenario is to produce useful
maps to be used by human rescue operators. Res-
cue environments lack a well defined structure, be-
cause of collapsed parts and debris. As a reference sce-
nario, one can consider the rescue arenas used in the
Robocup rescue league competition. Classical map-
ping algorithms are hard to implement and use in
these environments, as issues like feature extraction
and data association are hard to address. Moreover
robots are supposed to move over uneven surfaces and
to face significant skidding while operating. It fol-
lows that maps generated using odometric informa-
tion and cheap proximity range sensors turn out to be
very inaccurate. In the robotic systems we have de-
veloped this aspect is even more emphasized by our
choice to implement simple mapping algorithms for
their real-time execution on devices with possible low
computational power [4],[7]. One of the possible ways
to overcome this problem is to use multiple robots to
map the same environment. The multi-robot approach
has some well known advantages in itself [10],[1], most
notably robustness. In the rescue framework, multi-
robot systems are even more appealing because of the
possibility to perform a faster exploration of the in-
spected area, thus increasing the chances to quickly
locate victims and hazards. As the goal is to gather
as much information as possible, it is evident that the
maps produced by different robots will only partially
overlap, as they are likely to spread around in different
regions and not to stick together for the whole mission.
It is then a practical issue of enormous importance to
merge together such partially overlapping maps before
they are used by the human operators. The problem of
map merging can be seen as an optimization problem,
i.e. it is necessary to find the merging parameters that
produce the best matching between partially overlap-
ping maps, accordingly to some metric. For this rea-
son we implemented some well known optimization
algorithms and we compared them with a new itera-
tive optimization procedure we recently developed [6].
All the results we provide are not obtained via sim-
ulations, but from data collected while running our
robots in the newly setup IUB rescue arena [3]. In
the following we will describe the robots we developed
for rescue robotics and that has been tested in the
robocup rescue competition. We will then define the
map merging problem and we will describe the differ-
ent approaches that can be used to solve the problem.
Finally, we will give numerical results and offer the
conclusions.
2 The IUB rescue robots
The results presented later in section 4 are based on
real-world data collected with the IUB rescue robots.
The robots fall into two classes, the so-called papa
goose and the mama goose design. Papa geese (figures
1.a and 1.b) are 6-wheeled robots with a footprint of
400mm ×450mm. Mother geese (figures 1.c and 1.d)
are smaller with a footprint of 300mm ×400mm and
they are based on a tracked drive. In addition to their
mechanical differences, they differ in their sensor pay-
load, which is much higher for robots of the papa type.
A detailed description of the robots is found in [4].
For the purpose of this paper, the merging of noisy
maps of an unstructured environment, both robots
type can be viewed to behave in the same way. The de-
fault localization method is odometry based on motor
encoder data and the robots’ kinematics. The pre-
cision of the odometry is significantly improved by
(a) Papa goose
(b) Papa goose in the red arena
(c) Mama goose
(d) Mama goose in the orange arena
Figure 1: The IUB robots at the Robocup 2003 com-
petition in Padua, Italy
fusing compass data into the orientation estimation
of the robot. Nevertheless, the basic pose estimation
suffers from the well known problems of accumulative
errors, leading to one of the noise sources in the map-
building process. For gathering obstacle data, each
robot has a low-cost laser scanner. This PB9-11 laser-
scanner from Hokuyo Automatic covers 162 degrees in
91 steps up to 3m depth with a 1cm resolution (figure
2). The sensor provides rather accurate data, but it
suffers from occasional spurious readings adding hence
to the uncertainty in the map data.
Figure 2: On the left, the Hokuyo PB9-11 sensor.
On the right, a snapshot of the data provided by the
PB911 sensor. It is possible to see that the robot is
facing a corner in the walls (on its left, two meters
ahead), as well as spurious readings (on the right)
Data acquired by onboard sensors is in transmitted in
realtime to the operator station via the Framework Ar-
chitecture for Selfcontrolled and Teleoperated Robots
(FAST-Robots), an object-oriented network control
architecture framework for robotics experiments that
supports mixed teleoperation and autonomy [9]. On
the operator station a map is built. Figure 3 illus-
trates a map produced while the robot was operating
in a rescue arena setup by NIST. Maps are organized
as occupancy grids. The occupancy grid accounts for
three different kinds of information, namely obstacle
detected, free area detected, and no information avail-
able. This information is expressed in terms of be-
liefs. The robot starts with a completely empty grid.
At every time step, the input from the range scan-
ner is acquired. By combining this with the actual
pose (x,yand orientation θ) coming from the odom-
etry measurement subsystem, it is possible to update
the beliefs of the covered grid cells. Technically, every
grid cell holds an integer value, initially set to 0. This
means that no information is available for that grid
cell. When an obstacle is detected in the grid cell,
the value is incremented. When the grid cell is de-
Figure 3: A map produced by the IUB rescue robot
while performing in a rescue arena. Green points in-
dicate free space, red points ocuppied space and white
points indicate unknown space. The path followed by
the robot is indicated by the blue dots, and the current
robot position is indicated by the circle. The number
1in the middle of the map has been put by the human
operator to indicate the position of a found victim.
termined to be free, such value is decremented. Both
increments and decrements are bounded. This means
that such beliefs cannot arbitrarily grow or decrease
when the robot is standing at a fixed position (similar
to what happens with [5]).
Algorithm 1 provides the algorithmic sketch of the
procedure. In order to find out if a cell is free or not
(lines 5 and 11), we remind that once the position
and orientation are known this is a matter of simple
geometric computation. In the current setup, the cur-
rent position and orientation of the robot are based
on odometry and a magnetic compass, respectively.
The IUB rescue robots obtained the 4th place dur-
ing the 2003 Robocup Rescue competition held in
Padova (Italy) and the 2nd place during the 2004
American Open. The robots are currently being im-
proved with map merging capabilities. The map merg-
ing is again done on the operator station, so that a
human rescue worker gets an overview of the overall
terrain including location marks for victims and haz-
ards.
3 Map merging
We start with the formal definition of a map.
Definition 1 Let Nand Mbe two positive real num-
bers. An N×Mmap is a function
m: [0, N ]×[0, M]→R.
Algorithm 1 Mapping procedure
1: Initialization: fill the grid map with 0s
2: loop
3: Get data from scanner: vector vof
MAX READIN GS distances
4: Get x,yand θfrom odometry
5: for n←1 to MAX READIN GS do
6: if v[n]< RELIAB LE DI ST AN C E then
7: Let G[i][j] be the corresponding occupied
grid cell (computed from x,y,θand v[n])
8: if G[i][j]< MAX then
9: Increase G[i][j]
10: for all intermediate free cells G[i][j]do
11: if G[i][j]> MIN then
12: Decrease G[i][j]
13: else
14: Discard v[n]
We furthermore denote with IN×Mthe set of N×M
maps. Finally, for each map, a point from its domain
is declared to be the reference point. The reference
point of map mwill be indicated as R(m).
The function mis a model of the beliefs encoded in the
map. For example, one could assume that a positive
value of m(x, y) is the belief that the point (x, y) in the
map is free, while a negative value indicates the oppo-
site. Moreover, the absolute value indicates the degree
of belief. The important point is that we assume that
if m(x, y) = 0 no information is available. From now
on, for sake of simplicity, we will assume N=M, but
the whole approach holds also for N6=M.
Definition 2 Let x,yand θbe three real numbers and
m1∈IN×N. We define the {x, y, θ}-transformation
to be the functional which transforms the map m1
into the map m2obtained by the translation of R(m1)
to the point (x, y)followed by a rotation of θde-
grees. We will indicate it as Tx,y,θ , and we will
write m2=Tx,y,θ (m1)to indicate that m2is obtained
from m1after the application of the given {x, y, θ}-
transformation.
Definition 3 Adissimilarity function ψover IN×N
is a function
ψ:IN,N ×IN,N →R+∪ {0}
such that
• ∀m1∈IN,N ψ(m1, m1) = 0
•given two maps m1and m2and a transformation
Tx,y,θ , then ψ(m1, Tx,y,θ (m2)) is continuous with
respect to x,yand θ.
The dissimilarity function measures how much two
maps differ. In an ideal world, where robots are able to
build two perfectly overlapping maps, their dissimilar-
ity will be 0. When the maps cannot be superimposed
the ψfunction will return positive values.
Having set the scene, the map matching problem can
be defined as follows.
Given m1∈IN,N ,m2∈IN,N and a dissim-
ilarity function ψover IN×N, determine the
{x, y, θ}-transformation T(x,y ,θ)which mini-
mizes
ψ(m1, T(x,y,θ)(m2)).
The devised problem is clearly an optimization prob-
lem over R3. To solve optimization problems like this
one, different algorithms have been proposed [11] in
literature, like multipoint hill climbing or simulated
annealing. In multipoint hill climbing, a population
of random transformations is created, and each one is
update by following a gradient descent. The approach
Algorithm 2 multi-point hill climbing
Require: numSteps ≥0
Require: numBestSamples > 0
Require: samples array contains different samples
for position/rotation and is sorted according to
their dissimilarity
Ensure: samples[1] is the best sample found
1: step ←0
2: while step < numSteps do
3: clear newSamples
4: for all sin samples do
5: for all ∆sin possible position/rotation
changes do
6: Generate a new sample ns ←s+ ∆s
7: cns ←ψ(m1, Tns(m2))
8: if cns < csthen
9: Add ns to newSamples
10: else
11: Discard sample ns
12: step ←step + 1
13: samples ←newSamples
14: sort samples according to their dissimilarity
15: samples ←samples[1..numBestSamples]
is illustrated in algorithm 2. Using a set of transfor-
mations rather than a single one, the algorithm de-
creases the chances of getting trapped into local min-
ima. Simulated annealing is a well known alternative
or complementary technique. The advantage is that
in the early stage of its execution simulated anneal-
ing allows to accept samples which do not result in
an improvement in terms of the cost function. Algo-
rithm 3 shows our implementation of the simulated
annealing approach for map fusion. In addition, we
Algorithm 3 simulated annealing
Require: numSteps ≥0
Require: numBestSamples > 0
Require: samples array contains different samples
for position/rotation and is sorted according to
their fitness
Require: fitnessRatio ≥1
Ensure: samples[1] is the best sample found
1: step ←0
2: bestF itness ←csamples[1]
3: lastF itness ←+∞
4: while step < numSteps AND
lastF itness/bestF itness > f itnessRatio do
5: clear newSamples
6: for all sin samples do
7: for all ∆sin possible position/rotation
changes do
8: Generate a new sample ns ←s+ ∆s/step
9: cns ←ψ(m1, Tns(m2))
10: if cns < csthen
11: Add ns to newSamples
12: else
13: Discard sample ns
14: step ←step + 1
15: samples ←newSamples
16: sort samples according to their fitness
17: samples ←samples[1..numBestSamples]
18: lastF itness ←bestF itness
19: bestF itness ←csamples[1]
recently introduced a further algorithm [6] which per-
forms a randomized search based on random walks on
the space of possible transformations, i.e. translations
and rotations. The algorithm performs a random walk
over the space of possible transformations. The inter-
esting part is that new transformations are generated
using a Gaussian distribution whose parameters are
updated at each iteration. This idea comes from a re-
cent motion planning algorithm we recent developed
[8]. It is possible to prove that the proposed algo-
rithm is probabilistic complete, i.e. if enough time is
allotted it will find the optimal transformation which
obtains the best overlapping between the maps being
considered.
4 Numerical Results
In our implementation a map is a grid of 200 by
200 elements, whose elements can assume integer val-
ues between -255 and 255. This is actually the output
Algorithm 4 Random walk
Require: numSteps ≥0
1: k←0, tk←tstart,Σ0←Σinit , µ0←µinit
2: c0←ψ(m1, Ttstart (m2))
3: while k < numSteps do
4: Generate a new sample s←xk+vk
5: cs←ψ(m1, Ts(m2))
6: if cs< ckOR RS(tk, s) = sthen
7: k←k+ 1, tk←s, ck=cs
8: Σk←Update(tk, tk−1, tk−2, . . . , tk−M)
9: µk←Update(xk, tk−1, tk−2, . . . , tk−M)
10: else
11: discard the sample s
of the mapping system we described in [7]. According
to such implementation, positive values indicate free
space, while negative values indicate obstacles. As an-
ticipated, the absolute value indicates the belief, while
a 0 value indicates lack of knowledge. The function ψ
used for driving the search over the space Sis defined
upon a map distance function borrowed from picture
distance computation [2]. Given the maps m1and m2,
the function is defined as follows
ψ(m1, m2) = X
c∈C
d(m1, m2, c) + d(m2, m1, c)
d(m1, m2, c) = Pm1[p1]=cmin{md(p1, p2)|m2[p2] = c}
#c(a)
where
• C denotes a set of values assumed by m1or m2,
•m1[p] denotes the value cof map m1at position
p= (x, y),
•md(p1, p2) = |x1−x2|+|y1−y2|is the Manhattan-
distance between p1and p2,
•#c(m1) = #{p1|m1[p1] = c}is the number of
cells in m1with value c.
Before computing D, we preprocess the maps m1and
m2setting all positive values to 255 and all negative
values to -255. In our case then C={−255,255}, i.e.,
locations mapped as unknown are neglected. A less
obvious part of the linear time implementation of the
picture distance function is the computation of the
numerator in the d(m1, m2, c)-equation. It is based
on a so called distance-map d-mapcfor a value c. The
distance-map is an array of the Manhattan-distances
to the nearest point with value cin map m2for all
positions p1= (x1, y1):
d-mapc[x1][y1] = min{md(p1, p2)|m2[p2] = c}
The distance-map d-mapcfor a value cis used as
lookup-table for the computation of the sum over all
cells in m1with value c. Algorithm 5 gives the pseu-
docode for the three steps carried out to built it.
Algorithm 5 The algorithm for computing d-mapc
1: for y←0 to n−1do
2: for x←0 to n−1do
3: if M(x, y) = cthen
4: d-mapc[x][y]←0
5: else
6: d-mapc[x][y]← ∞
7: for y←0 to n−1do
8: for x←0 to n−1do
9: h←min(d-mapc[x−1][y] + 1, d-mapc[x][y−
1] + 1)
10: d-mapc[x][y] = min(d-mapc[x][y], h)
11: for y←n−1 downto 0 do
12: for x←n−1 downto 0 do
13: h←min(d-mapc[x+1][y] + 1, d −mapc[x][y+
1] + 1)
14: d-mapc[x][y] = min(d-mapc[x][y], h)
It can be appreciated that to build the lookup map it is
necessary just to scan the target map for three times.
In this case it is possible to avoid the quadratic match-
ing of each grid cell in m1against each grid cell in m2.
We have implemented the three algorithms illustrated
in the former section and we compared their perfor-
mance while merging different maps in terms of speed
of computation and accuracy. In addition we imple-
mented the naive brute force algorithms that tries all
the possible transformation to determine the optimal
one. The results are illustrated in table 4 where we
compare the different algorithms in terms of quality
of matching and of execution speed, while an example
of matching is illustrated in figure 4.
5 Conclusions
We have reported on our experience implement-
ing and developing different algorithms for fusing par-
tially overlapping maps produced by multiple robots
exploring different parts of the disaster area. Different
techniques have been implemented and compared over
data gathered running real robots in the IUB rescue
arena. The random walk algorithm we have recently
introduced shows promise and appears to be an inter-
esting approach to investigate.
Map Brute force Multipoint Simulated Annealing Random walk
Case 1 15493.3/3.06955 6.07066/4.14678 9.3172/3.2926 1.00072/4.4132
Case 2 43462.5/3.48718 8.97039/4.42068 12.9822/3.64833 1.3959/4.3684
Case 3 38994.7/6.52768 7.77098/6.92824 12.0962/6.68582 1.24792/7.1016
Case 4 16798.7/3.43908 7.2469/3.81709 9.73415/3.67773 1.07923/4.0440
Table 1: Comparative results. In each column the first number is the time spent (in seconds) and the second
number is the obtained dissimilarity value.
20 40 60 80 100 120 140 160 180 200
20
40
60
80
100
120
140
160
180
200
(a)
20 40 60 80 100 120 140 160 180 200
20
40
60
80
100
120
140
160
180
200
(b)
20 40 60 80 100 120 140 160 180 200
20
40
60
80
100
120
140
160
180
200
(c)
Figure 4: Different maps created by the robots and their combination obtained by our matching technique.
References
[1] T. Arai, E. Pagello, and L.E. Parker. Guest edito-
rial advances in multirobot systems. IEEE Trans-
actions on Robotics and Automation, 18(5):655–
661, 2002.
[2] A. Birk. Learning geometric concepts with an
evolutionary algorithm. In Proc. of The Fifth An-
nual Conference on Evolutionary Programming.
The MIT Press, Cambridge, 1996.
[3] A. Birk. The iub rescue arena, a testbed for rescue
robots research. In Proceedings of SSRR 2004,
2004.
[4] A. Birk, S. Carpin, and H. Kenn. The iub 2003
rescue robot team. In Robocup 2003. Springer,
2003.
[5] S. Biswas, B. Limketkai, S. Sanner, and S. Thrun.
Towards object mapping in dynamic environ-
ments with mobile robots. In Proceedings of
the IEEE/RSJ International Conference on In-
telliegent Robots and Systems, pages 1014–1019,
2002.
[6] S. Carpin and A. Birk. Stochastic map merging in
rescue environments. In Robocup 2004. Springer,
2004. Accepted for pubblication.
[7] S. Carpin, H. Kenn, and A. Birk. Autonomous
mapping in the real robot rescue league. In
Robocup 2003. Springer, 2003.
[8] S. Carpin and G. Pillonetto. Motion planning
using adaptive random walks. IEEE Transactions
on Robotics and Automation, To appear.
[9] H. Kenn, S. Carpin, M. Pfingsthorn, B. Liebald,
I. Hepes, C. Ciocov, and A. Birk. Fast-robots: A
rapid-prototyping framework for intelligent mo-
bile robots. In Proceedings of the 3rd Interna-
tional Conference on Artificial Intelligence and
Applications, pages 76–81. ACTA Press, 2003.
[10] L.E. Parker. Current state of the art in dis-
tributed autonomous mobile robots. In L.E.
Parker, G. Bekey, and J.Barhen, editors, Dis-
tributed Autonomous Robotic Systems 4, pages 3–
12. Springer, 2000.
[11] S. Russel and P. Norwig. Artificial Intelligence -
A modern approach. Prentice Hall International,
1995.