Anda di halaman 1dari 27

Sebastian Thrun

Michael Montemerlo
The GraphSLAM
Stanford AI Lab
Stanford University
Algorithm with
{thrun,mmde}@stanford.edu Applications to
Large-Scale Mapping
of Urban Structures

Abstract prisingly, some of the primary work in this area has emerged
from a number of different scientific fields, such as pho-
This article presents GraphSLAM, a unifying algorithm for the offline togrammetry, computer vision (Tomasi and Kanade 1992;
SLAM problem. GraphSLAM is closely related to a recent sequence Pollefeys, Koch, and Gool 1998; Soatto and Brockett 1998),
of research papers on applying optimization techniques to SLAM computer graphics (Levoy 1999; Rusinkiewicz and Levoy
problems. It transforms the SLAM posterior into a graphical net- 2001), and robotics (Dissanayake et al. 2001).
work, representing the log-likelihood of the data. It then reduces this In the SLAM community (SLAM is short for simultaneous
graph using variable elimination techniques, arriving at a lower- localization and mapping), filter techniques such as the well-
dimensional problems that is then solved using conventional opti- studied extended Kalman filter (EKF) have become a method
mization techniques. As a result, GraphSLAM can generate maps of choice for model acquisition. The EKF was introduced
with 108 or more features. The paper discusses a greedy algorithm mathematically by Cheeseman and Smith (1986), and imple-
for data association, and presents results for SLAM in urban envi- mented by Moutarlier and Chatila (1989a). This research has
ronments with occasional GPS measurements. led to hundreds of extensions in recent years. Some of these
KEY WORDSSLAM, robot navigation, localization, approaches map the posterior into sparse graphical structures
mapping (Bosse et al. 2003; Paskin 2003; Thrun et al. 2002), to gain
computational efficiency in the filtering process.
However, a key disadvantage of a filter technique is that
1. Introduction data is processed and then discarded. This makes it impos-
sible to revisit all data at the time of map building. Offline
In recent years, there have been a number of projects seeking techniques, introduced by Lu and Milios (1997) and a number
to map physical environments with moving sensor platforms. of follow-up papers (Golfarelli, Maio, and Rizzi 1998; Duck-
Classical work includes mapping from the air (Konecny ett, Marsland, and Shapiro 2000; Frese and Hirzinger 2001;
2002), the ground (Elfes 1987; Moravec 1988), and under- Konolige 2004), offer improved performance by memorizing
water (Williams, Dissanayake, and Durrant-Whyte 2001). It all data and postponing the mapping process until the end. Fol-
includes indoor (El-Hakim et al. 1997; Iocchi, Konolige, and lowing observations in Golfarelli, Maio, and Rizzi (1998), the
Bajracharya 2000), outdoor (Teller et al. 2001), and subter- posterior of the full SLAM problem naturally forms a sparse
ranean mapping (Baker et al. 2004). The development of tech- graph. This graph leads to a sum of nonlinear quadratic con-
niques for the acquisition of such maps has been driven by straints. Optimizing these constraints yields a maximum like-
a number of desires. They include photo-realistic rendering lihood map and a corresponding set of robot poses.
(Allen and Stamos 2000; Bajcsy, Kamberova, and Nocera This article represents a novel algorithm for mapping us-
2000), surveillance (Wang, Thorpe, and Thrun 2003), scien- ing sparse constraint graphs, called GraphSLAM. The basic
tific measurement (Baker et al. 2004), and robot guidance intuition behind GraphSLAM is simple: GraphSLAM extracts
(Williams, Dissanayake, and Durrant-Whyte 2001). Not sur- from the data a set of soft constraints, represented by a sparse
The International Journal of Robotics Research graph. It obtains the map and the robot path by resolving these
Vol. 25, No. 56, MayJune 2006, pp. 403-429 constraints into a globally consistent estimate. The constraints
DOI: 10.1177/0278364906065387 are generally nonlinear, but in the process of resolving them
2006 SAGE Publications
Figures appear in color online: http://ijr.sagepub.com
they are linearized and the resulting least squares problem is

403
404 THE INTERNATIONAL JOURNAL OF ROBOTICS RESEARCH / MayJune 2006

solved using standard optimization techniques. We will de- in Frese and Hirzinger (2001). Araneda (2003) developed a
scribe GraphSLAM both as a technique for building a sparse more detailed elaborate graphical model.
graph of nonlinear constraints, and as a technique for popu- The Lu and Milios algorithm initiated a development of of-
lating a sparse information matrix of linear constraints. fline SLAM algorithms that up to the present date runs largely
When applied to large-scale mapping problems, we find parallel to the EKF work. Gutmann and Konolige combined
that GraphSLAM can handle large number of features, and their implementation with a Markov localization step for es-
even incorporate GPS information into the mapping process. tablishing correspondence when closing a loop in a cyclic en-
These findings are based on data acquired by a mobile robot vironment. Bosse et al. (2003, 2004) developed Atlas, which
system built to acquire 3-D maps of large-scale urban envi- is a hierarchical mapping framework based on the decoupled
ronments. stochastic mapping paradigm, which retains relative informa-
This article is organized as follows. We begin with an ex- tion between submaps. It uses an optimization technique sim-
tended review of the literature. We then describe GraphSLAM ilar to the one in Duckett, Marsland, and Shapiro (2000) and
intuitively, and characterize it both using graph-theoretical GraphSLAM when aligning multiple submaps. Folkesson and
and information-theoretical terms. We state the basic algo- Christensen (2004a,b) exploited the optimization perspective
rithm and derive it mathematically from first principles. We of SLAM by applying gradient descent to the log-likelihood
then extend to address the data association problem. Finally, version of the SLAM posterior. Their Graphical SLAM algo-
we present experimental results and discuss future extensions rithm reduced the number of variables to the path variables
of this approach. just like GraphSLAMwhen closing the loop. This reduction
(which is mathematically an approximation since the map is
2. Related Work simply omitted) significantly accelerated gradient descent.
Konolige (2004) and Montemerlo and Thrun (2004) intro-
In robotics, the SLAM problem was introduced through a sem- duced conjugate gradient into the field of SLAM, which is
inal series of papers by Cheeseman and Smith (1986); Smith known to be more efficient than gradient descent. Both also
and Cheeseman (1986); Smith, Self, and Cheeseman (1990). reduced the number of variables when closing large cycles,
These papers were the first to describe the well-known EKF and report that maps with 108 features can be aligned in just a
SLAM algorithm, often used as a benchmark up to the present
few seconds. Frese, Larsson, and Duckett (2005) analyzed the
day. The first implementations of EKF SLAM were due to
efficiency of SLAM in the information form, and developed
Moutarlier and Chatila (1989a,b) and Leonard and Durrant-
highly efficient optimization techniques using multi-grid op-
Whyte (1991), some using artificial beacons as landmarks.
timization techniques. They reported speedups of several or-
Today, SLAM is a highly active field of research, as a recent
ders of magnitude; the resulting optimization techniques are
workshop indicates (Leonard et al. 2002).
presently the state-of-the-art.
The first mention of relative, graph-like constraints in the
It should be mentioned that the intuition to maintain rela-
SLAM literature goes back to Cheeseman and Smith (1986)
and Durrant-Whyte (1988), but these approaches did not per- tive links between local entities is at the core of many of the
form any global relaxation, or optimization. The algorithm submapping techniques discussed in the previous section
presented in this paper is loosely based on a seminal paper by although it is rarely made explicit. Authors such as Guivant
Lu and Milios (1997). They were historically the first to rep- and Nebot (2001), Williams (2001), Bailey (2002) and Tards
resent the SLAM prior as a set of links between robot poses, et al. (2002) report data structures for minuting the relative
and to formulate a global optimization algorithm for gener- displacement between submaps, which are easily mapped to
ating a map from such constraints. Their original algorithm information theoretic concepts. While many of these algo-
for globally consistent range scan alignment used the robot rithms are filters, they nevertheless share a good amount of
pose variables as the frame of reference, which differed from insight with the graphical information form discussed in this
the standard EKF view in which poses were integrated out. paper.
Through analyzing odometry and laser range scans, their ap- To our knowledge, the GraphSLAM algorithm presented
proach generated relative constraints between poses that can here has never been published in the present form. However,
be viewed as the edges in GraphSLAM; however, they did not GraphSLAM is closely tied to the literature reviewed above,
phrase their method using information representations. Lu and building on Lu and Milioss (1997) seminal algorithm. The
Milioss (1997) algorithm was first successfully implemented name GraphSLAM bears resemblance to the name Graphical
by Gutmann and Nebel (1997), who reported numerical insta- SLAM by Folkesson and Christensen (2004a); we have chosen
bilities, possibly due to the extensive use of matrix inversion. it for this paper because graphs of constraints are the essence
Golfarelli, Maio, and Rizzi (1998) were the first to establish of this entire line of SLAM research. A number of authors
the relation of SLAM problems and spring-mass models, and have developed filters in information form, which address the
Duckett, Marsland, and Shapiro (2000, 2002) provided a first online SLAM problem instead of the full SLAM problem.
efficient technique for solving such problems. The relation These algorithms will be discussed in the coming paper, which
between covariances and the information matrix is discussed explicitly addresses the problem of filtering.
Thrun and Montemerlo / The GraphSLAM Algorithm 405

