Mapping with an Autonomous Car
Pierre Lamon∗ Cyrill Stachniss∗ Rudolph Triebel† Patrick Pfaff†
Christian Plagemann† Giorgio Grisetti† Sascha Kolski∗ Wolfram Burgard† Roland Siegwart∗
∗ Eidgenössische
Technische Hochschule (ETH), Inst. of Robotics and Intelligent Systems, 8092 Zurich, Switzerland
of Freiburg, Department of Computer Science, D-79110 Freiburg, Germany
† University
Abstract— In this paper, we present an approach towards
mapping and safe navigation in real, large-scale environments
with an autonomous car. The goal is to enable the car to autonomously navigate on roads while avoiding obstacles and while
simultaneously learning an accurate three-dimensional model of
the environment. To achieve these goals, we apply probabilistic
state estimation techniques, network-based pose optimization,
and a sensor-based traversability analysis approach. In order
to achieve fast map learning, our system compresses the sensor
data using multi-level surface maps. The overall system runs on
a modified Smart car equipped with different types of sensors.
We present several results obtained from extensive experiments
which illustrate the capabilities of our vehicle.
I. I
Learning models of the environment and safely navigating
based on that models is a fundamental task of mobile robots.
Many researcher focused on learning map of indoor as well
as outdoor scenes. Recently, modified cars became a new
platform in robotics. Compared to standard robots, cars offer
the possibility to travel longer distances, carry more sensors,
and thus being more suitable for mapping large areas. On the
one hand, this offers the opportunity to address robotic tasks on
a larger scale but on the other hand requires efficient solutions
to common problems like mapping or localization.
In this paper, we describe our modified Smart car equipped
with different sensors to monitor the environment. We present
our approach to mapping large outdoor areas with that vehicle.
Our map representation can be seen as an extension of
elevation maps that allows us to model different layers in the
environment and therefore different drivable areas like, for example, bridges or underpasses. It overcomes serious limitations
of elevation maps and is able to model the environment in an
adequate way needing only a few more memory resources
compared to elevation maps.
The reminder of this paper is organized as follows. After
the discussion of related work, we present detail about our
modified Smart car. Then, we will explain our approach to
localization using different sensors. In Section V, we introduce
our model of the environment and present a method to learn
this model. Finally, we present experiments illustrating the
maps obtained with our robot in real world experiments.
II. R W
The problem of learning models of the environment has
been studied intensively in the past. Most approaches generate
two-dimensional models from range sensor data and a series of
different approaches have been developed [22, 24, 37, 8, 7, 40,
11, 19]. In the literature, those approaches are often referred
to as solutions to the simultaneous localization and mapping
(SLAM) problem. Recently, several techniques for acquiring
three-dimensional data with 2d range scanners installed on
a mobile robot have been developed. A popular approach is
to use multiple scanners that point towards different directions [41, 13, 42]. An alternative is to use pan/tilt devices that
sweep the range scanner in an oscillating way [32, 26]. More
recently, techniques for rotating 2d range scanners have been
developed [17, 50].
Many authors have studied the acquisition of threedimensional maps from vehicles that are assumed to operate
on a flat surface. For example, Thrun et al. [41] present an
approach that employs two 2d range scanners for constructing
volumetric maps. Whereas the first is oriented horizontally
and is used for localization, the second points towards the
ceiling and is applied for acquiring 3d point clouds. Früh and
Zakhor [10] apply a similar idea to the problem of learning
large-scale models of outdoor environments. Their approach
combines laser, vision, and aerial images. Furthermore, several authors have considered the problem of simultaneous
localization and mapping (SLAM) in an outdoor environment [5, 12, 43]. These techniques extract landmarks from
range data and calculate the map as well as the pose of the
vehicles based on these landmarks. Our approach described
in this paper does not rely on the assumption that the surface
is flat. It uses surface maps to capture the three-dimensional
structure of the environment and is able to estimate the pose
of the robot in all six degrees of freedom.
One of the most popular representations are raw data points
or triangle meshes [1, 20, 32, 44]. Whereas these models are
highly accurate and can easily be textured, their disadvantage
lies in the huge memory requirement, which grows linearly in
the number of scans taken. Accordingly, several authors have
studied techniques for simplifying point clouds by piecewise
linear approximations. For example, Hähnel et al. [13] use a
region growing technique to identify planes. Liu et al. [21]
as well as Martin and Thrun [23] apply the EM algorithm to
cluster range scans into planes. Recently, Triebel et al. [46]
proposed a hierarchical version that takes into account the
parallelism of the planes during the clustering procedure. An
alternative is to use three-dimensional grids [27] or tree-based
representations [34], which only grow linearly in the size of
the environment. Still, the memory requirements for such maps
in outdoor environments are high.
In order to avoid the complexity of full three-dimensional
maps, several researchers have considered elevation maps as an
attractive alternative. The key idea underlying elevation maps
is to store the 2 21 -dimensional height information of the terrain
in a two-dimensional grid. Bares et al. [2] as well as Hebert
et al. [14] use elevation maps to represent the environment
of a legged robot. They extract points with high surface
curvatures and match these features to align maps constructed
from consecutive range scans. Singh and Kelly [36] extract
elevation maps from laser range data and use these maps
for navigating an all-terrain vehicle. Ye and Borenstein [51]
propose an algorithm to acquire elevation maps with a moving
vehicle carrying a tilted laser range scanner. They propose
special filtering algorithms to eliminate measurement errors
or noise resulting from the scanner and the motions of the
vehicle. Wellington et al. [49] construct a representation based
on Markov Random Fields. They propose an environment
classification for agricultural applications. They compute the
elevation of the cell depending on the classification of the
cell and its neighbors. Compared to these techniques, the
contribution of the mapping approach presented in this paper
lies in two aspects. First, we classify the points in the elevation
map into horizontal points seen from above, vertical points,
and gaps. This classification is important especially when a
rover is deployed in an urban environment. In such environments, typical structures like the walls of buildings cannot be
represented in standard elevation maps. Second, we describe
how this classification can be used to improve the matching
of different elevation maps.
In the context of autonomous cars, a series of successful
systems [45, 3, 48] have been developed for the DARPA
Gran Challenge [4], which was a desert race for autonomous
vehicles along an approximatively 130 mile course. As a result
of this challenge, there exist autonomous cars that reliably
avoid obstacle and navigate at comparably high speeds. The
focus of the Gran Challenge was to finish the race as quickly as
possible whereas certain issues like building consistent largescale maps of the environment have been neglected since they
where not needed for the race. Our approach towards mapping
large areas therefore has a different aim compared to the
vehicles participating to the Gran Challenge. Nevertheless, our
Smart car also benefited from different techniques used within
the Gran Challenge. We apply a similar approach to follow a
given trajectory than the winning vehicle Stanley [45].
power steering The power steering motor can deliver
enough torque to steer the car. So, it is possible to ”steer
by wire” with minor modification.
• auto gearshift No additional modification is required to
switch gears while the car is driving.
• easy access to the CAN bus Important sensory information such as steering wheel angle and wheels velocities
and car status are directly accessible.
All these features facilitate the process of modifying such a
vehicle for autonomous driving. The fully equipped SmartTer
is depicted in Fig. 1 and 2.
•
Fig. 1.
SmartTer front view
Fig. 2.
SmartTer side view
III. V D
Our vehicle, called SmartTer (Smart all Terrain), is a standard Smart car that has been enhanced for fully autonomous
driving in both urban and non-urban environments. The model
is a Smart fortwo coupé passion of year 2005, which is
equipped with a 45 kW engine. This model has been chosen
because it gathers several advantages:
• compact and light weight Such characteristics allow us to
easily transport the vehicle on a trailer to the testing area1
and fits in our lab’s mechanical workshop. Furthermore,
its light weight yields fair locomotion performance in
rough terrain.
1 Because the car has been deeply modified, it is not allowed to drive on
public streets.
A. Vehicle modifications
In order to enhance the original model for autonomous
driving, several modifications have been performed on the car.
This section describes the mechanical and electrical changes
that were necessary.
Computer CAN
Vehicle CAN
ECU
Switch
• Wheels with better grip and larger diameter have been
mounted. This yields to a higher ground clearance and much
better traction in rough terrain.
• A 24V power generator has been installed in order to
power all the electronic devices and additional actuators.
The generator is driven by a belt and pulley that is directly
connected to the engine output axis (which is situated under
the trunk, at the rear of the car). Two batteries placed in
the trunk act as an energy buffer. They have a total capacity
of 48Ah and are continuously recharged when the engine is
running.
• To provide a clean interface to the vehicle, we integrated
an automotive ECU designed for highly reliable real-time
applications. This ECU has four CAN interfaces as well as
a wide variety of analog and digital I/O. In the vehicle, it
is sitting between the computers on the one hand and the
vehicle CAN bus and our actuators on the other hand. In
this ECU, we implemented a state machine that allows us to
enable different modes of operation (STOP, PAUSE and RUN)
via wired buttons as well as by a wireless remote control.
Besides these emergency buttons, the ECU handles timeouts
in the command coming from the computers and ensures a
safe vehicle state whenever those commands are missing.
• The power steering system applies a torque Madd on the
steering column that allows to minimize the effort required
by the driver to steer the wheels (see Fig. 3). This task
is fulfilled by the driving assistance unit (DA unit), which
minimize the torque sensed in the steering column by applying
an appropriate voltage to the power steering motor. The gain
of the DA controller is set based on the car’s velocity, which
is broadcasted on the CAN bus of the vehicle. In order
to use the power steering motor for ”steering by wire”, a
specific electronic board has been designed and inserted in the
vehicle’s control loop. The Vehicle CAN bus was disconnected
from the DA and routed to a computer (Rack0 in Fig. 3) so
that the steering angle a s can be read and used by our own
controller. An additional CAN bus, called Computer CAN,
allows to feed the DA unit with the minimal set of CAN
messages required for the proper operation of the unit i.e.
engine status and car velocity messages. The same bus is
used to send commands to a CAN to analog module which
”fakes” the torque voltage needed by the DA unit. Finally, the
steering angle is controlled with a PID controller running on
the control computer, which minimizes the steering angle error
e = at − a s , where at is the desired steering angle. A switch
mounted next to the steering wheel, enables the selection of
manual or controlled mode.
• A system of cable and pulleys is used to activate the break
pedal. The servo motor that pulls the cable is placed under the
driver’s seat and is commanded using the Computer CAN.
• A dedicated electronic board has been developed to enable
the use of a computer to set the gas command. The command
voltage, originally provided by a potentiometer embedded in
the gas pedal, is simply generated by a CAN to analog device.
This device receives commands through the Computer CAN
bus. A button mounted inside the car allows us to choose
between normal or controlled mode.
Rack0
PID control
minimize e = a t− a s
CAN to analog
Steering
electronic board
Fig. 3.
Steering
sensor
Torque
voltage
Torque
sensor
Motor
M add
DA Unit
Velocity
CAN
Steer by wire system
B. Sensors
The sensors used for outdoor applications must meet strong
requirements such as mechanical robustness, water/dust proofness and limited sensitivity to sun light. Thus, in comparison
with indoor applications, the choice is limited and the selection
of optimal sensors must be done carefully. In this section, all
the sensors that have been mounted on the car are described.
• Three navigation laser scanner sensors (SICK LMS291S05, outdoor version, rain proof, low sensitivity to sun light)
These sensors are used mainly for obstacle avoidance and local
navigation. One sensor is placed at the lower front slightly
looking down and the two others on the roof, looking to the
sides and slightly down. This ’A’ shape configuration enables a
large field of view and is well adapted to all kind of terrains.
The three sensors are visible in Fig. 1 and Fig. 4 depicts a
closer view of the sensors mounted on the roof.
Fig. 4.
Sensors mounted on the roof
• Rotating 3D scanner This is a custom made sensor that is
mounted on the roof (see Fig. 5). In order to acquire 3D scans
of the environment, two SICK LMS291-S05 are mounted
sideways on a plate rotating around the vertical axis. A signal
is triggered each time the plate performs a full turn. That way
it is possible to know its angular position at each time (using
the rotational velocity of the motor and the elapsed time since
the last trigger). The data and power lines of the two SICK
sensors go through a slip ring, which is mounted along the
rotation axis. The 3D scans are mainly used to compute a
consistent 3D digital terrain model of the environment.
the embedded sensors to provide the filtered attitude of the
vehicle (roll, pitch, heading to true north) and the position
(latitude, longitude and altitude). However, this sensor is
not well adapted for a ground vehicle driving at low speed
because of a bad signal/noise ratio of the inertial sensors.
Furthermore, the earth magnetic field can be strongly distorted
when the vehicle drives next to iron structures. This causes
large error on the estimated heading. For better accuracy and
robustness, we implemented our own localization algorithm,
which is presented in section IV. The algorithm combines the
measurements taken by the IMU, the differential gps, the car
sensors and the optical gyroscope.
C. Computational power and software architecture
Fig. 5.
Rotating scanner and omnidirectional camera
• Omnidirectional camera (Sony XCD-SX910CR, focal length
12mm, with parabolic mirror and dust protection) The setup is
mounted in front of the rotating scanner (see Fig. 5). It enables
the acquisition of panoramic images that are used to supply
texture information for the 3D digital terrain maps. The images
are also exploited to detect artificial object in the scene.
• Monocular camera (Sony XCD-SX910CR, focal length
4.2mm) This camera is placed in the car, behind the wind
shield. Like the omnidirectional camera, it is used to detect
artificial object in the scene.
• Differential GPS system (Omnistar Furgo 8300HP) This
device provides the latitude, longitude and altitude together
with the corresponding standard deviation and the standard
NMEA messages with a frequency of 5 Hz. When geostationary satellites providing the GPS drift correction are visible
from the car, the unit enters the differential GPS mode (high
precision GPS). When no correction signal is available, the
device outputs standard precision GPS.
• Car sensors The measurements taken by the car sensors are
reported with a frequency of 100 Hz and are accessible via
the CAN bus of the vehicle. The car provides motor RPM,
temperatures, steering wheel angle, wheel velocities, gas pedal
position, and some further status information.
• Optical gyroscope (KVH DSP3000) This fibre optic gyroscope can measure very low rotation rates with a frequency
of 100 Hz. It is possible to use it as a heading sensor for a
comparably long period of time by integrating the angular rate.
Contrary to compasses, the integrated heading is not sensitive
to earth magnetic field disturbances. Finally, this unit offers
much better accuracy than mechanical gyro and is not sensitive
to shocks because it contains no moving parts.
• Inertial measurement unit (Crossbow NAV420, waterproof)
This unit provides sensor data with a frequency of 100 Hz
that contains the measurements from 3 accelerometers, 3
gyroscopes, a 3D magnetic field sensor and a GPS receiver.
The internal digital signal processor of the unit combines
The system consists of four compact PCI computer racks
communicating trough a gigabit Ethernet link. All the racks
have the same core architecture which is a Pentium M processor running at 2GHz, equipped with 1.5GB of RAM, Gigabit
and Fast Ethernet, two RS232 serial ports, USB ports and a
30GB hard disk. Each rack is dedicated to specific tasks and
acquires measurement from different sensors as it is depicted
in Fig. 6.
Vehicle sensors
and actuators
Optical gyro
IMU
DGPS
Vehicle (rack0)
Camera
Omnicam
3D Mapping (rack1)
Navigation sicks
Rotating sicks
Scene interpretation (rack2)
Fig. 6.
Architecture of the system
The computer racks run the Linux operating system and
the software architecture is based on both GenoM [9] and
Carmen [25] robotic software architectures. The functional
modules running on different computers exchange data using
the Inter Process Communication (IPC) [35]. To guarantee
that the time stamp associated to each data packet is globally consistent, the CPU clocks are synchronized using the
Network Time Protocol Daemon (NTPD). In order to reduce
communication delays, the architecture has been designed in
such a way that it minimizes the amount of transmitted data.
The Vehicle rack is endowed with a CAN interface that
is used to access the vehicle CAN bus. The measurements
of the internal car sensors are continuously read and the car
commands such as the vehicle velocity and steering angle are
passed to the ECU. The other sensors used for localization i.e.
the DGPS, the IMU and the optical gyro are connected to the
rack through RS232 serial ports. Finally, the measurements of
the three navigation scanners are acquired through high speed
RS422 serial ports and the images of the navigation camera
grabbed using an IEEE1394 interface. The main tasks of the
Vehicle rack are a) to keep track of the vehicle position b) to
control its motion (steering, breaking, velocity control) and c)
obstacle avoidance and path planning.
A 3D map of the traversed environment is updated on the
3D Mapping rack using the measurements acquired by the
rotating 3D scanner. Like on the Vehicle rack, the scanner data
is acquired through RS422 ports. The index signal is detected
using a multi-purpose IO board and the motor speed is set
using an RS232 interface. For more realistic rendering, the
texture information acquired by the omnidirectional camera is
mapped on the 3D model as it is depicted in Fig. 7
zgps
xgps
y
= gps
zgps
ψgps
x
y
=
z + vgps
ψ n
n
(1)
In order to reject the erroneous fixes caused by multi-path
and satellite constellation changes, we use the following
gating function [39]
zT (k) · S −1 · z(k) ≤ γ,
•
(2)
where S is the innovation covariance of the observation.
The value of γ is set to reject innovations exceeding the
95% threshold.
Car sensors For localization, we use the velocity ẋodo
of the car from the CAN bus. Unlike in the case of a
flight vehicle, the motion of a wheeled vehicle on the
ground is governed by nonholonomic constraints. Under
ideal conditions, there is no side slip and no motion
normal to the ground surface: the constraints are written
as ẏodo = 0 and żodo = 0. In any practical situation, these
constraints are often violated. Thus, as in [6], we use zero
mean Gaussian noise to model the extent of constraint
violation. The measurement model for the odometry is
then expressed as
zodo
ẋodo
= 0
0
h iT ẋ
n
= Cb ẏ + vodo ,
ż n
b
(3)
Fig. 7. 3D scan with texture. One recognize a tree on the left hand side,
yellow street markings (-x- shape), a pink box (next to the street markings)
and persons (e.g. on the right, with arms extended)
where Cbn is the matrix for transforming velocities expressed in the car’s frame b into the navigation frame n.
The observation noise covariance is obtained using
Finally, the scene analysis is performed on the Scene
interpretation rack. The artificial objects are extracted from
the textured 3D maps and raw omnicam images and their
representation and location are stored in memory as the vehicle
moves along the path.
o h iT
n
Rodo = Cbn · diag σ2enc , σ2vy , σ2vz Cbn ,
(4)
zopt = ψopt = ψ + bopt + vopt ,
(5)
•
IV. L
Our localization algorithm is based on the inverse form of
the Kalman filter, i.e., the information filter. This filter has the
property of summing information contributions from different
sources in the update stage. This characteristic is advantageous
when many sensors are involved, which is the case in our
system. The localization is done in two steps, namely the state
prediction and the state update.
A. State Update
The car state is updated using the measurements taken by
several complementary sensors.
• Differential GPS We use the WGS-84 standard to convert
the GPS coordinates in Cartesian coordinates (x, y, z)
expressed in a local navigation frame n. The heading to
true north ψ is also output by the unit and is available in
the RMC message. The measurement model for the GPS
is
•
where σ2enc is the variance of the car velocity and σ2vy ,σ2vz
are the amplitude of the noise related to the constraints.
Optical gyroscope The measurement model for the
optical gyroscope is
where bopt is the angular offset between the heading to
true north ψ and the actual measurement of the gyro.
Inertial measurement unit For the reasons mentioned
before, we disabled the GPS and used the unit in angle
mode: the unit outputs the filtered roll, pitch and heading
to magnetic north. The measurement model for this sensor
is
#
"
"
#
φimu
φ
zimu =
=
+ vimu
(6)
θimu n
θ n
ψimu = ψ + bimu + vhimu ,
(7)
where bimu is the angular offset between ψ and the heading
measurement provided by the IMU.
B. Prediction model
µ
We apply a standard prediction model for the car which has
the following form
0
F x . . .
..
. Fy
xk+1 =
(8)
.. · xk + wk .
Fz
.
0
. . . I5x5
σ
The state vector x contains the position and velocity expressed in the navigation frame n, the orientation of the vehicle
represented by the three angles roll φ, pitch θ and yaw ψ and
the two biases bimu and bopt :
x=
h
x
ẋ
y
ẏ
z ż φ
θ
ψ bimu
bopt
iT
(9)
The position of the vehicle at time k + 1 is predicted using
the position and velocity at time k. This takes the form of a
first order process written as
"
#
1 h
F x,y,z =
(10)
0 1 k
where h denotes the sampling period (h = 10 ms). All the
other elements of the state vector are predicted as simple
Gaussian processes. The covariance matrix Qk associated to
the state prediction process is represented as
Qk = G k ·
qk · GTk
(11)
where qk is a diagonal matrix containing the variances of
the elements of the state vector
n
o
q x = diag σ2x σ2y σ2z σ2φ σ2θ σ2ψ σ2bimu σ2bopt
(12)
Finally, the matrix mapping the noise covariance qk to the
process covariance Qk is written as
where
Gk =
gx
..
.
0
..
.
...
gy
gz
. . . diag5x5 (h)
0
g x,y,z =
"
h2 /2
h
#
(13)
k
(14)
Z
d
X
Fig. 8. Example of different cells in an MLS Map. Cells can have many
surface patches (cell A), represented by the mean and the variance of the
measured height. Each surface patch can have a depth, like the patch in cell
B. Flat objects are represented by patches with depth 0, as shown by the patch
in cell C.
of a vertical interval starting at µ and pointing downwards.
The motivation behind this is to represent flat objects, such as
street, ground etc., and non-flat objects such as buildings in the
same framework. A surface patch of a building will usually
have a large depth value, while the depth of a street patch
is in general 0. Figure 8 illustrates different possible surface
patches in a MLS map.
B. Traversability Analysis and Feature Extraction
One main goal of the MLS map representation is the
ability to classify the terrain in which the robot moves. This
classification is important to use the map for path planning.
Another design goal for the MLS maps was the possibility
to match local MLS maps to one big map, without relying
on the raw point cloud data. This matching process is usually
performed using the iterative closest point algorithm (ICP).
The map matching using ICP has been shown to be very
efficient when applying it to subsets of features rather than
to the entire data set [28, 33]. Therefore, we first classify
the surface patches into the three classes ’traversable’, ’nontraversable’ and ’vertical’. Then we subsample each of these
classes and look for corresponding patches in the other map.
This will be described in the next section. For the patch
classification, we define vertical patches as those having nonzero depth values. A patch is considered as traversable if it is
flat (the depth is 0) and the distance between its height and
the height of the neighboring patches does not exceed 10cm.
All other flat patches are classified as non-traversable.
V. M B
A. Map Representation
C. Map Matching
To represent the 3D data acquired with the rotating laser
scanners, we use Multi-Level Surface (MLS) maps [47]. These
maps can be regarded as an extension to elevation maps [2,
14, 36, 31, 29, 18]. The idea here is that each cell in a 2D grid
can contain many representations of 3D objects called surface
patches. A surface patch consists of a mean µ and a variance
σ, as well as a depth value d. Here, µ and σ define a Gaussian
distribution that reflects the uncertainty of the measured height
of an object’s surface. The depth value d represents the length
To calculate the alignments between two local MLS maps
calculated from individual scans, we apply the ICP algorithm.
The goal of this process is to find a rotation matrix R and
a translation vector t that minimize an appropriate error
function. Assuming that the two maps are represented by a
set of Gaussians, the algorithm first computes two sets of
feature points, X = {x1 , . . . , xN1 } and Y = {y1 , . . . , yN2 }. In
a second step, the algorithm computes a set of C index pairs
or correspondences (i1 , j1 ), . . . , (iC , jC ) such that the point xic
in X corresponds to the point y jc in Y for c = 1, . . . , C. Then,
in a third step, the error function e defined by
e(R, t) :=
C
1X
(xi − (Ry jc + t))T Σ−1 (xic − (Ry jc + t)), (15)
C c=1 c
is minimized. Here, Σ denotes the covariance matrix of the
Gaussian corresponding to each pair (xi , yi ). In other words,
the error function e is defined by the sum of squared Mahalanobis distances between the points xic and the transformed
point y jc . In the following, we denote this Mahalanobis distance as d(xic , y jc ).
In principle, one could define this function to directly
operate on the Gaussians when aligning two different MLS
maps. However, this would result in a high computational
effort, especially if the maps are very big and many Gaussians are stored. Additionally, we need to take care of the
problem that the intervals corresponding to vertical structures
vary substantially depending on the view-point. Moreover, the
same vertical structure may lead to varying heights in the
surface map when sensed from different locations. In practical
experiments, we observed that this introduces serious errors
and often prevents the ICP algorithm from convergence. To
overcome this problem, we separate Eq. (15) into three components each minimizing the error over the individual classes
of points. These three terms correspond to the three individual
classes, namely surface patches corresponding to vertical objects, traversable surface patches, and non-traversable surface
patches.
Let us assume that uic and u′jc are corresponding points,
extracted from vertical objects. The number of points sampled from every interval classified as vertical depends on
the height of this structure. In our current implementation,
we typically uniformly sample four points per meter. The
corresponding points vic and v′jc are extracted from traversable
surface patches, wic and w′jc are extracted from not traversable
surfaces. The resulting error function then is
e(R, t) =
C1
X
dv (uic , u′jc ) +
d(vic , v′jc ) +
{z
vertical cells
} |
C3
X
d(wic , w′jc ). (16)
c=1
c=1
c=1
|
C2
X
{z
traversable
} |
{z
non-traversable
}
In this equation, the distance function dv calculates the Mahalanobis distance between the lowest points in the particular
cells. To increase the efficiency of the matching process, we
only consider a subset of these features by sub-sampling.
D. Loop Closing
Usually, the map matching process described in the previous
section works well in cases where the robot travels only a
short distance. However, for longer distance the accumulated
local matching errors may be so large, that the overall map
becomes inconsistent. This becomes visible especially when
the robot returns to areas where it has been before, which is
usually called loop closing. In our case, this matching error
is bounded due to the high accurate GPS based global localization described before. However, a smaller matching error
still remains and is visible in the maps. Therefore, we apply a
global pose estimation technique similar to the one presented
in [30]. For the details of this technique we refer to [47].
We only note that it is based on a non-linear minimization
of the difference between the 3D transformation parameters
(x, y, z, ϕ, ϑ, ψ) resulting from the robot poses and those given
by local pose constraints between overlapping local maps. The
local pose constraints are obtained by applying ICP matching
between overlapping local maps.
VI. P P
In order to acquire data about the environment, the car
needs to drive through its environment and visit the different
locations. This can be done by manually driving the car or in
a more challenging way by autonomous navigation. A realistic
approach is to provide a route description to the car and let it
run autonomously along that route. However, it is not sufficient
for safe navigation to only follow a predefined route since
obstacle might block the route and the car has to plan an
admissible trajectory around them.
The current version of our planning system follows the
ideas of Kelly and Stentz [15] and is closely related to the
approach of Thrun et al. [45]. The idea is to generate variations
of the originally specified route. The robot then evaluates
the different trajectories and selects the best admissible one
given a cost function. The trajectories are evaluated according
to traversability, curvature, and alignment with the specified
route. The chosen trajectory is then sent to a low level
controller, that keeps the car on the selected trajectory. The
controller itself does not change the speed of the vehicle, it
only adapts the steering angle of the car. The bigger the error
between the car and the trajectory it should follow, the more
the car tries to steer towards the given trajectory. We started
with a controller that was also applied by Thrun et al. [45]
which is given by the control low
!
x(t)
,
(17)
α(t) = φ(t) + atan κ ·
v(t)
where α refers to the new steering command, φ(t) to the
difference of the current steering angle and the orientation of
the trajectory the car should follow. x(t) refers to the current
distance between the position of the robot and the trajectory
and v(t) describes the velocity of the car. The control gain κ
influences, how intensive the car steers back to the trajectory.
A too high value leads to oscillation and a too small value
leads to a comparably slow convergence rate to the reference
trajectory. We determined the gain through experiments and
obtain good results for κ ∈ [0.2, 0.4].
This controller follows the given trajectory but can lead
to small overshoots in curves and to slightly shaky steering
commands of the car. To overcome this problem, we do not
use the raw velocity information but apply a post filtering
in a Kalman filter fashion. This leads to smoother velocity
estimates and helps to stabilize the steering command. We
furthermore do not compute φ(t) only based on the closest
point on the route but rather averaging of a few poses in
front of the car. This compensates for slightly un-smooth input
trajectories and reduces the risk of slight overshoots in curves.
VII. S T
The need for a sophisticated simulation environment for
our autonomous vehicle mainly originated in two facts. First,
the complex software architecture developed by several researchers at different labs had to be tested as a complete
system as early as possible to verify the appropriateness of
interfaces, interaction protocols, and data rates. Second, as
the development of software and hardware was conducted
in parallel from the early beginning of the project on, there
was an inherent need for physically plausible data sets to
test the algorithms, especially in the area of 3d mapping and
navigation.
As a consequence, we have built a 3d simulation environment for our autonomous vehicle, its main sensors, and
the outdoor terrain. An example for such a simulation is
depicted in Figure 9. The developed system is based on the
Gazebo simulator [16], which is part of the Player/Stage
project. Gazebo uses the Open Dynamics Engine [38] to
yield physically plausible simulations in three dimensions by
taking into account friction, forces, and rigid body dynamics.
It includes a wide variety of pre-build models for robotics
applications and is relatively easy to extend. We developed a
number of plug-in models for our autonomous smart car and
its primary sensors which are three static laser range finders,
two rotating laser range finders, a GPS and inertial sensor.
Fig. 9. The simulated autonomous Smart car in outdoor terrain (left). The
simulation includes two rotating laser range finders mounted on top of the
vehicle (right). The laser beams are visualized in blue.
Instances of these models can be configured and inserted
into a simulated world using a simple XML-based description
language. At the same time, the plug-in models implement the
necessary interfaces and IPC-based communication protocols
to our navigation and mapping system so they can readily
be exchanged for real hardware components. There are no
simulator specific message types build into the overall system
to ensure that the architecture is clearly focused on the real
application domain.
the real vehicle. The right image on Figure 10, for example,
depicts the simulated Smart car driving on a surface model that
has automatically been constructed from real data acquired at
an outdoor test site.
Fig. 10. The simulated environments can be composed of simple geometric
objects (left) or can be automatically build from 3d laser range finder data
gathered by the real vehicle (right).
B. Experiences with the Simulator
There are often controversial discussions, whether the
achievements possible through simulation are worth the efforts
necessary for developing and maintaining the simulator itself.
From our experience, one should not spend an excessive
amount of time on optimizing system parameters in simulation since the real system typically differs substantially in
these aspects. On the other hand, the development of the 3d
mapping capabilities, the navigation system, and especially the
combination of both in one control loop was clearly facilitated
by the simulation system.
For the 3d mapping algorithms, the main benefits lay in
the possibility to set up simple geometric environments and
to compare the mapping results with the known ground truth.
Additionally, by simulating a moving vehicle with its physical
properties we were able to get an intuition on how accurate the
localization system has to be for achieving dense and accurate
maps. It was also relatively easy to compare the results for
different sensor placements, configurations, and data rates.
For the development of the navigation system, the availability of simple geometric environments was less important
as this could be simulated more easily and faster by a simple
planar simulation directly build into the navigation module.
Far more important was the possibility to test the navigation
algorithm in a dynamic setting together with the real local
traversability maps calculated online. This could neither have
been achieved by replaying real log files nor by using less
realistic simulation.
VIII. E
A. The Simulated Environment
A. Localization
In general, there are several different ways how the simulated environment can be specified. For testing basic navigation capabilities, the simulator supports a flat ground plane
and simple geometric objects as obstacles, see the left image of
Figure 10. More complex and realistic ground surfaces can be
defined in terms of elevation maps or surface maps. By using
the interface to the surface map data structure, one can run
simulation experiments on terrain that has been traversed with
Our approach to localization has been extensively tested and
proved to be accurate and reliable in an urban environment. A
typical result obtained during the validation phase is depicted
in Fig. 11. The figure represents the estimated trajectory of the
car overlayed on the ortho-photo of the EPFL campus. During
the experiment, the car drove on areas were GPS was not
available or of bad quality (close to buildings, underground,
along narrow alleys bordered with trees, etc.). However, the
Standard deviation for X,Y
localization algorithm was able to cope with GPS faults and
provided accurate positioning estimation, such as depicted in
Fig. 12.
0.7
X sigma
Y sigma
0.6
Sigma [m]
0.5
0.4
c
0.3
0.2
b
0.1
a
0
0
50
100
150
200
Time [s]
250
300
350
400
Fig. 13. Standard deviation along the north (x) and west axis (y) for the
trajectory depicted in Fig. 12. The standard deviation increases when GPS
quality is poor and decreases as soon as it gets better. The labels a,b and c
corresponds to the regions marked in Fig. 12
Fig. 11. Overlay of the estimated trajectory on the ortho-photo of EPFL.
The areas where the GPS was not available are highlighted. The total travelled
distance was 2350m.
GPS faults and occlusions
40
XY estimated
GPS measurements
a
30
20
c
y[m]
10
still providing sufficient accuracy. Additionally, they show that
our representation is well-suited for global pose estimation and
loop closure. Furthermore we show that our representation is
easy to apply to our simulator.
In the experiment we acquired 312 local point clouds
consisting of 22,700,000 data points. The area scanned by the
robot spans approximately 250 by 200 meters. During the data
acquisition, the robot traversed three nested loops with a length
of approximately 1,200m. Figure 14 shows a top view of the
resulting MLS map with a cell size of 50cm x 50cm and 3
cutouts with a visualized smart. The yellow/light grey surface
patches are classified as traversable. It requires 17.15 MBytes
to store the computed map, where 36% of 200,300 cells are
occupied. Compared to this the storage of the 22,700,000 data
points requires 544,8 Mbytes.
0
IX. C
-10
b
-20
-30
-200
-150
-100
-50
x[m]
0
50
100
Fig. 12.
The graph represents a part of the trajectory depicted in Fig.
11. In this urban environment, the GPS signal is disturbed by many objects
(trees, buildings, etc.) and GPS faults are of high amplitude. The localization
algorithm was able to reject erroneous GPS fixes and to provide accurate
estimations. The labels a,b and c mark areas where GPS is of very poor
quality (a, b) or unavailable (c).
The uncertainty associated to the pose estimation mainly
depends on the GPS fixes quality. As depicted in Fig. 13, the
standard deviation is low when differential GPS is available
(∼ 3 cm) but increases as soon as fixes become unavailable
(up to 60 cm).
B. Mapping
To acquire the data, we steered the robotic car over an military test site. On its path, the robot encountered three nested
loops. The goal of these experiments is to demonstrate that
our representation yields a significant reduction of the memory
requirements compared to a point cloud representation, while
In this paper, we presented our approach to mapping of
large-scale areas using an autonomous car. We first described
our modified Smart car and setup. Then, we presented our
approach to localization which is based on an information
filter that merges the information obtained by a variety of
different sensors. We furthermore presented our compact map
model that is suitable to model outdoor environment in an
appropriate way. We showed how to construct a model given
a set of smaller map build on the fly. We describe our
approach to consistently merge the individual maps into a
global representation. Our approach has been implemented and
tested using a real car equipped with different types of sensors.
All experiments presented in this paper show the result of real
world data obtained with this robot.
A
This work has partly been supported by EC under contract
number FP6-IST-027140-BACS, FP6-004250-CoSy, and FP62005-IST-5-muFly as well as by the German Research Foundation (DFG) within the Research Training Group 1103 and
under contract number SFB/TR-8. The authors would like to
thank Mike Montemerlo for providing extremely helpful hints
in the context of the navigation module.
Fig. 14. The left handed image shows a top view of the resulting MLS map of a military test site with a cell size of 50cm x 50cm. The area scanned by
the robot spans approximately 250 by 200 meters. During the data acquisition, the robot traversed three nested loops with a length of approximately 1,200m.
On the right hand side three cutouts with a visualized smart are depicted. The yellow/light grey surface patches are classified as traversable.
R
[1] P. Allen, I. Stamos, A. Gueorguiev, E. Gold, and P. Blaer. Avenue:
Automated site modeling in urban environments. In Proc. of the 3rd
Conference on Digital Imaging and Modeling, pages 357–364, 2001.
[2] J. Bares, M. Hebert, T. Kanade, E. Krotkov, T. Mitchell, R. Simmons,
and W. R. L. Whittaker. Ambler: An autonomous rover for planetary
exploration. IEEE Computer Society Press, 22(6):18–22, 1989.
[3] L.B. Cremean, T.B. Foote, J.H. Gillula, G.H. Hines, D. Kogan, K.L.
Kriechbaum, J.C. Lamb, J. Leibs, L. Lindzey, C.E. Rasmussen, A.D.
Stewart, J.W. Burdick, and R.M. Murray. Alice: An information-rich
autonomous vehicle for high-speed desert navigation. Journal of Field
Robotics, 2006. Submitted for publication.
[4] DARPA.
Darpa gran challenge rulebook.
Website, 2004.
http://www.darpa.mil/grandchallenge05/Rules 8oct04.pdf.
[5] G. Dissanayake, P. Newman, S. Clark, H.F. Durrant-Whyte, and
M. Csorba. A solution to the simultaneous localisation and map building
(SLAM) problem. IEEE Transactions on Robotics and Automation,
17(3):229–241, 2001.
[6] G. Dissanayake, S. Sukkarieh, and H. Durrant-Whyte. The aiding of
a low-cost strapdown inertial measurement unit using vehicle model
[7]
[8]
[9]
[10]
[11]
[12]
constraints for land vehicle applications. IEEE Transactions on Robotics
and Automation, 17(5), 2001.
A. Eliazar and R. Parr. DP-SLAM: Fast, robust simultainous localization and mapping without predetermined landmarks. In Proc. of the
Int. Conf. on Artificial Intelligence (IJCAI), pages 1135–1142, Acapulco,
Mexico, 2003.
R. Eustice, H. Singh, and J.J. Leonard. Exactly sparse delayed-state
filters. In Proc. of the IEEE Int. Conf. on Robotics & Automation (ICRA),
pages 2428–2435, Barcelona, Spain, 2005.
S. Fleury,
M. Herrb, and
F. Ingrand.
GenoM.
http://softs.laas.fr/openrobots/tools/genom.php.
C. Früh and A. Zakhor. An automated method for large-scale, groundbased city model acquisition. International Journal of Computer Vision,
60:5–24, 2004.
G. Grisetti, C. Stachniss, and W. Burgard. Improving grid-based slam
with rao-blackwellized particle filters by adaptive proposals and selective
resampling. In Proc. of the IEEE Int. Conf. on Robotics & Automation
(ICRA), pages 2443–2448, Barcelona, Spain, 2005.
J. Guivant and E. Nebot. Optimization of the simultaneous localization
and map building algorithm for real time implementation. IEEE
Transactions on Robotics and Automation, 17(3):242–257, 2001.
[13] D. Hähnel, W. Burgard, and S. Thrun. Learning compact 3d models
of indoor and outdoor environments with a mobile robot. Robotics and
Autonomous Systems, 44(1):15–27, 2003.
[14] M. Hebert, C. Caillas, E. Krotkov, I.S. Kweon, and T. Kanade. Terrain
mapping for a roving planetary explorer. In Proc. of the IEEE
Int. Conf. on Robotics & Automation (ICRA), pages 997–1002, 1989.
[15] A. Kelly and A. Stentz. Rough terrain autonomous mobility, part 1:
A theoretical analysis of requirements. Journal of Autonomous Robots,
5:129–161, 1998.
[16] N. Koenig and A. Howard. Design and use paradigms for gazebo, an
open-source multi-robot simulator. Technical report, USC Center for
Robotics and Embedded Systems, CRES-04-002, 2004.
[17] P. Kohlhepp, M. Walther, and P. Steinhaus. Schritthaltende 3DKartierung und Lokalisierung für mobile inspektionsroboter.
In
18. Fachgespräche AMS, 2003. In German.
[18] S. Lacroix, A. Mallet, D. Bonnafous, G. Bauzil, S. Fleury and; M. Herrb,
and R. Chatila. Autonomous rover navigation on unknown terrains:
Functions and integration. Int. Journal of Robotics Research, 21(1011):917–942, 2002.
[19] J.J. Leonard and H.F. Durrant-Whyte. Mobile robot localization by
tracking geometric beacons. IEEE Transactions on Robotics and
Automation, 7(4), 1991.
[20] M. Levoy, K. Pulli, B. Curless, S. Rusinkiewicz, D. Koller, L. Pereira,
M. Ginzton, S. Anderson, J. Davis, J. Ginsberg, J. Shade, and D. Fulk.
The digital michelangelo project: 3D scanning of large statues. In
Proc. SIGGRAPH, pages 131–144, 2000.
[21] Y. Liu, R. Emery, D. Chakrabarti, W. Burgard, and S. Thrun. Using
EM to learn 3D models with mobile robots. In Proceedings of the
International Conference on Machine Learning (ICML), 2001.
[22] F. Lu and E. Milios. Globally consistent range scan alignment for
environment mapping. Journal of Autonomous Robots, 4:333–349, 1997.
[23] C. Martin and S. Thrun. Online acquisition of compact volumetric maps
with mobile robots. In IEEE International Conference on Robotics and
Automation (ICRA), Washington, DC, 2002. ICRA.
[24] M. Montemerlo, S. Thrun D. Koller, and B. Wegbreit. FastSLAM 2.0:
An improved particle filtering algorithm for simultaneous localization
and mapping that provably converges. In Proc. of the Int. Conf. on
Artificial Intelligence (IJCAI), pages 1151–1156, Acapulco, Mexico,
2003.
[25] M. Montemerlo, N. Roy, S. Thrun, D. Hähnel, C. Stachniss, and
J. Glover. CARMEN – the carnegie mellon robot navigation toolkit.
http://carmen.sourceforge.net, 2002.
[26] M. Montemerlo and S. Thrun. A multi-resolution pyramid for outdoor
robot terrain perception. In Proc. of the National Conference on Artificial
Intelligence (AAAI), 2004.
[27] H.P. Moravec. Robot spatial perception by stereoscopic vision and 3d
evidence grids. Technical Report CMU-RI-TR-96-34, Carnegie Mellon
University, Robotics Institute, 1996.
[28] A. Nüchter, K. Lingemann, J. Hertzberg, and H. Surmann. 6d SLAM
with approximate data association. In Proc. of the 12th Int. Conference
on Advanced Robotics (ICAR), pages 242–249, 2005.
[29] C.F. Olson. Probabilistic self-localization for mobile robots. IEEE
Transactions on Robotics and Automation, 16(1):55–66, 2000.
[30] E. Olson, J. Leonard, and S. Teller. Fast iterative alignment of pose
graphs with poor estimates. In ICRA, 2006.
[31] C. Parra, R. Murrieta-Cid, M. Devy, and M. Briot. 3-d modelling and
robot localization from visual and range data in natural scenes. In 1st
International Conference on Computer Vision Systems (ICVS), number
1542 in LNCS, pages 450–468, 1999.
[32] K. Pervölz, A. Nüchter, H. Surmann, and J. Hertzberg. Automatic
reconstruction of colored 3d models. In Proc. Robotik, 2004.
[33] P. Pfaff and W. Burgard. An efficient extension of elevation maps for
outdoor terrain mapping. In In Proc. of the Int. Conf. on Field and
Service Robotics (FSR), pages 165–176, 2005.
[34] Hanan Samet. Applications of Spatial Data Structures. Addison-Wesley
Publishing Inc., 1989.
[35] R. Simmons.
IPC – inter process communication.
http://www.cs.cmu.edu/afs/cs/project/TCA/www/ipc/index.html.
[36] S. Singh and A. Kelly. Robot planning in the space of feasible actions:
Two examples. In Proc. of the IEEE Int. Conf. on Robotics & Automation
(ICRA), 1996.
[37] R. Smith, M. Self, and P. Cheeseman. Estimating uncertain spatial
realtionships in robotics. In I. Cox and G. Wilfong, editors, Autonomous
Robot Vehicles, pages 167–193. Springer Verlag, 1990.
[38] Russell Smith. Open dynamics engine. Website, 2002. http://www.
q12.org/ode/ode.html.
[39] S. Sukkarieh, E.M. Nebot, and H. Durrant-Whyte. A high integrity
imu/gps navigation loop for autonomous land vehicle application. IEEE
Transactions on Robotics and Automation, 15(3), 1999.
[40] S. Thrun. An online mapping algorithm for teams of mobile robots.
Int. Journal of Robotics Research, 20(5):335–363, 2001.
[41] S. Thrun, W. Burgard, and D. Fox. A real-time algorithm for mobile
robot mapping with applications to multi-robot and 3D mapping. In
Proceedings of the IEEE Int. Conf. on Robotics and Automation (ICRA),
San Francisco, CA, 2000. IEEE.
[42] S. Thrun, D. Hähnel, D. Ferguson, M. Montemerlo, R. Triebel, W. Burgard, C. Baker, Z. Omohundro, S. Thayer, and W. Whittaker. A system
for volumetric robotic mapping of abandoned mines. In Proc. of the
IEEE Int. Conf. on Robotics & Automation (ICRA), Taipei, Taiwan, 2003.
[43] S. Thrun, Y. Liu, D. Koller, A.Y. Ng, Z. Ghahramani, and H. DurantWhyte. Simultaneous localization and mapping with sparse extended
information filters. Int. Journal of Robotics Research, 23(7-8):693–704,
2004.
[44] S. Thrun, C. Martin, Y. Liu, D. Hähnel, R. Emery Montemerlo, C. Deepayan, and W. Burgard. A real-time expectation maximization algorithm
for acquiring multi-planar maps of indoor environments with mobile
robots. IEEE Transactions on Robotics and Automation, 20(3):433–442,
2003.
[45] S. Thrun, M. Montemerlo, H. Dahlkamp, D. Stavens, A. Aron, J. Diebel,
P. Fong, J. Gale, M. Halpenny, G. Hoffmann, K. Lau, C. Oakley,
M. Palatucci, V. Pratt, P. Stang, S. Strohband, C. Dupont, L.-E. Jendrossek, C. Koelen, C. Markey, C. Rummel, J. van Niekerk, E. Jensen,
P. Alessandrini, G. Bradski, B. Davies, S. Ettinger, A. Kaehler, A. Nefian, and P. Mahoney. Winning the darpa grand challenge. Journal of
Field Robotics, 2006. To appear.
[46] R. Triebel, F. Dellaert, and W. Burgard. Using hierarchical EM to extract
planes from 3d range scans. In Proc. of the IEEE Int. Conf. on Robotics
& Automation (ICRA), 2005.
[47] R. Triebel, P. Pfaff, and W. Burgard. Multi-level surface maps for
outdoor terrain mapping and loop closing. In Proc. of the IEEE/RSJ
Int. Conf. on Intelligent Robots and Systems (IROS), 2006.
[48] C. Urmson. Navigation Regimes for Off-Road Autonomy. PhD thesis,
Robotics Institute, Carnegie Mellon University, 2005.
[49] Carl Wellington, Aaron Courville, and Anthony Stentz. Interacting
markov random fields for simultaneous terrain modeling and obstacle
detection. In Proceedings of Robotics: Science and Systems, Cambridge,
USA, June 2005.
[50] O. Wulf, K-A. Arras, H.I. Christensen, and B. Wagner. 2d mapping of
cluttered indoor environments by means of 3d perception. In ICRA-04,
pages 4204–4209, New Orleans, apr 2004. IEEE.
[51] C. Ye and J. Borenstein. A new terrain mapping method for mobile
robot obstacle negotiation. In Proc. of the UGV Technology Conference
at the 2002 SPIE AeroSense Symposium, 1994.