Graph-like representations have also been applied in the we will use x1:t to denote the set of poses from time 1 all the
context of SLAM filtering algorithms. In 1997, Csorba devel- way to time t. The world itself is denoted m, where m is short
oped an information filter that maintained relative informa- for map. The map is assumed to be time-invariant, hence we
tion between triplets of three landmarks. He was possibly the do not use a time index to denote the map. In this paper, we
first to observe that such information links maintained global think of the map of a (large) set of features mj .
correlation information implicitly, paving the way from algo- To acquire an environment map, the robot is able to sense.
rithms with quadratic to linear memory requirements. New- The measurement at time t is denoted zt . Usually, the robot
mann (2000) and Newman and Durrant-Whyte (2001) devel- can sense multiple features at each point in time; hence each
oped a similar information filter, but left open the question individual measurement beam is denoted zti . Commonly, one
of how the landmark-landmark information links are actu- assumes that zti is a range measurement. The measurement
ally acquired. Under the ambitious name consistent, conver- function h describes how such a measurement comes into
gent, and constant-time SLAM, Leonard and Newman fur- being:
ther developed this approach into an efficient alignment al-
gorithm, which was successfully applied to an autonomous zti = h(xt , mj , i) + ti (1)
underwater vehicle using synthetic aperture sonar (Newman
here ti is a Gaussian random variable modeling the measure-
and Rikoski 2003). Another seminal algorithm in the field is
ment noise, with zero mean and covariance Qt , and mj is the
Paskins (2003) thin junction filter algorithm, which repre-
map feature sensed by the i-th measurement beam at time t.
sents the SLAM posterior in a sparse network known as thin
Put differently, we have
junction trees (Pearl 1988; Cowell et al. 1999). The same idea
was exploited by Frese (2004), who developed a similar tree 1 i
factorization of the information matrix for efficient inference. p(zti | xt , m) = const. exp (z h(xt , mj , i))T
2 t
Julier and Uhlmann (2000) developed a scalable technique
called covariance intersection, which sparsely approximates Q1
t (zti h(xt , mj , i)) (2)
the posterior in a way that provable prevents overconfidence.
Some robotic systems are also are provided with a GPS sys-
Their algorithm was successfully implemented on NASAs
tem. Then the measurement is of the form
MARS Rover fleet (Uhlmann, Lanzagorta, and Julier 1999).
The information filter perspective is also related to early work zti = h(xt , i) + ti (3)
by Bulata and Devy (1996), whose approach acquired land-
mark models first in local landmark-centric reference frames, where zti is a noisy estimate of the pose xt , and ti is once
and only later assembles a consistent global map by resolving again a Gaussian noise variable The mathematics for such
the relative information between landmarks. Another online measurements are analogous to those of nearby features; and
filter related to this work is the SEIF algorithm, which was GraphSLAM admits for arbitrary measurement functions h.
developed by Thrun et al. (2002). A greedy data association Finally, the robot changes its pose in SLAM by virtue of
algorithm for SEIFs was developed by Liu and Thrun (2003), issuing control commands. The control asserted between time
which was subsequently extended to multi-robot SLAM by t 1 and time t is denoted ut . The state transition is governed
Thrun and Liu (2003). A branch-and-bound data association by the function g:
search is due to Hhnel et al. (2003), based on earlier branch-
and-bound methods by Lawler and Wood (1966) and Naren- xt = g(ut , xt1 ) + t (4)
dra and Fukunaga (1977). It parallels work by Kuipers et al.
(2004), who developed a similar data association technique, where t N (0, Rt ) models the noise in the control com-
albeit not in the context of an information theoretic concepts. mand. The function g can be thought of as the kinematic
Finally, certain offline SLAM algorithms that solve the full model of the robot. Equation (4) induces the state transition
SLAM problem, such as the ones by Bosse et al. (2004), probability
Gutmann and Konolige (2000), and Frese (2004), have been 1
shown to be fast enough to run online on limited-sized data p(xt | ut , xt1 ) = const. exp (xt g(ut , xt1 ))T
2
sets. None of these approaches address how to incorporate
occasional GPS measurements into SLAM. Rt1 (xt g(ut , xt1 )) (5)

The offline SLAM posterior is now given by the following


3. Mapping SLAM Problems into Graphs posterior probability over the robot path xt:1 and the map m:
3.1. The Offline SLAM Problem
p(x1:t , m | z1:t , u1:t ) (6)
We begin our technical exposition with the basic notation used
throughout this article. In SLAM, time is usually discrete, and This is the posterior probability over the entire path x1:t along
t labels the time index. The robot pose at time t is denoted xt ; with the map, instead of just the current pose xt : We note that
406 THE INTERNATIONAL JOURNAL OF ROBOTICS RESEARCH / MayJune 2006

in many SLAM problems, it suffices to determine the mode a large system of equations. As usual, we will denote the in-
of this posterior. The actual posterior is usually too difficult formation matrix by  and the information vector by . As
to express for high-dimensional maps m, since it contains we shall see below, each measurement and each control leads
dependencies between any pair of features in m. to a local update of  and , which corresponds to a local
We note that a key assumption in our problem formula- addition of an edge to the graph in GraphSLAM. In fact, the
tion is the assumption of independent Gaussian noise. Graph- rule for incorporating a control or a measurement into  and
SLAM shares this assumption with the vast majority of pub- is a local addition, paying tribute to the important fact that
lished papers in the field of SLAM. The Gaussian noise as- information is an additive quantity.
sumption proves convenient in that it leads to a nice set of Figure 2 illustrates the process of constructing the graph
quadratic equations which can be solved efficiently. Other along with the corresponding information matrix. First con-
SLAM approaches have relaxed this assumption (Montemerlo sider a measurement zti . This measurement provides informa-
et al. 2002) or made special provisions for incorporating non- tion between the location of the feature j = cti and the robot
Gaussian noise into Gaussian SLAM (Guivant and Masson pose xt at time t. In GraphSLAM, this information is mapped
2005). into a constraint between xt and mj . We can think of this edge
as a (possibly degenerate) spring in a spring-mass model.
3.2. GraphSLAM: Basic Idea As we shall see below, the constraint is of the type:

Figure 1 illustrates the GraphSLAM algorithm. Shown there


is the graph that GraphSLAM extracts from four poses labeled (zti h(xt , mj , i))T Q1
t (zti h(xt , mj , i)) (7)
x1 , . . . , x4 , and two map features m1 , m2 . Arcs in this graph
come in two types: motion arcs and measurement arcs. Motion Here h is the measurement function, and Qt is the covariance
arcs link any two consecutive robot poses, and measurement of the measurement noise. Figure 2(a) shows the addition
arcs link poses to features that were measured there. Each of such a link into the graph maintained by GraphSLAM.
edge in the graph corresponds to a nonlinear constraint. As Note that the constraint may be degenerate, that is, it may not
we shall see later, these constraints represent the negative log constrain all dimensions of the robot pose xt . This will be of
likelihood of the measurement and the motion models, hence no concern for the material yet to come.
are best thought of as information constraints. Adding such a In information form, the constraint is incorporated into 
constraint to the graph is trivial for GraphSLAM; it involves and by adding values between the rows and columns con-
no significant computation. The sum of all constraints results necting xt1 and xt . The magnitude of these values corresponds
in a nonlinear least squares problem, as stated in Figure 1. to the stiffness of the constraint, as governed by the uncertainty
To compute a map posterior, GraphSLAM linearizes the set covariance Qt of the motion model. This is illustrated in Fig-
of constraints. The result of linearization is a sparse informa- ure 2(b), which shows the link between two robot poses along
tion matrix and an information vector. The sparseness of this with the corresponding element in the information matrix.
matrix enables GraphSLAM to apply the variable elimination Now consider robot motion. The control ut provides in-
algorithm, thereby transforming the graph into a much smaller formation about the relative value of the robot pose at time
one only defined over robot poses. The path posterior map is t 1 and the pose at time t. Again, this information induces
then calculated using standard inference techniques. Graph- a constraint in the graph, which will be of the form:
SLAM also computes a map and certain marginal posteriors
over the map; the full map posterior is of course quadratic in
the size of the map and hence is usually not recovered. (xt g(ut , xt1 ))T Rt1 (xt g(ut , xt1 )) (8)

3.3. Building Up the Graph Here g is the kinematic motion model of the robot, and Rt is
the covariance of the motion noise. Figure 2(b) illustrates the
Suppose we are given a set of measurements z1:t with associ- addition of such a link in the graph. It also shows the addition
ated correspondence variables c1:t , and a set of controls u1:t . of a new element in the information matrix, between the pose
GraphSLAM turns this data into a graph. The nodes of this xt and the measurement zti . This update is again additive. As
graph are the robot poses x1:t and the features in the map before, the magnitude of these values reflects the residual
m = {mj }. Each edge in the graph corresponds to an event: uncertainty Rt due to the measurement noise; the less noisy
a motion event generates an edge between two robot poses, the sensor, the larger the value added to  and .
and a measurement event creates a link between a pose and a After incorporating all measurements z1:t and controls u1:t ,
feature in the map. Edges represent soft constraints between we obtain a sparse graph of soft constraints. The number of
poses and features in GraphSLAM. constraints in the graph is linear in the time elapsed, hence the
For a linear system, these constraints are equivalent to en- graph is sparse. The sum of all constraints in the graph will
tries in an information matrix and an information vector of be of the form
Thrun and Montemerlo / The GraphSLAM Algorithm 407

Fig. 1. GraphSLAM illustration, with 4 poses and two map features. Nodes in the graphs are robot poses and feature
locations. The graph is populated by two types of edges: Solid edges which link consecutive robot poses, and dashed
edges, which link poses with features sensed while the robot assumes that pose. Each link in GraphSLAM is a non-linear
quadratic constraint. Motion constraints integrate the motion model; measurement constraints the measurement model. The tar-
get function of GraphSLAM is sum of these constraints. Minimizing it yields the most likely map and the most likely robot path.


JGraphSLAM = x0T 0 x0 + (xt g(ut , xt1 ))T from the linearized information matrix  and the information
t
vector , via the equations  = 1 and =  . This
1 operation requires us to solve a system of linear equations.
R (xt g(ut , xt1 ))

t This raises the question on how efficiently we can recover the
+ (zti h(yt , cti , i))T map estimate .
t i The answer to the complexity question depends on the
Q 1
(z h(yt , cti , i))
i
(9) topology of the world. If each feature is seen only locally
t t
in time, the graph represented by the constraints is linear.
It is a function defined over pose variables x1:t and all fea- Thus,  can be reordered so that it becomes a band-diagonal
ture locations in the map m. Notice that this expression also matrix, that is, all non-zero values occur near its diagonal. The
features an anchoring constraint of the form x0T 0 x0 . This equation = 1 can then be computed in linear time. This
constraint anchors the absolute coordinates of the map by ini- intuition carries over to a cycle-free world that is traversed
tializing the very first pose of the robot as (0 0 0)T . once, so that each feature is seen for a short, consecutive period
In the associated information matrix , the off-diagonal of time.
elements are all zero with two exceptions: between any two The more common case, however, involves features that
consecutive poses xt1 and xt will be a non-zero value that are observed multiple times, with large time delays in be-
represents the information link introduced by the control ut . tween. This might be the case because the robot goes back
Also non-zero will be any element between a map feature mj and forth through a corridor, or because the world possesses
and a pose xt , if mj was observed when the robot was at xt . All cycles. In either situation, there will exist features mj that
elements between pairs of different features remain zero. This are seen at drastically different time steps xt1 and xt2 , with
reflects the fact that we never receive information pertaining t2  t1 . In our constraint graph, this introduces a cyclic depen-
to their relative locationall we receive in SLAM are mea- dence: xt1 and xt2 are linked through the sequence of controls
surements that constrain the location of a feature relative to ut1 +1 , ut1 +2 , . . . , ut2 and through the joint observation links be-
a robot pose. Thus, the information matrix is equally sparse; tween xt1 and mj , and xt2 and mj , respectively. Such links make
all but a linear number of its elements are zero. our variable reordering trick inapplicable, and recovering the
map becomes more complex. In fact, since the inverse of  is
3.4. Inference multiplied with a vector, the result can be computed with op-
Of course, neither the graph representation nor the informa- timization techniques such as conjugate gradient, without ex-
tion matrix representation gives us what we want: the map and plicitly computing the full inverse matrix. Since most worlds
the path. In GraphSLAM, the map and the path are obtained possess cycles, this is the case of interest.
408 THE INTERNATIONAL JOURNAL OF ROBOTICS RESEARCH / MayJune 2006

(a) Observation ls landmark m1

(b) Robot motion from x1 to x2

(c) Several steps later

Fig. 2. Illustration of the acquisition of the information matrix in GraphSLAM. The left diagram shows the dependence graph,
the right the information matrix.

The GraphSLAM algorithm now employs an important we can remove all those springs between mj and the poses at
factorization trick, which we can think of as propagating in- which mj was observed, by introducing new springs between
formation trough the information matrix (in fact, it is a gen- any pair of such poses.
eralization of the well-known variable elimination algorithm This process is illustrated in Figure 3, which shows the
for matrix inversion). Suppose we would like to remove a fea- removal of two map features, m1 and m3 (the removal of m2
ture mj from the information matrix  and the information and m4 is trivial in this example). In both cases, the feature
state . In our spring mass model, this is equivalent to remov- removal modifies the link between any pair of poses from
ing the node and all springs attached to this node. As we shall which a feature was originally observed. As illustrated in Fig-
see below, this is possible by a remarkably simple operation: ure 3(b), this operation may lead to the introduction of new
Thrun and Montemerlo / The GraphSLAM Algorithm 409

(a) The removal of m1 changes the link between x1 and x2

(b) The removal of m3 introduces a new link between x2 and x4

(c) Final result after removing all map features

Fig. 3. Reducing the graph in GraphSLAM: Arcs are removed to yield a network of links that only connect robot poses.
410 THE INTERNATIONAL JOURNAL OF ROBOTICS RESEARCH / MayJune 2006

links in the graph. In the example shown there, the removal robot poses, which are then calculated using matrix inversion.
of m3 leads to a new link between x2 and x4 . Once the poses are recovered, the feature locations are calcu-
Let (j ) be the set of poses at which mj was observed (that lated one after another, based on the original feature-to-pose
is: xt (j ) i : cti = j ). Then we already know that the information.
feature mj is only linked to poses xt in (j ); by construction,
mj is not linked to any other pose, or to any feature in the
map. We can now set all links between mj and the poses (j )
4. The GraphSLAM Algorithm
to zero by introducing a new link between any two poses We will now make the various computational steps of the
xt , xt  (j ). Similarly, the information vector values for GraphSLAM precise. The full GraphSLAM algorithm will
all poses (j ) are also updated. An important characteristic be described in a number of steps. The main difficulty in
of this operation is that it is local: It only involves a small implementing the simple additive information algorithm per-
number of constraints. After removing all links to mj , we can tains to the conversion of a conditional probability of the form
safely remove mj from the information matrix and vector. p(zti | xt , m) and p(xt | ut , xt1 ) into a link in the information
The resulting information matrix is smallerit lacks an entry matrix. The information matrix elements are all linear; hence
for mj . However, it is equivalent for the remaining variables, this step involves linearizing p(zti | xt , m) and p(xt | ut , xt1 ).
in the sense that the posterior defined by this information To perform this linearization, we need an initial estimate 0:t
matrix is mathematically equivalent to the original posterior for all poses x0:t .
before removing mj . This equivalence is intuitive: We simply There exist a number of solutions to the problem of finding
have replaced springs connecting mj to various poses in our an initial mean suitable for linearization. For example, we
spring mass model by a set of springs directly linking these can run an EKF SLAM and use its estimate for linearization
poses. In doing so, the total force asserted by these springs (Dissanayake et al. 2001). GraphSLAM uses an even sim-
remains equivalent, with the only exception that mj is now pler technique: our initial estimate will simply be provided
disconnected. by chaining together the motion model p(xt | ut , xt1 ). Such
The virtue of this reduction step is that we can gradually an algorithm is outlined in Table 1, and called there Graph-
transform our inference problem into a smaller one. By re- SLAM_initialize. This algorithm takes the controls u1:t as in-
moving each feature mj from  and , we ultimately arrive put, and outputs sequence of pose estimates 0:t . It initializes
at a much smaller information form  and defined only the first pose by zero, and then calculates subsequent poses
over the robot path variables. The reduction can be carried by recursively applying the velocity motion model. Since we
out in time linear in the size of the map; in fact, it generalizes are only interested in the mean poses vector 0:t , Graph-
the variable elimination technique for matrix inversion to the SLAM_initialize only uses the deterministic part of the mo-
information form, in which we also maintain an information tion model. It also does not consider any measurement in its
state. The posterior over the robot path is now recovered as estimation.
 = 1 and = 
. Unfortunately, our reduction step does Once an initial 0:t is available, the GraphSLAM algorithm
not eliminate cycles in the posterior. The remaining inference constructs the full SLAM information matrix  and the corre-
problem may still require more than linear time. sponding information vector . This is achieved by linearizing
As a last step, GraphSLAM recovers the feature locations. the links in the graph. The algorithm GraphSLAM_linearize
Conceptually, this is achieved by building a new information is depicted in Table 2. This algorithm contains a good amount
matrix j and information vector j for each mj . Both are of mathematical notation, much of which will become clear
defined over the variable mj and the poses (j ) at which mj in our derivation of the algorithm further below. Graph-
were observed. It contains the original links between mj and SLAM_linearize accepts as an input the set of controls, u1:t ,
(j ), but the poses (j ) are set to the values in , without the measurements z1:t and associated correspondence vari-
uncertainty. From this information form, it is now simple to ables c1:t , and the mean pose estimates 0:t . It then gradually
calculate the location of mj , using the common matrix inver- constructs the information matrix  and the information vec-
sion trick. Clearly, j contains only elements that connect to tor through linearization, by locally adding sub-matrices in
mj ; hence the inversion takes time linear in the number of accordance with the information obtained from each measure-
poses in (j ). ment and each control.
It should be apparent why the graph representation is such In particular, line 2 in GraphSLAM_linearize initializes
a natural representation. The full SLAM problem is solved the information elements. The infinite information entry in
by locally adding information into a large information graph, line 3 fixes the initial pose x0 to (0 0 0)T . It is necessary, since
one edge at a time for each measurement zti and each control otherwise the resulting matrix becomes singular, reflecting the
ut . To turn such information into an estimate of the map and fact that from relative information alone we cannot recover
the robot path, it is first linearized, then information between absolute estimates.
poses and features is gradually shifted to information between Controls are integrated in lines 4 through 9 of Graph-
pairs of poses. The resulting structure only constrains the SLAM_linearize. The pose x and the Jacobian Gt calculated
Thrun and Montemerlo / The GraphSLAM Algorithm 411

Table 1. Initialization of the Mean Pose Vector 1:t in the GraphSLAM Algorithm

1: Algorithm GraphSLAM_initialize(u1:t ):

0,x 0
2: 0,y = 0
0, 0
3: for all controls ut = (vt t )T do

t,x t1,x
4: t,y = t1,y
t, t1,
vt
t sin t1, + vtt sin(t1, + t t)
4: + vtt cos t1, vtt cos(t1, + t t)
t t
5: endfor
6: return 0:t

Table 2. Calculation of  and in GraphSLAM

1: Algorithm GraphSLAM_linearize(u1:t , z1:t , c1:t , 0:t ):

2: set = 0, = 0
0 0
3: add 0 0 to  at x0
0 0

t = (vt t ) do
T
4: for all controls u
t sin t1, + vtt sin(t1, + t t)
vt

5: xt = t1 + vtt cos t1, vtt cos(t1, + t t)


t t
1 0 vtt cos t1, vtt cos(t1, + t t)
6: Gt = 0 1 vtt sin t1, vtt sin(t1, + t t)
0 0 1

see next page for continuation


412 THE INTERNATIONAL JOURNAL OF ROBOTICS RESEARCH / MayJune 2006

continued from the previous page

 
1
7: add Rt1 (1 Gt ) to  at xt and xt1
Gt
 
1
8: add Rt1 [xt + Gt t1 ] to at xt and xt1
Gt
9: endfor

10: for all measurements zt do



r 0 0
11: Qt = 0 0
0 0 s
12: for all observed features zti = (rti ti )T do
13: j = cti
   
x j,x t,x
14: = =
y j,y t,y
15: q= T
 
q
16: zti =
atan2(y , x ) t,
 
qx qy 0 qx qy
17: Ht = q
i 1
y x 1 y x
iT 1 i
18: add Ht Qt Ht to  at xt and mj

t,x
t,y

19: add Ht Qt [ zt zt Ht t,
iT 1 i i i
] to at xt and mj
j,x
j,y
20: endfor
21: endfor
22: return ,

in lines 5 and 6 represent the linear approximation of the tween observed features and features in the map (line 13). At-
non-linear measurement function g. As is obvious from these tention has to be paid to the implementation of line 16, since
equations, this linearization step utilizes the pose estimates the angular expressions can be shifted arbitrarily by 2. This
0:t1 , with 0 = (0 0 0)T . This leads to the updates for , calculation culminates in the computation of the measurement
and , calculated in lines 7, and 8, respectively. Both terms update in lines 18 and 19. The matrix that is being added to
are added into the corresponding rows and columns of  and  in line 18 is of dimension 5 5. To add it, we decompose
. This addition realizes the inclusion of a new constraint into it into a matrix of dimension 3 3 for the pose xt , a matrix
the SLAM posterior, very much along the lines of the intuitive of dimension 2 2 for the feature mj , and two matrices of
description in the previous section. dimension 3 2 and 2 3 for the link between xt and mj .
Measurements are integrated in lines 10 through 21 of Those are added to  at the corresponding rows and columns.
GraphSLAM_linearize. The matrix Qt calculated in line Similarly, the vector added to the information vector is of
11 is the familiar measurement noise covariance. Lines 13 vertical dimension 5. It is also chopped into two vectors of
through 17 compute the Taylor expansion of the measurement size 3 and 2, and added to the elements corresponding to xt
function. This calculation assumes known correspondence be- and mj , respectively. The result of GraphSLAM_linearize
Thrun and Montemerlo / The GraphSLAM Algorithm 413

is an information vector and a matrix . We already noted multiple times over the same data set. Each iteration takes
that  is sparse. It contains only non-zero sub-matrices along as an input an estimated mean vector 0:t from the previous
the main diagonal, between subsequent poses, and between iteration, and outputs a new, improved estimate. The iterations
poses and features in the map. The running time of this al- of the GraphSLAM optimization are only necessary when the
gorithm is linear in t, the number of time steps at which data initial pose estimates have high error (e.g. more than 20 de-
was accrued. grees orientation error). A small number of iterations (e.g. 3)
The next step of the GraphSLAM algorithm pertains to is usually sufficient.
reducing the dimensionality of the information matrix/vector. Table 5 summarizes the resulting algorithm. It initializes
This is achieved through the algorithm GraphSLAM_reduce the means, then repeats the construction step, the reduction
in Table 3. This algorithm takes as input  and defined step, and the solution step. Typically, two or three iterations
over the full space of map features and poses, and outputs a suffice for convergence. The resulting mean is our best guess
reduced matrix  and vectors defined over the space of all of the robots path and the map.
poses (but not the map!). This transformation is achieved by
removing features mj one at a time, in lines 4 through 9 of
GraphSLAM_reduce. The bookkeeping of the exact indexes 5. Mathematical Derivation of GraphSLAM
of each item in  and is a bit tedious, hence Table 3 only
provides an intuitive account. The derivation of the GraphSLAM algorithm begins with
Line 5 calculates the set of poses (j ) at which the robot a derivation of a recursive formula for calculating the full
observed feature j . It then extracts two sub-matrices from the SLAM posterior, represented in information form. We then
present :  j,j and  (j ),j . 
j,j is the quadratic sub-matrix be- investigate each term in this posterior, and derive from them

tween mj and mj , and  (j ),j is composed of the off-diagonal the additive SLAM updates through Taylor expansions. From
elements between mj and the pose variables (j ). It also ex- that, we will derive the necessary equations for recovering the
tracts from the information state vector the elements cor- path and the map.
responding to the j -th feature, denoted here as j . It then
subtracts information from  and as stated in lines 6 and 7.
After this operation, the rows and columns for the feature mj 5.1. The Full SLAM Posterior
are zero. These rows and columns are then removed, reducing
the dimension on  and accordingly. This process is iterated It will be beneficial to introduce a variable for the augmented
until all features have been removed, and only pose variables state of the full SLAM problem. We will use y to denote state
remain in  and . The complexity of GraphSLAM_reduce variables that combine one or more poses x with the map m.
is once again linear in t. In particular, we define y0:t to be a vector composed of the path
The last step in the GraphSLAM algorithm computes the x0:t and the map m, whereas yt is composed of the momentary
mean and covariance for all poses in the robot path, and a pose at time t and the map m:
mean location estimate for all features in the map. This is
achieved through GraphSLAM_solve in Table 4. Line 3 com- x0
x1  
putes the path estimates 0:t . This can be achieved by inverting
and multiplying the result- .. xt
the reduced information matrix  y0:t = . and yt = (10)
ing covariance with the information vector, or by optimization m
xt
techniques such as conjugate gradient descent. Subsequently, m
GraphSLAM_solve computes the location of each feature in
lines 4 through 7. The return value of GraphSLAM_solve
The posterior in the full SLAM problem is p(y0:t |
contains the mean for the robot path and all features in the
z1:t , u1:t , c1:t ), where z1:t are the familiar measurements with
map, but only the covariance for the robot path.
correspondences c1:t , and u1:t are the controls. Bayes rule en-
The quality of the solution calculated by the GraphSLAM
ables us to factor this posterior:
algorithm depends on the goodness of the initial mean es-
timates, calculated by GraphSLAM_initialize. The x- and
y-components of these estimates affect the respective models p(y0:t | z1:t , u1:t , c1:t ) (11)
in a linear way, hence the linearization does not depend on = p(zt | y0:t , z1:t1 , u1:t , c1:t ) p(y0:t | z1:t1 , u1:t , c1:t )
these values. Not so for the orientation variables in 0:t . Er-
rors in these initial estimates affect the accuracy of the Taylor where is the familiar normalizer. The first probability on the
approximation, which in turn affects the result. right-hand side can be reduced by dropping irrelevant condi-
To reduce potential errors due to the Taylor approximation tioning variables:
in the linearization, the procedures GraphSLAM_linearize,
GraphSLAM_reduce, and GraphSLAM_solve are run p(zt | y0:t , z1:t1 , u1:t , c1:t ) = p(zt | yt , ct ) (12)
414 THE INTERNATIONAL JOURNAL OF ROBOTICS RESEARCH / MayJune 2006

Table 3. Algorithm for Reducing the Size of the Information Representation of the Posterior
in GraphSLAM

1: Algorithm GraphSLAM_reduce(, ):

2: =

3: =
4: for each feature j do
5: let (j ) be the set of all poses xt at which j was observed
6: subtract  (j ),j 
1
j,j j from at x (j ) and mj

7: (j ),j 
subtract  1
j,j j, (j ) from  at x (j ) and mj

8: remove from  and all rows/columns corresponding to j


9: endfor
10:
return ,

Table 4. Algorithm for Updating the Posterior

1: , , ):
Algorithm GraphSLAM_solve(,

2: 1
0:t = 
3: 0:t = 0:t
4: for each feature j do
5: set (j ) to the set of all poses xt at which j was observed
6: j = 1 j,j (j + j, (j ) (j ) )

7: endfor
8: return , 0:t

Table 5. The GraphSLAM Algorithm for the Full SLAM Problem with Known
Correspondence

1: Algorithm GraphSLAM_known_correspondence(u1:t , z1:t , c1:t ):

2: 0:t = GraphSLAM_initialize(u1:t )
3: repeat
4: , = GraphSLAM_linearize(u1:t , z1:t , c1:t , 0:t )
5: = GraphSLAM_reduce(, )
,
6: , , )
, 0:t = GraphSLAM_solve(,
7: until convergence
8: return
Thrun and Montemerlo / The GraphSLAM Algorithm 415

Similarly, we can factor the second probability by partitioning variance. In equations, we have:
y0:t into xt and y0:t1 , and obtain:
p(xt | xt1 , ut ) (17)

p(y0:t | z1:t1 , u1:t , c1:t ) (13) 1 1
= exp (xt g(ut , xt1 )) Rt (xt g(ut , xt1 ))
T
= p(xt | y0:t1 , z1:t1 , u1:t , c1:t ) p(y0:t1 | z1:t1 , u1:t , c1:t ) 2
= p(xt | xt1 , ut ) p(y0:t1 | z1:t1 , u1:t1 , c1:t1 ) p(zti | yt , cti ) (18)

1
Putting these expressions back into (11) gives us the recursive = exp (zti h(yt , cti , i))T Q1
t (z i
t h(y t , ct
i
, i))
2
definition of the full SLAM posterior:
The prior p(x0 ) in (16) is also easily expressed by a Gaussian-
p(y0:t | z1:t , u1:t , c1:t ) (14) type distribution. It anchors the initial pose x0 to the origin of
the global coordinate system: x0 = (0 0 0)T :
= p(zt | yt , ct )

p(xt | xt1 , ut ) p(y0:t1 | z1:t1 , u1:t1 , c1:t1 ) 1
p(x0 ) = exp x0T 0 x0 (19)
2
The closed form expression is obtained through induction over with
t. Here p(y0 ) is the prior over the map m and the initial pose x0 .
0 0
0 = 0 0 (20)
p(y0:t | z1:t , u1:t , c1:t ) (15) 0 0

= p(y0 ) p(xt | xt1 , ut ) p(zt | yt , ct ) For now, it does not concern us that the value of cannot
t
be implemented, as we can easily substitute with a large


positive number. This leads to the following quadratic form
= p(y0 ) p(xt | xt1 , ut ) p(zti | yt , cti ) of the negative log-SLAM posterior in (16):
t i
log p(y0:t | z1:t , u1:t , c1:t ) (21)

i
Here, as before, z is the i-th measurement in the measurement
t 1 T 
vector zt at time t. The prior p(y0 ) factors into two indepen- = const. + x0 0 x0 + (xt g(ut , xt1 ))T
2 t
dent priors, p(x0 ) and p(m). In SLAM, we usually have no 
1
prior knowledge about the map m. We simply replace p(y0 ) Rt (xt g(ut , xt1 )) + (zti h(yt , cti , i))T
by p(x0 ) and subsume the factor p(m) into the normalizer . t i

Q1
t (zti h(yt , cti , i))

This is essentially the same as JGraphSLAM in eq. (9), with a


5.2. The Negative Log Posterior
few differences pertaining to the omission of normalization
The information form represents probabilities in logarithmic constants (including a multiplication with 1). Equation (21)
form. The log-SLAM posterior follows directly from the pre- highlights an essential characteristic of the full SLAM poste-
vious equation: rior in the information form: it is composed of a number of
quadratic terms, one for the prior, and one for each control
and each measurement.
log p(y0:t | z1:t , u1:t , c1:t ) (16)

= const. + log p(x0 ) 5.3. Taylor Expansion



  The various terms in eq. (21) are quadratic in the functions g
+ log p(xt | xt1 , ut ) + log p(zt | yt , ct )
i i
and h, not in the variables we seek to estimate (poses and the
t i
map). GraphSLAM alleviates this problem by linearizing g
and h via Taylor expansion. In particular, we have:
As stated above, we assume the outcome of robot motion is
distributed normally according to N (g(ut , xt1 ), Rt ), where g g(ut , xt1 ) g(ut , t1 ) + g  (ut , t1 ) (xt1 t1 ) (22)
  
is the deterministic motion function, and Rt is the covariance =: Gt
of the motion error. Likewise, measurements zti are gener- h(yt , cti , i) h(t , cti , i) + h (t ) (yt t ) (23)
ated according to N (h(yt , cti , i), Qt ), where h is the familiar   
measurement function and Qt is the measurement error co- =: Hti
416 THE INTERNATIONAL JOURNAL OF ROBOTICS RESEARCH / MayJune 2006

Here t is the current estimate of the state vector yt , and This initialization is performed in lines 2 and 3 of the
Hti = hit Fx,j for the projection matrix Fx,j as indicated. algorithm GraphSLAM_linearize.
This linear approximation turns the log-likelihood (21) into
a function that is quadratic in y0:t . In particular, we obtain: Controls. From (25), we see that each control ut adds to
 and the following terms, assuming that the matrices
1 are rearranged so as to be of matching dimensions:
log p(y0:t | z1:t , u1:t , c1:t ) = const. (24)
 2  
   +
1
Rt1 (1 Gt ) (28)
x0T 0 x0 + [xt g(ut , t1 ) Gt (xt1 t1 )]T Gt
t
 
1
Rt1 [xt g(ut , t1 ) Gt (xt1 t1 )] + Rt1 [g(ut , t1 ) + Gt t1 ]
 Gt
+ [zti h(t , cti , i) Hti (yt t )]T (29)
i
 This is realized in lines 4 through 9 in Graph-
Q1
t [zti h(t , cti , i) Hti (yt t )]
SLAM_linearize.
This function is indeed a quadratic in y0:t , and it is convenient
Measurements. According to eq. (25), each measure-
to reorder its terms, omitting several constant terms.
ment zti transforms  and by adding the following
log p(y0:t | z1:t , u1:t , c1:t ) = const. (25) terms, once again assuming appropriate adjustment of
1 T the matrix dimensions:
x 0 x0
2  0     + HtiT Q1 Hti (30)
quadratic in x0 t
  1
+ Ht Qt [zti h(t , cti , i) Hti t ] (31)
1 T
iT
1
x Rt1 (1 Gt ) xt1:t
2 t t1:t Gt
   This update occurs in lines 10 through 21 in Graph-
quadratic in xt1:t SLAM_linearize.
 
1
+x T
Rt1 [g(ut , t1 ) + Gt t1 ] This proves the correctness of the construction algorithm
t1:t
Gt
   GraphSLAM_linearize, relative to our Taylor expansion
linear in xt1:t approximation.
1 We also note that the steps above only affect off-diagonal
ytT HtiT Q1 Hti yt
2 i
 t  elements that involve at least one pose. Thus, all between-
quadratic in yt feature elements are zero in the resulting information matrix.
+ ytT HtiT Q1 [zti h(t , cti , i) Hti t ]
 t
  5.5. Reducing the Information Form
linear in yt
The reduction step GraphSLAM_reduce is based on a fac-
Here xt1:t denotes the vector concatenating xt1 and xt ; hence torization of the full SLAM posterior.
we can write (xt Gt xt1 )T = xt1:t
T
(1 Gt )T . If we collect
all quadratic terms into the matrix , and all linear terms into p(y0:t | z1:t , u1:t , c1:t ) = p(x0:t | z1:t , u1:t , c1:t ) (32)
a vector , we see that expression (24) is of the form:
p(m | x0:t , z1:t , u1:t , c1:t )
1 T
log p(y0:t | z1:t , u1:t , c1:t ) = const.
y  y0:t + y0:t
T
(26) Here p(x0:t | z1:t , u1:t , c1:t ) N (, ) is the posterior over
2 0:t
paths alone, with the map integrated out:
5.4. Constructing the Information Form 
p(x0:t | z1:t , u1:t , c1:t ) = p(y0:t | z1:t , u1:t , c1:t ) dm (33)
We can read off these terms directly from (25), and verify
that they are indeed implemented in the algorithm Graph-
As we will show shortly, this probability is indeed calculated
SLAM_linearize in Table 2:
by the algorithm GraphSLAM_reduce in Table 3, since
Prior. The initial pose prior manifests itself by a
quadratic term 0 over the initial pose variable x0 in p(x0:t | z1:t , u1:t , c1:t ) N ( , ) (34)
the information matrix. Assuming appropriate exten-
sion of the matrix 0 to match the dimension of y0:t , we In general, the integration in (33) will be intractable, due to the
have: large number of variables in m. For Gaussians, this integral
can be calculated in closed form. The key insight is given by
 0 (27) the marginalization lemma for Gaussians, stated in Table 7.
Thrun and Montemerlo / The GraphSLAM Algorithm 417

Table 6. The (Specialized) Inversion Lemma, Sometimes Called the Sherman/Morrison


Formula (see the Appendix for a derivation)
Inversion Lemma. For any invertible quadratic matrices R and Q and any matrix P with appropriate
dimensions, the following holds true

(R + P Q P T )1 = R 1 R 1 P (Q1 + P T R 1 P )1 P T R 1

assuming that all above matrices can be inverted as stated.

Table 7. Lemma for Marginalizing Gaussians in Information Form. The Form of the
Covariance  xx in This Lemma is Also as Schur complement (a derivation can be found
in the Appendix).
Marginals of a multivariate Gaussian. Let the probability distribution p(x, y) over the random
vectors x and y be a Gaussian represented in the information form
   
xx xy x
 = and =
yx yy y

If yy is invertible, the marginal p(x) is a Gaussian whose information representation is

xx
 = xx xy 1
yy yx and x = x xy 1
yy y

Let us subdivide the matrix  and the vector into sub- eqs (37) and (38) into a sequential update:
matrices, for the robot path x0:t and the map m: 
  = x0:t ,x0:t
 x0:t ,j 1
j,j ; j,x0:t (41)
x0:t ,x0:t x0:t ,m
 = (35) 
j
m,x0:t m,m
  = x0:t x0:t ,j 1
j,j j (42)
x0:t
= (36) j
m
The matrix x0:t ,j is non-zero only for elements in (j ), the
According to the marginalization lemma, the probability (34) set of poses at which feature j was observed. This essentially
is obtained as proves the correctness of the reduction algorithm Graph-
SLAM_reduce in Table 3. The operation performed on 
=
 x0:t ,x0:t x0:t ,m 1
m,m megam,x0:t (37) in this algorithm can be thought of as the variable elimination
= x0:t x0:t ,m  1
m (38) algorithm for matrix inversion, applied to the feature variables
m,m
but not the robot pose variables.
The matrix m,m is block-diagonal. This follows from the way
 is constructed, in particular the absence of any links be- 5.6. Recovering the Path and the Map
tween pairs of features. This makes the inversion efficient:
The algorithm GraphSLAM_solve in Table 4 calculates the

mean and variance of the Gaussian N ( , ):
1
m,m = FjT 1
j,j Fj (39)
j
= 
 1 (43)
where j,j = Fj F is the sub-matrix of  that corresponds
T
=  (44)
j
to the j -th feature in the map, that is
In particular, this operation provides us with the mean of the
00 1 0 00 posterior on the robot path; it does not give us the locations
Fj = 0 0 0 1
 00 (40) of the features in the map.
j th feature It remains to recover the second factor of eq. (32):

This insight makes it possible to decompose the implement p(m | x0:t , z1:t , u1:t , c1:t ) (45)
418 THE INTERNATIONAL JOURNAL OF ROBOTICS RESEARCH / MayJune 2006

Table 8. Lemma for Conditioning Gaussians in Information Form (a derivation can be found
in the Appendix)
Conditionals of a multivariate Gaussian. Let the probability distribution p(x, y) over the random
vectors x and y be a Gaussian represented in the information form
   
xx xy x
 = and =
yx yy y

The conditional p(x | y) is a Gaussian with information matrix xx and information vector x +
xy y.

The conditioning lemma, stated in Table 8, shows that this correspondence vector, instead of calculating an entire distri-
probability distribution is Gaussian with the parameters bution over correspondences. Thus, finding a correspondence
vector is a search problem. However, it proves convenient to
m = 1
m,m (46)
define correspondences slightly differently in GraphSLAM
m = m (m + m,x0:t ) (47) than before: correspondences are defined over pairs of fea-
tures in the map, rather than associations of measurements to
Here m and m,m are the sub-vector of , and the sub-matrix
features. Specifically, we say c(j, k) = 1 if mj and mk corre-
of , respectively, restricted to the map variables. The matrix
spond to the same physical feature in the world. Otherwise,
m,x0:t is the off-diagonal sub-matrix of  that connects the
c(j, k) = 0. This feature-correspondence is in fact logically
robot path to the map.As noted before, m,m is block-diagonal,
equivalent to the correspondence defined in the previous sec-
hence we can decompose

tion, but it simplifies the statement of the basic algorithm.
p(m | x0:t , z1:t , u1:t , c1:t ) = p(mj | x0:t , z1:t , u1:t , c1:t ) (48) Our technique for searching the space of correspondences
j is greedy, just as in the EKF. Each step in the search of the best
correspondence value leads to an improvement, as measured
where each p(mj | x0:t , z1:t , u1:t , c1:t ) is distributed accord-
by the appropriate log-likelihood function. However, because
ing to
GraphSLAM has access to all data at the same time, it is possi-
j = 1
j,j (49) ble to devise correspondence techniques that are considerably
j = j (j + j,x0:t ) = j (j + j, (j ) (j ) ) (50) more powerful than the incremental approach in the EKF. In
particular:
The last transformation exploited the fact that the sub-matrix
1. At any point in the search, GraphSLAM can con-
j,x0:t is zero except for those pose variables (j ) from which
sider the correspondence of any set of features. There
the j -th feature was observed.
is no requirement to process the observed features
It is important to notice that this is a Gaussian p(m |
sequentially.
x0:t , z1:t , u1:t , c1:t ) conditioned on the true path x0:t . In prac-
tice, we do not know the path, hence one might want to know 2. Correspondence search can be combined with the cal-
the posterior p(m | z1:t , u1:t , c1:t ) without the path in the condi- culation of the map. Assuming that two observed fea-
tioning set. This Gaussian cannot be factored in the moments tures correspond to the same physical feature in the
parameterization, as locations of different features are cor- world affects the resulting map. By incorporating such
related through the uncertainty over the robot pose. For this a correspondence hypothesis into the map, other corre-
reason, GraphSLAM_solve returns the mean estimate of the spondence hypotheses will subsequently look more or
posterior but only the covariance over the robot path. Luckily, less likely.
we never need the full Gaussian in moments representation
which would involve a fully populated covariance matrix of 3. Data association decisions in GraphSLAM can be un-
massive dimensionsas all essential questions pertaining to done. The goodness of a data association depends on
the SLAM problem can be answered at least in approximation the value of other data association decisions. What ap-
without knowledge of . pears to be a good choice early on in the search may, at
some later time in the search, turn out to be inferior. To
accommodate such a situation, GraphSLAM can effec-
6. Data Association in GraphSLAM tively undo a previous data association decision.
Data association in GraphSLAM is realized through corre- We will now describe one specific correspondence search al-
spondence variables. GraphSLAM searches for a single best gorithm that exploits the first two properties, but not the third.
Thrun and Montemerlo / The GraphSLAM Algorithm 419

Our data association algorithm will still be greedy, and it will 14). As a result, subsequent correspondence tests factor in pre-
sequentially search the space of possible correspondences to vious correspondence decisions though a newly constructed
arrive at a plausible map. However, like all greedy algorithms, map. The map construction is terminated when no further fea-
our approach is subject to local maxima; the true space of tures are found in its inner loop.
correspondences is of course exponential in the number of Clearly, the algorithm GraphSLAM is not particularly ef-
features in the map. Nevertheless, we will be content with a ficient. In particular, it tests all feature pairs for correspon-
hill climbing algorithm. dence, not just nearby ones. Further, it reconstructs the map
whenever a single correspondence is found; rather than pro-
cessing sets of corresponding features in batch. Such modifi-
6.1. The GraphSLAM Algorithm with Unknown
cations, however, are relatively straightforward. A good im-
Correspondence
plementation of GraphSLAM will be more refined than our
The key component of our algorithm is a likelihood test for basic implementation discussed here.
correspondence. Specifically, GraphSLAM correspondence
is based on a simple test: what is the probability that two 6.2. Mathematical Derivation of the Correspondence Test
different features in the map, mj and mk , correspond to the
same physical feature in the world? If this probability exceeds We essentially restrict our derivation to showing the correct-
a threshold, we will accept this hypothesis and merge both ness of the correspondence test in Table 9. Our first goal is
features in the map. to define a posterior probability distribution over a variable
The algorithm for the correspondence test is depicted in j,k = mj mk , the difference between the location of fea-
Table 9: the input to the test are two feature indexes, j and ture mj and feature mk . Two features mj and mk are equivalent
k, for which we seek to compute the probability that those if and only if their location is the same. Hence, by calculat-
two features correspond to the same feature in the physical ing the posterior probability of j,k , we obtain the desired
world. To calculate this probability, our algorithm utilizes a correspondence probability.
number of quantities: the information representation of the We obtain the posterior for j,k by first calculating the joint
SLAM posterior, as manifest by  and , and the result of the over mj and mk :
procedure GraphSLAM_solve, which is the mean vector
p(mj , mk | z1:t , u1:t , c1:t ) (51)
and the path covariance 0:t . 
The correspondence test then proceeds in the following = p(mj , mk | x1:t , z1:t , c1:t ) p(x1:t | z1:t , u1:t , c1:t ) dx1:t
way. First, it computes the marginalized posterior over the
two target features. This posterior is represented by the in- We will denote the information form of this marginal posterior
formation matrix [j,k] and vector [j,k] computed in lines 2 by [j,k] and [j,k] . Note the use of the squared brackets, which
and 3 in Table 9. This step of the computation utilizes various distinguish these values from the sub-matrices of the joint
sub-elements of the information form , , the mean feature information form.
locations as specified through , and the path covariance 0:t . The distribution (51) is obtained from the joint posterior
Next, it calculates the parameters of a new Gaussian random over y0:t , by applying the marginalization lemma. Specifically,
variable, whose value is the difference between mj and mk .  and represent the joint posterior over the full state vector
Denoting the difference variable j,k = mj mk , the informa- y0:t in information form, and (j ) and (k) denote the sets
tion parameters  j,k , j,k are calculated in lines 4 and 5, and of poses at which the robot observed feature j , and feature k,
the corresponding expectation for the difference is computed respectively. GraphSLAM gives us the mean pose vector . To
in line 6. Line 7 returns the probability that the difference apply the marginalization lemma (Table 7), we shall leverage
between mj and mk is zero. the result of the algorithm GraphSLAM_solve. Specifically,
The correspondence test provides us with an algorithm GraphSLAM_solve provides us with a mean for the features
for performing data association search in GraphSLAM. Ta- mj and mk . We simply restate the computation here for the
ble 10 shows such an algorithm. It initializes the correspon- joint feature pair:
dence variables with unique values. The four steps that follow
(lines 3-7) are the same as in our GraphSLAM algorithm with [j,k] = 1
j k,j k (j k + j k, (j,k) (j,k) ) (52)
known correspondence, stated in Table 5. However, this gen-
eral SLAM algorithm then engages in the data association Here (j, k) = (j ) (k) denotes the set of poses at which
search. Specifically, for each pair of different features in the the robot observed mj or mk .
map, it calculates the probability of correspondence (line 9 For the joint posterior, we also need a covariance. This
in Table 10). If this probability exceeds a threshold , the covariance is not computed in GraphSLAM_solve, simply
correspondence vectors are set to the same value (line 11). because the joint covariance over multiple features requires
The GraphSLAM algorithm iterates the construction, re- space quadratic in the number of features. However, for pairs
duction, and solution of the SLAM posterior (lines 12 through of features the covariance of the joint is easily recovered.
420 THE INTERNATIONAL JOURNAL OF ROBOTICS RESEARCH / MayJune 2006

Table 9. The GraphSLAM Test for Correspondence: It Accepts as Input an Information


Representation of the SLAM Posterior, Along with the Result of the GraphSLAM_solve Step.
It Then Outputs the Posterior Probability That mj Corresponds to mk .

1: Algorithm GraphSLAM_correspondence_test(, , , 0:t , j, k):

2: [j,k] = j k,j k j k, (j,k)  (j,k), (j,k)  (j,k),j k


3: [j,k] = [j,k] j,k
 T  
1 1
4:  j,k = [j,k]
1 1
 T
1
5: j,k = [j,k]
1
6: j,k = 1
j,k j,k
 
7: return |2 1
j,k |
21
exp 21 T j,k 1
j,k j,k

Table 10. The GraphSLAM Algorithm for the Full SLAM Problem with Unknown
Correspondence. The inner loop of this algorithm can be made more efficient by selective
probing feature pairs mj , mk , and by collecting multiple correspondences before solving
the resulting collapsed set of equations.

1: Algorithm GraphSLAM(u1:t , z1:t ):

2: initialize all cti with a unique value


3: 0:t = GraphSLAM_initialize(u1:t )
4: , = GraphSLAM_linearize(u1:t , z1:t , c1:t , 0:t )
5: = GraphSLAM_reduce(, )
,
6: , 0:t = GraphSLAM_solve(, , , )
7: repeat
8: for each pair of non-corresponding features mj , mk do
9: j =k = GraphSLAM_correspondence_test
(, , , 0:t , j, k)
10: if j =k > then
11: for all cti = k set cti = j
12: , = GraphSLAM_linearize(u1:t , z1:t , c1:t , 0:t )
13: = GraphSLAM_reduce(, )
,
14: , 0:t = GraphSLAM_solve(, , , )
15: endif
16: endfor
17: until no more pair mj , mk found with j =k <
18: return
Thrun and Montemerlo / The GraphSLAM Algorithm 421

Let  (j,k), (j,k) be the sub-matrix of the covariance 0:t re- useful to rewrite this Gaussian in moments parameterization:
stricted to all poses in (j, k). Here the covariance 0:t is cal-
culated in line 2 of the algorithm GraphSLAM_solve. Then p( j,k | z1:t , u1:t , c1:t ) (58)
21
the marginalization lemma provides us with the marginal in- = |2 1
j,k |
formation matrix for the posterior over (mj mk )T : 
1
exp ( j,k j,k )T 1
j,k ( j,k j,k )
[j,k] = j k,j k j k, (j,k)  (j,k), (j,k)  (j,k),j k (53) 2
where the mean is given by the obvious expression:
The information form representation for the desired posterior
is now completed by the following information vector: j,k = 1
j,k j,k (59)

[j,k] = [j,k] [j,k] (54) These steps are found in lines 4 through 6 in Table 9.
The desired probability for j,k = 0 is the result of plug-
Hence for the joint we have: ging 0 into this distribution, and reading off the resulting prob-
ability:
p(mj , mk | z1:t , u1:t , c1:t ) (55)
  T   1

1 mj p( j,k = 0 | z1:t , u1:t , c1:t ) = |2 1 j,k |


2
(60)
mj 
= exp [j,k] 1
2 mk mk
exp T j,k 1
 T  2 j,k j,k

mj
+ [j,k] This expression is the probability that two features in the map,
mk
mj and mk , correspond to the same features in the map. This
These equations are identical to lines 2 and 3 in Table 9. calculation is implemented in line 7 in Table 9.
The useful thing about our representation is that it imme-
diately lets us define the desired correspondence probability.
For that, let us consider the random variable:
7. Results
j,k = mj mk (56)
 T   We conducted a number of experiments, all with the robot
1 mj
= shown in Figure 4. In particular, we mapped a number of urban
1 mk
 T   sites, including NASAs Search and Rescue Facility DART
mj 1 and a large fraction of Stanfords main campus; snapshots of
=
mk 1 these experiments will be discussed below.
Our experiments either involved the collection of a sin-
Plugging this into the definition of a Gaussian in information gle large dataset, or a number of datasets. The latter became
representation, we obtain: necessary since for the environments of the size studied here,
the robot possesses insufficient battery capacity to collect all
p( j,k | z1:t , u1:t , c1:t ) (57) data within a single run. In most experiments, the robot is


controlled manually. This is necessary because the urban en-

1  T   vironments are usually populated with moving objects, such
1 1
= exp j,k T
[j,k] j,k as cars, which would otherwise run the danger of colliding

2 1 1

   with our robot. We have, on several occasions, used our navi-
=:  j,k
gation package Carmen (Montemerlo, Roy, and Thrun 2003)

to drive the robot autonomously, validating the terrain analysis
 T

1 techniques discussed above.
+ Tj,k [j,k] Our research has led to a number of results. A primary
1
  
finding is that with our representation, maps with more than
=: j,k
108 variables can be computed quickly, even under multiple
T
1 loop-closure constraints. The time for thinning the network
= exp Tj,k  j,k + Tj,k j,k into its skeleton tends to take linear time in the number of
2
robot poses, which is the same order as the time required for
which is Gaussian with the information matrix  j,k and in- data collection. We find that scan matching is easily achieved
formation vector j,k as defined above. To calculate the prob- in real-time, as the robot moves, using a portable laptop com-
ability that this Gaussian assumes the value of j,k = 0, it is puter. This is a long-known result for horizontally mounted
422 THE INTERNATIONAL JOURNAL OF ROBOTICS RESEARCH / MayJune 2006

Fig. 4. The Segbot, a robot based on the Segway RMP platform and developed through the DARPA MARS program.

Fig. 5. Data acquisition through a two-directional scanning laser (the blue stripe indicates a vertical scan). The coloring
indicates the result of terrain analysis: The ground surface is colored in green, obstacles are red, and structure above the
robots reach are shown in white.

laser range finders, but it is reassuring that the same applies our system. All maps are substantially larger than previously
to the more difficult scan matching problem involving a verti- software could handle, all are constructed with some GPS in-
cally panning scanner. More importantly, the relaxation of the formation. The map shown on the top in Figure 7 corresponds
pose potentials takes in the order of 30 seconds even for the to Stanfords main campus; the one on the bottom is an indoor-
largest data set used in our research, of an area 600 m by 800 m outdoor map of the building that houses the computer science
in size, and with a dozen cycles. This suggests the appropriate- department.
ness of our representation an algorithms for large-scale urban The key result of improved indoor maps through combin-
mapping. ing indoor and outdoor mapping is illustrated in Figure 6. Here
The second result pertains to the utility of GPS data for we show 2-D slices of the 3-D map in Figure 7 using SLAM
indoor maps. GPS measurements are easily incorporated into under two different conditions: In the map on the top, the in-
GraphSLAM; they form yet another arc in the graph of con- door map is constructed independently of the outdoor map,
straints. We find that indoor maps become more accurate when whereas the bottom map is constructed jointly. As explained,
some of the data is collected outdoors, where GPS measure- the joint construction lets GPS information affect the building
ments are available. Below, we will discuss an experimental interior through the sequence of potentials liking the outdoor
snapshot that documents this result. to the indoor. As this figure suggests, the joint indoor-outdoor
Experimental snapshots can be found in Figures 6 map is significantly more accurate; in fact, the building pos-
through 8. Figures 7 and 8 show some of the maps acquired by sesses a right angle at its center, which is well approximated.
Thrun and Montemerlo / The GraphSLAM Algorithm 423

Fig. 6. Indoor mapping. Top: just based on the IMU and SLAM. Bottom: factoring in GPS data acquired outdoors. This
experiment highlights the utility of our hybrid SLAM algorithm that factors in GPS measurements as available.
424 THE INTERNATIONAL JOURNAL OF ROBOTICS RESEARCH / MayJune 2006

Fig. 7. Top: A map of Stanford Universitys main campus, whose diameter is approximately 600 meters. Bottom: 3-D map of
the Gates Computer Science building and the surrounding terrain.
Thrun and Montemerlo / The GraphSLAM Algorithm 425

Fig. 8. Visualization of the NASA Ames ARC Disaster Assistance and Rescue Team training site in Moffett Field, CA. This
site consist of a partially collapsed building with two large observation platforms.

8. Conclusion to a sparse spring-mass system. The key innovation in this


paper is the reduction step, through which the problem of in-
We presented the GraphSLAM algorithm, which solves a spe- ference in this graphical model becomes manageable. This
cific version of the SLAM problem, called the offline problem step is essential in achieving scalability in offline SLAM.
(or full SLAM problem). The offline problem is characterized Experimental results in large-scale urban environments
by a feasibility to accumulate all data during mapping, and show that the GraphSLAM approach indeed leads to viable
resolve this data into a map after the robots operation is com- maps. Our experiments show that it is relatively straightfor-
plete. GraphSLAM achieves the latter by mapping the data ward to include other information sourcessuch as GPS
into a sparse graph of constraints, which are then mapped into the SLAM problem, by defining appropriate graphical
into an information form representation using linearization constraints. For example, we were able to show that through
through Taylor expansion. The information form is then re- the graphical model, GPS data acquired outside a build-
duced by applying exact transformations, which remove the ing structure could be propagated into the building interior,
map variables from the optimization problem. The resulting thereby improving the accuracy of an interior map.
optimization problem is solved via a standard optimization GraphSLAM is characterized by a number of limitations.
technique, such as conjugate gradient. GraphSLAM recovers One arises from the assumption of independent Gaussian
the map from the pose estimate, through a sequence of de- noise. Clearly, real-world noise is not Gaussian and, more
coupled small-scale optimization problems (one per feature). importantly, it is not independent. We find in practice that this
Iteration of the linearization and optimization technique yields problem can be alleviated by artificially increasing the covari-
accurate maps in environments with 108 features or more. ance of the noise variables, which reduces the information
The GraphSLAM algorithm follows a rich tradition of pre- available for SLAM. However, such methods are somewhat
viously published offline SLAM algorithms, which are all ad-hoc; see Guivant and Masson (2005) for further treatment
based on the insight that the full SLAM problem corresponds of non-Gaussian noise.
426 THE INTERNATIONAL JOURNAL OF ROBOTICS RESEARCH / MayJune 2006

GraphSLAM is also limited in its reliance on a good initial Marginals of a Multivariate Gaussian
estimate of the map, computed in Table 1. As the total number
of time steps increases, the accuracy of the odometry-based The marginal for a Gaussian in its moments parameterization
initial guess will degrade, leading to an increased number of    
xx xy x
data association errors. GraphSLAM, as formulated in this  = and =
paper, will eventually diverge because of this initial pose es- yx yy y
timation step. However, the data set may often be broken into
pieces, for which SLAM can be performed individually before is N (x , xx ). By definition, the information matrix of this
1
pasting together the total set of constraints. Such a hierarchical Gaussian is therefore xx , and the information vector is
xx x . We show xx = 
1 1 xx via the Inversion Lemma from
computation is subject of future research.
Another limitation pertains to the matrix inversion in Ta- Table 6; this derivation makes the assumption that none of the
ble 4. This inversion can be painfully slow; and optimization participating matrices is singular. Let P = (0 1)T , and let
methods such as conjugate gradient (as brought to bear in our [] be a matrix of the same size as yy but whose entries are
experiments, can be much more efficient. all infinite (and with []1 = 0. This gives us
More broadly, there remain a number of open questions  1  1

that warrant future research. Chief among them is the devel- T 1 xx xy () xx 0
( + P []P ) = =
opment of SLAM techniques that can handle basic building yx [] 0 0
elements, such as walls, windows, roofs, and so on. Graph-
SLAM makes a static world assumption, and more research The same expression can also be expanded by the inversion
is needed to understand SLAM in dynamic environments (see lemma into:
Hhnel, Schulz, and Burgard 2003; Wang, Thorpe, and Thrun
2003 for notable exceptions). Finally, bridging the gap be- ( + P []P T )1
tween online and offline SLAM algorithm is a worthwhile =   P ([]1 + P T  P )1 P T 
goal of future research. =   P (0 + P T  P )1 P T 
=   P (yy )1 P T 
    
Appendix: Derivations xx xy xx xy 0 0
=
yx yy yx yy 0 1
yy
The derivations in this section are standard textbook material.  
xx xy
yx yy
Derivation of the Inversion Lemma     
() xx xy 0 xy 1 xx xy
= yy
Define  = (Q1 + P T R 1 P )1 . It suffices to show that yx yy 0 1 yx yy
   
xx xy xy 1
yy yx xy
(R 1
R 1 1
P  P R ) (R + P Q P ) =
T T
I =
yx yy yx yy
 
 xx 0
This is shown through a series of transformations: =
0 0
= R 1 1 T 1 T 1
 R + R P Q P R P  P R  R
=I =I
The remaining statement, xx 1
x = x , is obtained analo-
R 1 P  P T R 1 P Q P T gously, exploiting the fact that = 1 and the equality of
the two expressions marked () above:
= I + R 1 P Q P T R 1 P  P T
    
R 1 P  P T R 1 P Q P T 1
xx x 1
xx 0 x
=
= I + R 1 P [Q P T 0 0 0 y
   
 P T  P T R 1 P Q P T ] xx 1
0 x
= 1
= I + R 1 P [Q P T  Q1 Q P T 0 0 y
   "  1
 #  
=I () 0 xy yy x
=   1
 P R T 1
P QP ]T 0 1 y
   1
 
= I + R 1 P [Q P T  
 1 Q P T ] =
x

0 xy yy x
=I y 0 1 y
 
= I + R 1 P [Q P T Q P T ] = I x
   =
=0 0
Thrun and Montemerlo / The GraphSLAM Algorithm 427

Conditionals of a multivariate Gaussian In Proceedings of the IEEE International Conference on


Robotics and Automation (ICRA).
Proof. The result follows trivially from the definition of a Bulata, H. and Devy, M. 1996. Incremental construction of a
Gaussian in information form: landmark-based and topological model of indoor environ-
ments by a mobile robot. In Proceedings of the IEEE Inter-
p(x | y)
  T    national Conference on Robotics and Automation (ICRA),
1 x xx xy x Minneapolis, USA.
= exp
2 y yx yy y Cheeseman, P. and Smith, P. 1986. On the representation and
 T   estimation of spatial uncertainty. International Journal of
x x Robotics 5:5668.
+
y y Cowell, R., Dawid, A., Lauritzen, S., and Spiegelhalter,
D. 1999. Probabilistic Networks and Expert Systems.
1 1
= exp x T xx x + x T xy y Springer Verlag, Berlin, New York.
2 2
 Csorba, M. 1997. Simultaneous Localisation and Map Build-
+y T yy y + x T x + y T y ing. PhD thesis, University of Oxford.
1 Dissanayake, G., Newman, P., Clark, S., Durrant-Whyte, H.,
= exp{ x T xx x
2 and Csorba, M. 2001. A solution to the simultaneous local-
1 isation and map building (SLAM) problem. IEEE Trans-
+x T (xy y + x ) + y T yy y + y T y }
2 actions of Robotics and Automation 17(3):229241.
  
const. Duckett, T., Marsland, S., and Shapiro, J. 2000. Learning glob-
1 ally consistent maps by relaxation. In Proceedings of the
= exp{ x T xx x + x T (xy y + x )} IEEE International Conference on Robotics and Automa-
2
tion, San Francisco, pp. 38413846.
Duckett, T., Marsland, S., and Shapiro, J. 2002. Fast, on-line
learning of globally consistent maps. Autonomous Robots
References
12(3):287300.
Allen, P. and Stamos, I. 2000. Integration of range and image Durrant-Whyte, H. 1988. Uncertain geometry in robotics.
sensing for photorealistic 3D modeling. In Proceedings of IEEE Transactions on Robotics and Automation 4(1):23
the IEEE International Conference on Robotics and Au- 31.
tomation (ICRA), pp. 14351440. El-Hakim, S., Boulanger, P., Blais, F., and Beraldin, J.-A. 1997.
Araneda, A. 2003. Statistical inference in mapping and local- Sensor based creation of indoor virtual environment mod-
ization for a mobile robot. In Bayesian Statistics 7. (eds els. In Proc. of the 4th Internetional Conference on Virtual
Bernardo, J. M., Bayarri, M., Berger, J., Dawid, A. P., Systems and Multimedia (VSMM), Geneva, Switzerland.
Heckerman, D., Smith, A., and West, M). Oxford Univer- Elfes, A. 1987. Sonar-based real-world mapping and navi-
sity Press, Oxford, UK. gation. IEEE Journal of Robotics and Automation RA-
Bailey, T. 2002. Mobile Robot Localisation and Mapping in 3(3):249265.
Extensive Outdoor Environments. PhD thesis, University Folkesson, J. and Christensen, H. I. 2004a. Graphical SLAM:
of Sydney, Sydney, NSW, Australia. A self-correcting map. In Proceedings of the IEEE Inter-
Bajcsy, R., Kamberova, G., and Nocera, L. 2000. 3D re- national Conference on Robotics and Automation (ICRA),
construction of environments for virtual reconstruction. In New Orleans, USA.
Proc. of the 4th IEEE Workshop on Applications of Com- Folkesson, J. and Christensen, H. I. 2004b. Robust SLAM.
puter Vision. In Proceedings of the International Symposium on Au-
Baker, C., Morris, A., Ferguson, D., Thayer, S., Whittaker, tonomous Vehicles, Lisboa, PT.
C., Omohundro, Z., Reverte, C., Whittaker, W., Hhnel, Frese, U. 2004. An O(logn) Algorithm for Simultaneous Lo-
D., and Thrun, S. 2004. A campaign in autonomous mine calization and Mapping of Mobile Robots in Indoor En-
mapping. In Proceedings of the IEEE International Con- vironments. PhD thesis, University of Erlangen-Nrnberg,
ference on Robotics and Automation (ICRA). Germany.
Bosse, M., Newman, P., Leonard, J., Soika, M., Feiten, W., Frese, U. and Hirzinger, G. 2001. Simultaneous localization
and Teller, S. 2004. Simultaneous localization and map and mappinga discussion. In Proceedings of the IJCAI
building in large-scale cyclic environments using the at- Workshop on Reasoning with Uncertainty in Robotics, pp.
las framework. International Journal of Robotics Research 1726, Seattle, WA.
23(12):11131139. Frese, U., Larsson, P., and Duckett, T. 2005. A Multigrid Al-
Bosse, M., Newman, P., Soika, M., Feiten, W., Leonard, J., and gorithm for Simultaneous Localization and Mapping. In
Teller, S. 2003. An atlas framework for scalable mapping. IEEE Transactions on Robotics, 21(2):1-12.
428 THE INTERNATIONAL JOURNAL OF ROBOTICS RESEARCH / MayJune 2006

Golfarelli, M., Maio, D., and Rizzi, S. 1998. Elastic correc- Leonard, J., Tards, J., Thrun, S., and Choset, H. (eds) 2002.
tion of dead-reckoning errors in map building. In Proceed- Workshop Notes of the ICRA Workshop on Concurrent
ings of the IEEE/RSJ International Conference on Intel- Mapping and Localization for Autonomous Mobile Robots
ligent Robots and Systems (IROS), pp. 905911, Victoria, (W4). ICRA Conference, Washington, DC.
Canada. Levoy, M. 1999. The digital michelangelo project. In Proc. of
Guivant, J. and Masson, F. 2005. Using absolute non-gaussian the Second International Conference on 3D Imaging and
non-white observations in Gaussian SLAM. In Proceed- Modeling.
ings of the IEEE International Conference on Robotics Liu, Y. and Thrun, S. 2003. Results for outdoor-SLAM using
and Automation (ICRA), Barcelona, Spain. sparse extended information filters. In Proceedings of the
Guivant, J. and Nebot, E. 2001. Optimization of the simul- IEEE International Conference on Robotics and Automa-
taneous localization and map building algorithm for real tion (ICRA).
time implementation. IEEE Transactions of Robotics and Lu, F. and Milios, E. 1997. Globally consistent range scan
Automation 17(3):242257. alignment for environment mapping. Autonomous Robots
Gutmann, J.-S. and Konolige, K. 2000. Incremental mapping 4:333349.
of large cyclic environments. In Proceedings of the IEEE Montemerlo, M., Roy, N., and Thrun, S. 2003. Perspec-
International Symposium on Computational Intelligence tives on standardization in mobile robot programming:
in Robotics and Automation (CIRA). The Carnegie Mellon navigation (CARMEN) toolkit.
Gutmann, J.-S. and Nebel, B. 1997. Navigation mobiler In Proceedings of the Conference on Intelligent Robots
roboter mit laserscans. In Autonome Mobile Systeme. and Systems (IROS). Software package for download at
Springer Verlag, Berlin. In German. www.cs.cmu.edu/carmen.
Hhnel, D., Burgard, W., Wegbreit, B., and Thrun, S. 2003a. Montemerlo, M. and Thrun, S. 2004. Large-scale robotic 3-
Towards lazy data association in SLAM. In Proceedings d mapping of urban structures. In Proceedings of the In-
of the 11th International Symposium of Robotics Research ternational Symposium on Experimental Robotics (ISER),
(ISRR03), Sienna, Italy. Springer. Singapore. Springer Tracts in Advanced Robotics (STAR).
Hhnel, D., Schulz, D., and Burgard, W. 2003b. Mobile robot Montemerlo, M., Thrun, S., Koller, D., and Wegbreit, B. 2002.
mapping in populated environments. Autonomous Robots FastSLAM: A factored solution to the simultaneous local-
17(7):579598. ization and mapping problem. In Proceedings of the AAAI
Iocchi, L., Konolige, K., and Bajracharya, M. 2000. Visually National Conference on Artificial Intelligence, Edmonton,
realistic mapping of a planar environment with stereo. In Canada. AAAI.
Proceesings of the 2000 International Symposium on Ex- Moravec, H. P. 1988. Sensor fusion in certainty grids for mo-
perimental Robotics, Waikiki, Hawaii. bile robots. AI Magazine 9(2):6174.
Julier, S. and Uhlmann, J. K. 2000. Building a million bea- Moutarlier, P. and Chatila, R. 1989a. An experimental system
con map. In Proceedings of the SPIE Sensor Fusion and for incremental environment modeling by an autonomous
Decentralized Control in Robotic Systems IV, Vol. #4571. mobile robot. In 1st International Symposium on Experi-
Konecny, G. 2002. Geoinformation: Remote Sensing, Pho- mental Robotics, Montreal.
togrammetry and Geographical Information Systems. Tay- Moutarlier, P. and Chatila, R. 1989b. Stochastic multisensory
lor & Francis. data fusion for mobile robot location and environment
Konolige, K. 2004. Large-scale map-making. In Proceedings modeling. In 5th Int. Symposium on Robotics Research,
of the AAAI National Conference on Artificial Intelligence, Tokyo.
pp. 457463, San Jose, CA. AAAI. Narendra, P. and Fukunaga, K. 1977. A branch and bound
Kuipers, B., Modayil, J., Beeson, P., MacMahon, M., and algorithm for feature subset selection. IEEE Transactions
Savelli, F. 2004. Local metrical and global topological on Computers 26(9):914922.
maps in the hybrid spatial semantic hierarchy. In Proceed- Newman, P. 2000. On the Structure and Solution of the Si-
ings of the IEEE International Conference on Robotics and multaneous Localisation and Map Building Problem. PhD
Automation (ICRA), New Orleans. thesis, Australian Centre for Field Robotics, University of
Lawler, E. and Wood, D. 1966. Branch-and-bound methods: Sydney, Sydney, Australia.
A survey. Operations Research 14:699719. Newman, P. M. and Durrant-Whyte, H. F. 2001. A new solu-
Leonard, J. J. and Durrant-Whyte, H. F. 1991. Mobile robot tion to the simultaneous and map building (SLAM) prob-
localization by tracking geometric beacons. IEEE Trans- lem. In Proceedings of SPIE.
actions on Robotics and Automation 7(3):376382. Newman, P. and Rikoski, J. L. R. 2003. Towards constant-time
Leonard, J. and Newman, P. 2003. Consistent, convergent, and slam on an autonomous underwater vehicle using synthetic
constant-time SLAM. In Proceedings of the IJCAI Work- aperture sonar. In Proceedings of the International Sympo-
shop on Reasoning with Uncertainty in Robot Navigation, sium of Robotics Research, Sienna, Italy.
Acapulco, Mexico. Paskin, M. 2003. Thin junction tree filters for simultaneous
Thrun and Montemerlo / The GraphSLAM Algorithm 429

localization and mapping. In Proceedings of the Sixteenth Conference on Computer Vision and Pattern Recognition
International Joint Conference on Artificial Intelligence (CVPR).
(IJCAI), Acapulco, Mexico. IJCAI. Thrun, S., Koller, D., Ghahramani, Z., Durrant-Whyte, H., and
Pearl, J. 1988. Probabilistic reasoning in intelligent systems: Ng, A. 2002. Simultaneous mapping and localization with
networks of plausible inference. Morgan Kaufmann Pub- sparse extended information filters. In Proceedings of the
lishers, San Mateo, CA. Fifth International Workshop on Algorithmic Foundations
Pollefeys, M., Koch, R., and Gool, L. V. 1998. Self-calibration of Robotics (eds Boissonnat, J.-D., Burdick, J., Goldberg,
and metric reconstruction in spite of varying and unknown K., and Hutchinson, S.), Nice, France.
internal camera parameters. In Proceedings of the Interna- Thrun, S. and Liu, Y. 2003. Multi-robot SLAM with sparse
tional Conference on Computer Vision, pp. 9095, Bom- extended information filers. In Proceedings of the 11th In-
bay, India. IEEE. ternational Symposium of Robotics Research (ISRR03),
Rusinkiewicz, S. and Levoy, M. 2001. Efficient variants of the Sienna, Italy. Springer.
ICP algorithm. In Proc. Third International Conference on Tomasi, C. and Kanade, T. 1992. Shape and motion from im-
3D Digital Imaging and Modeling (3DIM), Quebec City, age streams under orthography: A factorization method.
Canada. IEEEComputer Society. International Journal of Computer Vision 9(2):137154.
Smith, R. and Cheeseman, P. 1986. On the representation and Uhlmann, J., Lanzagorta, M., and Julier, S. 1999. The NASA
estimation of spatial uncertainty. International Journal of mars rover: A testbed for evaluating applications of covari-
Robotics Research 5(4):5668. ance intersection. In Proceedings of the SPIE 13th Annual
Smith, R., Self, M., and Cheeseman, P. 1990. Estimating un- Symposium in Aerospace/Defence Sensing, Simulation and
certain spatial relationships in robotics. In Autonomous Controls.
Robot Vehicles (eds Cox, I. and Wilfong, G.) pp. 167193. Wang, C.-C., Thorpe, C., and Thrun, S. 2003. Online simulta-
Springer-Verlag. neous localization and mapping with detection and track-
Soatto, S. and Brockett, R. 1998. Optimal structure from mo- ing of moving objects: Theory and results from a ground
tion: Local ambiguities and global estimates. In Proceed- vehicle in crowded urban areas. In Proceedings of the
ings of the Conference on Computer Vision and Pattern IEEE International Conference on Robotics and Automa-
Recognition (CVPR), pp. 282288. tion (ICRA).
Tards, J., Neira, J., Newman, P., and Leonard, J. 2002. Ro- Williams, S. B. 2001. Efficient Solutions to Autonomous Map-
bust mapping and localization in indoor environments us- ping and Navigation Problems. PhD thesis, ACFR, Univer-
ing sonar data. International Journal of Robotics Research sity of Sydney, Sydney, Australia.
21(4):311330. Williams, S., Dissanayake, G., and Durrant-Whyte, H. 2001.
Teller, S., Antone, M., Bodnar, Z., Bosse, M., Coorg, S., Towards terrain-aided navigation for underwater robotics.
Jethwa, M., and Master, N. 2001. Calibrated, registered Advanced Robotics 15(5).
images of an extended urban area. In Proceedings of the

Anda mungkin juga menyukai