Slam Handbook
Slam Handbook
Edited by
Notation page 1
Notes 165
References 166
Author index 187
Subject index 188
Notation
– General Notation –
a This font is used for real scalars
a This font is used for real column vectors
A This font is used for real matrices
X This font is used for sets
I The identity matrix
0 The zero matrix
AT The transpose of matrix A
RM ×N The vector space of real M × N matrices
p(a) The probability density of a
p(a|b) The probability density of a given b
N (µ, Σ) Gaussian probability density with mean µ and covariance Σ
GP(µ(t), K(t, t′ )) Gaussian process with mean function, µ(t), and covariance function, K(t, t′ )
ˆ
(·) A posterior (estimated) quantity
ˇ
(·) A prior quantity
(·)k The value of a quantity at timestep k
(·)k1 :k2 The set of values of a quantity from timestep k1 to timestep k2 , inclusive
P
∥·∥1 L1 norm ∥x∥1 = p |xi |
P 2
∥·∥2 L2 norm ∥x∥2 = xi
2 Notation
– 3D Geometry Notation –
Fa A reference frame in three dimensions
va The coordinates of a vector in frame F a
Rab A 3 × 3 rotation matrix (member of SO(3)) that takes points expressed in F a and
re-expresses them in (purely rotated) F b : v b = Rab v a
tb The three-dimensional position of the origin of frame F a expressed in F b
a a
v
ṽ a = A 4 × 1 homogeneous point expressed in F a
1
b b
b R a t a
Ta = A 4 × 4 transformation matrix (member of SE(3)) that takes homogeneous points
0 1
expressed in F a and re-expresses them in (rotated and translated) F b : ṽ b = Tab ṽ a
SO(3) The special orthogonal group, a matrix Lie group used to represent rotations
so(3) The Lie algebra associated with SO(3)
SE(3) The special Euclidean group, a matrix Lie group used to represent poses
se(3) The Lie algebra associated with SE(3)
(·)∧ An operator mapping a vector in R3 (resp. R6 ) to an element of the Lie algebra for
rotations (resp. poses); implements the cross product for three-dimensional quanti-
ties, i.e., for two vectors u, v ∈ R3 , u∧ v = u × v
(·)∨ An operator mapping an element of the Lie algebra for rotations (resp. poses) to a
vector in R3 (resp. R6 )
PART ONE
FOUNDATIONS
1
Prelude
Luca Carlone, Ayoung Kim, Frank Dellaert, Timothy Barfoot, Daniel Cremers
This chapter introduces the Simultaneous Localization and Mapping (SLAM) prob-
lem, presents the modules that form a typical SLAM system, and explains the role
of SLAM in the architecture of an autonomous system. The chapter also provides
a short historical perspective of the topic and discusses how the traditional notion
of SLAM is evolving to fully leverage new technological trends and opportunities.
The ultimate goal of the chapter is to introduce basic terminology and motivations,
and to describe the scope and structure of this handbook.
Meta cloud
Reality Labs Research
chronization and trajectory data using proprietary Matlab tool.
similar algorithm could possibly largely remove the remaining diameter-at-breast-height and tree height. The improved point Next the georeferenced point clouds were processed with
UIMU-LCI) is seen below the scanner and is connected to the GNSS
errors. Using the method as an initial step to correct the trajectory data permit stem curve modeling of individual trees unam- TerraScan (TerraSolid, Finland) to remove measurement noise
receiver (NovAtel Flexpak6) observing Navstar GPS and GLONASS
for the larger positional and angular errors is beneficial as iterative biguously. We could also expect more accurate object level match-
constellation satellites.
and to extract the ground points. Points with intensity value less
closest point algorithm is prone to settling for local minima instead ing to be successful after running the optimizationThe method than 1000 (full range 11 bits, 0–2047) were removed from the fur-
sensor on head is elevated to about 2 m above the ground
ther processing as experience has shown that these data points are
of finding the correct transformation. By starting from an opti- forest MLS data as the ambiguity in pairing adjacent usingtree stems segment mounted on the rear rack of the
a GlobalTruss
mostly noise. Points from dark objects are also typically worse in
mized solution close to the correct one the chances for finding con- is significantly reduced. ATV. The scanner has a 50 degree blind angle beneath (See
ranging quality compared to higher reflectance surfaces. Next, iso-
Fig. 4). The collected laser measurements are stored on 32 GB SDHC
verging fine-tune corrections to the trajectory locally using ICP are The applied feature detection is less accurate in constraining
Abstract. The advent of wearable computers enables a new source of
lated points, a result of failed ranging, were removed using two-
(10) card on the scanner and positioning data is stored using a
expected to greatly improve. the elevation direction than what is achieved in the tablet
planarcomputer
domain.(Panasonic Toughpad FZ-G1, Windows 8, 8 GB step filtering requiring each point to have at least one neighbor clo-
For correcting the elevation the features in use also require us toThe laser scanner sends TTL level timing signal ser than 10 cm to remove single noise points, and after that clus-
RAM, 1 TB SSD).
7. Conclusions context for AI that is embedded in egocentric sensor data. This new ego- trade-off some of the performance for planar corrections
to the SPAN as use
(3.3 V TTL during
of them causes a large part of the constraints to be disabled
system event logger for mutual synchronization
pulse for start of each scan). The scanner measures pre-
tered noise patterns were removed by demanding at least 30
points to be found within a 1 m point neighborhood.
Ground classification was based on triangulation method
centric
We have developed a process data comes
pipeline for equipped
MLS data from boreal
forests to correct trajectory data for errors induced by obstructed
with fine-grained 3D location information
the optimization. Use of additional features, such
batches and horizontal structures, which could better
cise ranges up to 100 m by measuring the phase difference of the
as ground
emitted amplitude modulated beam and the scattered returning
tie the cor- principle has its shortcomings in vegetation
signal. Such ranging
implemented into TerraScan (Axelsson, 2000) with parameters
set to 65! maximum terrain slope, 20! iteration angle, and 20 cm
tion models that are rooted in 3D space. To measure progress on what ing major errors in the near future. branches and no-return sky generate measurement noise that
data from ATV mounted RoamerR2 MLS system, which allows for needs to be removed prior to further data processing.
To enable easy finding of tree stems, a horizontal slice of the
efficient collection of 3D tree inventory data from the ground. By incorporating a separate set of features to correct for the ele- point cloud following the terrain elevation with a constant offset
vation drift, the tree features currently used could be reserved for from the ground is extracted. The assumption here was to have
we term
scanning and post-processed Egocentric
GNSS-IMU positioning. We Foundation
The point cloud data was obtained with cross-track vertical laser
present Models (EFMs) we establish EFM3D, only constraining the horizontal drift of the trajectory. Thiscloud
3.3. Point would data acquisition slices from the trees to constrain the horizontal drift, but also to
provide ability to tie the elevation uncertainty as the slices are rel-
decrease the number of disabled constraints and enable us to cap-
aofbenchmark with twothecore 3D egocentric perception tasks. EFM3D
the processing pipeline and report optimization results for the data The experimental data comprises three boreal forest test areas ative to the instantaneous local ground eliminating the effect of
from three test plots nominal size 64 m by 64 m, and analyze italize most of the detected stem features in making the optimiza- drift. Fig. 4 shows an example of the outcome of the pre-
(A, B, and C) that were captured with the RoamerR2 system in Octo-
results against tree location reference derived from TLS data geo- tion more accurate. A ground detection algorithm better
ber 2014 suited to of an extensive data collection campaign to cover
as a part processing step for a single data block.
is the
referenced to spherical
plot.
first
landmarks benchmark
with known for 3D object detection and surface regression
locations on each handle raw data with considerable elevation errors
ground patterned noise within relatively short periods
and
all the below-
forest
of time
tory snakes
study plots in the Evo research forests. The MLS trajec-
is the plots to cover all the trees from multiple
through 4.3. Stem extraction
However, the method could be also used in any general MLS case,
all available egocentric
0.007 m and C 0.005 m. The methods ability in providing correc-
tion in absolute coordinates is found slightly weaker, but this is modalities and inherits foundational capabilities
e.g. for correcting urban and road asset point cloud data as similar
pole features are abundant in those environments. Additional fea-
view. There were from 2D foundation models. This model, trained on a large simulated
of secondary importance from individual tree modeling point of
no absolute landmarks used to constraint the tures, such as building and other structural corners, provide robust
optimization from locational drifting, and the results show that constraints for trajectory optimization in built and industrial envi-
with the larger thedataset,
initial drift theoutperforms existing methods on the EFM3D benchmark.
larger the remaining absolute ronments that often pose a challenge for the GNSS based position-
ing. Thus the proposed method is seen to provide an important
Floor-Cleaning Robot Using SLAM to Navigate Self-Driving Car Navigating withpositional offset may be expected.
High-Definition Map Created by SLAM
The attained level of correction in the internal accuracy of the
Drone of
asset for a diversity Mapping As-Built Construction via Visual SLAM
MLS data applications.
(credit: Robot Vacuum Company) (credit:
pointCruise)
cloud enables us to use all of the non noise measured points The phase-shift ranging scanner mounted
(credit:onSkydio)
RoamerR2 and
when extracting individual tree inventory parameters, such as used in the experiments for this paper generate noise in dense veg-
Multi-Camera Video
Surfaces
Semi-dense Points 3D
Egocentric
Foundation
Model
Objects
Camera Trajectory
Legged Robot Using SLAM to Map a Building Wearable Devices Using SLAM to Build Augmented Reality Scenes
(credit: Boston Dynamics) Fig. 1: 3D Egocentric Foundation Models leverage
(credit: Meta spatial priors from egocentric data
Reality Labs)
Figure 1.1 SLAM is rapidly becoming an enabling technology in a wide array of appli-
1 Introduction
cations including warehouse robotics, forest inventories [141], floor-cleaning, self-driving
cars, drones surveillance, legged-robot mapping, and trained
Foundation models augmented reality
on Internet-scale to name
text, image and videoonly a
datasets
few. have demonstrated the potential in using large-scale self-supervised learning ap-
proaches to build backbones that are useful for numerous downstream tasks,
ω
Project lead.
ωω
Equal contribution in alphabetic order.
positioning system is used (e.g., differential GPS or motion capture), in which case
the robot only needs to model its surroundings using its sensor data.
The central role of SLAM in robotics research is due to the fact that robot poses
are rarely known in practical applications. Differential GPS and motion capture
systems are expensive and restricted to small areas, hence being unsuitable for large-
scale robot deployments. Consumer-grade GPS is much more broadly available, but
its accuracy (with errors typically in the order of meters) and its availability (which
is limited to outdoor areas with line-of-sight to satellites) often makes it unsuitable
as a source of localization; the consumer-grade GPS —when available— is typically
used as an additional source of information for SLAM, rather than a replacement
for the localization aspects of SLAM.
Similarly, in many robotics applications, the robot will not typically have access
1.2 Anatomy of a Modern SLAM System 7
to a prior map, hence it needs to perform SLAM rather than localization. Indeed,
in certain applications, building a map is actually the goal of the robot deployment;
for instance, when robots are used to support disaster response and search-and-
rescue operations, they might be deployed to construct a map of the disaster site
to help first-responders. In other cases, the map might be stale or not have enough
detail. For instance, a domestic robot might have access to the floor plan of the
apartment it has to operate in, but such a floor plan may not describe the furniture
and objects actually present in the environment, nor the fact that these elements
can be rearranged from day to day. In a similar manner, Mars exploration rovers
have access to low-resolution satellite maps of the Martian surface, but they still
need to perform local mapping to guide obstacle avoidance and motion planning.
The importance of the SLAM problem motivates the large amount of attention
this topic has received, both within the research community and from practitioners
interested in using SLAM technologies across multiple application domains from
robotics, to virtual and augmented reality. At the same time, SLAM remains an
exciting area of research, with many open problems and new opportunities.
robot vision on platforms with limited compute. Moreover, once the intermediate
representation is determined, the subsequent computations are often mathemati-
cally simpler, making the resulting inference problems more tractable. In the case
of visual SLAM, for example, once a set of corresponding points is identified across
a set of images, the resulting problem of localization and mapping amounts to the
classical bundle adjustment problem for which a multitude of powerful solvers and
approximation methods exist.
In turn, direct methods have the potential to provide superior accuracy because
they make use of all available input information. While the processing of all avail-
able input information (for example all pixels in each image) is computationally
cumbersome and capturing the complex relationship between the quantities of in-
terest (localization and mapping) and the raw input data (e.g. the brightness of
each pixel) may create additional non-convexities in the overall loss function, there
exist efficient approximation and inference strategies with first real-time capable
methods for direct visual SLAM emerging in the 2010s. As we will see in Part II
and III, the efficient processing of huge amounts of input data can be facilitated by
using graphics processing units (GPUs) to parallelize computations.
In both direct and indirect methods the measurements are used to infer the robot
pose and map representation. There is a well-established literature in estimation
theory describing how we can infer quantities of interest (in our case, the robot
poses and the surrounding map) from observations. This book particularly focuses
on estimation theoretic tools —reviewed and tailored to the SLAM problem in
Chapter 2 and Chapter 3— that have their foundations in probabilistic inference
and that rephrase estimation in terms of solving optimization problems.
front-end back-end
raw pseudo-
measure- sensor processing measure-
ments ments
(feature extraction, estimated
IMU preintegration, pose,
downsampling) geometric SLAM map
(based on factor graph
optimization)
place recognition
(topological loop-
closure detection) map
constraints
Figure 1.2 The anatomy of a typical SLAM is made up of a front-end (to process rich
sensing data into more manageable information and to detect topological loop closures)
and a back-end (to estimate the robot’s pose and a geometric map). The back-end often has
a number of helper modules aimed at helping with robustness, computational tractability,
and map quality.
1.2 Anatomy of a Modern SLAM System 9
Figure 1.3 (a) In landmark-based SLAM models, the front-end produces measurements
to 3D landmarks and the back-end estimates the robot trajectory (as a set of poses) and
landmark positions. (b) In pose-graph-based SLAM models, the front-end abstracts the
raw sensor measurements in terms of odometry and loop closure measurements (these
are typically relative pose measurements) and the back-end estimates the overall robot
trajectory.
Example 1.1 (Visual SLAM: from pixels to landmarks). Visual SLAM uses camera
images to estimate the robot trajectory and a sparse 3D point cloud map. The
typical front-end of a visual SLAM system extracts 2D keypoints and matches them
across frames such that each group (a feature track) corresponds to re-observations
of the same 3D point (a landmark) across different camera views. The front-end will
also compute rough estimates of the camera poses and 3D landmark positions by
using computer vision techniques known as minimal solvers.1 Then, the back-end
is in charge of estimating (or refining) the unknown 3D position of the landmarks
and the robot poses observing them by solving an optimization problem, known
as bundle adjustment. This example leads to a landmark-based (of feature-based)
SLAM model, visualized in Figure 1.3(a). We will discuss visual SLAM at length
in Chapter 8.
Example 1.2 (Lidar SLAM: from scans to odometry and loop closures). Lidar
1
A more subtle point is that minimal solvers will also allow pruning away a large portion of outliers,
i.e., incorrect detections of a landmark. This makes the job of the back-end easier, while still
allowing it to remove any remaining outlier. We discuss outlier rejection and the related problem of
data association in Chapter 4.
10 Prelude
SLAM uses lidar scans to estimate the robot trajectory and a map. A common
front-end for lidar SLAM consists in using scan matching algorithms (e.g., the
Iterative Closest Point or ICP) to compute the relative pose between two lidar scans.
In particular, the front-end will match scans taken at consecutive time instants to
estimate the relative motion of the robot between them (the so called odometry) and
will also match scans corresponding to multiple visits to the same place (the so called
loop closures). Odometry and loop closure measurements are then passed to the
back-end that optimizes the robot trajectory by solving an optimization problem,
known as pose-graph optimization. This example leads to a pose-graph-based SLAM
model, visualized in Figure 1.3(b). We discuss LiDAR SLAM in Chapter 9.
Figure 1.4 SLAM plays an important role in the overall autonomy pipeline of a robot
that interacts with the world, and provides necessary information for control and motion
planning.
also observe that the processes involved in a SLAM system have complex interac-
tions (as emphasized by the bi-directional edges in Figure 1.4): for instance, while
the front-end feeds the odometry to the back-end, the back-end periodically applies
global corrections to the odometric trajectory, which is then passed to the motion
controller; similarly, while the front-end computes loop closures that are fed to the
back-end, the back-end can also inform loop closure detection about plausible or
implausible loop closure opportunities.
The problem of visual SLAM is closely related to the problem of Structure from
Motion (SfM). While for some researchers both terms are equivalent, others distin-
guish and argue that visual SLAM systems will typically also integrate additional
sensory information (IMUs, wheel odometry, etc) and focus on an online approach
where data comes in sequentially whereas in SfM both online and offline versions
are conceivable and the input is only images.
Overall, one can distinguish two complementary challenges: There is the online
challenge, where a robot moves around, where sensory data streams in sequentially
and while the SLAM back-end might run at a slower pace, vital estimates such
as the localization of the robot must be determined in real-time, often even on
embedded hardware with limited compute. These realtime constraints are vital for
the robot to properly act in a complex environment, in particular with faster robots
such as drones. They often dictate the choice of algorithms and processing steps.
And there is the offline challenge where the input data may not exhibit any
sequential ordering (say an unordered dataset of images), where computations typ-
ically do not require real-time performance and where the compute hardware can
be (arbitrarily) large (multiple powerful GPUs), see for example [8]. In such cases,
accuracy of the estimated map and trajectories is more important than compute
time.
In most applications, however, one will face a mix of these two extreme sce-
narios where certain quantities need to be determined fast whereas others can be
determined offline. In practical applications of SLAM it is of utmost importance to
carefully analyze which quantities need to be determined at which frequency and
one may come up with an entire hierarchy of different temporal scales at which
quantities are being estimated.
whether it is necessary for any robotics task. The answer is clearly: no. More reactive
tasks, for instance keeping a target in sight can be solved with simpler control
strategies (e.g., visual servoing).2 Similarly, if the robot has to operate over small
distances, relying on odometry estimates and local mapping might be acceptable.
Moreover, if the environment the robot operates in has some infrastructure for
localization, then we may not need to solve SLAM. Nevertheless, SLAM seems
an indispensable component for long-term robot operation in unstructured (i.e.,
infrastructure-free) environments: long-term operation typically requires memory
(e.g., to go back to previously seen objects or find suitable collision-free paths),
and map representations built from SLAM provide such a long-term memory.
Meeting room O ce 2
Closet O ce 2
O ce 1 O ce 3 Kitchen O ce 1
O ce 3 Kitchen
(a)
(b)
Meeting
Closet Of ce 2
room
Of ce 2
Corridor
Corridor
Of ce 1 Of ce 3 Kitchen
Of ce 1 Kitchen
ffi
fi
(c) (d)
Figure 1.5 (a) Our robot visits Office 1 in a building and then —after exploring other
areas (including Office 2 and the Kitchen)— it visits Office 3, which is just next door from
Office 1. Obstacles are shown in black and ground truth trajectory is shown in green. (b)
Odometric estimate of the trajectory, labeled with corresponding room labels. (c) Ground
truth topological map of the environment. (d) Estimated topological map in the presence
of perceptual aliasing, causing the robot to think that Office 1 and 3 are the same room.
1.4 Past, Present, and Future of SLAM, and Scope of this Handbook
The design of algorithms for spatial reasoning has been at the center-stage of
robotics and computer vision research since their inception. At the same time,
SLAM research keeps evolving and expanding to novel tools and problems.
16 Prelude
MIT Killian Court
P3
P2
(a)
(a) Original
Original noisy
noisy data
data set.
set. (b)
(b) Trajectory
Trajectory after
after incremental
incremental optimization.
optimization. (c)
(c) Final
Final RR factor
factor with
with side
side length
length 10
10500.
500.
P1 Fig.
Fig. 9.
9. iSAM
iSAM results
results for
for the
the simulated
simulated Manhattan
Manhattan world
world from
from [21]
[21] with 3500 poses
with 3500 poses and 5598 constraints.
and 5598 constraints. iSAM
iSAM takes
takes about 40ms per
about 40ms per step.
step. The
The resulting
resulting
Pn R factor
R factor has
has 187 423 entries,
187423 entries, which
which corresponds
corresponds to 0.34% or
to 0.34% or an
an average
average of 17.8 entries
of 17.8 entries per
per column.
column.
P n-1 (a) Original noisy data set. (b) Trajectory after incremental optimization. (c) Final R factor with side length 10 500.
a Fig. 9. iSAM results for the simulated Manhattan world from [21] with 3500 poses and 5598 constraints. iSAM takes about 40ms per step. The resulting
R factor has 187 423 entries, which corresponds to 0.34% or an average of 17.8 entries per column.
b
(a)
(a) Trajectory
Trajectory based
based on odometry
odometry only. (b)
(b) Final
Final trajectory and
and evidence
Early Graph SLAM Compressed EKF SLAM, Victoria Rao-Blackwellized onParticle only.
Filter Incremental trajectory
Smoothing andgrid
evidence grid map.
map.
Mapping (c)
(c) Final
Final RR factor
factor with
with side
side length
length 2730.
2730.
16 sequences selected.
shows the median results over 5 executions in each of the
frames from which we get a good initialization. Table III
with the ground truth. For PTAM we manually selected two
fore we have discarded the first 10 keyframes when comparing
from random depth values and takes time to converge, there-
check if the scale was well recovered. LSD-SLAM initializes
tories with a rigid body transformation, but also a similarity to
(ATE) [38]. In the case of RGBD-SLAM we align the trajec-
scale is unknown, and measure the absolute trajectory error
keyframe trajectories using a similarity transformation, as
LSD-SLAM and PTAM with the ground truth, we align the
in the benchmark website. In order to compare ORB-SLAM,
SLAM [43] which are provided for some of the sequences
We compare also with the trajectories generated by RGBD-
semi-dense LSD-SLAM [10] and PTAM [4] in the benchmark.
no texture or no motion.
monocular SLAM systems, as they contain strong rotations,
those sequences that we consider that are not suitable for pure
an external motion capture system. We have discarded all
several sequences with accurate ground truth obtained with
to evaluate the accuracy of camera localization as it provides
Fig. 10. Results from iSAM applied to the Intel dataset. iSAM calculates the full solution for 910 poses and 4453 constraints with an average of 85ms
per step, while reordering the variables every 20 steps. The problem has 910 ⇥ 3 = 2730 variables and 4453 ⇥ 3 = 13 359 measurement equations. The R
factor contains 90 363 entries, which corresponds to 2.42% or 33.1 entries per column.
(a)
(a) Trajectory
Trajectorybased
basedon
onodometry
odometryonly.
only. (b)
(b) Final
Final trajectory
trajectory and
and evidence
evidence grid
grid map.
map. (c)
(c) Final
Final RR factor
factor with
with side
side length
length 5823.
5823.
Fig.
Fig. 11.
11. iSAM
iSAM results
results for
for the
the MIT
MIT Killian
Killian Court
Court dataset.
dataset. iSAM
iSAM calculates
calculates the
the full
full solution
solution for
for the 1941 poses
the 1941 poses and 2190 pose
and 2190 pose constraints
constraints with
with an
an average
average
Large-Scale Direct SLAM ORB-SLAM (credit: R. Mur- of 12.2ms per
of 12.2ms per step.
step. The
The R R factor
factor contains
contains
3D SLAM 52 414 entries
52414 thefor
entries
in for 5823 variables,
5823
DARPA SubTwhich
variables, which corresponds
corresponds to 0.31% or
to 0.31% 9.0 per
or 9.0 per column.
column.
property in conjunction with our keyframe culling procedure
points and robustly under moderate dynamic changes. This
system is able to localize in a map from very different view-
(credit: J.Engel / T. Schöps / Artal, J Montiel, J Tardós, 2015) Competition (credit: K. Ebadi et al., 2023)
Previous relocalization experiments have shown that our
D. Cremers, 2014)
(a) Trajectory based on odometry only. (b) Final trajectory and evidence grid map. (c) Final R factor with side length 5823.
where the robot believes it is observing a given object or place, but it is actually
observing a different (but possibly similarly looking) one. If these spurious measure-
10
ments are not properly handled, EKF-SLAM produces grossly incorrect estimates.
The second issue is related to the fact that EKF relies on linearization of the equa-
tions describing the motion of the robot and sensor observations. In practice, the
linearization point is typically built from odometry and when the latter drifts, the
linearized system might be a poor approximation of the original nonlinear system.
This leads EKF-SLAM to diverge when odometry accumulates substantial drift.
The third problem is about computational complexity: a naive implementation of
the Kalman Filter leads to a computational complexity that grows quadratically in
the number of state variables, due to the need to manipulate a dense covariance
matrix. In a landmark-based SLAM problem it is not uncommon to have thousands
of landmark, which makes the naive approach prohibitive to run in real-time.
As a response to these issues, in the early 2000s, the community started focusing
1.4 Past, Present, and Future of SLAM, and Scope of this Handbook 17
on particle-filter-based approaches [178, 238, 103], which model the robot trajectory
using a set of hypothesis (or particles), building on the theory of particle filtering
in estimation theory.3 When used in combination with landmark-based maps, these
models allowed using a large number of landmarks (breaking through the quadratic
complexity of the EKF); moreover, they allowed to more easily estimate dense map
models, such as 2D occupancy grid maps. Also, these approaches did not rely on
linearization and were less sensitive to outliers and incorrect data association. How-
ever, they still exhibited a trade-off between computation and accuracy: obtaining
accurate trajectories and maps requires using many particles (in the thousands)
but the more particles, the more computation. In particular, for a finite amount
of particles, a particle filter may still diverge when none of the sampled particles
are near the real trajectory of the robot (an issue known as particle depletion);
this issue is exacerbated in 3D problems where one needs many particles to cover
potential robot poses.
Between 2005 and 2015, a key insight pushed to the spotlight an alternative
approach to SLAM. The insight is that while the covariance matrix appearing in
the EKF is dense, its inverse (the so called Information Matrix) is very sparse and
has a very predictable sparsity pattern when past robot poses are retained in the
estimation [87]; this allows designing filtering algorithms that have close-to-linear
complexity, as opposed to the quadratic complexity of the EKF. While this insight
was initially applied to EKF-like approaches, such as EIF, it also paved the way for
optimization-based approaches. Optimization-based approaches were first proposed
in the early days of SLAM [162], but then disregarded as too slow to be practi-
cal. The sparsity structure mentioned above allowed rethinking these optimization
methods and making them more scalable and solvable in online fashion [65, 126].4
This new wave can be interpreted as a shift toward yet another estimation frame-
work: maximum likelihood and maximum a posteriori estimation. These frameworks
rephrase estimation problems in terms of optimization, while describing the struc-
ture of the problem in terms of a probabilistic graphical model, or, specifically, a
factor graph. The resulting factor-graph-based approach to SLAM is still the dom-
inant paradigm today, and has also shaped the way the community thinks about
related problems, such as visual and visual-inertial odometry. The optimization lens
is a powerful one and allows a much deeper theoretical analysis than previously
possible (see Chapter 7). Moreover, it is fairly easy to show that the EKF (with
suitable linearization points) can be understood as a single iteration of a nonlinear
optimization solver, hence making the optimization lens strictly more powerful than
its filtering-based counterpart. Finally, the optimization-based perspective appears
more suitable for recent extensions of SLAM (described in the next section and
3
The resulting algorithms are known with different names in different communities, e.g.,
Sampling/Importance Re-sampling, Monte-Carlo filter Condensation algorithm, Survival of the
fittest algorithm, and others.
4
More details are in Chapter 2.
18 Prelude
Part III of this handbook), where one wants to estimate both continuous variables
(describing the scene geometry) and discrete variables (describing semantic aspects
of the scene).
This short history review stops at 2015, while the goal of Part III of this handbook
is to discuss more modern trends, including those triggered by the “deep learning
revolution”, which started around 2012 and slowly permeated to robotics. We also
remark that the short history above mostly gravitates around what we called the
SLAM back-end (essentially, the estimation engine), while the development of the
SLAM front-end traces back to work done across multiple communities, including
computer vision, signal processing, and machine learning.
As a result of the considerations mentioned above, this handbook will primarily
focus on the factor-graph-based formulation of SLAM. This is a decision about
scope and does not detract from the value of ongoing works using other technical
tools. For instance, at the time of writing of this handbook, EKF-based tools are
still popular for visual-inertial odometry applications (building on the seminal work
from Mourikis and Roumeliotis [180]), and novel estimation formulations have been
developed, including invariant [20] and equivariant filters [90], as well as alternative
formulations based on random finite sets [181].
semantic/
high-level motion motion control
goal goal plan error inputs system:
task motion motion
+
- robot and
planning planning controller
environment
fast
odometry loop
metric medium
metric-semantic slow
map and loop
map and loop robot state sensor
odometry data
robot state
SLAM
spatial AI
Figure 1.7 Spatial AI (or spatial perception) extends the geometric reasoning capabilities
of SLAM to also perform semantic and physical reasoning. While the SLAM block is
informed by odometry and provides a geometric understanding of the scene, the Spatial
AI block is informed by the SLAM results and adds a scene understanding component,
spanning semantics, affordances, dynamics, and more. This allows closing the loop over
higher-level decision making modules, such as task planning, and allows the user to specify
higher-level goals the robot has to achieve.
think that Spatial AI has SLAM as a submodule (to handle the geometric reason-
ing part), but provides extra semantic reasoning capabilities. This allows closing
the loop over task planning, as shown in Figure 1.7, where now the robot can take
high-level semantic goals instead of coordinates of motion goals. We will discuss
Spatial AI at length in Part III of this handbook.
applications of SLAM using different sensing modalities. This part touches on the
SLAM front-end design (which is heavily sensor dependent) and exposes what’s
feasible with modern SLAM algorithms and systems. Chapter 8 reviews the large
body of literature on visual SLAM. Chapter 9 and Chapter 10 cover lidar-SLAM
and radar-SLAM, respectively. Chapter 11 discusses recent work on SLAM using
event-based cameras. Chapter 12 reviews how to model inertial measurements as
part of a factor-graph SLAM system and discusses fundamental limits (e.g., observ-
ability). Chapter 13 discussed how to model other sources of odometry information,
including wheel and legged odometry.
Part III provides a future-looking view of the state of the art and recent trends.
In particular, we touch on a variety of topics, ranging from computational architec-
tures, to novel problems and representations, to the role of language and Foundation
Models in SLAM. In particular, Chapter 14 focuses on future computational archi-
tectures for Spatial AI that could leverage more flexible and distributed computing
hardware and better support spatial perception across many robotic platforms.
Chapter 15 reviews recent improvements obtained by introducing deep learning
modules in conjunction with differentiable optimization in SLAM. Chapter 16 dis-
cusses opportunities and challenges in using novel map presentations, including
neural radiance fields (NeRFs) and Gaussian Splatting. Chapter 17 covers recent
work on SLAM in highly dynamic and deformable environments, touching on real
applications from mapping in crowded environments to surgical robotics. Chap-
ter 18 discusses progress in Spatial AI and metric-semantic map representations.
Finally, Chapter 19 considers new opportunities arising from the use of Founda-
tion Models (e.g., Large Vision-Language Models) and their role in creating novel
map representation for Spatial AI that allow understanding and grounding “open-
vocabulary” commands given in natural language.
2
Factor Graphs for SLAM
Frank Dellaert, Michael Kaess, Timothy Barfoot
In this chapter we introduce factor graphs and establish the connection with maxi-
mum a posteriori (MAP) inference and least-squares for the case of Gaussian priors
and Gaussian measurement noise. We focus on the SLAM back-end, after mea-
surements have been extracted by the front-end and data association has been
accomplished. We discuss both linear and nonlinear optimization methods for the
corresponding least-squares problems, and then make the connection between spar-
sity, factor graphs, and Bayes nets more explicit. Finally, we apply this to develop
the Bayes tree and the incremental smoothing and mapping (iSAM) algorithm.
Historical Note
A smoothing approach to SLAM involves not just the most current robot location,
but the entire robot trajectory up to the current time. A number of authors consider
the problem of smoothing the robot trajectory only [48, 160, 161, 107, 140, 86],
now known as PoseSLAM. This is particularly suited to sensors such as laser-range
finders that yield pairwise constraints between nearby robot poses.
More generally, one can consider the full SLAM problem [259], i.e., the problem
of optimally estimating the entire set of sensor poses along with the parameters of
all features in the environment. This led to a flurry of work between 2000 and 2005
where these ideas were applied in the context of SLAM [76, 93, 92, 259]. From a
computational view, this optimization-based smoothing was recognized as beneficial
since (a) in contrast to the filtering-based covariance or information matrices, which
both become fully dense over time [201, 258], the information matrix associated with
smoothing is and stays sparse; (b) in typical mapping scenarios (i.e., not repeatedly
traversing a small environment) this matrix is a much more compact representation
of the map covariance structure.
Square-root smoothing and mapping (SAM), also known as the ‘factor-graph ap-
proach’, was introduced in [65, 68] based on the fact that the information matrix
or measurement Jacobian can be efficiently factorized using sparse Cholesky or QR
factorization, respectively. This yields a square-root information matrix that can
be used to immediately obtain the optimal robot trajectory and map. Factoring the
22 Factor Graphs for SLAM
which is the axiom of total probability. In the simple example of Figure 2.1, the
1
Handling rotations properly is a bit more involved than our treatment in this first chapter lets on.
However, the next chapter will put us on a proper footing for such quantities. For now, we will
assume they are regular vector quantities and delay discussion of their subtleties.
2.1 Visualizing SLAM With Factor Graphs 23
`l11 `l22
p
x1 xp22 xp33
Figure 2.1 A toy simultaneous localization and mapping (SLAM) example with three
robot poses and two landmarks. Above we schematically indicate the robot motion with
arrows, while the dotted lines indicate bearing measurements.
state, x, is
p1
p2
x=
p3 , (2.2)
ℓ1
ℓ2
which is just a stacking of the individual unknowns.
In SLAM we want to characterize our knowledge about the unknowns x, in this
case robot poses and the unknown landmark positions, when given a set of observed
measurements z. Using the language of Bayesian probability, this is simply the
conditional density
p(x|z), (2.3)
4 (`1 ) 5 (`2 )
x3 x2 x1
l`11 l`22
l2 <latexit sha1_base64="kXx44wnjqLe/qAbLMONIjGgtM5U=">AAACEXicbVDLSsNAFL2pr1pfUZduglVwVRLxuSu4calgW6EtZTK5tUMnM2FmIpTQr3DrVv/Bnbj1C/wFv8JJWkStB4Y5nHsP93DChDNtfP/DKc3NLywulZcrK6tr6xvu5lZTy1RRbFDJpboNiUbOBDYMMxxvE4UkDjm2wuFFPm/do9JMihszSrAbkzvB+owSY6We63ZCySM9iu2XJeNe0HOrfs0v4M2SYEqq9TIUuOq5n51I0jRGYSgnWrcDPzHdjCjDKMdxpZNqTAgdkjtsWypIjLqbFcnH3r5VIq8vlX3CeIX605GRWOfh7GZMzED/neXif7N2avpn3YyJJDUo6ORQP+WekV5egxcxhdTwkSWEKmazenRAFKHGllXpFMZMSDOpaYAkQjWuFOWc5zj+rmKWNA9rwUktuD6q1vcmLUEZdmAXDiCAU6jDJVxBAyjcwyM8wbPz4Lw4r87bZLXkTD3b8AvO+xcbpZ6J</latexit>
l1
xp11
<latexit sha1_base64="i1LTsi0pXgXYdlkAuqdoH9DYknI=">AAACEXicbVDLSsNAFL3xWesr6tJNsAquSiI+dwU3LivYWmhLmUxu7eBkJsxMCiX0K9y61X9wJ279An/Br3CSFlHrgWEO597DPZww4Uwb3/9w5uYXFpeWSyvl1bX1jU13a7upZaooNqjkUrVCopEzgQ3DDMdWopDEIcfb8P4yn98OUWkmxY0ZJdiNyZ1gfUaJsVLPdTuh5JEexfbLknHvqOdW/KpfwJslwZRUaiUoUO+5n51I0jRGYSgnWrcDPzHdjCjDKMdxuZNqTAi9J3fYtlSQGHU3K5KPvQOrRF5fKvuE8Qr1pyMjsc7D2c2YmIH+O8vF/2bt1PTPuxkTSWpQ0Mmhfso9I728Bi9iCqnhI0sIVcxm9eiAKEKNLavcKYyZkGZS0wBJhGpcLsq5yHHyXcUsaR5Vg9NqcH1cqe1PWoIS7MIeHEIAZ1CDK6hDAygM4RGe4Nl5cF6cV+dtsjrnTD078AvO+xcdQZ6K</latexit>
xp22
<latexit sha1_base64="xa47ISr24vnFk6T52/jxFM/EsFA=">AAACEXicbVDLSsNAFL3xWesr6tJNsAquSuLbXcGNSwVbhbaUyeS2HTqZCTOTQgn9Crdu9R/ciVu/wF/wK5ykImo9MMzh3Hu4hxMmnGnj++/OzOzc/MJiaam8vLK6tu5ubDa0TBXFOpVcqruQaORMYN0ww/EuUUjikONtOLjI57dDVJpJcWNGCbZj0hOsyygxVuq4biuUPNKj2H5ZMu4cdtyKX/ULeNMk+CKVWgkKXHXcj1YkaRqjMJQTrZuBn5h2RpRhlOO43Eo1JoQOSA+blgoSo25nRfKxt2eVyOtKZZ8wXqH+dGQk1nk4uxkT09d/Z7n436yZmu5ZO2MiSQ0KOjnUTblnpJfX4EVMITV8ZAmhitmsHu0TRaixZZVbhTET0kxq6iOJUI3LRTnnOY6/q5gmjYNqcFINro8qtd1JS1CCbdiBfQjgFGpwCVdQBwpDeIBHeHLunWfnxXmdrM44X54t+AXn7RMe3Z6L</latexit>
xp33
<latexit sha1_base64="AY73GQiTB52dLlEEET5KkyWQjX0=">AAACGXicbVDLSgMxFL3js9ZX1Y3gZrAKuikz4nNXcOOyglWhU4ZM5tYGM8mQZIQy1B9x61b/wZ24deUv+BVmpiK+DoQczrmH3Jwo5Uwbz3tzxsYnJqemKzPV2bn5hcXa0vK5lpmi2KaSS3UZEY2cCWwbZjhepgpJEnG8iK6PC//iBpVmUpyZQYrdhFwJ1mOUGCuFtdUg7bPQ3woiyWM9SOyVp8PQ3w5rda/hlXD/Ev+T1JsVKNEKa+9BLGmWoDCUE607vpeabk6UYZTjsBpkGlNCr8kVdiwVJEHdzcsfDN1Nq8RuTyp7hHFL9XsiJ4kutrOTCTF9/dsrxP+8TmZ6h92ciTQzKOjooV7GXSPdog43Zgqp4QNLCFXM7urSPlGEGltaNSiDuZBmVFcfSYxqWC3LOSqw91XFX3K+0/D3G/7pbr25MWoJKrAG67AFPhxAE06gBW2gcAv38ACPzp3z5Dw7L6PRMeczswI/4Lx+AH8KoVc=</latexit> <latexit sha1_base64="hJcgXdAki0rpaFkGbybvBuSfYg4=">AAACKnicbVDLSgMxFL3js9ZX1aWbwSooSJkpPncFNy4VrAqdMmQytzaYSYYkI5Sh3+CPuHWr/+CuuHXlV5iZivg6EHI45x5yc6KUM208b+RMTE5Nz8xW5qrzC4tLy7WV1UstM0WxTSWX6joiGjkT2DbMcLxOFZIk4ngV3Z4U/tUdKs2kuDCDFLsJuRGsxygxVgprO0HaZ2FzO4gkj/UgsVeeDsPm7i/B3wlrda/hlXD/Ev+T1FsVKHEW1t6DWNIsQWEoJ1p3fC813ZwowyjHYTXINKaE3pIb7FgqSIK6m5dfGrpbVondnlT2COOW6vdEThJdbGcnE2L6+rdXiP95ncz0jro5E2lmUNDxQ72Mu0a6RT9uzBRSwweWEKqY3dWlfaIINbbFalAGcyHNuL8+khjVsFqWc1xg/6uKv+Sy2fAPGv75Xr21OW4JKrAOG7ANPhxCC07hDNpA4R4e4QmenQfnxRk5r+PRCeczswY/4Lx9AJ7sqLo=</latexit> <latexit sha1_base64="6w3K4iziOYNRVY/Dg+sA59X+blk=">AAACKnicbVDLSgMxFL3js9ZX1aWbwSooSJnx7a7gxqWCVaFThkzm1oZmkiHJCGXoN/gjbt3qP7gTt678CjNTEV8HQg7n3ENuTpRypo3nvThj4xOTU9OVmers3PzCYm1p+VLLTFFsUcmluo6IRs4EtgwzHK9ThSSJOF5F/ZPCv7pFpZkUF2aQYichN4J1GSXGSmFtK0h7LNzdDCLJYz1I7JWnw3B3+5ewsxXW6l7DK+H+Jf4nqTcrUOIsrL0HsaRZgsJQTrRu+15qOjlRhlGOw2qQaUwJ7ZMbbFsqSIK6k5dfGrobVondrlT2COOW6vdEThJdbGcnE2J6+rdXiP957cx0jzo5E2lmUNDRQ92Mu0a6RT9uzBRSwweWEKqY3dWlPaIINbbFalAGcyHNqL8ekhjVsFqWc1xg/6uKv+Ryp+EfNPzzvXpzfdQSVGAV1mATfDiEJpzCGbSAwh08wCM8OffOs/PivI5Gx5zPzAr8gPP2AaP2qL0=</latexit>
<latexit sha1_base64="iC0E0ySHt+M5B1pmT0FEOWjfMnQ=">AAACGXicbVDLSgMxFL3js9ZX1Y3gZrAKuikzolV3BTcuFawKnTJkMrc2mEmGJCOUof6IW7f6D+7ErSt/wa8wMxXxdSDkcM495OZEKWfaeN6bMzY+MTk1XZmpzs7NLyzWlpbPtcwUxTaVXKrLiGjkTGDbMMPxMlVIkojjRXR9VPgXN6g0k+LMDFLsJuRKsB6jxFgprK0GaZ+Fza0gkjzWg8ReeToM/e2wVvcaXgn3L/E/Sb1VgRInYe09iCXNEhSGcqJ1x/dS082JMoxyHFaDTGNK6DW5wo6lgiSou3n5g6G7aZXY7UlljzBuqX5P5CTRxXZ2MiGmr397hfif18lM76CbM5FmBgUdPdTLuGukW9ThxkwhNXxgCaGK2V1d2ieKUGNLqwZlMBfSjOrqI4lRDatlOYcF9r6q+EvOdxp+s+Gf7tZbG6OWoAJrsA5b4MM+tOAYTqANFG7hHh7g0blznpxn52U0OuZ8ZlbgB5zXD4dwoVw=</latexit>
6 (p1 )
Figure 2.2 Factor graph resulting from the example in Figure 2.1.
To motivate this, consider performing inference for the toy SLAM example. The
posterior p(x|z) can be re-written using Bayes’ law, p(x|z) ∝ p(z|x)p(x), as
where we assumed a typical Markov chain generative model for the pose trajectory.
Each of the factors represents one piece of information about the unknowns, x.
To visualize this factorization, we use a factor graph. Figure 2.2 introduces the
corresponding factor graph by example: all unknown states x, both poses and land-
marks, have a node associated with them. Measurements are not represented ex-
plicitly as they are known, and hence not of interest. In factor graphs we explicitly
introduce an additional node type to represent every factor in the posterior p(x|z).
In the figure, each small black node represents a factor, and—importantly—is con-
nected to only those state variables of which it is a function. For example, the factor
ϕ9 (p3 , ℓ2 ) is connected only to the variable nodes p3 and ℓ2 . In more detail, we have
where the correspondence between the factors and the original probability densities
in (2.4a)-(2.4d) should be obvious.
The factor values need only be proportional to the corresponding probability
densities: any normalization constants that do not depend on the state variables
may be omitted without consequence. Also, in this example, all factors above came
either from a prior, e.g., ϕ1 (p1 ) ∝ p(p1 ) or from a measurement, e.g., ϕ9 (p3 , ℓ2 ) ∝
p(z4 |p3 , ℓ2 ). Although the measurement variables z1 ..z4 are not explicitly shown
in the factor graph, those factors are implicitly conditioned on them. Sometimes,
when it helps to make this more explicit, factors can be written as (for example)
ϕ9 (p3 , ℓ2 ; z4 ) or even ϕz4 (p3 , ℓ2 ).
<latexit sha1_base64="b5MWbhCtoIcoBuQZk/2t5aCElIc=">AAACFHicbVDLSsNAFL2pr1pfVZdugkXoqiTic1dw47KCbYWmlMnkth06mQkzE6GE/oZbt/oP7sSte3/Br3CSivg6MMzh3Hu4hxMmnGnjeW9OaWFxaXmlvFpZW9/Y3Kpu73S0TBXFNpVcqpuQaORMYNsww/EmUUjikGM3nFzk8+4tKs2kuDbTBPsxGQk2ZJQYKw2qu0EoeaSnsf2yADmfDfxBteY1vALuX+J/klqzDAVag+p7EEmaxigM5UTrnu8lpp8RZRjlOKsEqcaE0AkZYc9SQWLU/awIP3MPrBK5Q6nsE8Yt1O+OjMQ6z2c3Y2LG+vcsF/+b9VIzPOtnTCSpQUHnh4Ypd4108ybciCmkhk8tIVQxm9WlY6IINbavSlAYMyHNvKkxkgjVrFKUc57j+KuKv6Rz2PBPGv7VUa1Zn7cEZdiDfaiDD6fQhEtoQRsoTOEeHuDRuXOenGfnZb5acj49u/ADzusHf5Of1A==</latexit>
`2 <latexit sha1_base64="b5MWbhCtoIcoBuQZk/2t5aCElIc=">AAACFHicbVDLSsNAFL2pr1pfVZdugkXoqiTic1dw47KCbYWmlMnkth06mQkzE6GE/oZbt/oP7sSte3/Br3CSivg6MMzh3Hu4hxMmnGnjeW9OaWFxaXmlvFpZW9/Y3Kpu73S0TBXFNpVcqpuQaORMYNsww/EmUUjikGM3nFzk8+4tKs2kuDbTBPsxGQk2ZJQYKw2qu0EoeaSnsf2yADmfDfxBteY1vALuX+J/klqzDAVag+p7EEmaxigM5UTrnu8lpp8RZRjlOKsEqcaE0AkZYc9SQWLU/awIP3MPrBK5Q6nsE8Yt1O+OjMQ6z2c3Y2LG+vcsF/+b9VIzPOtnTCSpQUHnh4Ypd4108ybciCmkhk8tIVQxm9WlY6IINbavSlAYMyHNvKkxkgjVrFKUc57j+KuKv6Rz2PBPGv7VUa1Zn7cEZdiDfaiDD6fQhEtoQRsoTOEeHuDRuXOenGfnZb5acj49u/ADzusHf5Of1A==</latexit>
`2
`1 `1
p3
<latexit sha1_base64="A2NNUUAtUlazpp7Hib/5Qu5OzT8=">AAACEXicbVDLSsNAFL3xWesr6tJNsAiuSuLbXcGNSwVbC20pk8ltO3QyE2YmQgn9Crdu9R/ciVu/wF/wK5ykRdR6YJjDufdwDydMONPG9z+cufmFxaXl0kp5dW19Y9Pd2m5omSqKdSq5VM2QaORMYN0ww7GZKCRxyPEuHF7m87t7VJpJcWtGCXZi0hesxygxVuq6bjuUPNKj2H5ZMu4edd2KX/ULeLMkmJJKrQQFrrvuZzuSNI1RGMqJ1q3AT0wnI8owynFcbqcaE0KHpI8tSwWJUXeyIvnY27dK5PWksk8Yr1B/OjIS6zyc3YyJGei/s1z8b9ZKTe+8kzGRpAYFnRzqpdwz0str8CKmkBo+soRQxWxWjw6IItTYssrtwpgJaSY1DZBEqMblopyLHCffVcySxmE1OK0GN8eV2sGkJSjBLuzBAQRwBjW4gmuoA4V7eIQneHYenBfn1XmbrM45U88O/ILz/gUgEZ6P</latexit>
p3
<latexit sha1_base64="A2NNUUAtUlazpp7Hib/5Qu5OzT8=">AAACEXicbVDLSsNAFL3xWesr6tJNsAiuSuLbXcGNSwVbC20pk8ltO3QyE2YmQgn9Crdu9R/ciVu/wF/wK5ykRdR6YJjDufdwDydMONPG9z+cufmFxaXl0kp5dW19Y9Pd2m5omSqKdSq5VM2QaORMYN0ww7GZKCRxyPEuHF7m87t7VJpJcWtGCXZi0hesxygxVuq6bjuUPNKj2H5ZMu4edd2KX/ULeLMkmJJKrQQFrrvuZzuSNI1RGMqJ1q3AT0wnI8owynFcbqcaE0KHpI8tSwWJUXeyIvnY27dK5PWksk8Yr1B/OjIS6zyc3YyJGei/s1z8b9ZKTe+8kzGRpAYFnRzqpdwz0str8CKmkBo+soRQxWxWjw6IItTYssrtwpgJaSY1DZBEqMblopyLHCffVcySxmE1OK0GN8eV2sGkJSjBLuzBAQRwBjW4gmuoA4V7eIQneHYenBfn1XmbrM45U88O/ILz/gUgEZ6P</latexit>
p4 p4
<latexit sha1_base64="PyPWDAiJqaev1QY37Ip8vMe49yM=">AAACEXicbVDLSsNAFL3xWesr6tJNsAiuSiI+dwU3LivYB7SlTCa3dnAyE2YmhRL6FW7d6j+4E7d+gb/gVzhJi6j1wDCHc+/hHk6YcKaN7384C4tLyyurpbXy+sbm1ra7s9vUMlUUG1Ryqdoh0ciZwIZhhmM7UUjikGMrvL/K560RKs2kuDXjBHsxuRNswCgxVuq7bjeUPNLj2H5ZMukf992KX/ULePMkmJFKrQQF6n33sxtJmsYoDOVE607gJ6aXEWUY5Tgpd1ONCaH35A47lgoSo+5lRfKJd2iVyBtIZZ8wXqH+dGQk1nk4uxkTM9R/Z7n436yTmsFFL2MiSQ0KOj00SLlnpJfX4EVMITV8bAmhitmsHh0SRaixZZW7hTET0kxrGiKJUE3KRTmXOU6/q5gnzeNqcFYNbk4qtaNpS1CCfTiAIwjgHGpwDXVoAIURPMITPDsPzovz6rxNVxecmWcPfsF5/wIedZ6O</latexit>
p2
<latexit sha1_base64="PyPWDAiJqaev1QY37Ip8vMe49yM=">AAACEXicbVDLSsNAFL3xWesr6tJNsAiuSiI+dwU3LivYB7SlTCa3dnAyE2YmhRL6FW7d6j+4E7d+gb/gVzhJi6j1wDCHc+/hHk6YcKaN7384C4tLyyurpbXy+sbm1ra7s9vUMlUUG1Ryqdoh0ciZwIZhhmM7UUjikGMrvL/K560RKs2kuDXjBHsxuRNswCgxVuq7bjeUPNLj2H5ZMukf992KX/ULePMkmJFKrQQF6n33sxtJmsYoDOVE607gJ6aXEWUY5Tgpd1ONCaH35A47lgoSo+5lRfKJd2iVyBtIZZ8wXqH+dGQk1nk4uxkTM9R/Z7n436yTmsFFL2MiSQ0KOj00SLlnpJfX4EVMITV8bAmhitmsHh0SRaixZZW7hTET0kxrGiKJUE3KRTmXOU6/q5gnzeNqcFYNbk4qtaNpS1CCfTiAIwjgHGpwDXVoAIURPMITPDsPzovz6rxNVxecmWcPfsF5/wIedZ6O</latexit>
p2
<latexit sha1_base64="tAUSgPttDVlGAhAf5tUO9UjLf+4=">AAACEXicbVDLSsNAFL2pr1pfUZdugkXoqiTic1dw41LBtkJbymRy2w6dzISZSaGEfoVbt/oP7sStX+Av+BVOUhFfB4Y5nHsP93DChDNtfP/NKS0sLi2vlFcra+sbm1vu9k5Ly1RRbFLJpboNiUbOBDYNMxxvE4UkDjm2w/FFPm9PUGkmxY2ZJtiLyVCwAaPEWKnvut1Q8khPY/tlyawf9N2qX/cLeH9J8EmqjTIUuOq7791I0jRGYSgnWncCPzG9jCjDKMdZpZtqTAgdkyF2LBUkRt3LiuQz78AqkTeQyj5hvEL97shIrPNwdjMmZqR/z3Lxv1knNYOzXsZEkhoUdH5okHLPSC+vwYuYQmr41BJCFbNZPToiilBjy6p0C2MmpJnXNEISoZpVinLOcxx/VfGXtA7rwUk9uD6qNmrzlqAMe7APNQjgFBpwCVfQBAoTuIcHeHTunCfn2XmZr5acT88u/IDz+gEc2Z6N</latexit>
p1
<latexit sha1_base64="tAUSgPttDVlGAhAf5tUO9UjLf+4=">AAACEXicbVDLSsNAFL2pr1pfUZdugkXoqiTic1dw41LBtkJbymRy2w6dzISZSaGEfoVbt/oP7sStX+Av+BVOUhFfB4Y5nHsP93DChDNtfP/NKS0sLi2vlFcra+sbm1vu9k5Ly1RRbFLJpboNiUbOBDYNMxxvE4UkDjm2w/FFPm9PUGkmxY2ZJtiLyVCwAaPEWKnvut1Q8khPY/tlyawf9N2qX/cLeH9J8EmqjTIUuOq7791I0jRGYSgnWncCPzG9jCjDKMdZpZtqTAgdkyF2LBUkRt3LiuQz78AqkTeQyj5hvEL97shIrPNwdjMmZqR/z3Lxv1knNYOzXsZEkhoUdH5okHLPSC+vwYuYQmr41BJCFbNZPToiilBjy6p0C2MmpJnXNEISoZpVinLOcxx/VfGXtA7rwUk9uD6qNmrzlqAMe7APNQjgFBpwCVfQBAoTuIcHeHTunCfn2XmZr5acT88u/IDz+gEc2Z6N</latexit>
p1
<latexit sha1_base64="4N7Wgeg/xukOKoR4S2YJYTSNh3M=">AAACEXicbZDLSiNBFIZPexljxhlbXbopzAiuQvfgdRdw4zKCUSEJobpyYgrr0lRVi6HJU7h1q+/gTtz6BL6CT2F1J4i3Hwp+/v8c6vAlqeDWRdFLMDM7N/9robJY/b305+9yuLJ6anVmGLaYFtqcJ9Si4ApbjjuB56lBKhOBZ8nlYdGfXaGxXKsTN0qxK+mF4gPOqPNRLww7MtHXudJE6iIZ98JaVI9Kke8mnppaowKlmr3wtdPXLJOoHBPU2nYcpa6bU+M4EziudjKLKWWX9ALb3ioq0Xbz8vIx2fRJnwy08U85UqYfN3IqrR3JxE9K6ob2a1eEP3XtzA32uzlXaeZQsclHg0wQp0mBgfS5QebEyBvKDPe3EjakhjLnYVU75aKn4iaYhkj7aMbVEs5BoZ13FN/N6f96vFuPj7drjX8TSlCBddiALYhhDxpwBE1oAYMruIU7uA9ugofgMXiajM4E0501+KTg+Q03gp6b</latexit>
no motion
<latexit sha1_base64="5pg8PDsTOkhDaw+spFKGXXVogCM=">AAACEHicbZDLSgNBEEVrfMb4SNSlm8EouAoz4nMXcONSwaiQhNDTUzGN/Ri6a8Qw5CfcutV/cCdu/QN/wa9wMhHxdaHhcm8VXZwokcJRELx5E5NT0zOzpbny/MLiUqW6vHLuTGo5NrmRxl5GzKEUGpskSOJlYpGpSOJFdH006i9u0Dph9BkNEuwodqVFT3BGedStVtoqMreZiY1CsoNht1oL6kEh/68JP02tUYJCJ93qezs2PFWoiUvmXCsMEupkzJLgEoflduowYfyaXWErt5opdJ2sOHzob+ZJ7PeMzZ8mv0i/b2RMOTdQUT6pGPXd724U/te1UuoddDKhk5RQ8/FHvVT6ZPwRBT8WFjnJQW4YtyK/1ed9ZhmnnFW5XSxm2tCYUh9ZjHZYLuAcjrT7heKvOd+uh3v18HSn1tgYU4ISrME6bEEI+9CAYziBJnBI4R4e4NG78568Z+9lPDrhfe6swg95rx/aJZ5x</latexit>
`3 prior `3
<latexit sha1_base64="D0t0Gbpa4yeBu+6gtb0njrI4NxM=">AAACJXicbVDLThtBEOwFQowTwEmOXEYxkbhg7SLyuhnlkgNIoGBAsi2rd7aNR57HamY2irXyD/AjXHNN/iG3CIkTd76C3TVCvEoaqVTVNT1TcSqF82F4GczNL7xYfFlbqr96vbyy2njz9siZzHLqcCONPYnRkRSaOl54SSepJVSxpON4/K30j3+SdcLoQz9Jqa/wVIuh4OgLadBY76nY/Mo5aqMLUTKJOlFox5vlrQn7sbuzNx00mmErrMCekuiWNNs1qLA/aFz3EsMzRdpzic51ozD1/RytF1zStN7LHKXIx3hK3YJqVOT6efWbKfuQlYuHxhZHe1ap9xM5KucmKi4mFfqRe+yV4nNeN/PDL/1c6DTzpPls0TCTzBtWVsMSYYl7OSkIciuKtzI+QovcFwXWe1Uw18bPqhsRJmSn9aqcryU+3lXxlBxttaJPrehgu9nemLUENViD97ABEXyGNnyHfegAhzP4DX/gb3Ae/Av+Bxez0bngNvMOHiC4ugEipqZf</latexit> <latexit sha1_base64="lECXM6hVGHTQFnb5AYRe6ojWSDs=">AAACHnicbVDNSisxGP3G39rr1apLEYLlQu+mzFz83VXduFSwKrSlZDJfba6ZZEgyYhm68kXcutV3cCdu9RV8CjNTEf8OBA7nfCf5csJEcGN9/9kbG5+YnJouzZR/zf6em68sLB4blWqGTaaE0qchNSi4xKblVuBpopHGocCT8Hwv908uUBuu5JEdJNiJ6ZnkPc6odVK3stKOQ3WZhamMBBIa/U+NjVFaUtvd+TvsVqp+3S9AvpPgjVQbJShw0K28tCPF0vwGJqgxrcBPbCej2nImcFhupwYTys7pGbYclTRG08mKbwzJH6dEpKe0O26DQv2YyGhszCAO3WRMbd989XLxJ6+V2t5WJ+MySS1KNnqolwpiFck7IRHXyKwYOEKZ5m5XwvpUU2Zdc+V2EcyksqPO+kgj1MNyUc52jvX3Kr6T43/1YKMeHK5VG7VRS1CCZViFGgSwCQ3YhwNoAoMruIFbuPOuvXvvwXscjY55b5kl+ATv6RVcNaNb</latexit>
<latexit sha1_base64="7iyXCYXvtnf7LlcEQO+3L706C+s=">AAACFHicbVDLSsNAFL3xWeur6tJNsAhdlaT43BXcuKxgq9CUMpnctkMnM2FmIpTQ33DrVv/Bnbh17y/4FU5SEbUeGOZw7j3cwwkTzrTxvHdnYXFpeWW1tFZe39jc2q7s7Ha0TBXFNpVcqtuQaORMYNsww/E2UUjikONNOL7I5zd3qDST4tpMEuzFZCjYgFFirNSv7AWh5JGexPbLAuR82m/0K1Wv7hVw54n/RarNEhRo9SsfQSRpGqMwlBOtu76XmF5GlGGU47QcpBoTQsdkiF1LBYlR97Ii/NQ9tErkDqSyTxi3UH86MhLrPJ/djIkZ6b+zXPxv1k3N4KyXMZGkBgWdHRqk3DXSzZtwI6aQGj6xhFDFbFaXjogi1Ni+ykFhzIQ0s6ZGSCJU03JRznmO4+8q5kmnUfdP6v7VUbVZm7UEJdiHA6iBD6fQhEtoQRsoTOABHuHJuXeenRfndba64Hx59uAXnLdPgS+f1Q==</latexit>
<latexit sha1_base64="b5MWbhCtoIcoBuQZk/2t5aCElIc=">AAACFHicbVDLSsNAFL2pr1pfVZdugkXoqiTic1dw47KCbYWmlMnkth06mQkzE6GE/oZbt/oP7sSte3/Br3CSivg6MMzh3Hu4hxMmnGnjeW9OaWFxaXmlvFpZW9/Y3Kpu73S0TBXFNpVcqpuQaORMYNsww/EmUUjikGM3nFzk8+4tKs2kuDbTBPsxGQk2ZJQYKw2qu0EoeaSnsf2yADmfDfxBteY1vALuX+J/klqzDAVag+p7EEmaxigM5UTrnu8lpp8RZRjlOKsEqcaE0AkZYc9SQWLU/awIP3MPrBK5Q6nsE8Yt1O+OjMQ6z2c3Y2LG+vcsF/+b9VIzPOtnTCSpQUHnh4Ypd4108ybciCmkhk8tIVQxm9WlY6IINbavSlAYMyHNvKkxkgjVrFKUc57j+KuKv6Rz2PBPGv7VUa1Zn7cEZdiDfaiDD6fQhEtoQRsoTOEeHuDRuXOenGfnZb5acj49u/ADzusHf5Of1A==</latexit>
`2
`1
p3
<latexit sha1_base64="A2NNUUAtUlazpp7Hib/5Qu5OzT8=">AAACEXicbVDLSsNAFL3xWesr6tJNsAiuSuLbXcGNSwVbC20pk8ltO3QyE2YmQgn9Crdu9R/ciVu/wF/wK5ykRdR6YJjDufdwDydMONPG9z+cufmFxaXl0kp5dW19Y9Pd2m5omSqKdSq5VM2QaORMYN0ww7GZKCRxyPEuHF7m87t7VJpJcWtGCXZi0hesxygxVuq6bjuUPNKj2H5ZMu4edd2KX/ULeLMkmJJKrQQFrrvuZzuSNI1RGMqJ1q3AT0wnI8owynFcbqcaE0KHpI8tSwWJUXeyIvnY27dK5PWksk8Yr1B/OjIS6zyc3YyJGei/s1z8b9ZKTe+8kzGRpAYFnRzqpdwz0str8CKmkBo+soRQxWxWjw6IItTYssrtwpgJaSY1DZBEqMblopyLHCffVcySxmE1OK0GN8eV2sGkJSjBLuzBAQRwBjW4gmuoA4V7eIQneHYenBfn1XmbrM45U88O/ILz/gUgEZ6P</latexit>
<latexit sha1_base64="ce4uuLkjfKZLQAC8vzdJb3ctrho=">AAACEXicbVDLSsNAFL3xWesr6tJNsAiuSiI+dwU3LivYB7SlTCa3dnAyE2YmhRL6FW7d6j+4E7d+gb/gVzhJi6j1wDCHc+/hHk6YcKaN7384C4tLyyurpbXy+sbm1ra7s9vUMlUUG1Ryqdoh0ciZwIZhhmM7UUjikGMrvL/K560RKs2kuDXjBHsxuRNswCgxVuq7bjeUPNLj2H5ZMumf9N2KX/ULePMkmJFKrQQF6n33sxtJmsYoDOVE607gJ6aXEWUY5Tgpd1ONCaH35A47lgoSo+5lRfKJd2iVyBtIZZ8wXqH+dGQk1nk4uxkTM9R/Z7n436yTmsFFL2MiSQ0KOj00SLlnpJfX4EVMITV8bAmhitmsHh0SRaixZZW7hTET0kxrGiKJUE3KRTmXOU6/q5gnzeNqcFYNbk4qtaNpS1CCfTiAIwjgHGpwDXVoAIURPMITPDsPzovz6rxNVxecmWcPfsF5/wIhrZ6Q</latexit>
p4
<latexit sha1_base64="PyPWDAiJqaev1QY37Ip8vMe49yM=">AAACEXicbVDLSsNAFL3xWesr6tJNsAiuSiI+dwU3LivYB7SlTCa3dnAyE2YmhRL6FW7d6j+4E7d+gb/gVzhJi6j1wDCHc+/hHk6YcKaN7384C4tLyyurpbXy+sbm1ra7s9vUMlUUG1Ryqdoh0ciZwIZhhmM7UUjikGMrvL/K560RKs2kuDXjBHsxuRNswCgxVuq7bjeUPNLj2H5ZMukf992KX/ULePMkmJFKrQQF6n33sxtJmsYoDOVE607gJ6aXEWUY5Tgpd1ONCaH35A47lgoSo+5lRfKJd2iVyBtIZZ8wXqH+dGQk1nk4uxkTM9R/Z7n436yTmsFFL2MiSQ0KOj00SLlnpJfX4EVMITV8bAmhitmsHh0SRaixZZW7hTET0kxrGiKJUE3KRTmXOU6/q5gnzeNqcFYNbk4qtaNpS1CCfTiAIwjgHGpwDXVoAIURPMITPDsPzovz6rxNVxecmWcPfsF5/wIedZ6O</latexit>
p2
<latexit sha1_base64="UjHjxjjNnihlDN+YL7je8bmFNVQ=">AAACCnicbVDLSsNAFL2prxpfVZduglVwVRLxuSu4cVnBPqAtZTK9bYdOZsLMRCwhf+DWrf6DO3HrT/gLfoVJWkStBwYO59zDvXP8kDNtXPfDKiwsLi2vFFfttfWNza3S9k5Dy0hRrFPJpWr5RCNnAuuGGY6tUCEJfI5Nf3yV+c07VJpJcWsmIXYDMhRswCgxqdTuBL68j7mUYdIrld2Km8OZJ96MlKtFyFHrlT47fUmjAIWhnGjd9tzQdGOiDKMcE7sTaQwJHZMhtlMqSIC6G+cnJ85hqvSdgVTpE8bJ1Z+JmARaTwI/nQyIGem/Xib+57UjM7joxkyEkUFBp4sGEXeMdLL/O32mkBo+SQmhiqW3OnREFKEmbcnu5MFYSJP30xsh6aNK7Lycywyn31XMk8ZxxTureDcn5erBtCUowh7swxF4cA5VuIYa1IGChEd4gmfrwXqxXq236WjBmmV24Res9y/wH5xf</latexit>
<latexit sha1_base64="tAUSgPttDVlGAhAf5tUO9UjLf+4=">AAACEXicbVDLSsNAFL2pr1pfUZdugkXoqiTic1dw41LBtkJbymRy2w6dzISZSaGEfoVbt/oP7sStX+Av+BVOUhFfB4Y5nHsP93DChDNtfP/NKS0sLi2vlFcra+sbm1vu9k5Ly1RRbFLJpboNiUbOBDYNMxxvE4UkDjm2w/FFPm9PUGkmxY2ZJtiLyVCwAaPEWKnvut1Q8khPY/tlyawf9N2qX/cLeH9J8EmqjTIUuOq7791I0jRGYSgnWncCPzG9jCjDKMdZpZtqTAgdkyF2LBUkRt3LiuQz78AqkTeQyj5hvEL97shIrPNwdjMmZqR/z3Lxv1knNYOzXsZEkhoUdH5okHLPSC+vwYuYQmr41BJCFbNZPToiilBjy6p0C2MmpJnXNEISoZpVinLOcxx/VfGXtA7rwUk9uD6qNmrzlqAMe7APNQjgFBpwCVfQBAoTuIcHeHTunCfn2XmZr5acT88u/IDz+gEc2Z6N</latexit>
x3 p1
<latexit sha1_base64="tPqvzQuur0DYkQKtz7xTE46gnjY=">AAACEXicbVDLSsNAFL3xWesr6tJNsAiuSuLbXcGNSwVbC20pk8ltO3QyE2YmxRL6FW7d6j+4E7d+gb/gVzhJRXwdGOZw7j3cwwkTzrTx/TdnZnZufmGxtFReXlldW3c3NhtapopinUouVTMkGjkTWDfMcGwmCkkccrwJh+f5/GaESjMprs04wU5M+oL1GCXGSl3XbYeSR3oc2y+7nXQPum7Fr/oFvL8k+CSVWgkKXHbd93YkaRqjMJQTrVuBn5hORpRhlOOk3E41JoQOSR9blgoSo+5kRfKJt2uVyOtJZZ8wXqF+d2Qk1nk4uxkTM9C/Z7n436yVmt5pJ2MiSQ0KOj3US7lnpJfX4EVMITV8bAmhitmsHh0QRaixZZXbhTET0kxrGiCJUE3KRTlnOY6+qvhLGvvV4LgaXB1WanvTlqAE27ADexDACdTgAi6hDhRGcA8P8OjcOU/Os/MyXZ1xPj1b8APO6wctCZ6X</latexit>
<latexit sha1_base64="acd9JfZNbDkl7lvH5hNr4W4k70I=">AAACEXicbVDLSsNAFL2pr1pfUZdugkVwVRKpr13BjUsFW4W2lMnkth06mQkzE7GEfoVbt/oP7sStX+Av+BVO0iK+DgxzOPce7uGECWfa+P67U5qbX1hcKi9XVlbX1jfcza2Wlqmi2KSSS3UTEo2cCWwaZjjeJApJHHK8Dkdn+fz6FpVmUlyZcYLdmAwE6zNKjJV6rtsJJY/0OLZfdjfp1Xtu1a/5Bby/JJiRaqMMBS567kcnkjSNURjKidbtwE9MNyPKMMpxUumkGhNCR2SAbUsFiVF3syL5xNuzSuT1pbJPGK9QvzsyEus8nN2MiRnq37Nc/G/WTk3/pJsxkaQGBZ0e6qfcM9LLa/AippAaPraEUMVsVo8OiSLU2LIqncKYCWmmNQ2RRKgmlaKc0xyHX1X8Ja2DWnBUCy7r1cb+tCUoww7swj4EcAwNOIcLaAKFW3iAR3hy7p1n58V5na6WnJlnG37AefsELqWemA==</latexit>
loop
x4
<latexit sha1_base64="RAy4UoAOA9HkVwW+H5wjVP/K+JE=">AAACDXicbZDLSsNAFIZPvNZ4q7p0E6yCq5KI113BjcsK9gJtLJPpaTt0MhNmJmIJeQa3bvUd3Ilbn8FX8ClM0yJq/WHg5//PYQ5fEHGmjet+WHPzC4tLy4UVe3VtfWOzuLVd1zJWFGtUcqmaAdHImcCaYYZjM1JIwoBjIxhejvvGHSrNpLgxowj9kPQF6zFKTBbdtsNA3ieUSx0rTDvFklt2czmzxpuaUqUAuaqd4me7K2kcojCUE61bnhsZPyHKMMoxtduxxojQIeljK7OChKj9JL86dQ6ypOv0pMqeME6e/txISKj1KAyyyZCYgf7bjcP/ulZseud+wkQUGxR08lEv5o6RzhiB02UKqeGjzBCqWHarQwdEEWoyUHY7X0yENDmizgBJF1Vq53Auxjr5RjFr6kdl77TsXR+XKvsTSlCAXdiDQ/DgDCpwBVWoAQUFj/AEz9aD9WK9Wm+T0TlrurMDv2S9fwF2jp3A</latexit>
closure
p5
<latexit sha1_base64="X5TBhKNf0Y3tsPfq47nHaCz9y0M=">AAACEXicbVDLSsNAFL3xWesr6tJNsAhdlUSsj13BjUsF+4C2lMnk1g5OZsLMRCihX+HWrf6DO3HrF/gLfoWTtIhaDwxzOPce7uGECWfa+P6Hs7C4tLyyWlorr29sbm27O7stLVNFsUkll6oTEo2cCWwaZjh2EoUkDjm2w7uLfN6+R6WZFDdmnGA/JreCDRklxkoD1+2Fkkd6HNsvSyaD+sCt+DW/gDdPghmpNEpQ4GrgfvYiSdMYhaGcaN0N/MT0M6IMoxwn5V6qMSH0jtxi11JBYtT9rEg+8Q6tEnlDqewTxivUn46MxDoPZzdjYkb67ywX/5t1UzM862dMJKlBQaeHhin3jPTyGryIKaSGjy0hVDGb1aMjogg1tqxyrzBmQpppTSMkEapJuSjnPEf9u4p50jqqBSe14Pq40qhOW4IS7MMBVCGAU2jAJVxBEyjcwyM8wbPz4Lw4r87bdHXBmXn24Bec9y8jSZ6R</latexit>
<latexit sha1_base64="Yr4EdV941G5d4F9Y7HI7OEu2xuQ=">AAACEXicbVDLSsNAFL2pr1pfUZdugkVwVZLic1dw41LBVqEtZTK5bYdOZsLMRCyhX+HWrf6DO3HrF/gLfoWTtIivA8Mczr2Hezhhwpk2vv/ulObmFxaXysuVldW19Q13c6ulZaooNqnkUt2ERCNnApuGGY43iUIShxyvw9FZPr++RaWZFFdmnGA3JgPB+owSY6We63ZCySM9ju2X3U169Z5b9Wt+Ae8vCWak2ihDgYue+9GJJE1jFIZyonU78BPTzYgyjHKcVDqpxoTQERlg21JBYtTdrEg+8fasEnl9qewTxivU746MxDoPZzdjYob69ywX/5u1U9M/6WZMJKlBQaeH+in3jPTyGryIKaSGjy0hVDGb1aNDogg1tqxKpzBmQpppTUMkEapJpSjnNMfhVxV/SateC45qweVBtbE/bQnKsAO7sA8BHEMDzuECmkDhFh7gEZ6ce+fZeXFep6slZ+bZhh9w3j4BK22elg==</latexit>
x2
<latexit sha1_base64="VSjXtvk3tP4GqyhJeZJraKYvkis=">AAACEXicbVDLSsNAFL3xWesr6tJNsAhdlUR87gpuXCrYB7SlTCa3dnAyE2YmYgn9Crdu9R/ciVu/wF/wK5ykRdR6YJjDufdwDydMONPG9z+cufmFxaXl0kp5dW19Y9Pd2m5qmSqKDSq5VO2QaORMYMMww7GdKCRxyLEV3p7n89YdKs2kuDajBHsxuRFswCgxVuq7bjeUPNKj2H7Z/bgf9N2KX/MLeLMkmJJKvQQFLvvuZzeSNI1RGMqJ1p3AT0wvI8owynFc7qYaE0JvyQ12LBUkRt3LiuRjb98qkTeQyj5hvEL96chIrPNwdjMmZqj/znLxv1knNYPTXsZEkhoUdHJokHLPSC+vwYuYQmr4yBJCFbNZPTokilBjyyp3C2MmpJnUNEQSoRqXi3LOchx9VzFLmge14LgWXB1W6tVJS1CCXdiDKgRwAnW4gEtoAIU7eIQneHYenBfn1XmbrM45U88O/ILz/gUp0Z6V</latexit>
x1
p7
<latexit sha1_base64="AHK0nrRU1LpOxVTa1IhH+ei1FZY=">AAACEXicbVDLSsNAFL3xWesr6tJNsAiuSiJqdVdw47KCrUJbymRy2w6dzISZSaGEfoVbt/oP7sStX+Av+BVO0iK+DgxzOPce7uGECWfa+P67s7C4tLyyWlorr29sbm27O7stLVNFsUkll+ouJBo5E9g0zHC8SxSSOOR4G44u8/ntGJVmUtyYSYLdmAwE6zNKjJV6rtsJJY/0JLZflkx7tZ5b8at+Ae8vCeakUi9BgUbP/ehEkqYxCkM50bod+InpZkQZRjlOy51UY0LoiAywbakgMepuViSfeodWiby+VPYJ4xXqd0dGYp2Hs5sxMUP9e5aL/83aqemfdzMmktSgoLND/ZR7Rnp5DV7EFFLDJ5YQqpjN6tEhUYQaW1a5UxgzIc2spiGSCNW0XJRzkeP0q4q/pHVcDc6qwfVJpX40awlKsA8HcAQB1KAOV9CAJlAYwwM8wpNz7zw7L87rbHXBmXv24Aect08mgZ6T</latexit>
p6
<latexit sha1_base64="RtLkGHayYJw83DAC6HZdu/eFnMo=">AAACEXicbVDLSsNAFL3xWesr6tJNsAhdlUS06q7gxqWCfUBbymRyawcnM2FmIpTQr3DrVv/Bnbj1C/wFv8JJWkStB4Y5nHsP93DChDNtfP/DWVhcWl5ZLa2V1zc2t7bdnd2Wlqmi2KSSS9UJiUbOBDYNMxw7iUIShxzb4d1FPm/fo9JMihszTrAfk1vBhowSY6WB6/ZCySM9ju2XJZNBfeBW/JpfwJsnwYxUGiUocDVwP3uRpGmMwlBOtO4GfmL6GVGGUY6Tci/VmBB6R26xa6kgMep+ViSfeIdWibyhVPYJ4xXqT0dGYp2Hs5sxMSP9d5aL/826qRme9TMmktSgoNNDw5R7Rnp5DV7EFFLDx5YQqpjN6tERUYQaW1a5VxgzIc20phGSCNWkXJRznuPku4p50jqqBfVacH1caVSnLUEJ9uEAqhDAKTTgEq6gCRTu4RGe4Nl5cF6cV+dturrgzDx78AvO+xck5Z6S</latexit>
<latexit sha1_base64="gboL0Go5q/OALpzyy8xHMtqKhAQ=">AAACQnicbZDLThsxFIbPQIEQbilddmM1QmIVzSCui0qpuumSSoREykSRx3OSWPFlZHsQ0SjP0xfptltQX4EdYssCzwRVUPgly7++c458/CeZ4NaF4d9gafnDyupabb2+sbm1vdP4uHtpdW4YdpgW2vQSalFwhR3HncBeZpDKRGA3mX4v690rNJZrdeFmGQ4kHSs+4ow6j4aNb3GiRWpn0l/F9XzIyVcSJ4kkL3lW8jh+xa4qhokcNpphK6xE3pro2TTbNah0PmzcxalmuUTlmKDW9qMwc4OCGseZwHk9zi1mlE3pGPveKirRDorqq3Oy50lKRtr4oxyp6MuJgkpbbug7JXUT+3+thO/V+rkbnQ4KrrLcoWKLh0a5IE6TMjeScoPMiZk3lBnudyVsQg1lzqdbj6vBQmm3yHWCNEUzr1fhnJU6+hfFW3N50IqOW9HPw2Z7f5ES1OAzfIF9iOAE2vADzqEDDH7BH7iB2+B3cBfcBw+L1qXgeeYTvFLw+AQySLMV</latexit>
<latexit sha1_base64="EnEwFa/DqrLXjHVf7dwDurBTOqQ=">AAACEXicbVDLSsNAFL3xWesr6tJNsAhdlUR87gpuXCrYB7SlTCa3dnAyE2YmhRL6FW7d6j+4E7d+gb/gVzhJi6j1wDCHc+/hHk6YcKaN7384C4tLyyurpbXy+sbm1ra7s9vUMlUUG1Ryqdoh0ciZwIZhhmM7UUjikGMrvL/M560RKs2kuDXjBHsxuRNswCgxVuq7bjeUPNLj2H5ZMumf992KX/MLePMkmJFKvQQFrvvuZzeSNI1RGMqJ1p3AT0wvI8owynFS7qYaE0LvyR12LBUkRt3LiuQT79AqkTeQyj5hvEL96chIrPNwdjMmZqj/znLxv1knNYPzXsZEkhoUdHpokHLPSC+vwYuYQmr42BJCFbNZPTokilBjyyp3C2MmpJnWNEQSoZqUi3Iucpx8VzFPmke14LQW3BxX6tVpS1CCfTiAKgRwBnW4gmtoAIURPMITPDsPzovz6rxNVxecmWcPfsF5/wIoHZ6U</latexit>
p8
p
xi = i
<latexit sha1_base64="XI+bVvG2FxLrcO8kqclPBNw10v8=">AAACFHicbVDLSsNAFL3xWeur6tJNsAiuSuLbXcGNSwVbC00pk8ltO3QyE2YmQgn9Dbdu9R/ciVv3/oJf4SQtotYDwxzOvYd7OGHCmTae9+HMzS8sLi2XVsqra+sbm5Wt7aaWqaLYoJJL1QqJRs4ENgwzHFuJQhKHHO/C4WU+v7tHpZkUt2aUYCcmfcF6jBJjpW5lJwglj/Qotl8WIOfj7lG3UvVqXgF3lvhTUq2XoMB1t/IZRJKmMQpDOdG67XuJ6WREGUY5jstBqjEhdEj62LZUkBh1JyvCj919q0RuTyr7hHEL9acjI7HO89nNmJiB/jvLxf9m7dT0zjsZE0lqUNDJoV7KXSPdvAk3Ygqp4SNLCFXMZnXpgChCje2rHBTGTEgzaWqAJEI1LhflXOQ4+a5iljQPa/5pzb85rtYPJi1BCXZhDw7AhzOowxVcQwMojOARnuDZeXBenFfnbbI650w9O/ALzvsXgsuf1g==</latexit>
<latexit sha1_base64="ACt9Z2ln8ntfZS9GhpVYaWod1cs=">AAACF3icbZDLSgNBEEVrfMb4igpu3AxGwY1hRnzuAm5cKhgVkhB6OhXT2I+hu0YMYz7ErVv9B3fi1qW/4Fc4mYj4utBwubeKLk4US+EoCN68kdGx8YnJwlRxemZ2br60sHjmTGI51riRxl5EzKEUGmskSOJFbJGpSOJ5dHU46M+v0Tph9Cn1YmwqdqlFR3BGWdQqLTdUZG5SbjQJnZjEbZJQ2G+VykElyOX/NeGnKVcLkOu4VXpvtA1PFGrikjlXD4OYmimzJLjEfrGROIwZv2KXWM+sZgpdM83v7/vrWdL2O8ZmT5Ofp983Uqac66kom1SMuu53Nwj/6+oJdfabqdBxQqj58KNOIn0y/gCG3xYWOcleZhi3IrvV511mGacMWbGRL6ba0BBWF1kbbb+YwzkYaOcLxV9ztlUJdyvhyXa5ujakBAVYgVXYgBD2oApHcAw14HAL9/AAj96d9+Q9ey/D0RHvc2cJfsh7/QCBIqF3</latexit>
vi
continuous-time
<latexit sha1_base64="Gp1DCmbwOtMsi6yoWu3Yyr8O4yE=">AAACFHicbVDLSgNBEOz1GeMrmqOXwSh4Crvi8xbw4lHBGCEJYXbSSYbMY5mZFcOS3/DqVf/Bm3j17i/4Fe5uRNRYMFBT1UU3FUaCW+f7797M7Nz8wmJhqbi8srq2XtrYvLY6NgzrTAttbkJqUXCFdcedwJvIIJWhwEY4PMv8xi0ay7W6cqMI25L2Fe9xRl0qdUrllgz1XSJ19iWR4dqMO6WKX/VzkGkSfJFKrQA5Ljqlj1ZXs1iickxQa5uBH7l2Qo3jTOC42IotRpQNaR+bKVVUom0n+fFjspsqXdLTJn3KkVz9mUiotHYkw3RSUjewf71M/M9rxq530k64imKHik0W9WJBnCZZE6TLDTInRimhzPD0VsIG1FDm0r6KrTyYKO0mTQ2QdtGMi3k5pxkOv6uYJtf71eCoGlweVGo7k5agAFuwDXsQwDHU4BwuoA4MRvAAj/Dk3XvP3ov3Ohmd8b4yZfgF7+0T2K2gCA==</latexit>
`3 <latexit sha1_base64="5pg8PDsTOkhDaw+spFKGXXVogCM=">AAACEHicbZDLSgNBEEVrfMb4SNSlm8EouAoz4nMXcONSwaiQhNDTUzGN/Ri6a8Qw5CfcutV/cCdu/QN/wa9wMhHxdaHhcm8VXZwokcJRELx5E5NT0zOzpbny/MLiUqW6vHLuTGo5NrmRxl5GzKEUGpskSOJlYpGpSOJFdH006i9u0Dph9BkNEuwodqVFT3BGedStVtoqMreZiY1CsoNht1oL6kEh/68JP02tUYJCJ93qezs2PFWoiUvmXCsMEupkzJLgEoflduowYfyaXWErt5opdJ2sOHzob+ZJ7PeMzZ8mv0i/b2RMOTdQUT6pGPXd724U/te1UuoddDKhk5RQ8/FHvVT6ZPwRBT8WFjnJQW4YtyK/1ed9ZhmnnFW5XSxm2tCYUh9ZjHZYLuAcjrT7heKvOd+uh3v18HSn1tgYU4ISrME6bEEI+9CAYziBJnBI4R4e4NG78568Z+9lPDrhfe6swg95rx/aJZ5x</latexit>
<latexit sha1_base64="8tITPc6bXNvcbi3uPX8pOIRZTOs=">AAACKnicbVDLahtBEOyVnVhWHpadYy6DRcC5iN1gJ/FNkIuPMkSyQRJidtSSJprHMtNrIhZ9Q34k11yTf/BN5OpTviKjlTCJ5YKBoqqa6a40U9JTHC+jys7uk6d71f3as+cvXh7UD4+63uZOYEdYZd11yj0qabBDkhReZw65ThVepbNPK//qBp2X1nymeYYDzSdGjqXgFKRh/W1fp/Zr4aXOFXGDNveMHP+CgqybM/QkdRldDOuNuBmXYNsk2ZBGqwol2sP6n/7IilyjIaG4970kzmhQcEdSKFzU+rnHjIsZn2AvUMM1+kFRnrRgb4IyYmPrwjPESvXfiYJr7+c6Dcmw39Q/9FbiY14vp/HHQSFNlhMasf5onCtGlq36YSPpwu1qHggXToZdmZhyxwWFFmv9crAwltb9TZGP0C1qZTnnK5zdV7FNuu+ayftmcnnaaJ2sW4IqvIZjOIEEPkALLqANHRDwDX7AT/gVfY9uo2X0ex2tRJuZV/Aforu/quWp8w==</latexit>
Figure 2.3 A few variants of SLAM problems that can all be viewed through the factor-
graph lens. Canonical landmark-based SLAM has both pose and landmark variables; land-
marks are measured from poses and there is some motion prior between poses typically
based on odometry. BA is the same but without the motion prior. STEAM is similar but
now poses can be replaced by higher-order states and a smooth continuous-time motion
prior is used. PGO does not have landmark variables but enjoys extra loop-closure mea-
surements between poses.
p1 p2 p3 p4
<latexit sha1_base64="c2peMPeVPvUSy8RewgFjN9zoU1c=">AAACEXicbVDLSgMxFM3UV62vUUEEN4NFcFVmBF+7ghuXFewD2lIymds2NJMMSaZQhn6FW7f6Ae7c+Vj6Bf6CP6GZaRG1Hgg5nHsP93D8iFGlXffdys3NLywu5ZcLK6tr6xv25lZNiVgSqBLBhGz4WAGjHKqaagaNSAIOfQZ1f3CRzutDkIoKfq1HEbRD3OO0SwnWRurYdssXLFCj0HxJNO54HbvoltwMzizxpqRY3n19qH0+71Q69kcrECQOgWvCsFJNz410O8FSU8JgXGjFCiJMBrgHTUM5DkG1kyz52DkwSuB0hTSPaydTfzoSHKo0nNkMse6rv7NU/G/WjHX3rJ1QHsUaOJkc6sbM0cJJa3ACKoFoNjIEE0lNVof0scREm7IKrcyYcKEnNfUBByDHhayc8xTH31XMktpRyTspeVdeseyiCfJoD+2jQ+ShU1RGl6iCqoigIbpFd+jeurEerSfrZbKas6aebfQL1tsXbLGiQw==</latexit> <latexit sha1_base64="phrtd3Xp7cwooxJyO7tk7KttQOM=">AAACEXicbVDLSgMxFM34rPU1KojgZrAIrspMwdeu4MZlBfuAtpRM5rYNzSRDkimUoV/h1q1+gDt3PpZ+gb/gT2hmWkStB0IO597DPRw/YlRp13235uYXFpeWcyv51bX1jU17a7umRCwJVIlgQjZ8rIBRDlVNNYNGJAGHPoO6P7hI5/UhSEUFv9ajCNoh7nHapQRrI3Vsu+ULFqhRaL4kGndKHbvgFt0MzizxpqRQ3nt9qH0+71Y69kcrECQOgWvCsFJNz410O8FSU8JgnG/FCiJMBrgHTUM5DkG1kyz52Dk0SuB0hTSPaydTfzoSHKo0nNkMse6rv7NU/G/WjHX3rJ1QHsUaOJkc6sbM0cJJa3ACKoFoNjIEE0lNVof0scREm7LyrcyYcKEnNfUBByDH+ayc8xTH31XMklqp6J0UvSuvUHbRBDm0jw7QEfLQKSqjS1RBVUTQEN2iO3Rv3ViP1pP1Mlmds6aeHfQL1tsXbk2iRA==</latexit> <latexit sha1_base64="gh4kf8/VH0qi50vub22NJ+SNqfo=">AAACEXicbVDLSgMxFM34rPU1KojgZrAIrsqM4mtXcOOygn1AW0omc9uGZpIhyRTK0K9w61Y/wJ07H0u/wF/wJzQzLaLWAyGHc+/hHo4fMaq0675bM7Nz8wuLuaX88srq2rq9sVlVIpYEKkQwIes+VsAoh4qmmkE9koBDn0HN71+k89oApKKCX+thBK0QdzntUIK1kdq23fQFC9QwNF8SjdpHbbvgFt0MzjTxJqRQ2nl9qH4+b5fb9kczECQOgWvCsFINz410K8FSU8JglG/GCiJM+rgLDUM5DkG1kiz5yNk3SuB0hDSPaydTfzoSHKo0nNkMse6pv7NU/G/WiHXnrJVQHsUaOBkf6sTM0cJJa3ACKoFoNjQEE0lNVof0sMREm7LyzcyYcKHHNfUAByBH+ayc8xTH31VMk+ph0TspeldeoeSiMXJoF+2hA+ShU1RCl6iMKoigAbpFd+jeurEerSfrZbw6Y008W+gXrLcvb+miRQ==</latexit> <latexit sha1_base64="6gDH420vd7LbG+VvekO2O3wewhw=">AAACEXicbVDLSgMxFM34rPU1KojgZrAIrsqM+NwV3LisYB/QlpLJ3LahmWRIMoUy9CvcutUPcOfOx9Iv8Bf8Cc1Mi6j1QMjh3Hu4h+NHjCrtuu/WzOzc/MJibim/vLK6tm5vbFaViCWBChFMyLqPFTDKoaKpZlCPJODQZ1Dz+xfpvDYAqajg13oYQSvEXU47lGBtpLZtN33BAjUMzZdEo/ZR2y64RTeDM028CSmUdl4fqp/P2+W2/dEMBIlD4JowrFTDcyPdSrDUlDAY5ZuxggiTPu5Cw1COQ1CtJEs+cvaNEjgdIc3j2snUn44EhyoNZzZDrHvq7ywV/5s1Yt05ayWUR7EGTsaHOjFztHDSGpyASiCaDQ3BRFKT1SE9LDHRpqx8MzMmXOhxTT3AAchRPivnPMXxdxXTpHpY9E6K3pVXKLlojBzaRXvoAHnoFJXQJSqjCiJogG7RHbq3bqxH68l6Ga/OWBPPFvoF6+0LcYWiRg==</latexit>
<latexit sha1_base64="ODSV+eXCaEvOBru2vgngDIcQy6A=">AAACFHicbVC7SgNBFJ2Nrxhf0WBlsxgEq7Cr+OoCNpYRzAOyIczO3pghszPLzKwQlmDvB9jaam1rJ7b2dtZa+AvOboL4OjDM4dx7uIfjR4wq7TgvVm5qemZ2Lj9fWFhcWl4prq41lIglgToRTMiWjxUwyqGuqWbQiiTg0GfQ9AfH6bx5AVJRwc/0MIJOiM857VGCtZG6xZLnCxaoYWi+xAPGRt3dbrHsVJwM9l/iTki5uv5++Xr1cV/rFt+8QJA4BK4Jw0q1XSfSnQRLTQmDUcGLFUSYDPA5tA3lOATVSbLwI3vLKIHdE9I8ru1M/e5IcKjSfGYzxLqvfs9S8b9ZO9a9w05CeRRr4GR8qBczWws7bcIOqASi2dAQTCQ1WW3SxxITbfoqeJkx4UKPm+oDDkCOClk5Ryn2vqr4Sxo7FXe/4p665aqDxsijDbSJtpGLDlAVnaAaqiOChugG3aI769p6sB6tp/Fqzpp4SugHrOdP/uikXg==</latexit>
`1 `2 `3
The second equation above is Bayes’ law, and expresses the posterior as the product
of the measurement density p(z|x) and the prior p(x) over the states, appropriately
normalized by the factor p(z). The third equation drops the p(z) since this does
not depend on the x and therefore will not impact the arg max operation.
We use factor graphs to express the unnormalized posterior p(z|x)p(x). Formally
a factor graph is a bipartite graph F = (U, V, E) with two types of nodes: factors
28 Factor Graphs for SLAM
ϕi ∈ U and variables xj ∈ V. Edges eij ∈ E are always between factor nodes and
variables nodes. The set of variable nodes adjacent to a factor ϕi is written as X (ϕi ),
and we write xi for an assignment to this set. With these definitions, a factor graph
F defines the factorization of a global function ϕ(x) as
Y
ϕ(x) = ϕi (xi ). (2.7)
i
In other words, the independence relationships are encoded by the edges eij of the
factor graph, with each factor ϕi a function of only the variables xi in its adjacency
set X (ϕi ).
In the rest of this chapter, we show how to find an optimal assignment, the MAP
estimate, through optimization over the unknown variables in the factor graph.
Indeed, for an arbitrary factor graph, MAP inference comes down to maximizing
the product (2.7) of all factor-graph potentials:
What is left now is to derive the exact form of the factors ϕi (xi ), which depends
very much on how we model the measurement models p(z|x) and the prior densities
p(x). We discuss this in detail next.
Note that for robots operating in three-dimensional space, we will need slightly
more sophisticated machinery to specify densities on nonlinear manifolds such as
SE(3), as discussed in the next chapter.
Minimizing this objective function performs sensor fusion through the process
of combining several measurement-derived factors, and possibly several priors, to
uniquely determine the MAP solution for the unknowns.
An important and non-obvious observation is that the factors in (2.18) typi-
cally represent rather under-specified densities on the involved unknown variables
xi . Indeed, except for simple prior factors, the measurements zi are typically of
lower dimension than the unknowns xi . In those cases, the factor by itself accords
the same likelihood to an infinite subset of the domain of xi . For example, a 2D
measurement in a camera image is consistent with an entire ray of 3D points that
project to the same image location.
Even though the functions hi are nonlinear, if we have a decent initial guess
available, then the nonlinear optimization methods we discuss in this chapter will
be able to converge to the global minimum of (2.18). We should caution, however,
that as our objective in (2.18) is non-convex, there is no guarantee that we will
not get stuck in a local minimum if our initial guess is poor. This has led to so-
called certifiably optimal solvers, which are the subject of a later chapter. Below,
however, we focus on local methods rather than global solvers. We start off below
by considering the the easier problem of solving a linearized version of the problem.
2.3.1 Linearization
We can linearize all measurement functions hi (·) in the nonlinear least-squares
objective function (2.18) using a simple Taylor expansion,
hi (xi ) = hi (x0i + δi ) ≈ hi (x0i ) + Hi δi , (2.19)
where the measurement Jacobian Hi is defined as the (multivariate) partial deriva-
tive of hi (·) at a given linearization point x0i ,
∆ ∂hi (xi )
Hi = , (2.20)
∂xi x0i
∆
and δi = xi − x0i is the state update vector. Note that we make an assumption that
xi lives in a vector space or, equivalently, can be represented by a vector. This is not
always the case, e.g., when some of the unknown states in x represent 3D rotations
or other more complex manifold types. We will revisit this issue in Chapter 3.
Substituting the Taylor expansion (2.19) into the nonlinear least-squares expres-
sion (2.18) we obtain a linear least-squares problem in the state update vector δ,
X 2
δ ∗ = arg min zi − hi (x0i ) − Hi δi Σi
(2.21a)
δ i
X 2
= arg min zi − hi (x0i ) − Hi δi Σi
, (2.21b)
δ i
where zi −hi (x0i ) is the prediction error at the linearization point, i.e., the difference
between actual and predicted measurement. Above, δ ∗ denotes the solution to the
locally linearized problem.
By a simple change of variables we can drop the covariance matrices Σi from
this point forward: defining Σ1/2 as the matrix square root of Σ, we can rewrite
the square Mahalanobis norm as follows:
⊤ 2
∆
∥e∥2Σ = e⊤ Σ−1 e = Σ−1/2 e Σ−1/2 e = Σ−1/2 e . (2.22)
2
it simply means dividing each term by the measurement standard deviation σi . Note
that this eliminates the units of the measurements (e.g., length, angles) so that the
different rows can be combined into a single cost function.
X 2
δ ∗ = arg min ∥Ai δi − bi ∥2 (2.24a)
δ i
2
= arg min ∥Aδ − b∥2 , (2.24b)
δ
Above A and b are obtained by collecting all whitened Jacobian matrices Ai and
whitened prediction errors bi into one large matrix A and right-hand-side (RHS)
vector b, respectively.
The Jacobian A is a large-but-sparse matrix, with a block structure that mirrors
the structure of the underlying factor graph. We will examine this sparsity structure
in detail below. First, however, we review the the classical linear algebra approach
to solving this least-squares problem.
This is normally done by factoring the information matrix Λ (also called the Hessian
matrix), defined and factored as follows:
∆
Λ = A⊤ A = R⊤ R. (2.26)
R ⊤ y = A⊤ b (2.27)
concisely stated in terms of basic linear algebra. It comes down to factorizing either
the information matrix Λ or the measurement Jacobian A into square-root form.
Because they are based on matrix square roots derived from the SAM √ problem, we
have referred to this family of approaches as square-root SAM, or SAM for short
[65, 68].
and corresponds to a nonlinear factor graph derived from the measurements along
with prior densities on some or all unknowns.
Nonlinear least-squares problems cannot be solved directly in general, but require
an iterative solution starting from a suitable initial estimate. Nonlinear optimiza-
tion methods do so by solving a succession of linear approximations to (2.18) in
order to approach the minimum [72]. A variety of algorithms exist that differ in how
they locally approximate the cost function, and in how they find an improved esti-
mate based on that local approximation. A general in-depth treatment of nonlinear
solvers is provided by [189], while [101] focuses on the linear-algebra perspective.
All of the algorithms share the following basic structure: they start from an initial
estimate x0 . In each iteration, an update step δ is calculated and applied to obtain
the next estimate xt+1 = xt +δ. This process ends when certain convergence criteria
are reached, such as the norm of the change δ falling below a small threshold.
2.4.2 Gauss-Newton
Gauss-Newton (GN) provides faster convergence by using a second-order update.
GN exploits the special structure of the nonlinear least-squares problem to approx-
imate the Hessian using the Jacobian as A⊤ A. The GN update step is obtained by
solving the normal equations (2.25),
A⊤ A δ gn = A⊤ b, (2.36)
by any of the methods in Section 2.3.3. For a well-behaved (i.e., nearly quadratic)
objective function and a good initial estimate, Gauss-Newton exhibits nearly quadratic
convergence. If the quadratic fit is poor, a GN step can lead to a new estimate that
is further from the minimum and subsequent divergence.
2.4.3 Levenberg-Marquardt
The Levenberg-Marquardt (LM) algorithm allows for iterating multiple times to
convergence while controlling in which region one is willing to trust the quadratic
approximation made by Gauss-Newton. Hence, such a method is often called a
trust-region method.
To combine the advantages of both the SD and GN methods, Levenberg [149]
proposed to modify the normal equations (2.25) by adding a non-negative constant
λ ∈ R+ ∪ {0} to the diagonal
A⊤ A + λI δ lm = A⊤ b. (2.37)
Note that for λ = 0 we obtain GN, and for large λ we approximately obtain δ ∗ ≈
1 ⊤
λ A b, an update in the negative gradient direction of the cost function J (2.34).
Hence, LM can be seen to blend naturally between the GN and SD methods.
Marquardt [170] later proposed to take into account the scaling of the diagonal
entries to provide faster convergence:
A⊤ A + λ diag(A⊤ A) δ lm = A⊤ b. (2.38)
This modification causes larger steps in the steepest-descent direction if the gra-
dient is small (nearly flat directions of the objective function), because there the
inverse of the diagonal entries will be large. Conversely, in steep directions of the
objective function the algorithm becomes more cautious and takes smaller steps.
Both modifications of the normal equations can be interpreted in Bayesian terms
as adding a zero-mean prior to the system.
A key difference between GN and LM is that the latter rejects updates that
would lead to a higher sum of squared residuals. A rejected update means that the
nonlinear function is locally not well-behaved, and smaller steps are needed. This
is achieved by heuristically increasing the value of λ, for example by multiplying
its current value by a factor of 10, and resolving the modified normal equations.
36 Factor Graphs for SLAM
Current
estimate
Dog leg update
Trust region
Gauss-Newton update
Figure 2.5 Powell’s dogleg algorithm combines the separately computed Gauss-Newton
and gradient descent update steps.
On the other hand, if a step leads to a reduction of the sum of squared residuals,
it is accepted, and the state estimate is updated accordingly. In this case, λ is
reduced (e.g., by dividing by a factor of 10), and the algorithm repeats with a new
linearization point, until convergence.
Each term above is derived from a factor in the original, nonlinear SLAM problem,
linearized around the current linearization point (2.21b). The matrices Ai can be
broken up in blocks corresponding to each variable, and collected in a large, block-
sparse Jacobian whose sparsity structure is given exactly by the factor graph.
Even though these linear problems typically arise as inner iterations in nonlinear
optimization, we drop the δ notation below, as everything holds for general linear
problems regardless of their origin.
Consider the factor graph for the small toy example in Figure 2.1. After lin-
earization, we obtain a sparse system [A|b] with the block structure in Figure 2.6.
Comparing this with the factor graph, it is obvious that every factor corresponds to
a block-row, and every variable corresponds to a block-column of A. In total there
are nine block-rows, one for every factor in the factorization of ϕ(p1 , p2 , p3 , ℓ1 , ℓ2 ).
38 Factor Graphs for SLAM
Figure 2.6 Block structure of the sparse Jacobian A for the toy SLAM example in Figure
⊤ ⊤
2.1 with δ = δℓ⊤ ⊤ ⊤ ⊤
1 δℓ2 δp1 δp2 δp3 . Blank entries are zeros.
Λ11 Λ13 Λ14
Λ22 Λ25
Λ31 Λ33 Λ34
Λ41 Λ43 Λ44 Λ45
Λ52 Λ54 Λ55
∆
Figure 2.7 The information matrix Λ = A⊤ A for the toy SLAM problem.
`l11 `l22
x x xp33
<latexit sha1_base64="kXx44wnjqLe/qAbLMONIjGgtM5U=">AAACEXicbVDLSsNAFL2pr1pfUZduglVwVRLxuSu4calgW6EtZTK5tUMnM2FmIpTQr3DrVv/Bnbj1C/wFv8JJWkStB4Y5nHsP93DChDNtfP/DKc3NLywulZcrK6tr6xvu5lZTy1RRbFDJpboNiUbOBDYMMxxvE4UkDjm2wuFFPm/do9JMihszSrAbkzvB+owSY6We63ZCySM9iu2XJeNe0HOrfs0v4M2SYEqq9TIUuOq5n51I0jRGYSgnWrcDPzHdjCjDKMdxpZNqTAgdkjtsWypIjLqbFcnH3r5VIq8vlX3CeIX605GRWOfh7GZMzED/neXif7N2avpn3YyJJDUo6ORQP+WekV5egxcxhdTwkSWEKmazenRAFKHGllXpFMZMSDOpaYAkQjWuFOWc5zj+rmKWNA9rwUktuD6q1vcmLUEZdmAXDiCAU6jDJVxBAyjcwyM8wbPz4Lw4r87bZLXkTD3b8AvO+xcbpZ6J</latexit> <latexit sha1_base64="i1LTsi0pXgXYdlkAuqdoH9DYknI=">AAACEXicbVDLSsNAFL3xWesr6tJNsAquSiI+dwU3LivYWmhLmUxu7eBkJsxMCiX0K9y61X9wJ279An/Br3CSFlHrgWEO597DPZww4Uwb3/9w5uYXFpeWSyvl1bX1jU13a7upZaooNqjkUrVCopEzgQ3DDMdWopDEIcfb8P4yn98OUWkmxY0ZJdiNyZ1gfUaJsVLPdTuh5JEexfbLknHvqOdW/KpfwJslwZRUaiUoUO+5n51I0jRGYSgnWrcDPzHdjCjDKMdxuZNqTAi9J3fYtlSQGHU3K5KPvQOrRF5fKvuE8Qr1pyMjsc7D2c2YmIH+O8vF/2bt1PTPuxkTSWpQ0Mmhfso9I728Bi9iCqnhI0sIVcxm9eiAKEKNLavcKYyZkGZS0wBJhGpcLsq5yHHyXcUsaR5Vg9NqcH1cqe1PWoIS7MIeHEIAZ1CDK6hDAygM4RGe4Nl5cF6cV+dtsjrnTD078AvO+xcdQZ6K</latexit> <latexit sha1_base64="xa47ISr24vnFk6T52/jxFM/EsFA=">AAACEXicbVDLSsNAFL3xWesr6tJNsAquSuLbXcGNSwVbhbaUyeS2HTqZCTOTQgn9Crdu9R/ciVu/wF/wK5ykImo9MMzh3Hu4hxMmnGnj++/OzOzc/MJiaam8vLK6tu5ubDa0TBXFOpVcqruQaORMYN0ww/EuUUjikONtOLjI57dDVJpJcWNGCbZj0hOsyygxVuq4biuUPNKj2H5ZMu4cdtyKX/ULeNMk+CKVWgkKXHXcj1YkaRqjMJQTrZuBn5h2RpRhlOO43Eo1JoQOSA+blgoSo25nRfKxt2eVyOtKZZ8wXqH+dGQk1nk4uxkT09d/Z7n436yZmu5ZO2MiSQ0KOjnUTblnpJfX4EVMITV8ZAmhitmsHu0TRaixZZVbhTET0kxq6iOJUI3LRTnnOY6/q5gmjYNqcFINro8qtd1JS1CCbdiBfQjgFGpwCVdQBwpDeIBHeHLunWfnxXmdrM44X54t+AXn7RMe3Z6L</latexit>
p11 p22
Figure 2.8 The Hessian matrix Λ can be interpreted as the matrix associated with the
Markov random field representation for the problem.
model much beyond that as factor graphs are better suited to our needs. They are
able to express a finer-grained factorization, and are more closely related to the
original problem formulation. For example, if there exist ternary (or higher) factors
in the factor graph, the graph G of the equivalent MRF connects those nodes in
an undirected clique (a group of fully connected variables), but the origin of the
corresponding clique potential is lost. In linear algebra, this reflects the fact that
many matrices A can yield the same Λ = A⊤ A matrix: important information on
the sparsity is lost.
2.6 Elimination
We have so far restricted ourselves to a linear-algebra explanation of performing
inference for SLAM. In this section, we expand our worldview by thinking about
inference more abstractly using graphical models directly. This will ultimately lead
us to current state-of-the-art SLAM solvers based on a concept called the Bayes
tree for incremental smoothing and mapping in the next section.
Figure 2.9 On the left, the measurement Jacobian A associated with the problem in Figure
2.4, which has 3 × 95 + 2 × 24 = 333 unknowns. The number of rows, 1126, is equal to the
number of (scalar) measurements. Also given is the number of nonzero entries “nnz”. On
the right: (top) the information matrix Λ ≜ A⊤ A; (middle) its upper triangular Cholesky
triangle R; (bottom) an alternative factor amdR obtained with a better variable ordering
(COLAMD).
42 Factor Graphs for SLAM
p(ℓ1 , ℓ2 , p1 , p2 , p3 ) = p(ℓ1 |p1 , p2 ) p(ℓ2 |p3 ) p(p1 |p2 ) p(p2 |p3 ) p(p3 ). (2.44)
<latexit sha1_base64="kXx44wnjqLe/qAbLMONIjGgtM5U=">AAACEXicbVDLSsNAFL2pr1pfUZduglVwVRLxuSu4calgW6EtZTK5tUMnM2FmIpTQr3DrVv/Bnbj1C/wFv8JJWkStB4Y5nHsP93DChDNtfP/DKc3NLywulZcrK6tr6xvu5lZTy1RRbFDJpboNiUbOBDYMMxxvE4UkDjm2wuFFPm/do9JMihszSrAbkzvB+owSY6We63ZCySM9iu2XJeNe0HOrfs0v4M2SYEqq9TIUuOq5n51I0jRGYSgnWrcDPzHdjCjDKMdxpZNqTAgdkjtsWypIjLqbFcnH3r5VIq8vlX3CeIX605GRWOfh7GZMzED/neXif7N2avpn3YyJJDUo6ORQP+WekV5egxcxhdTwkSWEKmazenRAFKHGllXpFMZMSDOpaYAkQjWuFOWc5zj+rmKWNA9rwUktuD6q1vcmLUEZdmAXDiCAU6jDJVxBAyjcwyM8wbPz4Lw4r87bZLXkTD3b8AvO+xcbpZ6J</latexit> <latexit sha1_base64="i1LTsi0pXgXYdlkAuqdoH9DYknI=">AAACEXicbVDLSsNAFL3xWesr6tJNsAquSiI+dwU3LivYWmhLmUxu7eBkJsxMCiX0K9y61X9wJ279An/Br3CSFlHrgWEO597DPZww4Uwb3/9w5uYXFpeWSyvl1bX1jU13a7upZaooNqjkUrVCopEzgQ3DDMdWopDEIcfb8P4yn98OUWkmxY0ZJdiNyZ1gfUaJsVLPdTuh5JEexfbLknHvqOdW/KpfwJslwZRUaiUoUO+5n51I0jRGYSgnWrcDPzHdjCjDKMdxuZNqTAi9J3fYtlSQGHU3K5KPvQOrRF5fKvuE8Qr1pyMjsc7D2c2YmIH+O8vF/2bt1PTPuxkTSWpQ0Mmhfso9I728Bi9iCqnhI0sIVcxm9eiAKEKNLavcKYyZkGZS0wBJhGpcLsq5yHHyXcUsaR5Vg9NqcH1cqe1PWoIS7MIeHEIAZ1CDK6hDAygM4RGe4Nl5cF6cV+dtsjrnTD078AvO+xcdQZ6K</latexit> <latexit sha1_base64="xa47ISr24vnFk6T52/jxFM/EsFA=">AAACEXicbVDLSsNAFL3xWesr6tJNsAquSuLbXcGNSwVbhbaUyeS2HTqZCTOTQgn9Crdu9R/ciVu/wF/wK5ykImo9MMzh3Hu4hxMmnGnj++/OzOzc/MJiaam8vLK6tu5ubDa0TBXFOpVcqruQaORMYN0ww/EuUUjikONtOLjI57dDVJpJcWNGCbZj0hOsyygxVuq4biuUPNKj2H5ZMu4cdtyKX/ULeNMk+CKVWgkKXHXcj1YkaRqjMJQTrZuBn5h2RpRhlOO43Eo1JoQOSA+blgoSo25nRfKxt2eVyOtKZZ8wXqH+dGQk1nk4uxkT09d/Z7n436yZmu5ZO2MiSQ0KOjnUTblnpJfX4EVMITV8ZAmhitmsHu0TRaixZZVbhTET0kxq6iOJUI3LRTnnOY6/q5gmjYNqcFINro8qtd1JS1CCbdiBfQjgFGpwCVdQBwpDeIBHeHLunWfnxXmdrM44X54t+AXn7RMe3Z6L</latexit> <latexit sha1_base64="kXx44wnjqLe/qAbLMONIjGgtM5U=">AAACEXicbVDLSsNAFL2pr1pfUZduglVwVRLxuSu4calgW6EtZTK5tUMnM2FmIpTQr3DrVv/Bnbj1C/wFv8JJWkStB4Y5nHsP93DChDNtfP/DKc3NLywulZcrK6tr6xvu5lZTy1RRbFDJpboNiUbOBDYMMxxvE4UkDjm2wuFFPm/do9JMihszSrAbkzvB+owSY6We63ZCySM9iu2XJeNe0HOrfs0v4M2SYEqq9TIUuOq5n51I0jRGYSgnWrcDPzHdjCjDKMdxpZNqTAgdkjtsWypIjLqbFcnH3r5VIq8vlX3CeIX605GRWOfh7GZMzED/neXif7N2avpn3YyJJDUo6ORQP+WekV5egxcxhdTwkSWEKmazenRAFKHGllXpFMZMSDOpaYAkQjWuFOWc5zj+rmKWNA9rwUktuD6q1vcmLUEZdmAXDiCAU6jDJVxBAyjcwyM8wbPz4Lw4r87bZLXkTD3b8AvO+xcbpZ6J</latexit> <latexit sha1_base64="i1LTsi0pXgXYdlkAuqdoH9DYknI=">AAACEXicbVDLSsNAFL3xWesr6tJNsAquSiI+dwU3LivYWmhLmUxu7eBkJsxMCiX0K9y61X9wJ279An/Br3CSFlHrgWEO597DPZww4Uwb3/9w5uYXFpeWSyvl1bX1jU13a7upZaooNqjkUrVCopEzgQ3DDMdWopDEIcfb8P4yn98OUWkmxY0ZJdiNyZ1gfUaJsVLPdTuh5JEexfbLknHvqOdW/KpfwJslwZRUaiUoUO+5n51I0jRGYSgnWrcDPzHdjCjDKMdxuZNqTAi9J3fYtlSQGHU3K5KPvQOrRF5fKvuE8Qr1pyMjsc7D2c2YmIH+O8vF/2bt1PTPuxkTSWpQ0Mmhfso9I728Bi9iCqnhI0sIVcxm9eiAKEKNLavcKYyZkGZS0wBJhGpcLsq5yHHyXcUsaR5Vg9NqcH1cqe1PWoIS7MIeHEIAZ1CDK6hDAygM4RGe4Nl5cF6cV+dtsjrnTD078AvO+xcdQZ6K</latexit> <latexit sha1_base64="xa47ISr24vnFk6T52/jxFM/EsFA=">AAACEXicbVDLSsNAFL3xWesr6tJNsAquSuLbXcGNSwVbhbaUyeS2HTqZCTOTQgn9Crdu9R/ciVu/wF/wK5ykImo9MMzh3Hu4hxMmnGnj++/OzOzc/MJiaam8vLK6tu5ubDa0TBXFOpVcqruQaORMYN0ww/EuUUjikONtOLjI57dDVJpJcWNGCbZj0hOsyygxVuq4biuUPNKj2H5ZMu4cdtyKX/ULeNMk+CKVWgkKXHXcj1YkaRqjMJQTrZuBn5h2RpRhlOO43Eo1JoQOSA+blgoSo25nRfKxt2eVyOtKZZ8wXqH+dGQk1nk4uxkT09d/Z7n436yZmu5ZO2MiSQ0KOjnUTblnpJfX4EVMITV8ZAmhitmsHu0TRaixZZVbhTET0kxq6iOJUI3LRTnnOY6/q5gmjYNqcFINro8qtd1JS1CCbdiBfQjgFGpwCVdQBwpDeIBHeHLunWfnxXmdrM44X54t+AXn7RMe3Z6L</latexit>
p11
x p22
x p33
x xp11 xp22 xp33
xp11 p
x3
`l11 `l22
<latexit sha1_base64="xa47ISr24vnFk6T52/jxFM/EsFA=">AAACEXicbVDLSsNAFL3xWesr6tJNsAquSuLbXcGNSwVbhbaUyeS2HTqZCTOTQgn9Crdu9R/ciVu/wF/wK5ykImo9MMzh3Hu4hxMmnGnj++/OzOzc/MJiaam8vLK6tu5ubDa0TBXFOpVcqruQaORMYN0ww/EuUUjikONtOLjI57dDVJpJcWNGCbZj0hOsyygxVuq4biuUPNKj2H5ZMu4cdtyKX/ULeNMk+CKVWgkKXHXcj1YkaRqjMJQTrZuBn5h2RpRhlOO43Eo1JoQOSA+blgoSo25nRfKxt2eVyOtKZZ8wXqH+dGQk1nk4uxkT09d/Z7n436yZmu5ZO2MiSQ0KOjnUTblnpJfX4EVMITV8ZAmhitmsHu0TRaixZZVbhTET0kxq6iOJUI3LRTnnOY6/q5gmjYNqcFINro8qtd1JS1CCbdiBfQjgFGpwCVdQBwpDeIBHeHLunWfnxXmdrM44X54t+AXn7RMe3Z6L</latexit>
xp33
<latexit sha1_base64="kXx44wnjqLe/qAbLMONIjGgtM5U=">AAACEXicbVDLSsNAFL2pr1pfUZduglVwVRLxuSu4calgW6EtZTK5tUMnM2FmIpTQr3DrVv/Bnbj1C/wFv8JJWkStB4Y5nHsP93DChDNtfP/DKc3NLywulZcrK6tr6xvu5lZTy1RRbFDJpboNiUbOBDYMMxxvE4UkDjm2wuFFPm/do9JMihszSrAbkzvB+owSY6We63ZCySM9iu2XJeNe0HOrfs0v4M2SYEqq9TIUuOq5n51I0jRGYSgnWrcDPzHdjCjDKMdxpZNqTAgdkjtsWypIjLqbFcnH3r5VIq8vlX3CeIX605GRWOfh7GZMzED/neXif7N2avpn3YyJJDUo6ORQP+WekV5egxcxhdTwkSWEKmazenRAFKHGllXpFMZMSDOpaYAkQjWuFOWc5zj+rmKWNA9rwUktuD6q1vcmLUEZdmAXDiCAU6jDJVxBAyjcwyM8wbPz4Lw4r87bZLXkTD3b8AvO+xcbpZ6J</latexit> <latexit sha1_base64="i1LTsi0pXgXYdlkAuqdoH9DYknI=">AAACEXicbVDLSsNAFL3xWesr6tJNsAquSiI+dwU3LivYWmhLmUxu7eBkJsxMCiX0K9y61X9wJ279An/Br3CSFlHrgWEO597DPZww4Uwb3/9w5uYXFpeWSyvl1bX1jU13a7upZaooNqjkUrVCopEzgQ3DDMdWopDEIcfb8P4yn98OUWkmxY0ZJdiNyZ1gfUaJsVLPdTuh5JEexfbLknHvqOdW/KpfwJslwZRUaiUoUO+5n51I0jRGYSgnWrcDPzHdjCjDKMdxuZNqTAi9J3fYtlSQGHU3K5KPvQOrRF5fKvuE8Qr1pyMjsc7D2c2YmIH+O8vF/2bt1PTPuxkTSWpQ0Mmhfso9I728Bi9iCqnhI0sIVcxm9eiAKEKNLavcKYyZkGZS0wBJhGpcLsq5yHHyXcUsaR5Vg9NqcH1cqe1PWoIS7MIeHEIAZ1CDK6hDAygM4RGe4Nl5cF6cV+dtsjrnTD078AvO+xcdQZ6K</latexit>
x
p1 x
p2
Figure 2.10 Variable elimination for the toy SLAM example, transforming the factor graph
from Figure 2.2 into a Bayes net (bottom right), using the ordering ℓ1 , ℓ2 , p1 , p2 , p3 .
intermediate product factor ψ(xj , sj ). This can be done by accumulating all the
matrices Ai into a new, larger block-matrix Āj , as we can write
Y
ψ(xj , sj ) ← ϕi (xi ) (2.45a)
i∈Nj
!
1X 2
= exp − ∥Ai xi − bi ∥2 (2.45b)
2 i
1 2
= exp − Āj [xj ; sj ] − b̄j 2 , (2.45c)
2
where the new RHS vector b̄j stacks all bi and ‘;’ also denotes vertical stacking.
Consider eliminating the variable ℓ1 in the toy example. The adjacent factors are
ϕ4 , ϕ7 , and ϕ8 , in turn inducing the separator s1 = [p1 ; p2 ]. The product factor is
44 Factor Graphs for SLAM
<latexit sha1_base64="Tbii+PtKXnyJ7OyYW5J5YpVAs/I=">AAACFHicbVDLSsNAFL2pr1pfVZduglVwVRLxuSu4calgW6EpZTK5tUMnM2FmIpTQ33DrVv/Bnbh17y/4FU7SImo9MMzh3Hu4hxMmnGnjeR9OaW5+YXGpvFxZWV1b36hubrW0TBXFJpVcqtuQaORMYNMww/E2UUjikGM7HF7k8/Y9Ks2kuDGjBLsxuROszygxVupVt4NQ8kiPYvtlAXI+7vm9as2rewXcWeJPSa1RhgJXvepnEEmaxigM5UTrju8lppsRZRjlOK4EqcaE0CG5w46lgsSou1kRfuzuWyVy+1LZJ4xbqD8dGYl1ns9uxsQM9N9ZLv4366Smf9bNmEhSg4JODvVT7hrp5k24EVNIDR9ZQqhiNqtLB0QRamxflaAwZkKaSVMDJBGqcaUo5zzH8XcVs6R1WPdP6v71Ua2xN2kJyrADu3AAPpxCAy7hCppAYQSP8ATPzoPz4rw6b5PVkjP1bMMvOO9ffl+f0A==</latexit>
x3 x2 x1
l`11 `l22 l`11 `l22
l2 <latexit sha1_base64="kXx44wnjqLe/qAbLMONIjGgtM5U=">AAACEXicbVDLSsNAFL2pr1pfUZduglVwVRLxuSu4calgW6EtZTK5tUMnM2FmIpTQr3DrVv/Bnbj1C/wFv8JJWkStB4Y5nHsP93DChDNtfP/DKc3NLywulZcrK6tr6xvu5lZTy1RRbFDJpboNiUbOBDYMMxxvE4UkDjm2wuFFPm/do9JMihszSrAbkzvB+owSY6We63ZCySM9iu2XJeNe0HOrfs0v4M2SYEqq9TIUuOq5n51I0jRGYSgnWrcDPzHdjCjDKMdxpZNqTAgdkjtsWypIjLqbFcnH3r5VIq8vlX3CeIX605GRWOfh7GZMzED/neXif7N2avpn3YyJJDUo6ORQP+WekV5egxcxhdTwkSWEKmazenRAFKHGllXpFMZMSDOpaYAkQjWuFOWc5zj+rmKWNA9rwUktuD6q1vcmLUEZdmAXDiCAU6jDJVxBAyjcwyM8wbPz4Lw4r87bZLXkTD3b8AvO+xcbpZ6J</latexit>
l1
xp11
<latexit sha1_base64="i1LTsi0pXgXYdlkAuqdoH9DYknI=">AAACEXicbVDLSsNAFL3xWesr6tJNsAquSiI+dwU3LivYWmhLmUxu7eBkJsxMCiX0K9y61X9wJ279An/Br3CSFlHrgWEO597DPZww4Uwb3/9w5uYXFpeWSyvl1bX1jU13a7upZaooNqjkUrVCopEzgQ3DDMdWopDEIcfb8P4yn98OUWkmxY0ZJdiNyZ1gfUaJsVLPdTuh5JEexfbLknHvqOdW/KpfwJslwZRUaiUoUO+5n51I0jRGYSgnWrcDPzHdjCjDKMdxuZNqTAi9J3fYtlSQGHU3K5KPvQOrRF5fKvuE8Qr1pyMjsc7D2c2YmIH+O8vF/2bt1PTPuxkTSWpQ0Mmhfso9I728Bi9iCqnhI0sIVcxm9eiAKEKNLavcKYyZkGZS0wBJhGpcLsq5yHHyXcUsaR5Vg9NqcH1cqe1PWoIS7MIeHEIAZ1CDK6hDAygM4RGe4Nl5cF6cV+dtsjrnTD078AvO+xcdQZ6K</latexit>
x
<latexit sha1_base64="xa47ISr24vnFk6T52/jxFM/EsFA=">AAACEXicbVDLSsNAFL3xWesr6tJNsAquSuLbXcGNSwVbhbaUyeS2HTqZCTOTQgn9Crdu9R/ciVu/wF/wK5ykImo9MMzh3Hu4hxMmnGnj++/OzOzc/MJiaam8vLK6tu5ubDa0TBXFOpVcqruQaORMYN0ww/EuUUjikONtOLjI57dDVJpJcWNGCbZj0hOsyygxVuq4biuUPNKj2H5ZMu4cdtyKX/ULeNMk+CKVWgkKXHXcj1YkaRqjMJQTrZuBn5h2RpRhlOO43Eo1JoQOSA+blgoSo25nRfKxt2eVyOtKZZ8wXqH+dGQk1nk4uxkT09d/Z7n436yZmu5ZO2MiSQ0KOjnUTblnpJfX4EVMITV8ZAmhitmsHu0TRaixZZVbhTET0kxq6iOJUI3LRTnnOY6/q5gmjYNqcFINro8qtd1JS1CCbdiBfQjgFGpwCVdQBwpDeIBHeHLunWfnxXmdrM44X54t+AXn7RMe3Z6L</latexit>
x
<latexit sha1_base64="kXx44wnjqLe/qAbLMONIjGgtM5U=">AAACEXicbVDLSsNAFL2pr1pfUZduglVwVRLxuSu4calgW6EtZTK5tUMnM2FmIpTQr3DrVv/Bnbj1C/wFv8JJWkStB4Y5nHsP93DChDNtfP/DKc3NLywulZcrK6tr6xvu5lZTy1RRbFDJpboNiUbOBDYMMxxvE4UkDjm2wuFFPm/do9JMihszSrAbkzvB+owSY6We63ZCySM9iu2XJeNe0HOrfs0v4M2SYEqq9TIUuOq5n51I0jRGYSgnWrcDPzHdjCjDKMdxpZNqTAgdkjtsWypIjLqbFcnH3r5VIq8vlX3CeIX605GRWOfh7GZMzED/neXif7N2avpn3YyJJDUo6ORQP+WekV5egxcxhdTwkSWEKmazenRAFKHGllXpFMZMSDOpaYAkQjWuFOWc5zj+rmKWNA9rwUktuD6q1vcmLUEZdmAXDiCAU6jDJVxBAyjcwyM8wbPz4Lw4r87bZLXkTD3b8AvO+xcbpZ6J</latexit> <latexit sha1_base64="i1LTsi0pXgXYdlkAuqdoH9DYknI=">AAACEXicbVDLSsNAFL3xWesr6tJNsAquSiI+dwU3LivYWmhLmUxu7eBkJsxMCiX0K9y61X9wJ279An/Br3CSFlHrgWEO597DPZww4Uwb3/9w5uYXFpeWSyvl1bX1jU13a7upZaooNqjkUrVCopEzgQ3DDMdWopDEIcfb8P4yn98OUWkmxY0ZJdiNyZ1gfUaJsVLPdTuh5JEexfbLknHvqOdW/KpfwJslwZRUaiUoUO+5n51I0jRGYSgnWrcDPzHdjCjDKMdxuZNqTAi9J3fYtlSQGHU3K5KPvQOrRF5fKvuE8Qr1pyMjsc7D2c2YmIH+O8vF/2bt1PTPuxkTSWpQ0Mmhfso9I728Bi9iCqnhI0sIVcxm9eiAKEKNLavcKYyZkGZS0wBJhGpcLsq5yHHyXcUsaR5Vg9NqcH1cqe1PWoIS7MIeHEIAZ1CDK6hDAygM4RGe4Nl5cF6cV+dtsjrnTD078AvO+xcdQZ6K</latexit> <latexit sha1_base64="xa47ISr24vnFk6T52/jxFM/EsFA=">AAACEXicbVDLSsNAFL3xWesr6tJNsAquSuLbXcGNSwVbhbaUyeS2HTqZCTOTQgn9Crdu9R/ciVu/wF/wK5ykImo9MMzh3Hu4hxMmnGnj++/OzOzc/MJiaam8vLK6tu5ubDa0TBXFOpVcqruQaORMYN0ww/EuUUjikONtOLjI57dDVJpJcWNGCbZj0hOsyygxVuq4biuUPNKj2H5ZMu4cdtyKX/ULeNMk+CKVWgkKXHXcj1YkaRqjMJQTrZuBn5h2RpRhlOO43Eo1JoQOSA+blgoSo25nRfKxt2eVyOtKZZ8wXqH+dGQk1nk4uxkT09d/Z7n436yZmu5ZO2MiSQ0KOjnUTblnpJfX4EVMITV8ZAmhitmsHu0TRaixZZVbhTET0kxq6iOJUI3LRTnnOY6/q5gmjYNqcFINro8qtd1JS1CCbdiBfQjgFGpwCVdQBwpDeIBHeHLunWfnxXmdrM44X54t+AXn7RMe3Z6L</latexit>
p2 p3 p11
x p22
x p33
x
A13
R1 T13 T14
A23 A24
A13
A34 A35
A23 A24
A41
A34 A35
A52
A52
A63
A63
A71 A73
A92 A95
A81 A84
Ã13 Ã14
A92 A95
then equal to
1 2
ψ (ℓ1 , p1 , p2 ) = exp − Ā1 [ℓ1 ; p1 ; p2 ] − b̄1 2
, (2.46)
2
with
A41 b4
∆ ∆
Ā1 = A71 A73 , b̄1 = b7 . (2.47)
A81 A84 b8
Looking at the sparse Jacobian in Figure 2.6, this simply boils down to taking out
the block-rows with nonzero blocks in the first column, corresponding to the three
factors adjacent to ℓ1 .
Next, factorizing the product ψ(xj , sj ) can be done in several different ways.
We discuss the QR variant, as it more directly connects to the linearized factors.
In particular, the augmented matrix [Āj |b̄j ] corresponding to the product factor
ψ(xj , sj ) can be rewritten using partial QR-factorization [101] as follows:
Rj Tj dj
[Āj |b̄j ] = Q , (2.48)
Ãτ b̃τ
1 2
ψ(xj , sj ) = exp − Āj [xj ; sj ] − b̄j 2 (2.49a)
2
1 1 2
2
= exp − ∥Rj xj + Tj sj − dj ∥2 exp − Ãτ sj − b̃τ
2 2 2
where we used the fact that the rotation matrix Q does not alter the value of the
norms involved.
In the toy example, Figure 2.11 shows the result of eliminating the first variable
in the example, the landmark ℓ1 with separator [p1 ; p2 ]. We show the operation
on the factor graph and the corresponding effect on the sparse Jacobian from Fig-
ure 2.6, omitting the RHS. The partition above the line corresponds to a sparse,
upper-triangular matrix R that is being formed. New contributions to the matrix
are shown: blue for the contributions to R, and red for newly created factors. For
completeness, we show the four remaining variable elimination steps in Figure 2.12,
showing an end-to-end example of how QR factorization proceeds on a small exam-
ple. The final step shows the equivalence between the resulting Bayes net and the
sparse upper-triangular factor R.
The entire elimination algorithm, using partial QR to eliminate a single vari-
able, is equivalent to sparse QR factorization. As the treatment above considers
multi-dimensional variables xj ∈ Rnj , this is in fact an instance of multi-frontal
QR factorization [77], as we eliminate several scalar variables at a time, which
is beneficial for processor utilization. While in our case the scalar variables are
grouped because of their semantic meaning in the inference problem, sparse linear
algebra codes typically analyze the problem to group for maximum computational
efficiency. In many cases these two strategies are closely aligned.
R1 T13 T14
R2 T25
R1 T13 T14
A13
R2 T25
A23 A24
R3 T34
A34 A35 A34 A35
A63
Ã25
Ã13 Ã14 Ã34
Ã25
p1
x p2
x p
x3 xp11 xp22 xp33
<latexit sha1_base64="kXx44wnjqLe/qAbLMONIjGgtM5U=">AAACEXicbVDLSsNAFL2pr1pfUZduglVwVRLxuSu4calgW6EtZTK5tUMnM2FmIpTQr3DrVv/Bnbj1C/wFv8JJWkStB4Y5nHsP93DChDNtfP/DKc3NLywulZcrK6tr6xvu5lZTy1RRbFDJpboNiUbOBDYMMxxvE4UkDjm2wuFFPm/do9JMihszSrAbkzvB+owSY6We63ZCySM9iu2XJeNe0HOrfs0v4M2SYEqq9TIUuOq5n51I0jRGYSgnWrcDPzHdjCjDKMdxpZNqTAgdkjtsWypIjLqbFcnH3r5VIq8vlX3CeIX605GRWOfh7GZMzED/neXif7N2avpn3YyJJDUo6ORQP+WekV5egxcxhdTwkSWEKmazenRAFKHGllXpFMZMSDOpaYAkQjWuFOWc5zj+rmKWNA9rwUktuD6q1vcmLUEZdmAXDiCAU6jDJVxBAyjcwyM8wbPz4Lw4r87bZLXkTD3b8AvO+xcbpZ6J</latexit> <latexit sha1_base64="i1LTsi0pXgXYdlkAuqdoH9DYknI=">AAACEXicbVDLSsNAFL3xWesr6tJNsAquSiI+dwU3LivYWmhLmUxu7eBkJsxMCiX0K9y61X9wJ279An/Br3CSFlHrgWEO597DPZww4Uwb3/9w5uYXFpeWSyvl1bX1jU13a7upZaooNqjkUrVCopEzgQ3DDMdWopDEIcfb8P4yn98OUWkmxY0ZJdiNyZ1gfUaJsVLPdTuh5JEexfbLknHvqOdW/KpfwJslwZRUaiUoUO+5n51I0jRGYSgnWrcDPzHdjCjDKMdxuZNqTAi9J3fYtlSQGHU3K5KPvQOrRF5fKvuE8Qr1pyMjsc7D2c2YmIH+O8vF/2bt1PTPuxkTSWpQ0Mmhfso9I728Bi9iCqnhI0sIVcxm9eiAKEKNLavcKYyZkGZS0wBJhGpcLsq5yHHyXcUsaR5Vg9NqcH1cqe1PWoIS7MIeHEIAZ1CDK6hDAygM4RGe4Nl5cF6cV+dtsjrnTD078AvO+xcdQZ6K</latexit>
R1 T13 T14
R1 T13 T14
R2 T25
R2 T25
R3 T34
R3 T34
R4 T45
R4 T45
Ã25
R5
Ã45
Figure 2.12 The remaining elimination steps for the toy example, completing a full QR
factorization. The last step in the bottom right shows the equivalence between the resulting
Bayes net and the sparse Cholesky factor R.
has a very specific form. We discuss the details below, as well as how to solve for
the MAP estimate in the linear case.
As we discussed, the Gaussian factor graph corresponding to the linearized non-
linear problem is transformed by elimination into the density p(x) given by the
2.7 Incremental SLAM 47
In both QR and Cholesky variants, the conditional densities p(xj |sj ) are given by
1 2
p(xj |sj ) = k exp − ∥Rj xj + Tj sj − dj ∥2 , (2.51)
2
which is a linear-Gaussian density on the eliminated variable xj . Indeed, we have
2 ⊤ ∆
∥Rj xj + Tj sj − dj ∥2 = (xj − µj ) Rj⊤ Rj (xj − µj ) = ∥xj − µj ∥2Σj , (2.52)
where the mean µj = Rj−1 (dj −Tj sj ) depends linearly on the separator sj , and the
covariance matrix is given by Σj = (Rj⊤ Rj )−1 . Hence, the normalization constant
−1
k = |2πΣj | 2 .
After the elimination step is complete, back-substitution is used to obtain the
MAP estimate of each variable. As seen in Figure 2.12, the last variable eliminated
does not depend on any other variables. Thus, the MAP estimate of the last variable
can be directly extracted from the Bayes net. By proceeding in reverse elimination
order, the values of all the separator variables for each conditional will always
be available from the previous steps, allowing the estimate for the current frontal
variable to be computed.
At every step, the MAP estimate for the variable xj is the conditional mean,
since by construction the MAP estimate for the separator s∗j is fully known by this
point.
new measurements and states are added to the system, leading to the incremental
smoothing and mapping (iSAM) algorithm.
where πj are the parent nodes of xj . However, although the Bayes net is chordal, at
this variable level it is still a non-trivial graph: neither chain-like nor tree-structured.
The chordal Bayes net for our running toy SLAM example is shown in the last step
of Figure 2.10, and it is clear that there is an undirected cycle p1 −p2 −ℓ1 , implying
it does not have a tree-structured form.
By identifying cliques in this chordal graph, the Bayes net may be rewritten as
a Bayes tree. We introduce this new, tree-structured graphical model to capture
the clique structure of the Bayes net. It is not obvious that cliques in the Bayes
net should form a tree. They do so because of the chordal property, although we
will not attempt to prove that here. Listing all these cliques in an undirected tree
yields a clique tree, also known as a junction tree in AI and machine learning. The
Bayes tree is just a directed version of this that preserves information about the
elimination order.
More formally, a Bayes tree is a directed tree where the nodes represent cliques ck
of the underlying chordal Bayes net. In particular, we define one conditional density
p(fk |sk ) per node, with the separator sk as the intersection ck ∩ ϖk of the clique
ck and its parent clique ϖk . The frontal variables fk are the remaining variables,
∆
i.e., fk = ck \ sk . Notationally, we write ck = fk : sk for a clique. The following
expression gives the joint density p(x) on the variables x defined by a Bayes tree:
Y
p(x) = p(fk |sk ). (2.55)
k
2.7 Incremental SLAM 49
<latexit sha1_base64="Tbii+PtKXnyJ7OyYW5J5YpVAs/I=">AAACFHicbVDLSsNAFL2pr1pfVZduglVwVRLxuSu4calgW6EpZTK5tUMnM2FmIpTQ33DrVv/Bnbh17y/4FU7SImo9MMzh3Hu4hxMmnGnjeR9OaW5+YXGpvFxZWV1b36hubrW0TBXFJpVcqtuQaORMYNMww/E2UUjikGM7HF7k8/Y9Ks2kuDGjBLsxuROszygxVupVt4NQ8kiPYvtlAXI+7vm9as2rewXcWeJPSa1RhgJXvepnEEmaxigM5UTrju8lppsRZRjlOK4EqcaE0CG5w46lgsSou1kRfuzuWyVy+1LZJ4xbqD8dGYl1ns9uxsQM9N9ZLv4366Smf9bNmEhSg4JODvVT7hrp5k24EVNIDR9ZQqhiNqtLB0QRamxflaAwZkKaSVMDJBGqcaUo5zzH8XcVs6R1WPdP6v71Ua2xN2kJyrADu3AAPpxCAy7hCppAYQSP8ATPzoPz4rw6b5PVkjP1bMMvOO9ffl+f0A==</latexit> <latexit sha1_base64="SQ47TFOWkZBwNsNyfERGuUiTcQY=">AAACFHicbVDLSsNAFL3xWeur2qWbYBVclUR87gpuXFawtdCUMpnc2sHJTJiZCCX0N9y61X9wJ27d+wt+hZO0iFoPDHM49x7u4YQJZ9p43oczN7+wuLRcWimvrq1vbFa2tttapopii0ouVSckGjkT2DLMcOwkCkkccrwJ7y7y+c09Ks2kuDajBHsxuRVswCgxVupXqkEoeaRHsf2yADkf9w/7lZpX9wq4s8SfklqjBAWa/cpnEEmaxigM5UTrru8lppcRZRjlOC4HqcaE0Dtyi11LBYlR97Ii/Njdt0rkDqSyTxi3UH86MhLrPJ/djIkZ6r+zXPxv1k3N4KyXMZGkBgWdHBqk3DXSzZtwI6aQGj6yhFDFbFaXDoki1Ni+ykFhzIQ0k6aGSCJU43JRznmO4+8qZkn7sO6f1P2ro1pjb9ISlGAHduEAfDiFBlxCE1pAYQSP8ATPzoPz4rw6b5PVOWfqqcIvOO9ff/uf0Q==</latexit>
`l11 `l2
<latexit sha1_base64="xa47ISr24vnFk6T52/jxFM/EsFA=">AAACEXicbVDLSsNAFL3xWesr6tJNsAquSuLbXcGNSwVbhbaUyeS2HTqZCTOTQgn9Crdu9R/ciVu/wF/wK5ykImo9MMzh3Hu4hxMmnGnj++/OzOzc/MJiaam8vLK6tu5ubDa0TBXFOpVcqruQaORMYN0ww/EuUUjikONtOLjI57dDVJpJcWNGCbZj0hOsyygxVuq4biuUPNKj2H5ZMu4cdtyKX/ULeNMk+CKVWgkKXHXcj1YkaRqjMJQTrZuBn5h2RpRhlOO43Eo1JoQOSA+blgoSo25nRfKxt2eVyOtKZZ8wXqH+dGQk1nk4uxkT09d/Z7n436yZmu5ZO2MiSQ0KOjnUTblnpJfX4EVMITV8ZAmhitmsHu0TRaixZZVbhTET0kxq6iOJUI3LRTnnOY6/q5gmjYNqcFINro8qtd1JS1CCbdiBfQjgFGpwCVdQBwpDeIBHeHLunWfnxXmdrM44X54t+AXn7RMe3Z6L</latexit>
x x x
p3
<latexit sha1_base64="kXx44wnjqLe/qAbLMONIjGgtM5U=">AAACEXicbVDLSsNAFL2pr1pfUZduglVwVRLxuSu4calgW6EtZTK5tUMnM2FmIpTQr3DrVv/Bnbj1C/wFv8JJWkStB4Y5nHsP93DChDNtfP/DKc3NLywulZcrK6tr6xvu5lZTy1RRbFDJpboNiUbOBDYMMxxvE4UkDjm2wuFFPm/do9JMihszSrAbkzvB+owSY6We63ZCySM9iu2XJeNe0HOrfs0v4M2SYEqq9TIUuOq5n51I0jRGYSgnWrcDPzHdjCjDKMdxpZNqTAgdkjtsWypIjLqbFcnH3r5VIq8vlX3CeIX605GRWOfh7GZMzED/neXif7N2avpn3YyJJDUo6ORQP+WekV5egxcxhdTwkSWEKmazenRAFKHGllXpFMZMSDOpaYAkQjWuFOWc5zj+rmKWNA9rwUktuD6q1vcmLUEZdmAXDiCAU6jDJVxBAyjcwyM8wbPz4Lw4r87bZLXkTD3b8AvO+xcbpZ6J</latexit> <latexit sha1_base64="i1LTsi0pXgXYdlkAuqdoH9DYknI=">AAACEXicbVDLSsNAFL3xWesr6tJNsAquSiI+dwU3LivYWmhLmUxu7eBkJsxMCiX0K9y61X9wJ279An/Br3CSFlHrgWEO597DPZww4Uwb3/9w5uYXFpeWSyvl1bX1jU13a7upZaooNqjkUrVCopEzgQ3DDMdWopDEIcfb8P4yn98OUWkmxY0ZJdiNyZ1gfUaJsVLPdTuh5JEexfbLknHvqOdW/KpfwJslwZRUaiUoUO+5n51I0jRGYSgnWrcDPzHdjCjDKMdxuZNqTAi9J3fYtlSQGHU3K5KPvQOrRF5fKvuE8Qr1pyMjsc7D2c2YmIH+O8vF/2bt1PTPuxkTSWpQ0Mmhfso9I728Bi9iCqnhI0sIVcxm9eiAKEKNLavcKYyZkGZS0wBJhGpcLsq5yHHyXcUsaR5Vg9NqcH1cqe1PWoIS7MIeHEIAZ1CDK6hDAygM4RGe4Nl5cF6cV+dtsjrnTD078AvO+xcdQZ6K</latexit>
p11 p22
<latexit sha1_base64="ry59MVPTyO/Z6zeX6db+jus3Dnw=">AAACCXicbVDLSsNAFL2pr1pfVZdugkWom5KIz13BjcsK9oFNKJPpbTt0MhNmJmIJ/QK3bvUf3Ilbv8Jf8CtM0yJqPTBwOOce7p0TRJxp4zgfVm5hcWl5Jb9aWFvf2Nwqbu80tIwVxTqVXKpWQDRyJrBumOHYihSSMODYDIaXE795h0ozKW7MKEI/JH3BeowSk0q3XhjI+6RMDsedYsmpOBnseeLOSKmahwy1TvHT60oahygM5UTrtutExk+IMoxyHBe8WGNE6JD0sZ1SQULUfpJdPLYPUqVr96RKnzB2pv5MJCTUehQG6WRIzED/9Sbif147Nr1zP2Eiig0KOl3Ui7ltpD35vt1lCqnho5QQqlh6q00HRBFq0pIKXhZMhDRZPZ0Bki6qcSEr52KCk+8q5knjqOKeVtzr41K1PG0J8rAH+1AGF86gCldQgzpQEPAIT/BsPVgv1qv1Nh3NWbPMLvyC9f4FHeGbUQ==</latexit>
(a)
<latexit sha1_base64="Tbii+PtKXnyJ7OyYW5J5YpVAs/I=">AAACFHicbVDLSsNAFL2pr1pfVZduglVwVRLxuSu4calgW6EpZTK5tUMnM2FmIpTQ33DrVv/Bnbh17y/4FU7SImo9MMzh3Hu4hxMmnGnjeR9OaW5+YXGpvFxZWV1b36hubrW0TBXFJpVcqtuQaORMYNMww/E2UUjikGM7HF7k8/Y9Ks2kuDGjBLsxuROszygxVupVt4NQ8kiPYvtlAXI+7vm9as2rewXcWeJPSa1RhgJXvepnEEmaxigM5UTrju8lppsRZRjlOK4EqcaE0CG5w46lgsSou1kRfuzuWyVy+1LZJ4xbqD8dGYl1ns9uxsQM9N9ZLv4366Smf9bNmEhSg4JODvVT7hrp5k24EVNIDR9ZQqhiNqtLB0QRamxflaAwZkKaSVMDJBGqcaUo5zzH8XcVs6R1WPdP6v71Ua2xN2kJyrADu3AAPpxCAy7hCppAYQSP8ATPzoPz4rw6b5PVkjP1bMMvOO9ffl+f0A==</latexit> <latexit sha1_base64="SQ47TFOWkZBwNsNyfERGuUiTcQY=">AAACFHicbVDLSsNAFL3xWeur2qWbYBVclUR87gpuXFawtdCUMpnc2sHJTJiZCCX0N9y61X9wJ27d+wt+hZO0iFoPDHM49x7u4YQJZ9p43oczN7+wuLRcWimvrq1vbFa2tttapopii0ouVSckGjkT2DLMcOwkCkkccrwJ7y7y+c09Ks2kuDajBHsxuRVswCgxVupXqkEoeaRHsf2yADkf9w/7lZpX9wq4s8SfklqjBAWa/cpnEEmaxigM5UTrru8lppcRZRjlOC4HqcaE0Dtyi11LBYlR97Ii/Njdt0rkDqSyTxi3UH86MhLrPJ/djIkZ6r+zXPxv1k3N4KyXMZGkBgWdHBqk3DXSzZtwI6aQGj6yhFDFbFaXDoki1Ni+ykFhzIQ0k6aGSCJU43JRznmO4+8qZkn7sO6f1P2ro1pjb9ISlGAHduEAfDiFBlxCE1pAYQSP8ATPzoPz4rw6b5PVOWfqqcIvOO9ff/uf0Q==</latexit>
`1 `2 p 1 p2 p3
p2 , p3
<latexit sha1_base64="GsIUnO1JWznWHmco02Iwp2yAuQU=">AAACI3icbVDLSgMxFL3js9ZX1aWb0CK4kDLj213BjUsFq4W2lEzm1gYzyZBkhDJ074+4dav/4E7cuPAH/AozUxFfB0IO59xDbk6YCG6s7796E5NT0zOzpbny/MLi0nJlZfXCqFQzbDIllG6F1KDgEpuWW4GtRCONQ4GX4fVx7l/eoDZcyXM7TLAb0yvJ+5xR66RepdoJlYjMMHZXlox621vkl7LTq9T8ul+A/CXBJ6k1SlDgtFd570SKpTFKywQ1ph34ie1mVFvOBI7KndRgQtk1vcK2o5LGaLpZ8ZcR2XBKRPpKuyMtKdTviYzGJl/OTcbUDsxvLxf/89qp7R92My6T1KJk44f6qSBWkbwYEnGNzIqhI5Rp7nYlbEA1ZdbVV+4UwUwqOy5ugDRCPSoX5Rzl2Puq4i+52K4H+/XgbLfW2By3BCVYhypsQgAH0IATOIUmMLiFe3iAR+/Oe/KevZfx6IT3mVmDH/DePgBwWqYb</latexit>
X X X
<latexit sha1_base64="EeFO+nWrzOhju+/zckPqZS2ESkA=">AAACDXicbVDLSgMxFL3js9ZX1aWbwSK4KjPic1dw47KKrYW2lkzmtg3NJEOSEcrQb3DrVv/Bnbj1G/wFv8LMtIhaD4Qczr2HezhBzJk2nvfhzM0vLC4tF1aKq2vrG5ulre2GlomiWKeSS9UMiEbOBNYNMxybsUISBRxvg+FFNr+9R6WZFDdmFGMnIn3BeowSY6W7diB5qEeR/dLrcbdU9ipeDneW+FNSrhYgR61b+myHkiYRCkM50brle7HppEQZRjmOi+1EY0zokPSxZakgEepOmqceu/tWCd2eVPYJ4+bqT0dKIp1Fs5sRMQP9d5aJ/81aiemddVIm4sSgoJNDvYS7RrpZBW7IFFLDR5YQqpjN6tIBUYQaW1SxnRtTIU1eUXeAJEQ1LublnGc4/q5iljQOK/5Jxb86KlcPJi1BAXZhDw7Ah1OowiXUoA4UFDzCEzw7D86L8+q8TVbnnKlnB37Bef8CM1admg==</latexit>
X X
R X X
<latexit sha1_base64="5pOvkpgneeiBKR9i0RzzpX5NGsw=">AAACOXicbZDLSgMxFIbPeK31VnXpJlgEF1JmxEt1VXDjUsGq0Cklkzm1wUwyJBmhDH0VX8StW927dCdufQEzUxFvP4T8fOcccvJHqeDG+v6zNzE5NT0zW5mrzi8sLi3XVlYvjMo0wzZTQumriBoUXGLbcivwKtVIk0jgZXRzXNQvb1EbruS5HabYTei15H3OqHWoV2uGkRKxGSbuykMUYtQLtsl3mDpCjn6jnV6t7jf8UuSvCT5NvVWBUqe92lsYK5YlKC0T1JhO4Ke2m1NtORM4qoaZwZSyG3qNHWclTdB08/KHI7LpSEz6SrsjLSnp94mcJqZYznUm1A7M71oB/6t1MttvdnMu08yiZOOH+pkgVpEiLhJzjcyKoTOUae52JWxANWXWhVoNy8FcKjuOc4A0Rj2qluEcFtr7iuKvudhpBPuN4Gy33toapwQVWIcN2IIADqAFJ3AKbWBwBw/wCE/evffivXpv49YJ73NmDX7Ie/8ASA2vIw==</latexit> <latexit sha1_base64="HRY9zc3q4l4mezF5myv/mgWD46g=">AAACJ3icbVDLahsxFL2TpK3jvpx0mY2oafHKzDh9JStDN10mEDsGjxk0mmtbWCMNkqZghvmD/Ei22Sb/kF1ol93mK6IZm5LUPSB0OOcedHXiTHBjff+3t7W98+z5i8Zu8+Wr12/etvb2h0blmuGAKaH0KKYGBZc4sNwKHGUaaRoLPI8X3yv//Cdqw5U8s8sMJymdST7ljFonRa2PYaxEYpapu4oQhSijHjkmj9WsjA6jVtvv+jXIJgnWpN1vQI2TqHUfJorlKUrLBDVmHPiZnRRUW84Els0wN5hRtqAzHDsqaYpmUtT/KckHpyRkqrQ70pJafZwoaGqq5dxkSu3c/OtV4v+8cW6n3yYFl1luUbLVQ9NcEKtIVQ5JuEZmxdIRyjR3uxI2p5oy6ypshnWwkMquypsjTVCXzbqcowqf/1axSYa9bvClG5x+avc7q5agAQfwHjoQwFfoww84gQEwuIAruIYb79K79e68X6vRLW+deQdP4P15AGK/p5o=</latexit>
X X
`1 , p 1 : p 2 `2 : p 3 X
<latexit sha1_base64="KLbl9Kh0A6hkeMXj2W/hyqMU6OU=">AAACCXicbVDLSsNAFL2pr1pfVZdugkWom5KIz13BjcsK9oFNKJPpbTt0MhNmJmIJ/QK3bvUf3Ilbv8Jf8CtM0yJqPTBwOOce7p0TRJxp4zgfVm5hcWl5Jb9aWFvf2Nwqbu80tIwVxTqVXKpWQDRyJrBumOHYihSSMODYDIaXE795h0ozKW7MKEI/JH3BeowSk0q3XhjI+6QcHI47xZJTcTLY88SdkVI1DxlqneKn15U0DlEYyonWbdeJjJ8QZRjlOC54scaI0CHpYzulgoSo/SS7eGwfpErX7kmVPmHsTP2ZSEio9SgM0smQmIH+603E/7x2bHrnfsJEFBsUdLqoF3PbSHvyfbvLFFLDRykhVLH0VpsOiCLUpCUVvCyYCGmyejoDJF1U40JWzsUEJ99VzJPGUcU9rbjXx6VqedoS5GEP9qEMLpxBFa6gBnWgIOARnuDZerBerFfrbTqas2aZXfgF6/0LH3+bUg==</latexit> <latexit sha1_base64="cjuMfHo7e7VEIuLK4/uxtW98yAM=">AAACCXicbVDLSsNAFL2pr1pfVZdugkWom5KIz13BjcsK9oFNKJPpbTt0MhNmJmIJ/QK3bvUf3Ilbv8Jf8CtM0yJqPTBwOOce7p0TRJxp4zgfVm5hcWl5Jb9aWFvf2Nwqbu80tIwVxTqVXKpWQDRyJrBumOHYihSSMODYDIaXE795h0ozKW7MKEI/JH3BeowSk0q3XhjI+6RMD8edYsmpOBnseeLOSKmahwy1TvHT60oahygM5UTrtutExk+IMoxyHBe8WGNE6JD0sZ1SQULUfpJdPLYPUqVr96RKnzB2pv5MJCTUehQG6WRIzED/9Sbif147Nr1zP2Eiig0KOl3Ui7ltpD35vt1lCqnho5QQqlh6q00HRBFq0pIKXhZMhDRZPZ0Bki6qcSEr52KCk+8q5knjqOKeVtzr41K1PG0J8rAH+1AGF86gCldQgzpQEPAIT/BsPVgv1qv1Nh3NWbPMLvyC9f4FIR2bUw==</latexit>
(b) (c)
Figure 2.13 The Bayes tree (b) and the associated square root information matrix R (c)
describing the clique structure in the chordal Bayes net (a) based on our canonical example
from Figure 2.2. A Bayes tree is similar to a clique tree, but is better at capturing the
formal equivalence between sparse linear algebra and inference in graphical models. The
association of cliques with rows in the R factor is indicated by color.
For the root fr , the separator is empty, i.e., it is a simple prior p(fr ) on the root
variables. The way Bayes trees are defined, the separator sk for a clique ck is always
a subset of the parent clique ϖk , and hence the directed edges in the graph have
the same semantic meaning as in a Bayes net: conditioning.
The Bayes tree associated with our canonical toy SLAM problem (Figure 2.2)
is shown in Figure 2.13. The root clique c1 = p2 , p3 (shown in blue) comprises p2
and p3 , which intersects with two other cliques, c2 = ℓ1 , p1 : p2 shown in green,
and c3 = ℓ2 : p3 shown in red. The colors also indicate how the rows of square-
root information matrix R map to the different cliques, and how the Bayes tree
captures independence relationships between them. For example, the green and red
rows only intersect in variables that belong to the root clique, as predicted.
x2 xp33
<latexit sha1_base64="i1LTsi0pXgXYdlkAuqdoH9DYknI=">AAACEXicbVDLSsNAFL3xWesr6tJNsAquSiI+dwU3LivYWmhLmUxu7eBkJsxMCiX0K9y61X9wJ279An/Br3CSFlHrgWEO597DPZww4Uwb3/9w5uYXFpeWSyvl1bX1jU13a7upZaooNqjkUrVCopEzgQ3DDMdWopDEIcfb8P4yn98OUWkmxY0ZJdiNyZ1gfUaJsVLPdTuh5JEexfbLknHvqOdW/KpfwJslwZRUaiUoUO+5n51I0jRGYSgnWrcDPzHdjCjDKMdxuZNqTAi9J3fYtlSQGHU3K5KPvQOrRF5fKvuE8Qr1pyMjsc7D2c2YmIH+O8vF/2bt1PTPuxkTSWpQ0Mmhfso9I728Bi9iCqnhI0sIVcxm9eiAKEKNLavcKYyZkGZS0wBJhGpcLsq5yHHyXcUsaR5Vg9NqcH1cqe1PWoIS7MIeHEIAZ1CDK6hDAygM4RGe4Nl5cF6cV+dtsjrnTD078AvO+xcdQZ6K</latexit> <latexit sha1_base64="xa47ISr24vnFk6T52/jxFM/EsFA=">AAACEXicbVDLSsNAFL3xWesr6tJNsAquSuLbXcGNSwVbhbaUyeS2HTqZCTOTQgn9Crdu9R/ciVu/wF/wK5ykImo9MMzh3Hu4hxMmnGnj++/OzOzc/MJiaam8vLK6tu5ubDa0TBXFOpVcqruQaORMYN0ww/EuUUjikONtOLjI57dDVJpJcWNGCbZj0hOsyygxVuq4biuUPNKj2H5ZMu4cdtyKX/ULeNMk+CKVWgkKXHXcj1YkaRqjMJQTrZuBn5h2RpRhlOO43Eo1JoQOSA+blgoSo25nRfKxt2eVyOtKZZ8wXqH+dGQk1nk4uxkT09d/Z7n436yZmu5ZO2MiSQ0KOjnUTblnpJfX4EVMITV8ZAmhitmsHu0TRaixZZVbhTET0kxq6iOJUI3LRTnnOY6/q5gmjYNqcFINro8qtd1JS1CCbdiBfQjgFGpwCVdQBwpDeIBHeHLunWfnxXmdrM44X54t+AXn7RMe3Z6L</latexit>
x p
p22, x
<latexit sha1_base64="CLFt0tlk4Wbsf86y1M06QVm0mWE=">AAACI3icbVDLSgMxFL3js9ZX1aWbYBVcSJmp713BjUsFq0JbSiZza4OZZEgyQhm690fcutV/cCduXPgDfoWZqYivAyGHc+4hNydMBDfW91+9sfGJyanp0kx5dm5+YbGytHxuVKoZNpkSSl+G1KDgEpuWW4GXiUYahwIvwuuj3L+4QW24kmd2kGAnpleS9zij1kndylo7VCIyg9hdWTLs1rfIL2W7W6n6Nb8A+UuCT1JtlKDASbfy3o4US2OUlglqTCvwE9vJqLacCRyW26nBhLJreoUtRyWN0XSy4i9DsuGUiPSUdkdaUqjfExmNTb6cm4yp7ZvfXi7+57VS2zvoZFwmqUXJRg/1UkGsInkxJOIamRUDRyjT3O1KWJ9qyqyrr9wugplUdlRcH2mEelguyjnMsftVxV9yXq8Fe7XgdKfaWB+1BCVYhTXYhAD2oQHHcAJNYHAL9/AAj96d9+Q9ey+j0THvM7MCP+C9fQBvJqYX</latexit>
p33
xp11
<latexit sha1_base64="kXx44wnjqLe/qAbLMONIjGgtM5U=">AAACEXicbVDLSsNAFL2pr1pfUZduglVwVRLxuSu4calgW6EtZTK5tUMnM2FmIpTQr3DrVv/Bnbj1C/wFv8JJWkStB4Y5nHsP93DChDNtfP/DKc3NLywulZcrK6tr6xvu5lZTy1RRbFDJpboNiUbOBDYMMxxvE4UkDjm2wuFFPm/do9JMihszSrAbkzvB+owSY6We63ZCySM9iu2XJeNe0HOrfs0v4M2SYEqq9TIUuOq5n51I0jRGYSgnWrcDPzHdjCjDKMdxpZNqTAgdkjtsWypIjLqbFcnH3r5VIq8vlX3CeIX605GRWOfh7GZMzED/neXif7N2avpn3YyJJDUo6ORQP+WekV5egxcxhdTwkSWEKmazenRAFKHGllXpFMZMSDOpaYAkQjWuFOWc5zj+rmKWNA9rwUktuD6q1vcmLUEZdmAXDiCAU6jDJVxBAyjcwyM8wbPz4Lw4r87bZLXkTD3b8AvO+xcbpZ6J</latexit>
`l11
x x
<latexit sha1_base64="i1LTsi0pXgXYdlkAuqdoH9DYknI=">AAACEXicbVDLSsNAFL3xWesr6tJNsAquSiI+dwU3LivYWmhLmUxu7eBkJsxMCiX0K9y61X9wJ279An/Br3CSFlHrgWEO597DPZww4Uwb3/9w5uYXFpeWSyvl1bX1jU13a7upZaooNqjkUrVCopEzgQ3DDMdWopDEIcfb8P4yn98OUWkmxY0ZJdiNyZ1gfUaJsVLPdTuh5JEexfbLknHvqOdW/KpfwJslwZRUaiUoUO+5n51I0jRGYSgnWrcDPzHdjCjDKMdxuZNqTAi9J3fYtlSQGHU3K5KPvQOrRF5fKvuE8Qr1pyMjsc7D2c2YmIH+O8vF/2bt1PTPuxkTSWpQ0Mmhfso9I728Bi9iCqnhI0sIVcxm9eiAKEKNLavcKYyZkGZS0wBJhGpcLsq5yHHyXcUsaR5Vg9NqcH1cqe1PWoIS7MIeHEIAZ1CDK6hDAygM4RGe4Nl5cF6cV+dtsjrnTD078AvO+xcdQZ6K</latexit> <latexit sha1_base64="xa47ISr24vnFk6T52/jxFM/EsFA=">AAACEXicbVDLSsNAFL3xWesr6tJNsAquSuLbXcGNSwVbhbaUyeS2HTqZCTOTQgn9Crdu9R/ciVu/wF/wK5ykImo9MMzh3Hu4hxMmnGnj++/OzOzc/MJiaam8vLK6tu5ubDa0TBXFOpVcqruQaORMYN0ww/EuUUjikONtOLjI57dDVJpJcWNGCbZj0hOsyygxVuq4biuUPNKj2H5ZMu4cdtyKX/ULeNMk+CKVWgkKXHXcj1YkaRqjMJQTrZuBn5h2RpRhlOO43Eo1JoQOSA+blgoSo25nRfKxt2eVyOtKZZ8wXqH+dGQk1nk4uxkT09d/Z7n436yZmu5ZO2MiSQ0KOjnUTblnpJfX4EVMITV8ZAmhitmsHu0TRaixZZVbhTET0kxq6iOJUI3LRTnnOY6/q5gmjYNqcFINro8qtd1JS1CCbdiBfQjgFGpwCVdQBwpDeIBHeHLunWfnxXmdrM44X54t+AXn7RMe3Z6L</latexit>
p22 p33
x
p11,, xp22,,xp33
<latexit sha1_base64="/FH+AB/Sda4hg7dTSq71nIA7ll4=">AAACNHicbVDLSgMxFL3js9ZX1aWbYBVcSJnx7a7gxqWCVaEtJZO5tcFMMiQZoQz9EH/ErVv9BMGduHHhN5iZimj1QMjhnHvIzQkTwY31/WdvbHxicmq6NFOenZtfWKwsLV8YlWqGDaaE0lchNSi4xIblVuBVopHGocDL8OY49y9vURuu5LntJ9iO6bXkXc6odVKnstMKlYhMP3ZXlgw6wdaIsL1FRpSdTqXq1/wC5C8Jvki1XoICp53KeytSLI1RWiaoMc3AT2w7o9pyJnBQbqUGE8pu6DU2HZU0RtPOis8NyIZTItJV2h1pSaH+TGQ0NvlybjKmtmdGvVz8z2umtnvYzrhMUouSDR/qpoJYRfKmSMQ1Miv6jlCmuduVsB7VlFnXZ7lVBDOp7LDJHtII9aBclHOUY++7ir/kYrsW7NeCs91qfX3YEpRgFdZgEwI4gDqcwCk0gMEdPMAjPHn33ov36r0NR8e8r8wK/IL38QnXca14</latexit>
x
<latexit sha1_base64="kXx44wnjqLe/qAbLMONIjGgtM5U=">AAACEXicbVDLSsNAFL2pr1pfUZduglVwVRLxuSu4calgW6EtZTK5tUMnM2FmIpTQr3DrVv/Bnbj1C/wFv8JJWkStB4Y5nHsP93DChDNtfP/DKc3NLywulZcrK6tr6xvu5lZTy1RRbFDJpboNiUbOBDYMMxxvE4UkDjm2wuFFPm/do9JMihszSrAbkzvB+owSY6We63ZCySM9iu2XJeNe0HOrfs0v4M2SYEqq9TIUuOq5n51I0jRGYSgnWrcDPzHdjCjDKMdxpZNqTAgdkjtsWypIjLqbFcnH3r5VIq8vlX3CeIX605GRWOfh7GZMzED/neXif7N2avpn3YyJJDUo6ORQP+WekV5egxcxhdTwkSWEKmazenRAFKHGllXpFMZMSDOpaYAkQjWuFOWc5zj+rmKWNA9rwUktuD6q1vcmLUEZdmAXDiCAU6jDJVxBAyjcwyM8wbPz4Lw4r87bZLXkTD3b8AvO+xcbpZ6J</latexit>
l`11 p11
Figure 2.14 Updating a Bayes tree with a new factor, based on the example in Figure
2.13. The affected part of the Bayes tree is highlighted for the case of adding a new factor
between p1 and p3 . Note that the right branch (green) is not affected by the change. (top
right) The factor graph generated from the affected part of the tree with the new factor
(dashed blue) inserted. (bottom right) The chordal Bayes net resulting from eliminating
the factor graph. (bottom left) The Bayes tree created from the chordal Bayes net, with
the unmodified right ‘orphan’ sub-tree from the original Bayes tree added back in.
To incrementally update the Bayes tree, we selectively convert part of the Bayes
tree back into factor-graph form. When a new measurement is added this corre-
sponds to adding a factor, e.g., a measurement involving two variables will induce a
new binary factor ϕ(xj , xj ′ ). In this case, only the paths in the Bayes tree between
the cliques containing xj and xj ′ and the root will be affected. The sub-trees below
these cliques are unaffected, as are any other sub-trees not containing xj or xj ′ .
Hence, to update the Bayes tree, the affected parts of the tree are converted back
into a factor graph, and the new factor associated with the new measurement is
added to it. By re-eliminating this temporary factor graph, using whatever elimina-
tion ordering is convenient, a new Bayes tree is formed and the unaffected sub-trees
can be reattached.
In order to understand why only the top part of the tree is affected, we look at
two important properties of the Bayes tree. These directly arise from the fact that
it encodes the information flow during elimination. The Bayes tree is formed from
the chordal Bayes net following the inverse elimination order. In this way, variables
in each clique collect information from their child cliques via the elimination of
2.7 Incremental SLAM 51
these children. Thus, information in any clique propagates only upwards to the
root. Second, the information from a factor enters elimination only when the first
variable connected to that factor is eliminated. Combining these two properties, we
see that a new factor cannot influence any other variables that are not successors
of the factor’s variables. However, a factor involving variables having different (i.e.,
independent) paths to the root means that these paths must now be re-eliminated
to express the new dependency between them.
Figure 2.14 shows how these incremental factorization/inference steps are applied
to our canonical SLAM example. In this example, we add a new factor between p1
and p3 , affecting only the left branch of the tree, marked by the red dashed line
in to top-left figure. We then create the factor graph shown in the top-right figure
by creating a factor for each of the clique densities, p(p2 , p3 ) and p(ℓ1 , p1 |p2 ),
and add the new factor f (p1 , p3 ). The bottom-right figure shows the eliminated
graph using the ordering ℓ1 , p1 , p2 , p3 . And finally, in the bottom-left figure, the
reassembled Bayes tree is shown consisting of two parts: the Bayes tree derived
from the eliminated graph, and the unaffected clique from the original Bayes tree
(shown in green).
Figure 2.15 shows an example of the Bayes tree for a small SLAM sequence.
Shown is the tree for step 400 of the well-known Manhattan world simulated se-
quence by Olson et al. [195]. As a robot explores the environment, new measure-
ments only affect parts of the tree, and only those parts are re-calculated.
x396,x397
x395 x394
x383 x288 x273 x233 x364 x355 x133 x139 x160 x138
x382 x289 x286 x290 x272 x270 x266 x363 x354 x141 x353
x381 x292 x281 x285 x271 x135 x269 x349,x350 x362 x357 x267 x301
x379,x380 x308 x291 x279 x280 x278 x284 x248,x249,x251,x257,x258,x259,x260,x261,x262,x265 x268 x348 x361 x360 x253 x250
x378 x303 x277 x245,x246,x247 x98 x128 x114 x104 x347 x344
x377 x309 x302 x296 x300 x244 x230 x97 x168 x146 x101 x113 x79 x345 x264 x343
x376 x311 x307 x304 x297 x295 x241,x242,x243 x206 x94 x167 x148 x171 x145 x99 x82 x112 x320 x263 x342
x374,x375 x316 x310 x306 x294 x238,x239,x240 x227,x228,x229 x205 x137 x89 x117 x80 x127 x77 x129 x106 x84 x111 x85 x341
x373 x338 x298 x315 x314 x305 x293 x237 x122 x208 x224 x218 x131 x91 x184 x81 x116 x78 x76 x105 x83 x110 x340 x321
x372 x346 x317 x299 x312 x313 x287 x236 x140 x121 x223 x209 x132 x217 x213 x130 x202 x96 x183 x115 x75 x103 x109 x339
x371 x283 x254 x235 x226 x222 x170 x136 x216 x172 x212 x126 x201 x95 x182 x74 x102 x108 x337 x322
x369 x282 x123 x225 x207 x221 x214 x100 x124,x199,x200 x92 x73 x107 x335,x336 x323
x368 x359 x256 x220 x161 x195,x196,x197 x120 x119 x90 x72 x88 x334
x367 x351 x255 x370 x219 x162 x194 x166 x215 x193 x118 x71 x87 x333
x163 x154 x147 x143 x188 x173 x198 x52,x63,x64 x16 x15 x328 x325
x174 x36
x35
x34
x33
x32
Figure 2.15 An example of the Bayes tree data structure for a small SLAM sequence.
The incremental nonlinear least-squares estimation algorithm iSAM2 [127] is based on
viewing incremental factorization as editing the graphical model corresponding to the
posterior probability of the solution, the Bayes tree. As a robot explores the environment,
new measurements often only affect small parts of the tree, and only those parts are re-
calculated (shown in red).
After updating the tree we also need to update the solution. Back-substitution
in the Bayes tree proceeds from the root (which does not depend on any other
variables) and proceeds to the leaves. However, it is typically not necessary to
recompute a solution for all variables: local updates to the tree often do not affect
variables in remote parts of the tree. Instead, at each clique we can check the
difference in variable estimates that is propagated downwards and stop when this
difference falls below a small threshold.
Our motivation for introducing the Bayes tree was to incrementally solve nonlin-
ear optimization problems. For this we selectively re-linearize factors that contain
variables whose deviation from the linearization point exceeds a small threshold. In
contrast to the tree modification above, we now have to redo all cliques that contain
2.7 Incremental SLAM 53
the affected variables, not just as frontal variables, but also as separator variables.
This affects larger parts of the tree, but in most cases is still significantly cheaper
than recomputing the complete tree. We also have to go back to the original factors,
instead of directly turning the cliques into a factor graph. And that requires caching
certain quantities during elimination. The overall incremental nonlinear algorithm,
iSAM2, is described in much more detail in [127].
iSAM1 and iSAM2 have been applied successfully to many different robotics
estimation problems with non-trivial constraints between variables that number
into the millions, as will be discussed subsequent chapters. Both are implemented in
the GTSAM library, which can be found at https://github.com/borglab/gtsam.
3
Advanced State Variable Representations
Timothy Barfoot, Frank Dellaert, Michael Kaess
The previous chapter detailed how to set up and solve a SLAM problem using the
factor-graph paradigm. We deliberately avoided discussing some subtleties of the
state variables we were estimating. In this chapter, we revisit the nature of our
state variables and introduce two important topics that are prevalent in modern
SLAM formulations. First and foremost, we need some better tools for handling
state variables that have certain constraints associated with them; these constraints
define a manifold for our variables, which subsequently then require special care
during optimization. There are many examples of manifolds that appear in SLAM,
the most common being those associated with the rotational aspects of a robot
(especially in three dimensions, but even in the plane). A second aspect of state
variables stems from the nature of time itself. In the previous chapter, we implicitly
assumed that our robot moved in discrete-time steps through the world. In this
chapter we introduce smooth, continuous-time representations of trajectories and
discuss how these are fully compatible with our factor-graph formulation. We use
Barfoot [17] as the primary reference with some streamlined notation from Sola
et al. [240].
tangent space, Tχ M χ
manifold, M
Figure 3.1 For the sphere manifold, M, the local tangent plane, Tχ M, with a local basis
provides the notion of local coordinates.
where θ ∈ R, the angle of rotation, is the single degree of freedom in this case. More-
over, Rab allows us to rotate a two-dimensional vector (i.e., landmark) expressed in
reference frame F a to F b : ℓb = Rab ℓa .
A rotation matrix in three dimensions, Rab ∈ SO(3), again rotates vectors (this
time in three dimensions) from one frame to another. Three-dimensional rotation
matrices have nine entries but only three degrees of freedom (e.g., roll, pitch, yaw).
Both two- and three-dimensional rotation matrices must satisfy the constraints
Rab⊤ Rab = I and det(Rab ) = 1 to limit their degrees of freedom appropriately.
The pose of a robot comprises both rotational, Rab ∈ SO(d), and translational,
ta ∈ Rd , variables with 3(d − 1) degrees of freedom in all. Sometimes we keep
b
track of these quantities separately and then can use {Rab , tba } ∈ SO(d) × Rd as the
representation. Alternatively, these quantities can be assembled into a (d+1)×(d+1)
transformation matrix,
b
b Ra tba
Ta = . (3.2)
0 1
The manifold of all such transformation matrices is called the special Euclidean
group, SE(d), where again d = 2 (planar motion) or 3 (three-dimensional motion).
The benefit of using SE(d) is that we can easily translate and rotate landmarks
56 Advanced State Variable Representations
X∞
∧ 1 ∧ n ∧ 0 −θ
R = Exp(θ) = exp(θ ) = (θ ) ∈ SO(2), θ = , θ ∈ R. (3.4)
n! θ 0
n=0
The quantity, θ∧ , is a member of the Lie algebra, so(2), and it is mapped through
the matrix exponential, exp(·), to a member of the Lie group, R. We can go the
∨
other way with the matrix logarithm: θ = Log(R) = (log(R)) .
∧
Each matrix Lie group has its own linear (·) operator used to construct a Lie al-
gebra member from the standard vector space of appropriate dimension. For SO(3),
3.1 Optimization on Manifolds 57
where Twc ∈ SE(3) is the pose of the camera with respect to a world frame, ℓ̃wi is
the homogeneous landmark expressed in the world frame, and ηi is the usual sensor
noise. We then might like to solve the optimization problem
∗ X 2
Twc = arg min = zi − hi Twc ℓ̃w
i , (3.8)
c
Tw Σi
i
To linearize our sensor model, we use the fact that we can produce a perturbed
version of our pose through its Lie algebra according to1
0
Twc = Twc Exp (ξw
c
). (3.9)
c
Here, ξw ∈ R6 is used to produce a ‘small’ pose change that perturbs an initial
c0
guess, Tw ∈ SE(3). This perturbation is also sometimes written succinctly using
the ⊕ operator so that
0
Twc = Twc ⊕ ξw
c
(3.10)
implies (3.9). Owing to the closure property discussed earlier, the product of these
two quantities is guaranteed to be in SE(3). By using the Lie algebra to define our
pose perturbation, we restrict its dimension to be equal to the actual number of
degrees of freedom in a three-dimensional pose, which will mean that we can avoid
introducing constraints during optimization.
We can also approximate the perturbed pose according to
0
c∧
Twc ≈ Twc I + ξw , (3.11)
c
where we have kept just the terms up to linear in ξw from the series form of the
matrix exponential. Then, inserting (3.11) into our measurement function (3.7), we
have
0
c∧
zi ≈ hi Twc I + ξw ℓ̃w
i + ηi . (3.12)
We have essentially ‘linearized’ the pose perturbation in (3.13) and now need to
linearize the camera function hi (·) as well. We can use a standard first-order Taylor
series approximation to write
0 ∂h 0 ⊙
i
zi ≈ hi Twc ℓ̃wi + c
T c ℓ̃w ξw + ηi , (3.15)
∂ℓ T c0 ℓ̃w w i
w
| {z i
}
Hi (chain rule)
where the chaining of two pieces into the overall Jacobian, Hi , is now clear. Looking
1
It is also possible to perturb on the left side rather than the right. A more subtle question is whether
the perturbation is happening on the ‘sensor’ side or the ‘world’ side, which depends on whether the
c
unknown transform is Tw or Tcw and whether the perturbation is applied to the left or the right.
3.1 Optimization on Manifolds 59
back to (2.21b), we can write the linearized least-squares term (i.e., negative-log
factor) for this measurement as
0 2
zi − hi Twc ℓ̃w
i
c
− Hi ξw , (3.16)
Σi
c
where the only unknown is our pose perturbation, ξw . After combining this with
other factors and then solving for the optimal updates to our state variables, in-
c∗ 0
cluding ξw , we need to update our initial guess, Twc . For this, we must return to
the perturbation scheme we chose in (3.9) and update according to
0 0 ∗
Twc ← Twc ⊕ ξw
c
, (3.17)
0
to ensure our solution, Twc , remains in SE(3). As usual, optimization proceeds itera-
c
tively until the change in all the state variable updates (including ξw ) is sufficiently
small.
To recap, we have shown how to carry out unconstrained optimization for a state
variable that is a member of a Lie group. Although our example was specific to
a three-dimensional pose variable, other Lie groups can be optimized in a similar
manner. The key is to arrive at a situation as in (3.15) where the measurement
function has been linearized with respect to a perturbation in the Lie algebra. Most
times, as in our example, this can be done analytically. However, it is also straight-
forward to compute the required Jacobian, Hi , numerically or through automatic
differentiation (by exploiting the chain rule and some primitives for Lie groups).
In (3.9), we perturbed our pose variable on the left side, but this was a choice and
in some cases perturbing on the right may be preferable.
Stepping back a bit, this approach to optimizing a function of a Lie group mem-
ber is an example of Riemannian optimization [36]. By exploiting the Lie algebra,
which is also the tangent space of a manifold, we constrain the optimization to be
tangent to the manifold of poses (or rotations). By carrying out the update accord-
ing to (3.17), we are retracting our update back onto the manifold. Riemannian
optimization is a very general concept that can be applied to quantities that live
on manifolds that are not matrix Lie groups as well. Retractions other than the
matrix exponential are also possible within the manifold-optimization framework
(e.g., see Dellaert et al. [69] or Barfoot et al. [18]).
We often have occasion to consider the ‘difference’ of two Lie group elements and
for this we can also define the ⊖ operator. Again for SE(d) we have
∨
ξ = T 0 ⊖ T = Log T 0 T −1 = log T 0 T −1 ∈ se(d). (3.19)
These operators are a nice way to abstract away the details of these operations.
3.1.4.2 Inverses
Sometimes when we are carrying out perturbations, we have need to perturb the
inverse of a rotation or transformation matrix. In the SE(d) case, we simply have
that
−1 −1 −1
T 0 Exp(ξ) = Exp(ξ)−1 T 0 = Exp(−ξ)T 0 , (3.20)
where we see the perturbation moves from the right to the left with a negative sign.
3.1.4.3 Adjoints
The adjoint of a Lie group is a way of describing the elements of that group as linear
transformations of its Lie algebra, which we recall is a vector space. For SO(d), the
adjoint representation is the same as the group itself, so we omit the details. For
SE(d), the adjoint differs from the group’s primary representation and so we use
this section to provide some details. The adjoint will prove to be an essential tool
when setting up state estimation problems, particularly for SE(d).
The adjoint map of SE(d) transforms a Lie algebra element ξ ∧ ∈ se(d) to an-
other element of se(d) according to a map known as the inner automorphism or
conjugation:
AdT ξ ∧ = T ξ∧ T −1 . (3.21)
One situation in which adjoints are useful in our estimation problems is to manip-
ulate perturbations from one side of a known transformation to another as in
3.1.4.4 Jacobians
Every Lie group also has a Jacobian associated with it, which allows us to relate
changes in an element of the group to elements of its algebra. For the case of SO(d),
for example, the common kinematic equation (i.e., Poisson’s equation) relating a
rotation matrix, R ∈ SO(d), to angular velocity, ω ∈ R3(d−1) , is
Ṙ = ω ∧ R. (3.25)
θ̇ = J −1 (θ) ω, (3.26)
where J (θ) is the (left) Jacobian of SO(d). A place where this Jacobian is quite
useful is when combining expressions involving products of matrix exponentials.
For example, we have that
Exp(θ1 )Exp(θ2 ) ≈ Exp θ2 + J (θ2 )−1 θ1 , (3.27)
and a closed-form expression can be found in Barfoot [17]. We will overload and
write J (ξ) for the (left) Jacobian of SE(d) where the context should inform which
is meant.
3.2.1 Splines
The idea with parametric continuous-time trajectory methods is to write the pose
as a weighted sum of K known temporal basis functions, Ψk (t):
K
X
p(t) = Ψk (t)ck , (3.29)
k=1
where the ck are the unknown coefficients. For now, we return to a vector-space
explanation and discuss implementation on Lie groups in a later section. The basis
functions are typically chosen to be splines, which are piecewise polynomials (e.g.,
B-splines, cubic Hermite polynomials); splines are advantageous because they have
local support meaning outside of their local region of influence they go to zero. The
setup is depicted in Figure 3.2. In this example, at each instant of time only four
basis functions are nonzero, which we see results in a sparse factor graph.
The main difference, as compared to our earlier discrete-time development, is that
we have coefficient variables instead of pose variables, but this is completely com-
patible with the general factor-graph approach. Now, when we observe a landmark,
ℓ, at a particular time, ti , the sensor model is
zi = hi (p(ti ), ℓ) + ηi . (3.30)
3.2 Continuous-Time Trajectories 63
<latexit sha1_base64="XTJsUXJ6OIogftiDvr1VNx0f0OY=">AAACIHicbVBNTxsxFHwLpYRA2xSOHGo1QuIU7VZtgVskLj1SqSGRkijyOm+JhT9W9ltEtMqxf4QrV/gP3CqO8BP6K+rdoKotHcnSaObNsz1prqSnOH6IVlZfrL1cb2w0N7devX7Tert96m3hBPaEVdYNUu5RSYM9kqRwkDvkOlXYT8+PK79/gc5La77RPMex5mdGZlJwCtKk9W6kU3tZEurcOq5Y2CU9ywojKt8vJq123IlrsOckeSLtbgNqnExaP0dTKwqNhoTi3g+TOKdxyR1JoXDRHBUecy7O+RkOAzVcox+X9UcWbC8oU5ZZF44hVqt/JkquvZ/rNExqTjP/r1eJ//OGBWWH41KavCA0YnlRVihGllWtsKl0KEjNA+HCyfBWJmbccUGhu+aoDpbG0rK1GfIpukWzLueowqffVTwnpx86yedO8vVju7u/bAkasAvvYR8SOIAufIET6IGA73ANN3AbXUV30Y/ofjm6Ej1lduAvRI+/AJXXpTE=</latexit>
<latexit sha1_base64="jsXKZYtIc+Vmx4FxXXOMdbKIcaU=">AAACFHicbZDLSgMxFIbPeK31Vu3SzWARuioz4nVXcOOygr1AW0omPdOGZpIhyYhl6Gu4davv4E7cuvcVfArTaRG1/hD4+c/5yeELYs608bwPZ2l5ZXVtPbeR39za3tkt7O03tEwUxTqVXKpWQDRyJrBumOHYihWSKODYDEZX03nzDpVmUtyacYzdiAwECxklxka9QrETBfI+pRJDGzIURk96hZJX8TK5i8afm1I1B5lqvcJnpy9pEtk25UTrtu/FppsSZRjlOMl3Eo0xoSMywLa1gkSou2l2/MQ9sknfDaWyTxg3S382UhJpPY4CuxkRM9R/Z9Pwv1k7MeFFN2UiTgwKOvsoTLhrpDsl4faZQmr42BpCFbO3unRIFKHG8sp3smIqpJmRGiLpo5rkMziXU51+o1g0jeOKf1bxb05K1fKMEuTgAA6hDD6cQxWuoQZ1oDCGR3iCZ+fBeXFenbfZ6pIz7xThl5z3L/NioBw=</latexit>
coefficients
c3 c6
<latexit sha1_base64="tuU/1EGVihSvBpdusa7FGcACNxc=">AAACEXicbVDLSsNAFL2pr1pfUZdugkXoqiTic1dw41LBtkJbymRy2w6dzISZSaGEfoVbt/oP7sStX+Av+BVOUhFfB4Y5nHsP93DChDNtfP/NKS0sLi2vlFcra+sbm1vu9k5Ly1RRbFLJpboNiUbOBDYNMxxvE4UkDjm2w/FFPm9PUGkmxY2ZJtiLyVCwAaPEWKnvut1Q8khPY/tldNYP+m7Vr/sFvL8k+CTVRhkKXPXd924kaRqjMJQTrTuBn5heRpRhlOOs0k01JoSOyRA7lgoSo+5lRfKZd2CVyBtIZZ8wXqF+d2Qk1nk4uxkTM9K/Z7n436yTmsFZL2MiSQ0KOj80SLlnpJfX4EVMITV8agmhitmsHh0RRaixZVW6hTET0sxrGiGJUM0qRTnnOY6/qvhLWof14KQeXB9VG7V5S1CGPdiHGgRwCg24hCtoAoUJ3MMDPDp3zpPz7LzMV0vOp2cXfsB5/QAHxp6A</latexit> <latexit sha1_base64="NpdHZvDEltGvU5fK1Dvc5QSXj7w=">AAACEXicbVDLSsNAFL3xWesr6tJNsAhdlaT43BXcuKxgVWhLmUxu26GTmTAzKZTQr3DrVv/Bnbj1C/wFv8JJWsTXgWEO597DPZww4Uwb3393FhaXlldWS2vl9Y3NrW13Z/dGy1RRbFHJpboLiUbOBLYMMxzvEoUkDjnehqOLfH47RqWZFNdmkmA3JgPB+owSY6We63ZCySM9ie2X0Wmv3nMrfs0v4P0lwZxUGiUo0Oy5H51I0jRGYSgnWrcDPzHdjCjDKMdpuZNqTAgdkQG2LRUkRt3NiuRT79AqkdeXyj5hvEL97shIrPNwdjMmZqh/z3Lxv1k7Nf2zbsZEkhoUdHaon3LPSC+vwYuYQmr4xBJCFbNZPTokilBjyyp3CmMmpJnVNEQSoZqWi3LOcxx/VfGX3NRrwUktuDqqNKqzlqAE+3AAVQjgFBpwCU1oAYUxPMAjPDn3zrPz4rzOVhecuWcPfsB5+wQJYp6B</latexit> <latexit sha1_base64="ioXcenwf52WQczvpo6TMOPHKxkE=">AAACEXicbVDLSsNAFL3xWesr6tJNsAiuSuLbXcGNSwVbC20pk8ltO3QyE2YmQgn9Crdu9R/ciVu/wF/wK5ykRdR6YJjDufdwDydMONPG9z+cufmFxaXl0kp5dW19Y9Pd2m5omSqKdSq5VM2QaORMYN0ww7GZKCRxyPEuHF7m87t7VJpJcWtGCXZi0hesxygxVuq6bjuUPNKj2H4ZHXePum7Fr/oFvFkSTEmlVoIC1133sx1JmsYoDOVE61bgJ6aTEWUY5Tgut1ONCaFD0seWpYLEqDtZkXzs7Vsl8npS2SeMV6g/HRmJdR7ObsbEDPTfWS7+N2ulpnfeyZhIUoOCTg71Uu4Z6eU1eBFTSA0fWUKoYjarRwdEEWpsWeV2YcyENJOaBkgiVONyUc5FjpPvKmZJ47AanFaDm+NK7WDSEpRgF/bgAAI4gxpcwTXUgcI9PMITPDsPzovz6rxNVuecqWcHfsF5/wIK/p6C</latexit> <latexit sha1_base64="+IGtFwFfOOatIEKmBPtDFR/HQh8=">AAACEXicbVDLSsNAFL2pr1pfUZdugkXoqiTic1dw47KCVaEtZTK5bYdOZsLMpFBCv8KtW/0Hd+LWL/AX/AonaRFfB4Y5nHsP93DChDNtfP/dKS0sLi2vlFcra+sbm1vu9s6Nlqmi2KKSS3UXEo2cCWwZZjjeJQpJHHK8DUcX+fx2jEozKa7NJMFuTAaC9Rklxko91+2Ekkd6Etsvo9PeUc+t+nW/gPeXBHNSbZShQLPnfnQiSdMYhaGcaN0O/MR0M6IMoxynlU6qMSF0RAbYtlSQGHU3K5JPvQOrRF5fKvuE8Qr1uyMjsc7D2c2YmKH+PcvF/2bt1PTPuhkTSWpQ0Nmhfso9I728Bi9iCqnhE0sIVcxm9eiQKEKNLavSKYyZkGZW0xBJhGpaKco5z3H8VcVfcnNYD07qwdVRtVGbtQRl2IN9qEEAp9CAS2hCCyiM4QEe4cm5d56dF+d1tlpy5p5d+AHn7RMMmp6D</latexit> <latexit sha1_base64="Do1v9y9uiRwBh5XBke3erL0vjjI=">AAACEXicbVDLSsNAFL3xWesr6tJNsAhdlUS06q7gxqWCfUBbymRyawcnM2FmIpTQr3DrVv/Bnbj1C/wFv8JJWkStB4Y5nHsP93DChDNtfP/DWVhcWl5ZLa2V1zc2t7bdnd2Wlqmi2KSSS9UJiUbOBDYNMxw7iUIShxzb4d1FPm/fo9JMihszTrAfk1vBhowSY6WB6/ZCySM9ju2X0cmgPnArfs0v4M2TYEYqjRIUuBq4n71I0jRGYSgnWncDPzH9jCjDKMdJuZdqTAi9I7fYtVSQGHU/K5JPvEOrRN5QKvuE8Qr1pyMjsc7D2c2YmJH+O8vF/2bd1AzP+hkTSWpQ0OmhYco9I728Bi9iCqnhY0sIVcxm9eiIKEKNLavcK4yZkGZa0whJhGpSLso5z3HyXcU8aR3VgnotuD6uNKrTlqAE+3AAVQjgFBpwCVfQBAr38AhP8Ow8OC/Oq/M2XV1wZp49+AXn/QsP0p6F</latexit>
c1 c2 c4 c5 c7
<latexit sha1_base64="SdrZV5z20U8l5E8YYFoSC6A1+Jo=">AAACEXicbVDLSsNAFL3xWesr6tJNsAhdlUSsj13BjUsF+4C2lMnk1g5OZsLMRCihX+HWrf6DO3HrF/gLfoWTtIhaDwxzOPce7uGECWfa+P6Hs7C4tLyyWlorr29sbm27O7stLVNFsUkll6oTEo2cCWwaZjh2EoUkDjm2w7uLfN6+R6WZFDdmnGA/JreCDRklxkoD1+2Fkkd6HNsvo5NBfeBW/JpfwJsnwYxUGiUocDVwP3uRpGmMwlBOtO4GfmL6GVGGUY6Tci/VmBB6R26xa6kgMep+ViSfeIdWibyhVPYJ4xXqT0dGYp2Hs5sxMSP9d5aL/826qRme9TMmktSgoNNDw5R7Rnp5DV7EFFLDx5YQqpjN6tERUYQaW1a5VxgzIc20phGSCNWkXJRznqP+XcU8aR3VgpNacH1caVSnLUEJ9uEAqhDAKTTgEq6gCRTu4RGe4Nl5cF6cV+dturrgzDx78AvO+xcONp6E</latexit> <latexit sha1_base64="/aq88fN9fvxSRb/ETVIf9Ot3uBM=">AAACEXicbVDLSsNAFL3xWesr6tJNsAiuSiJqdVdw47KCrUJbymRy2w6dzISZSaGEfoVbt/oP7sStX+Av+BVO0iK+DgxzOPce7uGECWfa+P67s7C4tLyyWlorr29sbm27O7stLVNFsUkll+ouJBo5E9g0zHC8SxSSOOR4G44u8/ntGJVmUtyYSYLdmAwE6zNKjJV6rtsJJY/0JLZfRqe9Ws+t+FW/gPeXBHNSqZegQKPnfnQiSdMYhaGcaN0O/MR0M6IMoxyn5U6qMSF0RAbYtlSQGHU3K5JPvUOrRF5fKvuE8Qr1uyMjsc7D2c2YmKH+PcvF/2bt1PTPuxkTSWpQ0Nmhfso9I728Bi9iCqnhE0sIVcxm9eiQKEKNLavcKYyZkGZW0xBJhGpaLsq5yHH6VcVf0jquBmfV4PqkUj+atQQl2IcDOIIAalCHK2hAEyiM4QEe4cm5d56dF+d1trrgzD178APO2ycRbp6G</latexit>
<latexit sha1_base64="B1c/MS3DPBeOl7HyBEK6cDUhha8=">AAACEnicbVDLattAFL1y08ZVmlZul92ImICzMVLoc2fopksX6gfYxoxG1/bg0YyYuWowwn/RbbftP3RXss0P9Bf6FR3JJqR1DgxzOPce7uEkuRSWoui313hw9PDRcfOxf/Lk9OmzoPV8aHVhOA64ltqME2ZRCoUDEiRxnBtkWSJxlKw/VPPRFzRWaPWZNjnOMrZUYiE4IyfNg9Y00TK1m8x9Zb7t0MU8aEfdqEZ4SOI9afeaUKM/D/5MU82LDBVxyaydxFFOs5IZElzi1p8WFnPG12yJE0cVy9DOyjr6Njx3ShoutHFPUVirdx0ly2yVzm1mjFb2/1kl3jebFLR4NyuFygtCxXeHFoUMSYdVD2EqDHKSG0cYN8JlDfmKGcbJteVPa2OpNO16WiFL0Wz9upz3FV7fVnFIhpfd+E03/vSq3evsWoImvIQz6EAMb6EHH6EPA+BwBd/gO/zwvno/vV/e9W614e09L+AfeDd/AZ2+nsw=</latexit>
p(t)
<latexit sha1_base64="eDvHW79tKIOBLnaUNkn48Lwr170=">AAACAnicbVDLSsNAFL2pr1pfVZdugkXoqiS+3RXcuKxobaEtZTK9bYdOJmHmRiihO7du9R/ciVt/xF/wK0zSImo9MHA45x7uneOFUhhynA8rt7C4tLySXy2srW9sbhW3d+5MEGmOdR7IQDc9ZlAKhXUSJLEZamS+J7HhjS5Tv3GP2ohA3dI4xI7PBkr0BWeUSDfUPeoWS07FyWDPE3dGStU8ZKh1i5/tXsAjHxVxyYxpuU5InZhpElzipNCODIaMj9gAWwlVzEfTibNTJ/ZBovTsfqCTp8jO1J+JmPnGjH0vmfQZDc1fLxX/81oR9c87sVBhRKj4dFE/kjYFdvpvuyc0cpLjhDCuRXKrzYdMM05JO4V2FoxVQFkv3SGyHupJISvnIsXJdxXz5O6w4p5W3OvjUrU8bQnysAf7UAYXzqAKV1CDOnAYwCM8wbP1YL1Yr9bbdDRnzTK78AvW+xetKZhV</latexit>
<latexit sha1_base64="ptXvpYnN0Ty2KZ9a3kRZwTwPS1w=">AAACAnicbVDLSsNAFL3xWeur6tJNsAhdlaT43BXcuKxoH9CWMpnetkMnkzBzI5TQnVu3+g/uxK0/4i/4FSZpEbUeGDiccw/3zvFCKQw5zoe1tLyyurae28hvbm3v7Bb29hsmiDTHOg9koFseMyiFwjoJktgKNTLfk9j0xlep37xHbUSg7mgSYtdnQyUGgjNKpFvqVXqFolN2MtiLxJ2TYjUHGWq9wmenH/DIR0VcMmParhNSN2aaBJc4zXcigyHjYzbEdkIV89F04+zUqX2cKH17EOjkKbIz9WciZr4xE99LJn1GI/PXS8X/vHZEg4tuLFQYESo+WzSIpE2Bnf7b7guNnOQkIYxrkdxq8xHTjFPSTr6TBWMVUNZLb4Ssj3qaz8q5THH6XcUiaVTK7lnZvTkpVkuzliAHh3AEJXDhHKpwDTWoA4chPMITPFsP1ov1ar3NRpeseeYAfsF6/wKrjZhU</latexit>
t2 t3 <latexit sha1_base64="qcCMnSQ0gRbcWYMIUDoCBDr7orw=">AAACF3icbZDLSgNBEEVrfMb4igpu3AwGwY1hRnzuAm5cRjAqJCH0dCqmsR9Dd40YxnyIW7f6D+7ErUt/wa9wMhHxdaHhcm8VXZwolsJRELx5Y+MTk1PThZni7Nz8wmJpafnMmcRyrHMjjb2ImEMpNNZJkMSL2CJTkcTz6Opo2J9fo3XC6FPqx9hS7FKLruCMsqhdWm2qyNyk3GgSOjGJ2yKhcNAulYNKkMv/a8JPU64WIFetXXpvdgxPFGrikjnXCIOYWimzJLjEQbGZOIwZv2KX2MisZgpdK83vH/gbWdLxu8ZmT5Ofp983Uqac66som1SMeu53Nwz/6xoJdQ9aqdBxQqj56KNuIn0y/hCG3xEWOcl+Zhi3IrvV5z1mGacMWbGZL6ba0AhWD1kH7aCYwzkcavcLxV9ztl0J9yrhyU65ujmiBAVYg3XYhBD2oQrHUIM6cLiFe3iAR+/Oe/KevZfR6Jj3ubMCP+S9fgCCVqF7</latexit>
continuous-time
<latexit sha1_base64="JyXPdnG0UmSVpJY0R/zuXgyTVnY=">AAACAnicbVDLSsNAFL2pr1pfVZdugkXoqiTic1dw47KifUBbymR62w6dTMLMjVBCd27d6j+4E7f+iL/gV5ikRdR6YOBwzj3cO8cLpTDkOB9Wbml5ZXUtv17Y2Nza3inu7jVMEGmOdR7IQLc8ZlAKhXUSJLEVamS+J7Hpja9Sv3mP2ohA3dEkxK7PhkoMBGeUSLfUc3vFklNxMtiLxJ2TUjUPGWq94menH/DIR0VcMmParhNSN2aaBJc4LXQigyHjYzbEdkIV89F04+zUqX2UKH17EOjkKbIz9WciZr4xE99LJn1GI/PXS8X/vHZEg4tuLFQYESo+WzSIpE2Bnf7b7guNnOQkIYxrkdxq8xHTjFPSTqGTBWMVUNZLb4Ssj3payMq5THH6XcUiaRxX3LOKe3NSqpZnLUEeDuAQyuDCOVThGmpQBw5DeIQneLYerBfr1XqbjeaseWYffsF6/wKp8ZhT</latexit>
t1 <latexit sha1_base64="d9h9JQAyI59RvOuLkXad5c7n8DQ=">AAACEnicbVDLSgNBEOyNrxhfUY9eFoPgKeyKz1vAi0cFo0ISwuykY8bMziwzvWpY8hdeveo/eBOv/oC/4Fc42Yj4KhgoqrronooSKSwFwZtXmJicmp4pzpbm5hcWl8rLK2dWp4ZjnWupzUXELEqhsE6CJF4kBlkcSTyP+ocj//wajRVandIgwVbMLpXoCs7ISe3ycjOO9G1Ghl0hJ20Gw3a5ElSDHP5fEn6SSq0IOY7b5fdmR/M0RkVcMmsbYZBQK2OGBJc4LDVTiwnjfXaJDUcVi9G2svz0ob/hlI7f1cY9RX6ufk9kLLZ2EEduMmbUs7+9kfif10ipu9/KhEpSQsXHi7qp9En7ox78jjDuw3LgCONGuFt93mOGcXJtlZp5MFOaxj31kHXQDEt5OQcj7HxV8ZecbVXD3Wp4sl2pbY5bgiKswTpsQgh7UIMjOIY6cLiBe3iAR+/Oe/KevZfxaMH7zKzCD3ivH4g0n10=</latexit>
trajectory
<latexit sha1_base64="b5MWbhCtoIcoBuQZk/2t5aCElIc=">AAACFHicbVDLSsNAFL2pr1pfVZdugkXoqiTic1dw47KCbYWmlMnkth06mQkzE6GE/oZbt/oP7sSte3/Br3CSivg6MMzh3Hu4hxMmnGnjeW9OaWFxaXmlvFpZW9/Y3Kpu73S0TBXFNpVcqpuQaORMYNsww/EmUUjikGM3nFzk8+4tKs2kuDbTBPsxGQk2ZJQYKw2qu0EoeaSnsf2yADmfDfxBteY1vALuX+J/klqzDAVag+p7EEmaxigM5UTrnu8lpp8RZRjlOKsEqcaE0AkZYc9SQWLU/awIP3MPrBK5Q6nsE8Yt1O+OjMQ6z2c3Y2LG+vcsF/+b9VIzPOtnTCSpQUHnh4Ypd4108ybciCmkhk8tIVQxm9WlY6IINbavSlAYMyHNvKkxkgjVrFKUc57j+KuKv6Rz2PBPGv7VUa1Zn7cEZdiDfaiDD6fQhEtoQRsoTOEeHuDRuXOenGfnZb5acj49u/ADzusHf5Of1A==</latexit> <latexit sha1_base64="7iyXCYXvtnf7LlcEQO+3L706C+s=">AAACFHicbVDLSsNAFL3xWeur6tJNsAhdlaT43BXcuKxgq9CUMpnctkMnM2FmIpTQ33DrVv/Bnbh17y/4FU5SEbUeGOZw7j3cwwkTzrTxvHdnYXFpeWW1tFZe39jc2q7s7Ha0TBXFNpVcqtuQaORMYNsww/E2UUjikONNOL7I5zd3qDST4tpMEuzFZCjYgFFirNSv7AWh5JGexPbLAuR82m/0K1Wv7hVw54n/RarNEhRo9SsfQSRpGqMwlBOtu76XmF5GlGGU47QcpBoTQsdkiF1LBYlR97Ii/NQ9tErkDqSyTxi3UH86MhLrPJ/djIkZ6b+zXPxv1k3N4KyXMZGkBgWdHRqk3DXSzZtwI6aQGj6xhFDFbFaXjogi1Ni+ykFhzIQ0s6ZGSCJU03JRznmO4+8q5kmnUfdP6v7VUbVZm7UEJdiHA6iBD6fQhEtoQRsoTOABHuHJuXeenRfndba64Hx59uAXnLdPgS+f1Q==</latexit>
`1 `2
As mentioned above, if our basis functions are chosen to have local support, then
T
only a small subset of the coefficients will be active at ti . If we let xi = cT
i ℓT
represent the active coefficient variables at ti as well as the landmark variable, then
we are back to being able to write the measurement function as
zi = hi (xi ) + ηi , (3.32)
whereupon we can use our general approach to construct the nonlinear least-squares
problem and optimize.
Moreover, if our basis functions are sufficiently differentiable, we can easily take
the derivative of our pose trajectory,
K
X
ṗ(t) = Ψ̇k (t)ck (3.33)
k=1
so that we can handle sensor outputs that are functions of, say, velocity or even
higher derivatives while still optimizing the same coefficient variables. We simply
need to compute the derivatives of our basis functions, Ψ̇k (t).
64 Advanced State Variable Representations
Finally, once we have solved for the optimal coefficients through MAP inference,
we can then query the trajectory (or its derivatives) at any time of interest us-
ing (3.29) or (3.33). If we compute the covariance of the estimated coefficients dur-
ing inference (e.g., by inverting the information matrix), this can also be mapped
through to covariance of a queried pose (or derivative) quite easily since (3.29)
or (3.33) are linear relationships; and, local support in the basis functions implies
only the appropriate marginal covariance is needed from the coefficients.
where x0i is the current solution (active coefficients), δc,i is the update (to the active
coefficients), Ψi is the stacking of all basis functions active (and evaluted) at ti ,
and the Jacobian, Hi , is given by
∂hi
Hi = . (3.35)
∂x x0i
Gathering quantities into larger matrices as before, we can write our least-squares
problem as
2 2
δc∗ = arg min ∥b − AΨδc ∥ + ∥δc ∥ , (3.36)
δc
2
where we now include a regularizer term, ∥δc ∥ , that seeks to keep the description
length of our solution reasonable (i.e., we prefer spline coefficients to be closer to
zero). The regularizer term helps to avoid the over-fitting problem mentioned in
the last section. The optimal solution will be given by
ΨT AT AΨ + I δc∗ = ΨT AT b, (3.37)
which would allow us to compute the optimal update for the coefficients, δc∗ . How-
ever, what we typically care about is to produce an estimate for the pose, not
the spline coefficients (they are a means to an end). The optimal update to the
3.2 Continuous-Time Trajectories 65
pose variables at the measurement times is actually δ ∗ = Ψδc∗ . With a little bit of
algebra, we can show that
AT A + K −1 δ ∗ = AT b, (3.38)
`3
<latexit sha1_base64="7iyXCYXvtnf7LlcEQO+3L706C+s=">AAACFHicbVDLSsNAFL3xWeur6tJNsAhdlaT43BXcuKxgq9CUMpnctkMnM2FmIpTQ33DrVv/Bnbh17y/4FU5SEbUeGOZw7j3cwwkTzrTxvHdnYXFpeWW1tFZe39jc2q7s7Ha0TBXFNpVcqtuQaORMYNsww/E2UUjikONNOL7I5zd3qDST4tpMEuzFZCjYgFFirNSv7AWh5JGexPbLAuR82m/0K1Wv7hVw54n/RarNEhRo9SsfQSRpGqMwlBOtu76XmF5GlGGU47QcpBoTQsdkiF1LBYlR97Ii/NQ9tErkDqSyTxi3UH86MhLrPJ/djIkZ6b+zXPxv1k3N4KyXMZGkBgWdHRqk3DXSzZtwI6aQGj6xhFDFbFaXjogi1Ni+ykFhzIQ0s6ZGSCJU03JRznmO4+8q5kmnUfdP6v7VUbVZm7UEJdiHA6iBD6fQhEtoQRsoTOABHuHJuXeenRfndba64Hx59uAXnLdPgS+f1Q==</latexit>
`2
<latexit sha1_base64="b5MWbhCtoIcoBuQZk/2t5aCElIc=">AAACFHicbVDLSsNAFL2pr1pfVZdugkXoqiTic1dw47KCbYWmlMnkth06mQkzE6GE/oZbt/oP7sSte3/Br3CSivg6MMzh3Hu4hxMmnGnjeW9OaWFxaXmlvFpZW9/Y3Kpu73S0TBXFNpVcqpuQaORMYNsww/EmUUjikGM3nFzk8+4tKs2kuDbTBPsxGQk2ZJQYKw2qu0EoeaSnsf2yADmfDfxBteY1vALuX+J/klqzDAVag+p7EEmaxigM5UTrnu8lpp8RZRjlOKsEqcaE0AkZYc9SQWLU/awIP3MPrBK5Q6nsE8Yt1O+OjMQ6z2c3Y2LG+vcsF/+b9VIzPOtnTCSpQUHnh4Ypd4108ybciCmkhk8tIVQxm9WlY6IINbavSlAYMyHNvKkxkgjVrFKUc57j+KuKv6Rz2PBPGv7VUa1Zn7cEZdiDfaiDD6fQhEtoQRsoTOEeHuDRuXOenGfnZb5acj49u/ADzusHf5Of1A==</latexit>
`1
<latexit sha1_base64="YYxVZb/ytCpQGjA2z/xlrLyTDVM=">AAACJ3icbVBNTxsxFHxLoYRAS1qOXCyiovQS7SJa2kOlSFx6pBIBpCRaeb0vxMJrr+y3iGiVf9A/0muv5T9wQ/TIlV9R7wYhPjqS5dHMG/l5klxJR2H4N1h4tbj0ermx0lxde/N2vfXu/ZEzhRXYF0YZe5Jwh0pq7JMkhSe5RZ4lCo+Ts/3KPz5H66TRhzTNcZTxUy3HUnDyUtzaHiZGpW6a+au8mMWSfWNPpQ7F8mPcaofdsAZ7SaJ70u41oMZB3LobpkYUGWoSijs3iMKcRiW3JIXCWXNYOMy5OOOnOPBU8wzdqKz/M2MfvJKysbH+aGK1+jhR8sxV+/nJjNPEPfcq8X/eoKDxl1EpdV4QajF/aFwoRoZV5bBUWhSkpp5wYaXflYkJt1yQr7A5rIOlNjQvb4I8RTtr1uV8rfDpoYqX5GinG33uRj92273OvCVowCZsQQci2IMefIcD6IOAn/Ab/sBl8Cu4Cq6Dm/noQnCf2YAnCG7/AZSKp7Y=</latexit>
xi = x(ti )
x3
<latexit sha1_base64="tPqvzQuur0DYkQKtz7xTE46gnjY=">AAACEXicbVDLSsNAFL3xWesr6tJNsAiuSuLbXcGNSwVbC20pk8ltO3QyE2YmxRL6FW7d6j+4E7d+gb/gVzhJRXwdGOZw7j3cwwkTzrTx/TdnZnZufmGxtFReXlldW3c3NhtapopinUouVTMkGjkTWDfMcGwmCkkccrwJh+f5/GaESjMprs04wU5M+oL1GCXGSl3XbYeSR3oc2y+7nXQPum7Fr/oFvL8k+CSVWgkKXHbd93YkaRqjMJQTrVuBn5hORpRhlOOk3E41JoQOSR9blgoSo+5kRfKJt2uVyOtJZZ8wXqF+d2Qk1nk4uxkTM9C/Z7n436yVmt5pJ2MiSQ0KOj3US7lnpJfX4EVMITV8bAmhitmsHh0QRaixZZXbhTET0kxrGiCJUE3KRTlnOY6+qvhLGvvV4LgaXB1WanvTlqAE27ADexDACdTgAi6hDhRGcA8P8OjcOU/Os/MyXZ1xPj1b8APO6wctCZ6X</latexit>
<latexit sha1_base64="acd9JfZNbDkl7lvH5hNr4W4k70I=">AAACEXicbVDLSsNAFL2pr1pfUZdugkVwVRKpr13BjUsFW4W2lMnkth06mQkzE7GEfoVbt/oP7sStX+Av+BVO0iK+DgxzOPce7uGECWfa+P67U5qbX1hcKi9XVlbX1jfcza2Wlqmi2KSSS3UTEo2cCWwaZjjeJApJHHK8Dkdn+fz6FpVmUlyZcYLdmAwE6zNKjJV6rtsJJY/0OLZfdjfp1Xtu1a/5Bby/JJiRaqMMBS567kcnkjSNURjKidbtwE9MNyPKMMpxUumkGhNCR2SAbUsFiVF3syL5xNuzSuT1pbJPGK9QvzsyEus8nN2MiRnq37Nc/G/WTk3/pJsxkaQGBZ0e6qfcM9LLa/AippAaPraEUMVsVo8OiSLU2LIqncKYCWmmNQ2RRKgmlaKc0xyHX1X8Ja2DWnBUCy7r1cb+tCUoww7swj4EcAwNOIcLaAKFW3iAR3hy7p1n58V5na6WnJlnG37AefsELqWemA==</latexit>
x4
<latexit sha1_base64="ACt9Z2ln8ntfZS9GhpVYaWod1cs=">AAACF3icbZDLSgNBEEVrfMb4igpu3AxGwY1hRnzuAm5cKhgVkhB6OhXT2I+hu0YMYz7ErVv9B3fi1qW/4Fc4mYj4utBwubeKLk4US+EoCN68kdGx8YnJwlRxemZ2br60sHjmTGI51riRxl5EzKEUGmskSOJFbJGpSOJ5dHU46M+v0Tph9Cn1YmwqdqlFR3BGWdQqLTdUZG5SbjQJnZjEbZJQ2G+VykElyOX/NeGnKVcLkOu4VXpvtA1PFGrikjlXD4OYmimzJLjEfrGROIwZv2KXWM+sZgpdM83v7/vrWdL2O8ZmT5Ofp983Uqac66kom1SMuu53Nwj/6+oJdfabqdBxQqj58KNOIn0y/gCG3xYWOcleZhi3IrvV511mGacMWbGRL6ba0BBWF1kbbb+YwzkYaOcLxV9ztlUJdyvhyXa5ujakBAVYgVXYgBD2oApHcAw14HAL9/AAj96d9+Q9ey/D0RHvc2cJfsh7/QCBIqF3</latexit>
continuous-time
<latexit sha1_base64="u0E0kaobO4dcLg5hr+J6hBA4a5A=">AAACanicbVHPb9MwGHWzAaX8KuOEdrEoSEWCKtnGxm6VuOzYSes2qSmR43xprDl2ZH9BVFn+Rs78C9OuuwJOOk37wZMsP73nZ396jgspLPr+7463tv7o8ZPu096z5y9evuq/3ji2ujQcplxLbU5jZkEKBVMUKOG0MMDyWMJJfPat8U9+gLFCqyNcFjDP2UKJVHCGTor6IpSQYnhOw1jLxC5zt1U/66jaqennO2I4yUQ9xMb5RDHa/ng/sk1DIxaZu+z7VlTdNg+dWUf9gT/yW9CHJLgmg3GXtJhE/Ysw0bzMQSGXzNpZ4Bc4r5hBwSXUvbC0UDB+xhYwc1SxHOy8aiup6QenJDTVxi2FtFVvJyqW22Y6dzJnmNn7XiP+z5uVmH6dV0IVJYLiq4fSUlLUtOmXJsIAR7l0hHEj3KyUZ8wwju4XemEbrJTGVf8ZsARM3WvL2W/w5aaKh+R4axTsjoLDncF4uGqJdMkmeUeGJCB7ZEwOyIRMCSe/yBX5Q/52Lr0N7623uTrqda4zb8gdeO//Ab7Xv6A=</latexit>
2
<latexit sha1_base64="Yr4EdV941G5d4F9Y7HI7OEu2xuQ=">AAACEXicbVDLSsNAFL2pr1pfUZdugkVwVZLic1dw41LBVqEtZTK5bYdOZsLMRCyhX+HWrf6DO3HrF/gLfoWTtIivA8Mczr2Hezhhwpk2vv/ulObmFxaXysuVldW19Q13c6ulZaooNqnkUt2ERCNnApuGGY43iUIShxyvw9FZPr++RaWZFFdmnGA3JgPB+owSY6We63ZCySM9ju2X3U169Z5b9Wt+Ae8vCWak2ihDgYue+9GJJE1jFIZyonU78BPTzYgyjHKcVDqpxoTQERlg21JBYtTdrEg+8fasEnl9qewTxivU746MxDoPZzdjYob69ywX/5u1U9M/6WZMJKlBQaeH+in3jPTyGryIKaSGjy0hVDGb1aNDogg1tqxKpzBmQpppTUMkEapJpSjnNMfhVxV/SateC45qweVBtbE/bQnKsAO7sA8BHEMDzuECmkDhFh7gEZ6ce+fZeXFep6slZ+bZhh9w3j4BK22elg==</latexit>
x2
<latexit sha1_base64="VSjXtvk3tP4GqyhJeZJraKYvkis=">AAACEXicbVDLSsNAFL3xWesr6tJNsAhdlUR87gpuXCrYB7SlTCa3dnAyE2YmYgn9Crdu9R/ciVu/wF/wK5ykRdR6YJjDufdwDydMONPG9z+cufmFxaXl0kp5dW19Y9Pd2m5qmSqKDSq5VO2QaORMYMMww7GdKCRxyLEV3p7n89YdKs2kuDajBHsxuRFswCgxVuq7bjeUPNKj2H7Z/bgf9N2KX/MLeLMkmJJKvQQFLvvuZzeSNI1RGMqJ1p3AT0wvI8owynFc7qYaE0JvyQ12LBUkRt3LiuRjb98qkTeQyj5hvEL96chIrPNwdjMmZqj/znLxv1knNYPTXsZEkhoUdHJokHLPSC+vwYuYQmr4yBJCFbNZPTokilBjyyp3C2MmpJnUNEQSoRqXi3LOchx9VzFLmge14LgWXB1W6tVJS1CCXdiDKgRwAnW4gEtoAIU7eIQneHYenBfn1XmbrM45U88O/ILz/gUp0Z6V</latexit>
motion prior
<latexit sha1_base64="TTmtJJJgYmBn7n4RbC66UYQXrNA=">AAACanicbVFba9swGFW8W5bdsvZp9EUsG2SwBTtt1/UtsJc9prC0hTgzsvw5FpUlI30eDa5/4577F0pf+7pNdsroZQeEDufoSB9HcSGFRd8/73gPHj56/KT7tPfs+YuXr/qvNw6tLg2HGddSm+OYWZBCwQwFSjguDLA8lnAUn3xt/KOfYKzQ6juuCljkbKlEKjhDJ0V9EUpIMTyjYaxlYle526rTOqq2a/rplhhOM1EPsXE+UozGH+5GxjQ0Ypm5y36Mo+qmeeDMOuoP/JHfgt4nwTUZTLqkxTTqX4SJ5mUOCrlk1s4Dv8BFxQwKLqHuhaWFgvETtoS5o4rlYBdVW0lN3zsloak2bimkrXozUbHcNtO5kznDzN71GvF/3rzE9MuiEqooERRfP5SWkqKmTb80EQY4ypUjjBvhZqU8Y4ZxdL/QC9tgpTSu+8+AJWDqXlvOfoPdf1XcJ4fjUfB5FBzsDCbDdUukS7bIWzIkAdkjE/KNTMmMcPKLXJHf5E/n0tvw3nhb66Ne5zqzSW7Be/cXtfa/mw==</latexit>
<latexit sha1_base64="2oG3EZWO2xoOOXOSedwYPCwninU=">AAACSnicbVBNb9NAEF2HQtPwFeDIZdUIKUgosqtS4BaplyIurdS0leJgrdfjZNX1rrU7RkSLfxN/pNceuMCdY2+IS9dOVbWUJ4326b0ZzexLSykshuGPoHNv7f6D9e5G7+Gjx0+e9p89P7K6MhwmXEttTlJmQQoFExQo4aQ0wIpUwnF6utv4x1/AWKHVIS5LmBVsrkQuOEMvJf2PsYQc4280TrXM7LLwj/taJy6qaWzEfOG9z1uJu2nHBcMFZ9J9qushJtEbX6/rpD8IR2ELepdEV2Qw7pIW+0n/d5xpXhWgkEtm7TQKS5w5ZlBwCXUvriyUjJ+yOUw9VawAO3Ptl2v6yisZzbXxpZC26s0JxwrbnOs7m2vtv14j/s+bVpi/nzmhygpB8dWivJIUNW3yo5kwwFEuPWHcCH8r5QtmGEefci9uB53SuMp3ASwDU/facD40eHsdxV1ytDWKdkbRwfZgPFylRLrkJdkkQxKRd2RM9sg+mRBOvpNz8pP8Cs6Ci+BP8HfV2gmuZl6QW+isXQKN8rWp</latexit>
2
2 kx3 (t3 , t2 )x2 kQ2
kx1 kK(t1 ,t1 ) <latexit sha1_base64="LCLkPYigzkh4aS+EVQHQSHiAREM=">AAACanicbVFba9swGFXcXbLs0qx9Gn0RzQYZbMEOu3Rvgb7sMYWlLcSZkeXPsagsGelzaXD9G/u8v1D2utduslNGbweEDufoSB9HcSGFRd//1fE2Hj1+8rT7rPf8xctXm/3XW4dWl4bDjGupzXHMLEihYIYCJRwXBlgeSziKT/Yb/+gUjBVa/cBVAYucLZVIBWfopKgvQgkphuc0jLVM7Cp3W3VWR9W4ph9vieE0E/UQG+cDxSh4fzcS0NCIZeYu+zmOqpvmgTPrqD/wR34Lep8E12Qw6ZIW06h/GSaalzko5JJZOw/8AhcVMyi4hLoXlhYKxk/YEuaOKpaDXVRtJTV955SEptq4pZC26s1ExXLbTOdO5gwze9drxIe8eYnp3qISqigRFF8/lJaSoqZNvzQRBjjKlSOMG+FmpTxjhnF0v9AL22ClNK77z4AlYOpeW863Bp//V3GfHI5HwZdRcPBpMBmuWyJdskN2yZAE5CuZkO9kSmaEkwvyh1yRv53f3pb3xttZH/U615ltcgve23+tFb+W</latexit>
2
kx2 (t2 , t1 )x1 kQ1
Figure 3.3 Example of Gaussian process (GP) continuous-time factor graph. The motion
prior is based on a kernel function derived from a stochastic differential equation (SDE)
for Markovian state x(t). This results in a very sparse set of factors: a single unary factor
at the initial state and then binary factors linking consecutive states.
where Φ(t, s) = exp (A(t − s)) is known as the transition function and t1 is the
time stamp of the first measurement. The function, x(t), is also a Gaussian pro-
cess. To keep the explanation simple, if we assume the mean of the initial state is
zero, E[x(t1 )] = 0, then the mean will remain zero for all subsequent times. The
covariance function of the state (i.e., the kernel function), K(t, t′ ), can be calculated
as
Z min(t,t′ )
′ ′
K(t, t ) = Φ(t, t1 )K(t1 , t1 )Φ(t , t1 ) + T
Φ(t, s)LQLT Φ(t′ , s)T ds, (3.41)
t1
which looks daunting. However, we can evaluate this kernel function at all pairs of
measurement times (i.e., build the kernel matrix) using the tidy relation
K = ΦQΦT , (3.42)
3.2 Continuous-Time Trajectories 67
R ti
where Q = diag(K(t1 , t1 ), Q1 , . . . , QM ), Qi = ti−1 Φ(ti , s)LQLT Φ(ti , s)T ds, and
I
Φ(t , t ) I
2 1
Φ(t3 , t1 ) Φ(t3 , t2 ) I
Φ= .. .. .. , (3.43)
..
. . . .
Φ(tM −1 , t1 ) Φ(tM −1 , t2 ) Φ(tM −1 , t3 ) · · · I
Φ(tM , t1 ) Φ(tM , t2 ) Φ(tM , t3 ) · · · Φ(tM , tM −1 ) I
with M the last measurement time index. However, since it is the inverse kernel
matrix that we want in (3.38), K −1 = Φ−⊤ Q−1 Φ−1 , we can compute this directly.
The middle matrix, Q, is block-diagonal and so its inverse can be computed one
diagonal block at a time. Importantly, when we compute the inverse of Φ, we find
I
−Φ(t , t ) I
2 1
−Φ(t3 , t2 ) I
−1
Φ = .. , (3.44)
−Φ(t4 , t3 ) .
..
. I
−Φ(tM , tM −1 ) I
which is all zeros except for the main block-diagonal and one block-diagonal below.
Thus, when we construct the inverse kernel matrix, K −1 , it will be block-tridiagonal,
for any length of trajectory. Based on our earlier discussions about factor graphs,
we know that the sparsity of the left-hand side in (3.38) is closely tied to the
factor-graph structure. In this case, K −1 serves as a motion prior over the entire
trajectory, but it is easily described using a very sparse factor graph. Figure 3.3
shows how the block-tridiagonal structure of K −1 turns into a factor graph.
The reason K −1 has such a sparse factor graph is that we started from an
SDE whose state, x(t), is Markovian. Practically speaking, what this means is that
depending on the motion prior that we want to express using (3.39), we may need
to use a higher-order state, i.e., not simply the pose but also some of its derivatives.
For example, if we want to use the so-called ‘constant-velocity’ prior, our SDE can
be chosen to be
ṗ(t) 0 I p(t) 0
= + w(t), (3.45)
v̇(t) 0 0 v(t) I
| {z } | {z } | {z } |{z}
ẋ(t) A x(t) L
where the state now comprises pose and its derivative, v(t) = ṗ(t). Due to the
use of this augmented state, this is sometimes this is referred to as simultaneous
trajectory estimation and mapping (STEAM), a variation of SLAM.
This formulation of continuous-time trajectory estimation is really an example of
Gaussian process regression [217]. By making this connection, once we have solved
68 Advanced State Variable Representations
at the measurement times, we can easily query the trajectory at other times of
interest using GP interpolation (for both mean and covariance); with our sparse
kernel approach, the cost of each query is constant time with respect to the number
of measurements, M , as it only involves the estimated states at the two times
bracketing the query.
Importantly, we can also use the resulting GP interpolation scheme to reduce the
number of control points needed (i.e., we do not need one at every measurement
time), which is similar to the idea of GP inducing points. For example, we might put
one control point per lidar scan but still make use of all the individual time stamps
of each point gathered during a sweep. This last point is quite important because in
contrast to discrete-time estimation, the measurement times, the estimation times,
and the query times can now all be different in this continuous formulation. More-
over, in the GP approach we do not need to worry about overfitting by including
too many estimation times as the kernel provides proper regularization. However,
we still need enough estimation times to capture the detail of the trajectory.
where the pk are now control points of our spline (replacing the earlier coefficients)
and the basis functions, ψk (t), are now scalar. Then, we can rewrite this in cumu-
lative form as
K
X
p(t) = ψ1c (t) p1 + ψkc (t) (pk − pk−1 ) , (3.47)
k=2
where
K
X
ψkc (t) = ψℓ (t) (3.48)
ℓ=k
<latexit sha1_base64="IRydpEp7JrY20NYZvqwHW7ohptw=">AAACAHicbVDLSsNAFL2pr1pfVZduBovgqiTic1dw47IFWwttKJPJTTt0MgkzE6GEbty61X9wJ279E3/BrzBJi6j1wMDhnHu4d44XC66NbX9YpaXlldW18nplY3Nre6e6u9fRUaIYtlkkItX1qEbBJbYNNwK7sUIaegLvvPF17t/do9I8krdmEqMb0qHkAWfUZFLLGVRrdt0uQBaJMye1RhkKNAfVz74fsSREaZigWvccOzZuSpXhTOC00k80xpSN6RB7GZU0RO2mxaFTcpQpPgkilT1pSKH+TKQ01HoSetlkSM1I//Vy8T+vl5jg0k25jBODks0WBYkgJiL5r4nPFTIjJhmhTPHsVsJGVFFmsm4q/SKYysgUrQxGSH1U00pRzlWOs+8qFknnpO6c153Waa1BZi1BGQ7gEI7BgQtowA00oQ0MEB7hCZ6tB+vFerXeZqMla57Zh1+w3r8ACKWXZA==</latexit>
<latexit sha1_base64="tf0tQCEYLEqgtHW/mU29DnziMd4=">AAACAHicbVDLSsNAFL2pr1pfVZduBovgqiTic1dw47IFWwttKJPJTTt0MgkzE6GEbty61X9wJ279E3/BrzBJi6j1wMDhnHu4d44XC66NbX9YpaXlldW18nplY3Nre6e6u9fRUaIYtlkkItX1qEbBJbYNNwK7sUIaegLvvPF17t/do9I8krdmEqMb0qHkAWfUZFLLHlRrdt0uQBaJMye1RhkKNAfVz74fsSREaZigWvccOzZuSpXhTOC00k80xpSN6RB7GZU0RO2mxaFTcpQpPgkilT1pSKH+TKQ01HoSetlkSM1I//Vy8T+vl5jg0k25jBODks0WBYkgJiL5r4nPFTIjJhmhTPHsVsJGVFFmsm4q/SKYysgUrQxGSH1U00pRzlWOs+8qFknnpO6c153Waa1BZi1BGQ7gEI7BgQtowA00oQ0MEB7hCZ6tB+vFerXeZqMla57Zh1+w3r8ABwmXYw==</latexit>
<latexit sha1_base64="nvdq8F622th/BF8IyaHma8eSVbY=">AAACBXicbVDLSgNBEOyNrxhfUY9eFoPgKexKfN0CXjxGMFFIQpid7SRjZmeWmV4hLDl79ar/4E28+h3+gl/hZiPiq2CgqOqieyqIpbDkeW9OYW5+YXGpuFxaWV1b3yhvbrWsTgzHJtdSm+uAWZRCYZMESbyODbIokHgVjM6m/tUtGiu0uqRxjN2IDZToC84ok1odHmqyvXLFq3o53L/E/ySVehFyNHrl906oeRKhIi6ZtW3fi6mbMkOCS5yUOonFmPERG2A7o4pFaLtpfu3E3cuU0O1rkz1Fbq5+T6QssnYcBdlkxGhof3tT8T+vnVD/pJsKFSeEis8W9RPpknanX3dDYZCTHGeEcSOyW10+ZIZxygoqdfJgqjTl1fSGyEI0k1JezukUh19V/CWtg6p/VPUvapV6bdYSFGEHdmEffDiGOpxDA5rA4Qbu4QEenTvnyXl2XmajBeczsw0/4Lx+AHmbmfI=</latexit>
···
0 <latexit sha1_base64="tf0tQCEYLEqgtHW/mU29DnziMd4=">AAACAHicbVDLSsNAFL2pr1pfVZduBovgqiTic1dw47IFWwttKJPJTTt0MgkzE6GEbty61X9wJ279E3/BrzBJi6j1wMDhnHu4d44XC66NbX9YpaXlldW18nplY3Nre6e6u9fRUaIYtlkkItX1qEbBJbYNNwK7sUIaegLvvPF17t/do9I8krdmEqMb0qHkAWfUZFLLHlRrdt0uQBaJMye1RhkKNAfVz74fsSREaZigWvccOzZuSpXhTOC00k80xpSN6RB7GZU0RO2mxaFTcpQpPgkilT1pSKH+TKQ01HoSetlkSM1I//Vy8T+vl5jg0k25jBODks0WBYkgJiL5r4nPFTIjJhmhTPHsVsJGVFFmsm4q/SKYysgUrQxGSH1U00pRzlWOs+8qFknnpO6c153Waa1BZi1BGQ7gEI7BgQtowA00oQ0MEB7hCZ6tB+vFerXeZqMla57Zh1+w3r8ABwmXYw==</latexit> <latexit sha1_base64="IV49BjYvrOBP6CAFMC5K2/ImtzA=">AAACAHicbVDLSsNAFL2pr1pfVZduBovgqiTic1dw47KFvqANZTK5bYdOJmFmIpTQjVu3+g/uxK1/4i/4FSZpEbUeGDiccw/3zvEiwbWx7Q+rsLK6tr5R3Cxtbe/s7pX3D9o6jBXDFgtFqLoe1Si4xJbhRmA3UkgDT2DHm9xmfuceleahbJpphG5AR5IPOaMmlRrNQbliV+0cZJk4C1KpFSFHfVD+7PshiwOUhgmqdc+xI+MmVBnOBM5K/VhjRNmEjrCXUkkD1G6SHzojJ6nik2Go0icNydWfiYQGWk8DL50MqBnrv14m/uf1YjO8dhMuo9igZPNFw1gQE5Ls18TnCpkR05RQpnh6K2FjqigzaTelfh5MZGjyVgZjpD6qWSkv5ybDxXcVy6R9VnUuq07jvFIj85agCEdwDKfgwBXU4A7q0AIGCI/wBM/Wg/VivVpv89GCtcgcwi9Y719A+ZeH</latexit> <latexit sha1_base64="mD29PdzRIsapMVqtHxDgsfJC4zo=">AAACAXicbVDLSsNAFL3xWeur6tLNYBFclaT43BXcuKzSF7ShTKY37dDJJMxMhBK6cutW/8GduPVL/AW/wiQtotYDA4dz7uHeOV4kuDa2/WEtLa+srq0XNoqbW9s7u6W9/ZYOY8WwyUIRqo5HNQousWm4EdiJFNLAE9j2xteZ375HpXkoG2YSoRvQoeQ+Z9Sk0l210S+V7YqdgywSZ07KtQLkqPdLn71ByOIApWGCat117Mi4CVWGM4HTYi/WGFE2pkPsplTSALWb5JdOyXGqDIgfqvRJQ3L1ZyKhgdaTwEsnA2pG+q+Xif953dj4l27CZRQblGy2yI8FMSHJvk0GXCEzYpISyhRPbyVsRBVlJi2n2MuDiQxNXkt/hHSAalrMy7nKcPZdxSJpVSvOecW5PS3XyKwlKMAhHMEJOHABNbiBOjSBgQ+P8ATP1oP1Yr1ab7PRJWueOYBfsN6/ALafl8M=</latexit> <latexit sha1_base64="29S4cSqDnXVJkjwuwmz0FZQ8xRk=">AAACAXicbVDLSsNAFL2prxpfVZduBovgqiS+3RXcuKzSF7SlTKY37dDJJMxMhBK6cutW/8GduPVL/AW/wiQt4uvAwOGce7h3jhcJro3jvFuFhcWl5ZXiqr22vrG5VdreaeowVgwbLBShantUo+ASG4Ybge1IIQ08gS1vfJX5rTtUmoeybiYR9gI6lNznjJpUuj2u90tlp+LkIH+JOyflahFy1Pqlj+4gZHGA0jBBte64TmR6CVWGM4FTuxtrjCgb0yF2UippgLqX5JdOyUGqDIgfqvRJQ3L1eyKhgdaTwEsnA2pG+reXif95ndj4F72Eyyg2KNlskR8LYkKSfZsMuEJmxCQllCme3krYiCrKTFqO3c2DiQxNXkt/hHSAamrn5VxmOP2q4i9pHlXcs4p7c1KukllLUIQ92IdDcOEcqnANNWgAAx8e4BGerHvr2XqxXmejBWue2YUfsN4+Abg8l8Q=</latexit> <latexit sha1_base64="Foup/KXIecj5oiAVgzbPX1x9xWQ=">AAACAXicbVDLSsNAFL2pr1pfVZduBovgqiTic1dw47JKX9CGMpnetEMnkzAzEUroyq1b/Qd34tYv8Rf8CpO0iFoPDBzOuYd753iR4NrY9odVWFpeWV0rrpc2Nre2d8q7ey0dxophk4UiVB2PahRcYtNwI7ATKaSBJ7Dtja8zv32PSvNQNswkQjegQ8l9zqhJpbvTRr9csat2DrJInDmp1IqQo94vf/YGIYsDlIYJqnXXsSPjJlQZzgROS71YY0TZmA6xm1JJA9Rukl86JUepMiB+qNInDcnVn4mEBlpPAi+dDKgZ6b9eJv7ndWPjX7oJl1FsULLZIj8WxIQk+zYZcIXMiElKKFM8vZWwEVWUmbScUi8PJjI0eS39EdIBqmkpL+cqw9l3FYukdVJ1zqvO7WmlRmYtQREO4BCOwYELqMEN1KEJDHx4hCd4th6sF+vVepuNFqx5Zh9+wXr/ArnZl8U=</latexit> <latexit sha1_base64="lrKCIVIOoINO+iR9jVlEp1FXE7I=">AAACAXicbVDLSsNAFL3xWeur6tLNYBFclUSsj13BjcsqfUEbymR60w6dTMLMRCihK7du9R/ciVu/xF/wK0zSImo9MHA45x7uneNFgmtj2x/W0vLK6tp6YaO4ubW9s1va22/pMFYMmywUoep4VKPgEpuGG4GdSCENPIFtb3yd+e17VJqHsmEmEboBHUruc0ZNKt1VG/1S2a7YOcgiceakXCtAjnq/9NkbhCwOUBomqNZdx46Mm1BlOBM4LfZijRFlYzrEbkolDVC7SX7plBynyoD4oUqfNCRXfyYSGmg9Cbx0MqBmpP96mfif142Nf+kmXEaxQclmi/xYEBOS7NtkwBUyIyYpoUzx9FbCRlRRZtJyir08mMjQ5LX0R0gHqKbFvJyrDNXvKhZJ67TinFec27NyjcxaggIcwhGcgAMXUIMbqEMTGPjwCE/wbD1YL9ar9TYbXbLmmQP4Bev9C7t2l8Y=</latexit>
<latexit sha1_base64="EKOMK3uPp1vs3zaWXWKl/HHIMws=">AAACBXicbVDLSsNAFL2pr1pfVZduBotQF5ak+NwV3AhuKvQFbSiT6W07djIJMxOhhK7dutV/cCdu/Q5/wa8wTYv4OjBwOOce7p3jhYJrY9vvVmZhcWl5JbuaW1vf2NzKb+80dBAphnUWiEC1PKpRcIl1w43AVqiQ+p7Apje6nPrNO1SaB7JmxiG6Ph1I3ueMmkRqFK+Pyoe1br5gl+wU5C9x5qRQyUKKajf/0ekFLPJRGiao1m3HDo0bU2U4EzjJdSKNIWUjOsB2QiX1Ubtxeu2EHCRKj/QDlTxpSKp+T8TU13rse8mkT81Q//am4n9eOzL9czfmMowMSjZb1I8EMQGZfp30uEJmxDghlCme3ErYkCrKTFJQrpMGYxmYtJruEGkP1SSXlnMxxclXFX9Jo1xyTkvOzXGhQmYtQRb2YB+K4MAZVOAKqlAHBrfwAI/wZN1bz9aL9TobzVjzzC78gPX2CZETmLQ=</latexit> <latexit sha1_base64="xmWGJ/ZUcmwbbXYdg+MpfxXwm/g=">AAACBXicbVDLSsNAFL2pr1pfVZduBotQF5ZEfO4KbgQ3FfqCtpTJ9LYdO5mEmYlQQtdu3eo/uBO3foe/4FeYpEXUemDgcM493DvHDQTXxrY/rMzC4tLySnY1t7a+sbmV396paz9UDGvMF75qulSj4BJrhhuBzUAh9VyBDXd0lfiNe1Sa+7JqxgF2PDqQvM8ZNbFUL94cOYfVbr5gl+wUZJ44M1IoZyFFpZv/bPd8FnooDRNU65ZjB6YTUWU4EzjJtUONAWUjOsBWTCX1UHei9NoJOYiVHun7Kn7SkFT9mYiop/XYc+NJj5qh/usl4n9eKzT9i07EZRAalGy6qB8KYnySfJ30uEJmxDgmlCke30rYkCrKTFxQrp0GI+mbtJruEGkP1SSXlnOZ4PS7inlSPy45ZyXn9qRQJtOWIAt7sA9FcOAcynANFagBgzt4hCd4th6sF+vVepuOZqxZZhd+wXr/Ao91mLM=</latexit>
<latexit sha1_base64="EAImJcwfwD6OvGQJQ6ogTOIKVSU=">AAACAXicbVDLSsNAFL2prxpfVZduBovgqiTic1dwI7ip0he0pUymN+3QySTMTIQSunLrVv/Bnbj1S/wFv8IkLeLrwMDhnHu4d44XCa6N47xbhYXFpeWV4qq9tr6xuVXa3mnqMFYMGywUoWp7VKPgEhuGG4HtSCENPIEtb3yZ+a07VJqHsm4mEfYCOpTc54yaVLq9rvdLZafi5CB/iTsn5WoRctT6pY/uIGRxgNIwQbXuuE5keglVhjOBU7sba4woG9MhdlIqaYC6l+SXTslBqgyIH6r0SUNy9XsioYHWk8BLJwNqRvq3l4n/eZ3Y+Oe9hMsoNijZbJEfC2JCkn2bDLhCZsQkJZQpnt5K2Igqykxajt3Ng4kMTV5Lf4R0gGpq5+VcZDj5quIvaR5V3NOKe3NcrpJZS1CEPdiHQ3DhDKpwBTVoAAMfHuARnqx769l6sV5nowVrntmFH7DePgHe9Jfc</latexit>
<latexit sha1_base64="IRydpEp7JrY20NYZvqwHW7ohptw=">AAACAHicbVDLSsNAFL2pr1pfVZduBovgqiTic1dw47IFWwttKJPJTTt0MgkzE6GEbty61X9wJ279E3/BrzBJi6j1wMDhnHu4d44XC66NbX9YpaXlldW18nplY3Nre6e6u9fRUaIYtlkkItX1qEbBJbYNNwK7sUIaegLvvPF17t/do9I8krdmEqMb0qHkAWfUZFLLGVRrdt0uQBaJMye1RhkKNAfVz74fsSREaZigWvccOzZuSpXhTOC00k80xpSN6RB7GZU0RO2mxaFTcpQpPgkilT1pSKH+TKQ01HoSetlkSM1I//Vy8T+vl5jg0k25jBODks0WBYkgJiL5r4nPFTIjJhmhTPHsVsJGVFFmsm4q/SKYysgUrQxGSH1U00pRzlWOs+8qFknnpO6c153Waa1BZi1BGQ7gEI7BgQtowA00oQ0MEB7hCZ6tB+vFerXeZqMla57Zh1+w3r8ACKWXZA==</latexit>
0 T 2T 3T 4T 5T (K 2)T (K 1)T KT
1
<latexit sha1_base64="sb63SUsb1V0UasSTB8546dUnstQ=">AAACCnicbVDLSgNBEOyNrxhfUY9eFqOgl7ArPm8BLx4VTCIkMcxOOsmQ2ZllplcIS/7Aq1f9B2/i1Z/wF/wKNxsRNRYMFFVddE8FkRSWPO/dyc3Mzs0v5BcLS8srq2vF9Y2a1bHhWOVaanMTMItSKKySIIk3kUEWBhLrweB87Nfv0Fih1TUNI2yFrKdEV3BGqdRoRla0/Vu+R/vtYskrexncaeJ/kVIlDxku28WPZkfzOERFXDJrG74XUSthhgSXOCo0Y4sR4wPWw0ZKFQvRtpLs5JG7myodt6tN+hS5mfozkbDQ2mEYpJMho779643F/7xGTN3TViJUFBMqPlnUjaVL2h3/3+0Ig5zkMCWMG5He6vI+M4xT2lKhmQUTpSnrp91H1kEzKmTlnI1x9F3FNKkdlP3jsn91WKrsTFqCPGzBNuyBDydQgQu4hCpw0PAAj/Dk3DvPzovzOhnNOV+ZTfgF5+0TR/ObWQ==</latexit>
c
1 (t)
<latexit sha1_base64="tf0tQCEYLEqgtHW/mU29DnziMd4=">AAACAHicbVDLSsNAFL2pr1pfVZduBovgqiTic1dw47IFWwttKJPJTTt0MgkzE6GEbty61X9wJ279E3/BrzBJi6j1wMDhnHu4d44XC66NbX9YpaXlldW18nplY3Nre6e6u9fRUaIYtlkkItX1qEbBJbYNNwK7sUIaegLvvPF17t/do9I8krdmEqMb0qHkAWfUZFLLHlRrdt0uQBaJMye1RhkKNAfVz74fsSREaZigWvccOzZuSpXhTOC00k80xpSN6RB7GZU0RO2mxaFTcpQpPgkilT1pSKH+TKQ01HoSetlkSM1I//Vy8T+vl5jg0k25jBODks0WBYkgJiL5r4nPFTIjJhmhTPHsVsJGVFFmsm4q/SKYysgUrQxGSH1U00pRzlWOs+8qFknnpO6c153Waa1BZi1BGQ7gEI7BgQtowA00oQ0MEB7hCZ6tB+vFerXeZqMla57Zh1+w3r8ABwmXYw==</latexit>
<latexit sha1_base64="nvdq8F622th/BF8IyaHma8eSVbY=">AAACBXicbVDLSgNBEOyNrxhfUY9eFoPgKexKfN0CXjxGMFFIQpid7SRjZmeWmV4hLDl79ar/4E28+h3+gl/hZiPiq2CgqOqieyqIpbDkeW9OYW5+YXGpuFxaWV1b3yhvbrWsTgzHJtdSm+uAWZRCYZMESbyODbIokHgVjM6m/tUtGiu0uqRxjN2IDZToC84ok1odHmqyvXLFq3o53L/E/ySVehFyNHrl906oeRKhIi6ZtW3fi6mbMkOCS5yUOonFmPERG2A7o4pFaLtpfu3E3cuU0O1rkz1Fbq5+T6QssnYcBdlkxGhof3tT8T+vnVD/pJsKFSeEis8W9RPpknanX3dDYZCTHGeEcSOyW10+ZIZxygoqdfJgqjTl1fSGyEI0k1JezukUh19V/CWtg6p/VPUvapV6bdYSFGEHdmEffDiGOpxDA5rA4Qbu4QEenTvnyXl2XmajBeczsw0/4Lx+AHmbmfI=</latexit>
···
0
<latexit sha1_base64="A/rnaKBv4IIwCzAIh8cKeKXSu+4=">AAACCnicbVDLSgNBEOz1GeMr6tHLYhTiJeyKz1vAi0cFYwJJDLOTTjI4O7PM9AphyR949ar/4E28+hP+gl/hZhNEjQUDRVUX3VNBJIUlz/twZmbn5hcWc0v55ZXVtfXCxuaN1bHhWOVaalMPmEUpFFZJkMR6ZJCFgcRacHc+8mv3aKzQ6poGEbZC1lOiKzijVGo0IyvaB7e8RPvtQtErexncaeJPSLGSgwyX7cJns6N5HKIiLpm1Dd+LqJUwQ4JLHOabscWI8TvWw0ZKFQvRtpLs5KG7lyodt6tN+hS5mfozkbDQ2kEYpJMho779643E/7xGTN3TViJUFBMqPl7UjaVL2h393+0Ig5zkICWMG5He6vI+M4xT2lK+mQUTpSnrp91H1kEzzGflnI1w9F3FNLk5KPvHZf/qsFjZHbcEOdiGHSiBDydQgQu4hCpw0PAIT/DsPDgvzqvzNh6dcSaZLfgF5/0LSZSbWg==</latexit> <latexit sha1_base64="+f2VlbW7kUyOe5pRm1+t4b3J5qY=">AAACCnicbVDLSgNBEOz1GeMr6tHLYhTiJez69hbw4lHBGCGJYXbSSYbMziwzvUJY8gdeveo/eBOv/oS/4Fe42YiosWCgqOqieyqIpLDkee/O1PTM7Nx8biG/uLS8slpYW7+2OjYcq1xLbW4CZlEKhVUSJPEmMsjCQGIt6J+N/NodGiu0uqJBhM2QdZXoCM4oleqNyIrW/i0v0W6rUPTKXgZ3kvhfpFjJQYaLVuGj0dY8DlERl8zauu9F1EyYIcElDvON2GLEeJ91sZ5SxUK0zSQ7eejupErb7WiTPkVupv5MJCy0dhAG6WTIqGf/eiPxP68eU+ekmQgVxYSKjxd1YumSdkf/d9vCICc5SAnjRqS3urzHDOOUtpRvZMFEacr6afWQtdEM81k5pyMcflcxSa73yv5R2b88KFa2xy1BDjZhC0rgwzFU4BwuoAocNDzAIzw5986z8+K8jkennK/MBvyC8/YJSzWbWw==</latexit> <latexit sha1_base64="macRzjk86TnjlLqPUa76UmWMbxg=">AAACCnicbVDLSgNBEOz1GeMr6tHLYhTiJeyKz1vAi0cFYwJJDLOTTjI4O7PM9AphyR949ar/4E28+hP+gl/hZhNEjQUDRVUX3VNBJIUlz/twZmbn5hcWc0v55ZXVtfXCxuaN1bHhWOVaalMPmEUpFFZJkMR6ZJCFgcRacHc+8mv3aKzQ6poGEbZC1lOiKzijVGo0Iyvah7e8RPvtQtErexncaeJPSLGSgwyX7cJns6N5HKIiLpm1Dd+LqJUwQ4JLHOabscWI8TvWw0ZKFQvRtpLs5KG7lyodt6tN+hS5mfozkbDQ2kEYpJMho779643E/7xGTN3TViJUFBMqPl7UjaVL2h393+0Ig5zkICWMG5He6vI+M4xT2lK+mQUTpSnrp91H1kEzzGflnI1w9F3FNLk5KPvHZf/qsFjZHbcEOdiGHSiBDydQgQu4hCpw0PAIT/DsPDgvzqvzNh6dcSaZLfgF5/0LTNabXA==</latexit>
<latexit sha1_base64="P3YKFE7ogKs4GIRJAtBEaahZdd4=">AAACCnicbVDLSgNBEOz1GeMr6tHLYhTiJeyKz1vAi0cFYwJJDLOTTjI4O7PM9AphyR949ar/4E28+hP+gl/hZhNEjQUDRVUX3VNBJIUlz/twZmbn5hcWc0v55ZXVtfXCxuaN1bHhWOVaalMPmEUpFFZJkMR6ZJCFgcRacHc+8mv3aKzQ6poGEbZC1lOiKzijVGo0IyvaR7e8RPvtQtErexncaeJPSLGSgwyX7cJns6N5HKIiLpm1Dd+LqJUwQ4JLHOabscWI8TvWw0ZKFQvRtpLs5KG7lyodt6tN+hS5mfozkbDQ2kEYpJMho779643E/7xGTN3TViJUFBMqPl7UjaVL2h393+0Ig5zkICWMG5He6vI+M4xT2lK+mQUTpSnrp91H1kEzzGflnI1w9F3FNLk5KPvHZf/qsFjZHbcEOdiGHSiBDydQgQu4hCpw0PAIT/DsPDgvzqvzNh6dcSaZLfgF5/0LTnebXQ==</latexit> <latexit sha1_base64="D7l3U4xoGvUkBoLsB2p4xiYO+Qk=">AAACEHicbZDLSsNAFIZPvNZ6q7p0E6yCLixJ8boruBHcKNhWaGqZTE/t0MkkzJwIJfQl3LrVd3Anbn0DX8GnME1EvP0w8PP/5zCHz4+kMOQ4b9bE5NT0zGxhrji/sLi0XFpZbZgw1hzrPJShvvKZQSkU1kmQxKtIIwt8iU1/cDLum7eojQjVJQ0jbAfsRome4IzSqFNa9iIjOsnZbnV0zbdpp1MqOxUnk/3XuJ+mXCtApvNO6d3rhjwOUBGXzJiW60TUTpgmwSWOil5sMGJ8wG6wlVrFAjTtJDt8ZG+lSdfuhTp9iuws/b6RsMCYYeCnkwGjvvndjcP/ulZMvaN2IlQUEyqef9SLpU2hPaZgd4VGTnKYGsa1SG+1eZ9pxillVfSyxUSFlFPqI+uiHhUzOMdj7X+h+Gsa1Yp7UHEv9sq1zZwSFGAdNmAbXDiEGpzCOdSBQwz38ACP1p31ZD1bL/nohPW5swY/ZL1+ALuPnSM=</latexit> <latexit sha1_base64="nMDhS5B1D1sjJBwy60z03JcSI3U=">AAACEHicbZDNSsNAFIVv/K31p1WXboJV0IUlEX93BTeCmwq2FtpaJtPbduhkEmZuhBL6Em7d6ju4E7e+ga/gU5imRdR6YOBwzr3M5fNCKQw5zoc1Mzs3v7CYWcour6yu5fLrG1UTRJpjhQcy0DWPGZRCYYUESayFGpnvSbz1+hej/vYetRGBuqFBiE2fdZXoCM4oiVr5XCM0ohVfHbjDO75H+618wSk6qexp405MoZSBVOVW/rPRDnjkoyIumTF11wmpGTNNgkscZhuRwZDxPutiPbGK+WiacXr40N5NkrbdCXTyFNlp+nMjZr4xA99LJn1GPfO3G4X/dfWIOmfNWKgwIlR8/FEnkjYF9oiC3RYaOclBYhjXIrnV5j2mGaeEVbaRLsYqoDGlHrI26mE2hXM+0vE3imlTPSy6J0X3+qhQ2hlTggxswTbsgQunUIJLKEMFOETwCE/wbD1YL9ar9TYenbEmO5vwS9b7F7ntnSI=</latexit>
<latexit sha1_base64="5dbsJI9Gf2Rzwu69/S83j+Nl4tk=">AAACDHicbZDNSsNAFIVv6l+tf1WXboJV0E1JxN9dwY3gRsG2QhvLZHrbDk4mceZGKKGv4NatvoM7ces7+Ao+hWlaRK0HBg7n3MtcPj+SwpDjfFi5qemZ2bn8fGFhcWl5pbi6VjNhrDlWeShDfe0zg1IorJIgideRRhb4Euv+7emwr9+jNiJUV9SP0AtYV4mO4IzSyGtGRrSS88EN36HdVrHklJ1M9qRxx6ZUyUOmi1bxs9kOeRygIi6ZMQ3XichLmCbBJQ4KzdhgxPgt62IjtYoFaLwkO3pgb6dJ2+6EOn2K7Cz9uZGwwJh+4KeTAaOe+dsNw/+6RkydYy8RKooJFR991ImlTaE9JGC3hUZOsp8axrVIb7V5j2nGKeVUaGaLiQopI9TqIWujHhQyOCdDHXyjmDS1vbJ7WHYv90uVrRElyMMGbMIOuHAEFTiDC6gChzt4hCd4th6sF+vVehuN5qzxzjr8kvX+BVXUnH8=</latexit>
c c c c c c c
2 (t) 3 (t) 4 (t) 5 (t) K 2 (t) K 1 (t) K (t)
<latexit sha1_base64="BGIeEnjLpw4AGJOhKe3hnmObZ1M=">AAACMHicbVDLSgMxFL3js9ZX1aWbYBVc1RnxuSu4calgVWhLyaR3bDCTDElGLEM/wx9x61b/QVfitl9hZlrE14HA4dxzbpITJoIb6/tv3sTk1PTMbGmuPL+wuLRcWVm9NCrVDBtMCaWvQ2pQcIkNy63A60QjjUOBV+HtST6/ukNtuJIXtp9gO6Y3kkecUeukTmWnFYfqPsvjVBOT5ISwNE6FM9whcbu5IVEqWe43g06l6tf8AuQvCcakWi9BgbNOZdjqKrcQpWWCGtMM/MS2M6otZwIH5VZqMKHslt5g01FJYzTtrPjYgGw5pUsipd2RlhTq90RGY2P6ceicMbU983uWi//NmqmNjtoZl0lqUbLRRVEqiFUkb4l0uUZmRd8RyjR3byWsRzVl1nVZbhXBTCo7arGHtIt6UC7KOc6x/1XFX3K5WwsOasH5XrW+OWoJSrAOG7ANARxCHU7hDBrA4AGe4BlevEfv1Xv3PkbWCW+cWYMf8Iafub2r7g==</latexit>
Figure 3.4 Example of linear spline basis functions both in (top) normal and (bottom)
cumulative form.
For example, if we want to have linear interpolation with uniform temporal spac-
ing, T , the basis functions are
1 − α1 (t) 0 ≤ t < T αK (t) (K − 1)T ≤ t < KT
ψ1 (t) = , ψK (t) = ,
0 otherwise 0 otherwise
(3.49)
αk−1 (t) (k − 2)T ≤ t < (k − 1)T
k = 2 . . . K − 1 : ψk (t) = 1 − αk (t) (k − 1)T ≤ t < kT , (3.50)
0 otherwise
t−(k−1)T
where αk (t) = T . The corresponding cumulative basis functions are
0 ≤ t < (K − 1)T
ψ1c (t) = 1, c
ψK (t) = , (3.51)
αk (t) (k − 1)T ≤ t
0 t < (k − 1)T
k = 2...K − 1 : ψkc (t) = αk (t) (k − 1)T ≤ t < kT . (3.52)
1 kT ≤ t
when (k − 1)T ≤ t < kT . We see that only a single basis function needs to be
70 Advanced State Variable Representations
evaluated. With higher-order splines, we will still have only a small active set at a
particular time stamp.
To apply splines on a Lie group, the idea is to then use the cumulative formulation
with the Lie group operator (matrix multiplication) replacing the summation. For
example, in the case of a linear spline, an element of SE(d) can be written as
−1
T (t) = Exp ψkc (t) Log Tk Tk−1 · Tk−1 , (3.54)
when (k − 1)T ≤ t < kT . We can now insert T (ti ) into any measurement ex-
pression at some time stamp ti , linearize it with respect to the Tk control points
(our estimation variables), and then use it within our MAP framework. Again, with
compact-support basis functions, only a few are active at a given measurement time
(one in the example of linear splines).
In a bit more detail for our linear spline example, we can rewrite (3.54) as
−1 αk (t)
T (t) = Tk Tk−1 Tk−1 . (3.55)
When linearizing expressions involving T (t), we can make use of the optimization
approach introduced in Section 3.1.3. We perturb each of the poses3 so that
αk (t)
0−1
Exp(ξ(t))T 0 (t) = Exp(ξk )Tk0 Tk−1 Exp(−ξk−1 ) 0
Exp(ξk−1 )Tk−1 . (3.56)
Our goal is to relate the perturbation of the interpolated pose, ξ(t), to those of
the control points, ξk and ξk−1 . As shown by Barfoot [17], this relationship can be
approximated (to first order in the perturbations) as
ξ(t) ≈ (I − A(αk (t))) ξk−1 + A(αk (t)) ξk , (3.57)
where
−1
0−1 0−1
A(αk (t)) = αk (t)J αk (t)Tk0 Tk−1 J Tk0 Tk−1 (3.58)
and J (·) is the left Jacobian of SE(d). We can then use (3.57) to relate changes in
our pose at a measurement time to the two bracketing control-point poses in order
to form linearized error terms for use in MAP estimation. For example, consider
the linearized measurement model in (3.15) again, where we rearrange it as an error
with slightly simpler notation for the pose and its perturbation as a function of t:
ei (t) ≈ zi − hi T 0 (t)ℓ̃i − Hi ξ(t). (3.59)
<latexit sha1_base64="Gp1DCmbwOtMsi6yoWu3Yyr8O4yE=">AAACFHicbVDLSgNBEOz1GeMrmqOXwSh4Crvi8xbw4lHBGCEJYXbSSYbMY5mZFcOS3/DqVf/Bm3j17i/4Fe5uRNRYMFBT1UU3FUaCW+f7797M7Nz8wmJhqbi8srq2XtrYvLY6NgzrTAttbkJqUXCFdcedwJvIIJWhwEY4PMv8xi0ay7W6cqMI25L2Fe9xRl0qdUrllgz1XSJ19iWR4dqMO6WKX/VzkGkSfJFKrQA5Ljqlj1ZXs1iickxQa5uBH7l2Qo3jTOC42IotRpQNaR+bKVVUom0n+fFjspsqXdLTJn3KkVz9mUiotHYkw3RSUjewf71M/M9rxq530k64imKHik0W9WJBnCZZE6TLDTInRimhzPD0VsIG1FDm0r6KrTyYKO0mTQ2QdtGMi3k5pxkOv6uYJtf71eCoGlweVGo7k5agAFuwDXsQwDHU4BwuoA4MRvAAj/Dk3XvP3ov3Ohmd8b4yZfgF7+0T2K2gCA==</latexit>
T4
<latexit sha1_base64="FQn1ZxFiffFO9CGFx9kP8LpSv5M=">AAACCHicbVDLSsNAFL2pr1pfVZdugkXoqiTF567gxmWFvqQtYTK5bYfOTMLMRCihP+DWrf6DO3HrX/gLfoVpWkStBwYO59zDvXP8iDNtHOfDyq2srq1v5DcLW9s7u3vF/YOWDmNFsUlDHqqOTzRyJrFpmOHYiRQS4XNs++Prmd++R6VZKBtmEmFfkKFkA0aJSaW7nvB10ph6Va9YcipOBnuZuAtSquUhQ90rfvaCkMYCpaGcaN11ncj0E6IMoxynhV6sMSJ0TIbYTakkAnU/yQ6e2iepEtiDUKVPGjtTfyYSIrSeCD+dFMSM9F9vJv7ndWMzuOwnTEaxQUnniwYxt01oz35vB0whNXySEkIVS2+16YgoQk3aUaGXBRMZmqwdb4QkQDUtZOVczXD2XcUyaVUr7nnFvT0t1crzliAPR3AMZXDhAmpwA3VoAgUBj/AEz9aD9WK9Wm/z0Zy1yBzCL1jvX40+mwY=</latexit>
T1 T2 ||Log(T 4 T 3 1 )||2T Q
<latexit sha1_base64="IKJ3OpNoYBgG/yBlJEphW1gdWMY=">AAACQnicbZBNbxMxEIZny0fT8NEARy4WAakciHYD5eOWigsHDq2UtJWy6crrTBKrXntlexGR49/DH+HaK6h/oTfElQPeTUFAeSVLj96Z0YzfvBTc2Dg+jzauXb9xc7O11b51+87d7c69+4dGVZrhiCmh9HFODQoucWS5FXhcaqRFLvAoP31b148+oDZcyaFdljgp6FzyGWfUBivr7K1WJC1y9dG9V3O/E9C4oc+ek1/UP3HPEv+UrFYn/cwNGzstqF0wKtyB9z7rdONe3IhcheQSuoMWNNrPOhfpVLGqQGmZoMaMk7i0E0e15Uygb6eVwZKyUzrHcUBJCzQT13zVkyfBmZKZ0uFJSxr3zwlHC2OWRR466yPNv7Xa/F9tXNnZ64njsqwsSrZeNKsEsYrUuZEp18isWAagTPNwK2ELqimzId122gw6qew61wXSKWrfbsJ5U2v3dxRX4bDfS172koMX3cHjdUrQgofwCHYggVcwgHewDyNg8AnO4At8jT5HF9G36Pu6dSO6nHkAfyn68RN83bKw</latexit>
||Log(T 3 T 2 1 )||2T Q
<latexit sha1_base64="+Xgy1SB/OhkBpRaaevm+0gysdfE=">AAACUXicbVBNbxMxEJ1s+UhTPtJy5GIRkFIJot0KCtwicUGCQ5CatlI2XXmdSWLVa69sLyJy/Lf4I5yQuNID/4Ab3k2EgPKkkd68mSePX14Kbmwcf21FOzdu3rrd3u3s3bl77353/+DUqEozHDMllD7PqUHBJY4ttwLPS420yAWe5Zdv6vnZR9SGK3liVyVOC7qQfM4ZtUHKuqP1mqRFrj6592rh+4Ead+KzhKSl5m7bhv7CPUv8IVmvL44yRxo9LahdMircO+/7Nkuehjr0WbcXD+IG5DpJtqQ3bEODUdb9kc4UqwqUlglqzCSJSzt1VFvOBPpOWhksKbukC5wEKmmBZuqan3vyJCgzMlc6lLSkUf90OFoYsyrysFlfa/6d1eL/ZpPKzl9NHZdlZVGyzUPzShCrSB0jmXGNzIpVIJRpHm4lbEk1ZTaE3Ukbo5PKbmJeIp2h9p0mnNc1XvyO4jo5PRokx4Pkw/Pe8PEmJWjDQ3gEfUjgJQzhLYxgDAw+wzf4DletL62fEUTRZjVqbT0P4C9Ee78A8cC1MA==</latexit>
1
||Log(T 1 Ť 1 )||2K(t1 ,t1 )
<latexit sha1_base64="vQ4eA6yNTXLbCkA8TgdJcqQTap4=">AAACQnicbZBNbxMxEIZnW6Bp+Apw5GIRkMqBaDeifNxSceHAoZWStlI2XXmdSWLVa69sLyJy/Hv6R3rlCuIv9FZx5YB3UxBQXsnSo3dmNOM3LwU3No6/RRubN27e2mptt2/fuXvvfufBw0OjKs1wxJRQ+jinBgWXOLLcCjwuNdIiF3iUn76r60cfURuu5NAuS5wUdC75jDNqg5V19lYrkha5+uQ+qLnfCWjc0Gd98ouSE/ci8c/JanXSz9ywsdOC2gWjwh1477NON+7Fjch1SK6gO2hBo/2sc5FOFasKlJYJasw4iUs7cVRbzgT6dloZLCk7pXMcB5S0QDNxzVc9eRacKZkpHZ60pHH/nHC0MGZZ5KGzPtL8W6vN/9XGlZ29mTguy8qiZOtFs0oQq0idG5lyjcyKZQDKNA+3EragmjIb0m2nzaCTyq5zXSCdovbtJpy3tXZ/R3EdDvu95FUvOXjZHTxdpwQteAxPYAcSeA0DeA/7MAIGZ/AZvsDX6Dy6iC6j7+vWjehq5hH8pejHT3lbsq4=</latexit>
||Log(T 2 T 1 1 )||2T Q
Figure 3.5 Example GP motion prior factors when using a ‘random walk’ model.
αk (t)
0−1
Note, we also need to substitute T 0 (t) = Tk0 Tk−1 0
Tk−1 for the nominal pose
at t, both within hi and Hi . We have essentially chained the derivative through
our linear spline. The same process can be followed for higher-order splines as well.
<latexit sha1_base64="Ci/UgnlvYDYDR644KxdugvsffM0=">AAACDHicbZDLSsNAFIZP6q3WW9Wlm2ARCkJJxOuu4MZlhd6gDWUyOWmHTiZxZiKUkFdw61bfwZ249R18BZ/CNC2i1h8Gfv7/HObwuRFnSlvWh1FYWl5ZXSuulzY2t7Z3yrt7bRXGkmKLhjyUXZco5ExgSzPNsRtJJIHLseOOr6d95x6lYqFo6kmETkCGgvmMEp1FTj9wVdJMB8n42E4H5YpVs3KZi8aem0q9CLkag/Jn3wtpHKDQlBOlerYVaSchUjPKMS31Y4URoWMyxF5mBQlQOUl+dGoeZYln+qHMntBmnv7cSEig1CRws8mA6JH6203D/7perP1LJ2EiijUKOvvIj7mpQ3NKwPSYRKr5JDOESpbdatIRkYTqjFOpny8mItQ5ocEIiYcyLeVwrqY6+0axaNonNfu8Zt+eVurVGSUowgEcQhVsuIA63EADWkDhDh7hCZ6NB+PFeDXeZqMFY76zD79kvH8BsWucuw==</latexit>
<latexit sha1_base64="23jlmdD8pRRNmeGNdh/q6fXln0M=">AAACGHicbZDNSiNBFIVv+xvjz8Rx4cJNYRBchW6RUXeB2cxSwaiQhHC7cpMUVlc1VdViaPpF3LqdeYfZyWxn5yv4FFY6wf8DBYdz76GqvjiVwrowfAzm5hcWl5YrK9XVtfWNb7XN7xdWZ4ZTi2upzVWMlqRQ1HLCSbpKDWESS7qMr39O5pc3ZKzQ6tyNU+omOFRiIDg6H/Vq250k1rf5UOoYJbtBI9BXbdGr1cNGWIp9NtHM1JsVKHXaqz11+ppnCSnHJVrbjsLUdXM0TnBJRbWTWUqRX+OQ2t4qTMh28/IDBdvzSZ8NtPFHOVambxs5JtaOk9hvJuhG9uNsEn41a2ducNzNhUozR4pPLxpkkjnNJjRYXxjiTo69QW6EfyvjIzTInWdW7ZTFXGk3pTUi7JMpqh5O9MrkxOvocGZOohc4FweN6EcjOjusN/enlKACO7AL+xDBETThF5xCCzgUcA+/4U9wF/wNHoJ/09W5YNbZgncK/j8D4IGhxg==</latexit>
<latexit sha1_base64="A2/4dkhVt1+la+AuHanbipMnE/4=">AAACCHicbVDLSsNAFL3xWeur6tJNsAhdlUR87gpuXFboS5pQJtPbdujMJMxMhBL6A27d6j+4E7f+hb/gV5ikRdR6YOBwzj3cOyeIONPGcT6speWV1bX1wkZxc2t7Z7e0t9/SYawoNmnIQ9UJiEbOJDYNMxw7kUIiAo7tYHyd+e17VJqFsmEmEfqCDCUbMEpMKt15ItBJY9ob90plp+rksBeJOyflWgFy1HulT68f0ligNJQTrbuuExk/IcowynFa9GKNEaFjMsRuSiURqP0kP3hqH6dK3x6EKn3S2Ln6M5EQofVEBOmkIGak/3qZ+J/Xjc3g0k+YjGKDks4WDWJum9DOfm/3mUJq+CQlhCqW3mrTEVGEmrSjopcHExmavJ3eCEkf1bSYl3OV4ey7ikXSOqm651X39rRcq8xaggIcwhFUwIULqMEN1KEJFAQ8whM8Ww/Wi/Vqvc1Gl6x55gB+wXr/Auj6mz8=</latexit>
⇠ k (t) = Log T (t)T k 1
Tk
<latexit sha1_base64="bB4ELLFHG+Cl8yLxmTP7YU7gtio=">AAACFnicbZDNSgMxFIXv1L9a/6riyk2wCK7KjBSru4IblxVsFdpS7qSpDc0kQ5IRy9D3cOtW38GduHXrK/gUptPi/4HA4dyc5PKFseDG+v6bl5ubX1hcyi8XVlbX1jeKm1tNoxJNWYMqofRViIYJLlnDcivYVawZRqFgl+HwdDK/vGHacCUv7ChmnQivJe9zitZF3eJOOwrVbSoURUFuUHN0zXG3WPLLfiby1wQzU6rlIVO9W3xv9xRNIiYtFWhMK/Bj20lRW07de4V2YliMdIjXrOWsxIiZTpqtPyb7LumRvtLuSEuy9HsjxciYURS6mxHagfk9m4T/zVqJ7R93Ui7jxDJJpx/1E0GsIhMWpMc1o1aMnEGquduV0AFqpNYRK7SzYiqVnbIaMOwxPS44OMEXkxOnamVmToJPOM3DcnBUDs4rpdrBlBLkYRf24AACqEINzqAODaCQwj08wKN35z15z97L9GrOm3W24Ye81w8nTaDZ</latexit>
local variable
<latexit sha1_base64="tlItKr9j0nEeAr3N4ipsykVah1A=">AAACFXicbZDNSiNBFIVv+zMTozNmHHezKQxCZhO6JYzjYiDgxqWCUSEdmurKjSlSXd1U3RYzTZ5jtrPVd3Ans3XtK/gUVjph/D1QcDjnXuryxZmSlnz/3ltYXFr+8LGyUl1d+/R5vfZl48SmuRHYEalKzVnMLSqpsUOSFJ5lBnkSKzyNR/vT/vQCjZWpPqZxhr2En2s5kIKTi6LaZpjEtggv5SQaNSgafWe/mB/V6n7TL8XemmBu6u0KlDqMag9hPxV5gpqE4tZ2Az+jXsENSaFwUg1zixkXI36OXWc1T9D2ivL6Cdt2SZ8NUuOeJlamzzcKnlg7TmI3mXAa2tfdNHyv6+Y0+NkrpM5yQi1mHw1yxShlUxSsLw0KUmNnuDDS3crEkBsuyAGrhuVioVOaoRoi76OZVB2c4InJntNua272gv9wTnaawY9mcNSqtxszSlCBb7AFDQhgF9pwAIfQAQG/4S9cwbX3x7vxbr1/s9EFb77zFV7Iu3sEVuOfLQ==</latexit>
⇠ k (tk ) = 0
Figure 3.6 When using a GP for continuous-time estimation on Lie groups (e.g., SE(d)),
a local variable, ξk (t), is defined between control-point states.
72 Advanced State Variable Representations
where we note that we have defined it using the local variable (between control
points Tk and Tk+1 ). The transition function for this SDE is simply Φ(t, s) = I
and so stochastically integrating we have
Z t
ξk (t) = ξk (tk ) + w(s) ds (3.62)
| {z } tk
0
and then after taking the mean and covariance we can say that the motion prior is
If we place our control-point poses uniformly spaced every T seconds then our
inverse kernel matrix will be simply K−1 = Φ−⊤ Q−1 Φ−1 with
I
−I I
Φ−1 = .. .. , Q = diag (K(t1 , t1 ), T Q, . . . , T Q) . (3.64)
. .
−I I
where Ť1 is some prior initial pose value. In terms of the global variables, these
same errors are
Log T1 Ť1−1 k = 1
ek = −1 . (3.66)
Log Tk Tk−1 k>1
Figure 3.5 shows what the ‘random walk’ GP motion prior looks like as a factor
graph. Similarly to the previous section discussing linear splines, if we want to query
the trajectory at other times of interest, we can do this using GP interpolation. For
the ‘random walk’ prior, this results again in linear interpolation [17]:
−1
αk (t)
T (t) = Tk Tk−1 Tk−1 , (3.67)
approach detailed earlier. For example, looking at the second case in (3.66) we can
write
0−1
ek = Log Exp(ξk )Tk0 Tk−1 Exp(−ξk−1 )
0−1 0−1
≈ Log Tk0 Tk−1 + ξk − Ad Tk0 Tk−1 ξk−1 , (3.68)
4
Johnson et al. [124] provide a detailed comparison between spline and GP approaches and shows
that motion-prior terms can also be introduced to regularize spline methods.
4
Robustness to Incorrect Data
Association and Outliers
Heng Yang, Josh Mangelson, Yun Chang, Jingnan Shi, and Luca Carlone
In Chapter 2, we have seen that factor graphs are a powerful representation to model
and visualize SLAM problems, and that maximum a posteriori (MAP) estimation
provides a grounded and general framework to infer variables of interest (e.g., robot
poses and landmark positions) given a set of measurements (e.g., odometry and
landmark measurements). For instance, we observed that when the measurements
zi are affected by additive and zero-mean Gaussian noise with covariance Σi , MAP
estimation leads to a nonlinear least-squares optimization:
X 2
xMAP = arg min ∥zi − hi (xi )∥Σi , (4.1)
x
i
where xi denotes the subset of the states involved in measurement i.1 In this chap-
ter we notice that in practice many measurements zi —possibly due to incorrect
data association— may have large errors, which are far from following a zero-mean
Gaussian (Section 4.1); these measurements typically induce large perturbations in
the estimate xMAP from eq. (4.1). Therefore, we discuss how to reject gross outliers
in the SLAM front-end (Section 4.2) and then focus on how to increase robustness
to remaining outliers in the SLAM back-end (Section 4.3). We close the chapter
with a short review of recent trends and extra pointers to related work (Section
4.4).
the trajectory of the robot and the position of external landmarks from odometry
measurements and relative observations of landmarks from certain robot poses. As-
suming (as we did in Chapter 2) that the landmark measurements have zero-mean
Gaussian noise leads to terms in the optimization in the form ∥zij − h(pi , ℓj )∥2Σ .
These terms model the fact that a given measurement zij is an observation of land-
mark ℓj from pose pi up to Gaussian noise, where h(·) is the function describing the
type of relative measurement (e.g., range, bearing, etc.). In practice, the measure-
ments zij are obtained by pre-processing raw sensor data in the SLAM front-end.
For instance, if the robot has an onboard camera and zij is a visual observation of
the bearing to a landmark ℓj , the measurement zij might be extracted by perform-
ing object (or more generally, feature) detection and matching in the image, and
then computing the bearing corresponding to the detected pixels. Now, the issue
is that the detections are imperfect and a landmark detected as ℓj in the image,
might be actually a different landmark in reality. This causes zij to largely deviate
from the assumed model. The problem of associating a measurement to a certain
landmark is typically referred to as the data association problem and is common to
many other estimation problems (e.g., target tracking). Therefore, incorrect data
association creates outliers in the estimation problem.
Note that outliers are not only caused by incorrect data associations, but can
also be caused by violations of the assumptions made in the SLAM approach. For
instance, the majority of SLAM approaches assume landmarks to be static, hence
detections of a moving object —even when correctly associated to that object—
may lead to outlier measurements with large residuals. Similarly, sensor failure
and degradation, e.g., a faulty wheel encoder or dust on the camera lens, might
contribute to creating outliers in the measurements.
76 Robustness to Incorrect Data Association and Outliers
Figure 4.1 SLAM problems with outliers: (a)-(c) Ground truth trajectories for the M3500,
SubT, and Victoria Park datasets. (d)-(f) Trajectory estimates obtained with the least-
squares formulation in the presence of outliers. Inlier measurements are visualized as gray
edges, while outliers are visualized as red edges. In the SubT dataset, we also visualize a
dense map built from the SLAM pose estimate.
To illustrate this point, Figure 4.1 shows results for three SLAM problems with
outliers. The first column is a simulated pose-graph optimization benchmark, known
as M3500, with poses arranged in a grid-like configuration; the dataset includes 3500
2D poses and 8953 measurements. The second column is a real-world pose-graph
dataset, denoted as SubT, collected in a tunnel during the DARPA Subterranean
Challenge [82]; the dataset includes 682 3D poses and 3278 measurements. The third
column is a real-world landmark-SLAM dataset, known as Victoria Park [187]; the
dataset includes 7120 2D poses and landmarks, and 17728 measurements. Figure
4.2 Detecting and Rejecting Outliers in the SLAM Front-end 77
Figure 4.2 Feature tracking across three frames (collected at time k − 1, k, and k + 1) in a
visual SLAM problem. Inliers are visualized in green, while outliers are visualized in red.
4.1(a)-(c) show the ground truth trajectories for the three problems. Figure 4.1 (d)-
(f) show the estimate produced by the least-squares formulation in the presence of
outliers. In particular, for M3500 and Victoria Park we add 15% random outliers
to the (loop closures or landmark) measurements, while the SubT dataset already
includes outliers. In the figure, we visualize outlier measurements in red. We observe
that the presence of outliers leads to completely incorrect trajectories and map esti-
mates. Moreover, the outliers often expose perceptual aliasing in the environment:
for instance, the two similarly looking vertical corridors in the middle of the SubT
dataset induce many spurious loop closures, which mislead the back-end to create
a map with a single vertical corridor.
where tk−1
k and Rkk−1 are the relative position and rotation describing the (un-
known) motion of the camera between time k − 1 and k.2 More generally, if we
denote the i-th correspondence as zi (in the example above, zi = {zi (k −1), zi (k)}),
these geometric constraints are in the form
C(zi , x) ≤ γ, (4.3)
which states that the correspondences have to satisfy some inequality, which is
possibly a function of the unknown state x; in (4.3) the parameter γ on the right-
hand-side is typically tuned to account for the presence of noise. For instance, while
ideally the epipolar constraint in (4.2) is exactly satisfied, in practice it might have
small errors since the pixel detections are noisy, and hence we would relax the
constraint to only require zi (k − 1)T [tk−1k ]×Rk
k−1
zi (k) ≤ γ, for some small γ.
The second insight is that —assuming we do not have too many outliers— we
can find the inliers as the largest set of correspondences that satisfy the geometric
2
Clearly, different problems will have different geometric constraints, but luckily there is a
well-established literature in robotics and computer vision, that studies geometric constraints
induced by different types of sensor measurements. The example in this section considers 2D-2D
correspondences, and the corresponding constraints have been studied in the context of 2-view
geometry in computer vision, see [111].
4.2 Detecting and Rejecting Outliers in the SLAM Front-end 79
where M is the set of initial putative correspondences, and |S| denotes the cardi-
nality (number of elements) in the subset S [169]. In words, the optimization (4.4)
looks for the largest subset S of the set of putative correspondences M, such that
measurements in S satisfy the geometric constraints for the same value of x. Intu-
itively, problem (4.4) captures the intuition that the inliers (estimated by the set S)
must “agree” on the same x (e.g., they must all be consistent with the actual mo-
tion of the robot). Problem (4.4) is known as consensus maximization in computer
vision. Note that (4.4) does not require solving the entire SLAM problem (which
might involve many poses and landmarks), since it only involves a small portion of
the SLAM state; for instance, the epipolar constraint (4.2) only involves the rela-
tive pose between two frames rather than the entire SLAM trajectory. At the same
time, (4.4) is still a hard combinatorial problem, which clashes with the fast run-
time requirements of typical SLAM front-ends. Therefore, rather than looking for
exact solutions to (4.4), it is common to resort to quick heuristics to approximately
solve (4.4).
RANdom SAmple Consensus (RANSAC) is probably the most well-known ap-
proach to find an approximate solution to the consensus maximization problem
in (4.4). RANSAC builds on the key assumption that x in (4.4) is relatively low-
dimensional and can be estimated from a small set of measurements (the so-called
minimal set), using fast estimators (the so called minimal solvers).3 For instance, in
our visual SLAM example, one can estimate the relative motion between two cam-
era frames using only 5 pixel correspondences, using Nister’s 5-point method [188].
Then the key idea behind RANSAC is that, instead of exhaustively checking every
possible subset S ⊂ M, one can sample minimal sets of measurements looking for
inliers. More in detail, RANSAC iterates the following three steps:
1 Sample a subset of n correspondences, where n is the size of the minimal set for
the problem at hand;4
2 Compute an estimate x̂ from the n sampled correspondences using a minimal
solver;5
3 Select the correspondences S ⊂ M that satisfy the geometric constraint C(zi , x̂) ≤
3
The development of minimal solvers can be considered a sub-area of computer vision research,
hence for typical problems it is well-understood what is the size of the minimal set and there are
well-developed (and typically off-the-shelf) minimal solvers one can use.
4
In our example with pixel correspondences between calibrated camera images, the minimal set has
size n = 5, since 5 non-collinear measurements are sufficient to determine the pose between two
cameras up to scale.
5
In our example, this involves computing the relative motion (up to scale) between time k − 1 and k
using the 5-point method.
80 Robustness to Incorrect Data Association and Outliers
γ for the x̂ computed at the previous step. Store the set S if it is larger than the
set computed at the previous iterations.
The set S computed in the last step is called the consensus set and RANSAC
typically stops after computing a sufficiently large consensus set (as specified by
a user parameter) or after a maximum number of iterations. RANSAC essentially
attempts to sample n inliers from the set of measurements, since these are likely to
“agree” with all the other inliers and hence have a large consensus set.
RANSAC is the go-to solution for many outlier-rejection problems. In particu-
lar, it quickly converges to good estimates (i.e., good sets of correspondences) in
problems with small number of outliers and small minimal sets. Assuming that the
probability of sampling an inlier from the set of measurements is ω,6 it is easy
to conclude that the expected number of iterations RANSAC requires for finding
a set of inliers is ω1n . For instance, when n = 5 and ω = 0.7 (i.e., 70% of the
measurements are inliers), the expected number of iterations is less then 10. This,
combined with the fact that non-minimal solvers are extremely fast in practice (al-
lowing even thousand of iterations in a handful of milliseconds), makes RANSAC
extremely appealing. Moreover, RANSAC also provides an estimate x̂ (e.g., the
robot odometry), that can be useful as an initial guess for the back-end.
On the downside, RANSAC may not be the right approach for all problems. In
particular, the expected number of iterations becomes impractically large when the
number of inliers is small or when the minimal set is large; for instance, when n = 10
and ω = 0.1, the expected number of iterations to find a set of inliers becomes 1010 ,
and terminating RANSAC after a smaller number of iterations is likely to return
incorrect solutions (i.e., incorrect x̂ and correspondences). As we discuss in the
next section, in context of many SLAM problems, the assumptions of having many
inliers and small minimal sets are not always valid.
(a) (b)
Figure 4.3 (a) 3D-3D correspondences from two RGB-D scans representing two partial
views of a scene. The green lines indicate inlier correspondences and the red lines indicate
outlier correspondences. (b) Pose graph with outliers in the loop closures. The dashed
green lines indicate inlier loop closures while the dotted red line is an outlier loop closure.
wise consistency maximization (PCM), that, rather than sampling minimal sets,
seeks to find the largest set of measurements that are internally “consistent” with
one another, using graph theory. This approach can be used to sort through sets of
measurements with upwards of 90% outliers and prune gross outliers before passing
them to the back-end. The approach was initially proposed in [169] and extended
beyond pairwise consistency in [236, 91].
The key insight behind PCM is that for many problems one can define consistency
functions that capture whether a pair of measurements are consistent with each
other. Let’s elucidate on this point with two examples.
We observe that contrary to the geometric constraints used in RANSAC, the con-
sistency function (4.5) (i) does not depend on the state, hence it can be evaluated
directly without the need for a minimal solver, and (ii) involves a pair of correspon-
dences regardless of the size of the minimal set. While the previous example could
also be solved with RANSAC,7 let us now consider a higher dimensional problem.
7
Motion estimation from 3D-3D correspondences admits a fast 3-point minimal solver, e.g., Horn’s
method [115].
82 Robustness to Incorrect Data Association and Outliers
(a) (b)
Figure 4.4 (a) Consistency graph of the 3D-3D correspondences example in Figure 4.3(a).
(b) Consistency graph of the loop closures for the pose-graph example in Figure 4.3(b)
F (zi , zj ) ≤ γ. This is typically called the consistency graph. Now problem (4.8) asks
to select the largest subset of nodes S such that every pair of nodes in S is connected
by an edge: this is exactly the definition of maximum clique of a graph. More in
detail, a clique in graph theory is a subset of nodes in which every pair of nodes has
an edge between them, and the maximum clique is the largest such subset of nodes
in the graph. Therefore, the solution to problem (4.8) is the maximum clique of the
consistency graph G. This graph theoretic connection is really useful in practice,
since the problem of finding the maximum clique for a given graph is a well-studied
problem in graph theory and is called the maximum clique problem. The maximum
clique problem is an NP-hard problem [290] and hard to approximate [313, 88],
meaning that finding a solution arbitrarily close to the true solution is also NP-
hard. However, dozens of potential solutions have been proposed, some of which
can handle significantly sized problems depending on the density of the graph. The
majority of proposed methods can be classified as either exact or heuristic-based
methods. All of the exact algorithms are exponential in complexity and are usually
based on branch and bound, while the heuristic algorithms often try to exploit
some type of structure in the problem, making them faster, at the expense of not
necessarily guaranteeing the optimal solution [290]. Relatively recent works, e.g.,
[203], propose maximum clique algorithms that are parallelizable and able to quickly
find maximum cliques in sparse graphs.
In summary, solving the PCM problem using a maximum clique algorithm in-
volves the following steps:
The key requirement for the robust loss ρ is to be a non-negative function and grow
less than quadratically for large residuals; in other words, robust loss functions
∂∥ri ∥2
need to have derivative ∂ρ(ri)
∂ri ≪ ∂ri = 2ri as ri becomes large; in many cases,
it is desirable for ∂ρ(ri)
to approach zero as ri becomes large. To elucidate this
∂ri P
requirement, consider the case where we solve minx i ρ (ri (x)) using gradient
. P
descent. Using the chain rule, the gradient of the objective f (x) = i ρ (ri (x))
becomes:
∂f X ∂ρ (ri ) ∂ri (x)
= · (4.10)
∂x i
∂ri ∂x
From (4.10), it is clear that if we start for a good initial guess (i.e., relatively
close to the ground truth), outlier measurements will have large residual and hence
very small ∂ρ(r i)
∂ri , thus having a minor influence on the overall descent direction.
Hence they will have almost no influence in the estimation. Indeed, the function
ψ(ri ) := ∂ρ(ri)
∂ri is typically referred to as the influence function [31].
Rather than a single choice of robust loss function, the robust estimation litera-
ture provides a “menu” of potential choices. Figure 4.5 lists common choices of loss
functions. This list includes common robust losses, such as Huber, Geman-McClure,
Tukey’s biweight and the truncated quadratic loss, and also includes a more radical
choice, named maximum consensus loss. The latter is not typically listed among
the loss functions in the robust estimation literature, but we mention it here, since
it connects back to the consensus maximization problem we discussed in (4.4).12
The choice of robust loss is fairly problem-dependent [133, 253]. For instance, loss
functions with hard cut-offs (e.g., the truncated quadratic loss, where there is a
sudden transition between the quadratic and the “flat” portion of the function) are
preferable when a reasonable threshold for the cut-off (i.e., the maximum error ex-
pected from the inliers) is known. One also has to take into account computational
12
Intuitively, the maximum consensus loss “counts” the outliers in the estimation problem, since it is
constant (typically equal to 1) for large residuals and zero for small residuals. Therefore, minimizing
such loss leads to an estimate that produces the least number of outliers. This is the same as
solving the consensus maximization problem in (4.4).
86 Robustness to Incorrect Data Association and Outliers
(d) Tukey’s biweight (e) Truncated Quadratic (f) Maximum Consensus loss
Figure 4.5 Quadratic loss and examples of robust loss functions. The shape of the robust
loss functions is controlled by a parameter that controls the separation between inliers
and outliers.
considerations. For instance, Huber is often used in bundle adjustment problems
since it is a convex function and is better-behaved during the optimization, despite
leaving non-zero influence for the outliers (the influence becomes zero only if the
loss is constant for large residuals). On the other hand, the truncated quadratic
and maximum consensus losses are known to be particularly insensitive to outliers,
but they often require ad-hoc solvers.13
Figure 4.6(g)-(l) show the SLAM trajectories obtained by applying gradient de-
scent to two of the robust losses mentioned above: the Huber loss and the trun-
cated quadratic loss. Here we consider the same datasets used in Figure 4.1. We
implemented the gradient descent solver using GTSAM’s NonlinearConjugateGra-
dientOptimizer [67] with the gradientDescent flag enabled, and using robust noise
models to instantiate the robust loss functions. We set the maximum number of
iterations and the stopping conditions thresholds (relative and absolute tolerance)
to 10000 and 10−7 , respectively. All other parameters were left to the default GT-
SAM values. In the figure, an edge is colored in gray if it is correctly classified
as inlier or outlier by the optimization (i.e., an inlier that falls in the quadratic
region of the Huber or truncated quadratic loss); it is colored in red if it is an
outlier incorrectly classified as an inlier (a “false positive”); it is colored in blue if
it is an inlier incorrectly classified as an outlier (a “false negative”). Compared to
13
For instance, RANSAC (Section 4.2.1) optimizes the maximum consensus loss via sampling (an
option that is only viable for the low-dimensional optimization problems arising in the front-end),
while graduated non-convexity allows optimizing a broad variety of losses including the truncated
quadratic loss (more on this in Section 4.3.4 below).
4.3 Increasing Robustness to Outliers in the SLAM Back-end 87
Figure 4.6 Solving SLAM problems with outliers using robust loss functions and gradi-
ent descent: (a)-(c) Ground truth trajectories for the M3500, SubT, and Victoria Park
datasets. (d)-(f) Trajectory estimates obtained using gradient descent and Huber loss.
(h)-(l) Trajectory estimates obtained using gradient descent and truncated quadratic loss.
Measurements are visualized as colored edges. In particular, an edge is colored in gray if
it is correctly classified as inlier or outlier by the optimization (i.e., an inlier that falls in
the quadratic region of the Huber or truncated quadratic loss); it is colored in red if it is
an outlier incorrectly classified as an inlier (a “false positive”); it is colored in blue if it is
an inlier incorrectly classified as an outlier (a “false negative”).
(non-robust) least squares optimization (Figure 4.1(d)-(f)), we note that the use of
the robust losses allows us to quickly regain robustness to outliers in the case of
the M3500 and SubT datasets, but a simple gradient descent method may still fail
to correctly optimize heavily non-convex functions such as the truncated quadratic
cost, as in the case of the Victoria Park dataset. We will address this issue with
a better solver, based on graduated non-convexity, below. Moreover, while gradient
descent already improves performance in many of the instances as shown in Figure
4.6, it has slow convergence tails. For instance, in our experiments, it often takes
88 Robustness to Incorrect Data Association and Outliers
where the weights wi ’s depend on the estimate x(t) from the last iteration. We wish
the iterative solutions x(t) to converge to the optimal solution of M-Estimation (4.9).
This implies that the gradient of the robust loss ρ, shown in (4.10), must match
the gradient of the loss in (4.11). By writing down the gradient of (4.11) as
X ∂ri (x)
2wi (x(t) )ri (x)
i
∂x
where βi2 is a bound on the i-th residual such that the i-th measurement is an inlier
if ri2 (x) ≤ βi2 and an outlier otherwise. We observe that the cost in (4.13) can be
equivalently written as a sum of two terms by introducing a new weight variable
wi ∈ [0, 1]
ρ(ri (x)) := min wi ri2 (x) + (1 − wi )βi2 , (4.14)
wi ∈[0,1]
where the first term is exactly the weighted least squares, and the second term
is a function of wi that does not depend on x. With (4.14), the M-Estimation
problem (4.9) with a truncated quadratic loss can be reformulated as
X
min
x
wi ri2 (x) + (1 − wi )βi2 , (4.15)
wi ∈[0,1],i=1,...,N i
where we have introduced one wi for each measurement residual ri (x). Prob-
lem (4.15) is easy to interpret: wi = 1 implies ri2 (x) ≤ βi2 and the i-th mea-
surement is an inlier; wi = 0 implies ri2 (x) > βi2 and the i-th measurement is an
outlier. Moreover, all the residuals with wi = 0 are effectively discarded from the
optimization (4.15) and hence robustness is ensured.
B-R duality generalizes the derivation above to a family of robust losses.
Theorem 4.4 (Black-Rangarajan Duality [31]). Given a robust loss function ρ(·),
√
define ϕ(z) := ρ( z). If ϕ(z) satisfies limz→0 ϕ′ (z) = 1, limz→∞ ϕ′ (z) = 0, and
90 Robustness to Incorrect Data Association and Outliers
Figure 4.7 Solving SLAM problems with outliers using robust loss functions and Itera-
tively Re-weighted Least-Squares (IRLS): (a)-(c) Ground truth trajectories for the M3500,
SubT, and Victoria Park datasets. (d)-(f) Trajectory estimates obtained using the Huber
loss. (g)-(i) Trajectory estimates obtained using the Geman-McClure loss. (j)-(l) Trajec-
tory estimates obtained using the truncated quadratic loss. Measurements are visualized
as colored edges. In particular, an edge is colored in gray if it is correctly classified as
inlier or outlier by the optimization (i.e., an inlier that falls in the quadratic region of
the Huber or truncated quadratic loss); it is colored in red if it is an outlier incorrectly
classified as an inlier (a “false positive”); it is colored in blue if it is an inlier incorrectly
classified as an outlier (a “false negative”).
4.3 Increasing Robustness to Outliers in the SLAM Back-end 91
Problem (4.21) is easy to solve and often admits a closed-form solution. In fact,
for the G-M robust loss, the solution of (4.21) is just (4.20). For the truncated
quadratic loss, problem (4.21) reads
In summary, the t-th iteration of IRLS in the context of B-R duality alternates
between two steps
1 Variable update: solve a weighted least squares problem using the current
(t)
weights wi
X (t)
x(t) ∈ arg min wi ri2 (x). (4.22)
x
i
The weight update rule obtained via B-R duality actually matches the popular
weight update rule (4.12). Interestingly, instantiating the above IRLS algorithm in
SLAM using the G-M robust loss leads to the dynamic covariance scaling algo-
rithm [7], which has been proposed in the context of outlier-robust SLAM.
Example 4.6 (GNC Truncated Quadratic Loss). Consider the GNC truncated
quadratic loss function
h i
r 2
(x) if r 2
(x) ∈ 0, µ
β 2
i i
h µ+1 i i
p µ
ρµ (ri (x)) = 2βi |ri (x)| µ(µ + 1) − µ(βi2 + ri2 (x)) if ri2 (x) ∈ µ+1 βi2 , µ+1
µ βi2
h i
2
βi ri2 (x) ∈ µ+1 µ β 2
i , +∞ .
(4.24)
ρµ is convex for µ approaching zero and retrieves the truncated quadratic loss
in (4.13) for µ approaching infinity.
ρµ is convex for µ approaching ∞ and recovers the G-M loss (4.17) when µ = 1.
(a) (b)
Figure 4.8 Graduated Non-Convexity with control parameter µ for (a) Truncated
Quadratic loss and (b) Geman-McClure loss.
Figure 4.8(a) and (b) plot the GNC truncated quadratic loss and the GNC
Geman-McClure loss, respectively. Observe how increasing or decreasing the control
parameter µ adds more non-convexity to the function.
One nice property of the smoothed GNC functions in (4.24) and (4.25) is that
the B-R duality still applies. For the GNC truncated quadratic loss (4.24), applying
94 Robustness to Incorrect Data Association and Outliers
We are now ready to state the GNC algorithm, which at each iteration performs
three steps
1 Variable update: solve a weighted least squares problem using the current
(t)
weights wi
X (t)
x(t) ∈ arg min wi ri2 (x). (4.26)
x
i
The GNC algorithm is similar to the IRLS algorithm, except that it starts with a
convex, smoothed function ρµ and then iteratively updates the control parameter µ
to gradually add more non-convexity to ρµ to approach the original loss function ρ.
Depending on the definition of the smoothed loss ρµ , one would recover the original
ρ by either increasing or decreasing µ. For instance, the smoother GNC truncated
quadratic loss recovers the original truncated quadratic loss when µ is large, hence
µ is increased by a constant factor γ > 1 at each GNC iteration (e.g., γ = 1.4
in [296]). Conversely, the smoother Geman-McClure loss recovers the original GM
loss when µ is close to 1, hence µ is divided by γ > 1 at each GNC iteration.
Figure 4.9 showcases the SLAM trajectories obtained by applying GNC on the
same three datasets of Figure 4.6, with two different robust losses: the Geman-
McClure loss and the truncated quadratic loss. We implemented GNC using GT-
SAM’s GNCOptimizer. By comparing the figure with Figure 4.6 and Figure 4.7
we observe that GNC ensures better convergence (i.e., it is less prone to being
stuck in local minima) and recovers fairly accurate trajectories in all the three
datasets. While GNC has been shown to be extremely resilient to outliers (e.g.,
it has shown to tolerate around 80-90% incorrect loop closures in real-world prob-
lems [296, 47]), we remark that the approach does not provide any convergence
guarantees. Moreover, its performance has been empirically seen to be problem-
dependent, and while it leads to superb performance in pose-graph optimization
problems, its performance largely degrades in other perception problems [236].
4.3 Increasing Robustness to Outliers in the SLAM Back-end 95
Figure 4.9 Solving SLAM problems with outliers using robust loss functions and graduated
non-convexity (GNC): (a)-(c) Ground truth trajectories for the M3500, SubT, and Victoria
Park datasets. (d)-(f) Trajectory estimates obtained using the Geman-McClure loss. (g)-
(i) Trajectory estimates obtained using the truncated quadratic loss. Measurements are
visualized as colored edges. In particular, an edge is colored in gray if it is correctly
classified as inlier or outlier by the optimization (i.e., an inlier that falls in the quadratic
region of the Huber or truncated quadratic loss); it is colored in red if it is an outlier
incorrectly classified as an inlier (a “false positive”); it is colored in blue if it is an inlier
incorrectly classified as an outlier (a “false negative”).
Below we showcase a problem when GNC fails and also show that combining
front-end and back-end outlier rejection can be beneficial. Towards this goal, we
are going to consider a slightly more challenging SLAM setup compared to the
ones discussed above. Earlier in this chapter, we considered pose-graph optimiza-
tion problems (e.g., Figure 4.1) where the odometry is reliable but there might be
outliers in the loop closures or in the landmark measurements. This setting essen-
tially assumes the presence of an “odometry backbone” that largely simplifies the
problem by providing a set of trusted measurements while also allowing building
an initial guess for the robot poses. While this assumption is realistic in many
96 Robustness to Incorrect Data Association and Outliers
problems,14 certain SLAM applications might lack an odometry backbone. For in-
stance, certain odometry sensors might produce incorrect measurements, e.g., due
to wheel slippage in wheel odometry, or incorrect lidar alignment in lidar odometry.
Another example arises in multi-robot SLAM, where each robot has an odometry
backbone, but the overall SLAM problem (including the trajectory of all robots)
does not [169].
Figure 4.10 SLAM problems with outliers in both the loop closures and landmark mea-
surements, as well as the odometry: (a)-(c) Trajectory estimates obtained using GNC
with the truncated quadratic loss. (d)-(f) Trajectory estimates obtained using PCM for
front-end outlier rejection followed by least squares optimization. (g)-(i) Trajectory esti-
mates obtained using PCM for front-end outlier rejection followed by GNC with truncated
quadratic loss.
Robustly solving SLAM problems where both odometry and loop closure mea-
surements can be outliers is extremely hard. To showcase the shortcomings of the
14
The fact that odometric measurements are computed between consecutive frames makes data
association relatively simpler, in particular when the rate of the sensor (e.g., camera framerate) is
much faster than the motion of the robot. Intuitively, consecutive frames will provide snapshots of
the scene from similar viewpoints, thus reducing sources of errors for feature matching, including
illumination changes, occlusions, lack of viewpoint invariance, or perceptual aliasing.
4.4 Further References and New Trends 97
and Parra et al. [39] investigate graph-theoretic outlier rejection based on maximum
clique for 3D-3D registration. The idea of checking consistency across a subset of
measurements also arises in Latif et al. [143], which perform loop-closure outlier
rejection by clustering measurements together and checking for consistency using
a Chi-squared-based test. The PCM paper [169], similarly to the discussion in this
chapter, focuses on pairwise consistency. More recently, PCM has been extended to
group-k consistency (i.e., the case where the consistency constraint (4.7) involves
k measurements instead of only 2 measurements) in [236, 237, 91]. These papers
essentially generalize the notion of consistency graphs to consistency hypergraphs,
where each hyper-edge involves k nodes. Related work also considers soft varia-
tions of the maximum clique problem, where the binary condition (4.7) is relaxed
to produce continuous weights on the edges of the consistency graph [164, 163].
These methods have been used in practical applications, including subterranean
exploration [81], lidar point-cloud localization [165], multi-robot metrics-semantic
mapping [261], and global localization in unstructured environments [14].
Alternating Minimization and Graduated Non-Convexity. M-estimation
has been a popular approach for robust estimation in robotics [33] and vision [230,
49]. Tavish et al. [253] investigate the performance of different loss functions. Sev-
eral papers investigate formulations with auxiliary variables as the one in (4.16),
without realizing the connection to M-estimation provided by the Black-Rangarajan
duality (Theorem 4.4). For instance, Sünderhauf and Protzel [249, 250] and Agarwal
et al. [7] augment the problem with latent binary variables responsible for deac-
tivating outliers. Lee et al. [147] use expectation maximization. Olson and Agar-
wal [196] use a max-mixture distribution to approximate multi-modal measurement
noise. Recently, Barron [21] proposes a single parametrized function that general-
izes a family of robust loss functions in M-estimation. Chebrolu et al. [50] design an
expectation-maximization algorithm to simultaneously estimate the unknown quan-
tity x and choose a suitable robust loss function ρ. The graduated non-convexity
algorithm was first introduced in [32, 31] for outlier rejection in early vision applica-
tions; more recently, the algorithm was used for point cloud registration [311, 297],
SLAM [296], and other applications [15]. Recently, Peng et al. [205] has proposed an
algorithm similar to GNC and IRLS, that is based on the idea of smooth majoriza-
tion in optimization and can be applied to a broad set of robust losses. Moreover,
[205] derives global and local convergence guarantees for GNC.
Certifiable Algorithms. The algorithms described so far can be broadly di-
vided into two categories: (i) fast heuristics (e.g., RANSAC or local solvers for
M-estimation), which are efficient but provide little performance guarantees, and
(ii) global solvers (e.g., branch-and-bound), which offer optimality guarantees but
scale poorly with the problem size. Recent years have seen the advent of a new
type of methods, called certifiable algorithms, that try to strike a balance between
tractability and optimality. Certifiable algorithms relax non-convex robust estima-
4.4 Further References and New Trends 99
tion problems into convex semidefinite programs (SDP),15 whose solutions can be
obtained in polynomial time and provide readily checkable a posteriori global opti-
mality certificates. Certifiable algorithms for robust estimation have been proposed
in the context of rotation estimation [293], 3D-3D registration [297], and pose-graph
optimization [142, 43]. A fairly general approach to derive certifiable algorithms for
problems with outliers is described in [294, 295], while connections with parallel
work in statistics is discussed in [42]. With few notable exceptions, these algo-
rithms, albeit running in polynomial time, are still computationally expensive and
typically much slower than heuristics methods. In some cases, the insights behind
these algorithms can be used to certify optimality of a solution obtained with a fast
heuristic [294], hence getting the best of both worlds.
15
We are going to review the notion of certifiable algorithms in the context of SLAM in Chapter 7.
5
Differentiable Optimization
Chen Wang, Krishna Murthy Jatavallabhula, and Mustafa Mukadam
5.1 Introduction
where the objective L(x) is a sum of squared vector-valued residual terms ri , each
a function of xi ⊂ x that are (non-disjoint) subsets of the optimization variables
x = {xi }. While for now we assume xi to be vectors, later in the chapter we
generalize the discussion to the case where the variables belong to a manifold. For
flexibility, here we represent a residual ri (xi ) = wi ci (xi ) as a product of a weight
wi and vector cost ci .
As explained in Chapter 2, a NLS is normally solved by iteratively lineariz-
ing the nonlinear objective around the current variables to get the linear system
P P
( i Ji⊤ Ji )δx = ( i Ji⊤ ri ), then solving the linear system to find the update δx,
and finally updating the variables x ← x + δx, until convergence. We have also
commented in Chapter 3 that the addition in the update step is more generally a
102 Differentiable Optimization
ℒ (𝒚, 𝒙)
Figure 5.1 A modern SLAM system often involves both neural networks and nonlinear
least squares. To eliminate compound errors introduced by optimizing the two modules
separately, we can optimize the system in an end-to-end manner by formulating the entire
system as a bilevel optimization, which involves an upper-level cost and a lower-level cost.
retraction mapping for variables that belong to a manifold. In the linear system,
Ji = [∂ri /∂xi ] are the Jacobians of residuals with respect to the variables. This
iterative method above, called Gauss-Newton (GN), is a nonlinear optimizer that is
P
(approximately) second-order, since i Ji⊤ Ji is an approximation of the Hessian.
To improve robustness and convergence, variations like Levenberg-Marquardt (LM)
dampen the linear system, while others adjust the step size for the update with line
search, e.g., Dogleg introduced in Chapter 2.
Example 5.1. Imagine a SLAM system that leverages a neural network (param-
eterized by y) for feature extraction/matching, while utilizing bundle adjustment
(BA) for pose estimation (parameterized by x), which take the feature matching
as an input. In this example, the UL cost (5.2a) can be feature matching error
for optimizing the network, while the LL cost L (5.2b) can be the reprojection
error for BA. Intuitively, the optimal solution x∗ for the camera poses and land-
mark positions plays the role of a supervisory signal in the neural network training.
Therefore, optimizing the BLO (5.2) allows us to further reduce the matching error
via back-propagating the BA reprojection errors [306].
Example 5.2. Imagine a full SLAM system that uses a neural network for front-end
pose estimation, while leverages pose-graph optimization (PGO) as the back-end to
eliminate odometry drifts. In this example, both UL and LL costs can be the pose-
graph error. The difference is the UL cost optimizes the network parameterized by
y, while the LL cost optimizes the camera poses parameterized by x. As a result,
the front-end network can leverage global geometric knowledge obtained through
pose-graph optimization by back-propagating the pose residuals from the back-end
PGO [94].
BLO is a long-standing and well-researched problem [275, 122, 155]. Solving a
BLO often relies on gradient-descent techniques. Specifically, the UL optimization
performs updates in the form y ← y + δy, where δy is a step in the direction of
the negative gradient. Therefore, we need compute the gradient of U with respect
to the UL variable y, which can be written as
∂U(y, x∗ ) ∂U(y, x∗ ) ∂x∗ (y)
∇y U = + , (5.3)
∂y ∂x∗ ∂y
∗
where the term ∂x∂y(y) involves indirect gradient computation. Since other direct
gradient terms in (5.3) are easy to obtain, the challenge of solving a BLO (5.2)
∗
is to compute the term ∂x∂y(y) . For this purpose, a series of techniques have been
developed from either explicit or implicit perspectives. This involves recurrent dif-
ferentiation through dynamical systems or implicit differentiation theory, which are
often referred to as unrolled differentiation and implicit differentiation, re-
spectively. These algorithms have been summarized in [155, 275] and here we list
a generic framework incorporating both methods in Algorithm 1. We next explain
the unrolled differentiation and implicit differentiation, respectively.
ˆ y U = ∂U ∂U ∂x∗
∇ + ,
k
∂yk xT ∂x∗ ∂yk xT
∗
where the implicit derivatives ∂x
∂yk can be obtained by solving an equation
derived via lower-level optimality conditions (surveyed in following sections).
5: Compute yk+1 via gradients using ∇ ˆ y U.
k
6: end while
where Φt denotes an updating scheme based on the LL problem at the t-th step
and T is the number of iterations. One updating scheme is the gradient descent:
∂L(xt−1 , y)
Φt (xt−1 ; y) = xt−1 − ηt · , (5.5)
∂xt−1
where the symbol ◦ denotes the function composition. As a result, we only need to
consider the following problem instead of a bilevel optimization in (5.2):
1
While here we mention gradient descent, the same ideas can be extended to other iterative
optimization methods, such as Gauss-Newton.
5.2 Differentiation Through Nonlinear Least Squares 105
∂x1 (y)
where the term ∂y is a Hessian that can be calculated from (5.5) as
∂L(x+
0 ,y) L(x−
0 ,y)
∂U(y, x1 (y)) ∂x1 (y) ∂y − ∂y
≈ , (5.10)
∂x1 ∂y 2ϵ
∂U (y,x1 (y))
where ϵ is a small scalar and x±
0 = x0 ± ϵ ∂x1 is a small perturbation. This
bypasses an explicit calculation of the Jacobian ∂x∂y1 (y)
. Nevertheless, we need to
pay attention to the perturbation model if non-Euclidean variables are involved,
e.g., variables belonging to Lie Groups. Fortunately, the AutoDiff of Lie Group
for Hessian-vector and Jacobian-vector multiplications are supported in modern
libraries, such as PyPose [274], which will be introduced in Section 5.4.
106 Differentiable Optimization
Assume the LL cost L is at least twice differentiable w.r.t. both y and x, then
∗
we have ∂L(x (y),y)
∂x∗ (y) = 0 due to the optimality condition where x∗ is a stationary
∂L(x∗ (y),y)
point. Derive the equation ∂x∗ (y) = 0 on both sides w.r.t. y giving us
where Hyx ·q can also be computed efficiently using the Hessian-vector product.
where we redefined the exponential and logarithm maps to directly use a vector as
input and output, respectively.
To calculate derivatives on Lie groups, it is crucial to first understand the relative
change between two manifold elements, say χ1 and χ2 . These changes are quantified
by first defining the ⊕ and ⊖ operators, which capture the concept of displacement
on the manifold, as described in (5.21) and (5.22) below:
χ2 = χ1 ⊕ τ ≜ χ1 ◦ Exp (τ ) ,
(5.21)
τ = χ2 ⊖ χ1 ≜ Log χ−1
1 ◦ χ2 .
where ε is expressed in the global frame. Both τ and ε can be viewed as incremen-
tal perturbations to the manifold elements. By using corresponding composition
operators ⊕ and ⊖, the variations are expressed as vectors in the tangent space.
With the right ⊕ and ⊖ operators in place, we use the Jacobian matrix J to
describe perturbations on manifolds. The Jacobian captures the essence of infinites-
imal perturbations τ within the tangent space m:
∂f (χ) f (χ ⊕ τ ) ⊖ f (χ)
≜ lim
∂χ τ →0 τ
f (χ ◦ Exp (τ )) ⊖ f (χ)
= lim (5.23)
τ →0 τ
Log f (χ)−1 ◦ f (χ ◦ Exp (τ ))
= lim .
τ →0 τ
Let g(τ ) = Log f (χ)−1 ◦ f (χ ◦ Exp (τ )) , then the right Jacobian J R can be ex-
pressed as the derivative of g(τ ) at τ = 0:
∂f (χ) ∂g(τ )
= JR = . (5.24)
∂χ ∂τ τ =0
In this way, the derivatives of f (χ) with respect to χ in the manifold are represented
by the Jacobian matrix JR ∈ Rm×n , where m and n are the dimensions of the
Lie groups M and N , respectively. The right Jacobian matrix performs a linear
mapping from the tangent space m to the tangent space n = Tf (χ) N .
Similarly, consider an infinitesimal perturbation ε ∈ Tg M applied to the Lie
group element χ, the left Jacobian JL can be defined with the left plus and minus
operators:
∂f (χ) f (ε ⊕ χ) ⊖ f (χ)
≜ lim
∂χ ε→0 ε
f (Exp (ε) ◦ χ) ⊖ f (χ)
= lim
ε→0 ε (5.25)
Log f (Exp (ε) ◦ χ) ◦ f (χ)−1
= lim
ε→0 ε
∂Log f (Exp (ε) ◦ χ) ◦ f (χ)−1
= .
∂ε ε=0
The resulting left Jacobian JL ∈ Rn×m is also a linear mapping, but in the global
tangent space from Tg M to Tg N .
To delve into the local perturbations around a point χ1 , we consider perturbations
τ as τ = χ ⊖ χ1 , with χ being a perturbed version of χ1 . The covariance matrices
Σχ defined on the tangent space are derived using the expectation operator E,
enabling the representation of uncertainties and their propagation:
Example 5.5. Consider a robot equipped with an inertial measurement unit (IMU)
and a camera. Given noisy observations RIMU and RCam from both sensors, the
orientation of the robot can be estimated by minimizing the discrepancy between
the measurements, which can be formulated as a nonlinear least squares problem
on the manifold SO(3):
where f (·) is the cost function that quantifies the differences between the estimated
orientation R and the sensor measurements RIMU and RCam . With the Jacobian
matrices in place, the optimization on the manifold SO(3) for the pose estimation
can be effectively managed. The cost function f (·) can be detailed as:
−1
−1
f (R) = ∥Log RIMU R ∥2 + ∥Log RCam R ∥2 . (5.28)
−1
!⊤
∂Log RIMU R −1
∇f (R) =2 Log RIMU R
∂R
!⊤ (5.29)
−1
∂Log RCam R −1
+2 Log RCam R .
∂R
The gradient ∇f (R) can be used in conjunction with optimization algorithms like
gradient descent which moves along the tangent space and reprojecting back to the
manifold to update the pose R iteratively:
where α is the step size. This iterative process continues until the cost function
f (R) converges to a minimum, providing an optimal pose estimate R̂ that aligns
with the sensor measurements.
Example 5.6. Consider a robotic arm with two joints, R1 and R2 , each repre-
sented by an element in SO(3). The final orientation of the robot’s end-effector is
determined by the composition of the joint rotations:
R = R1 ◦ R2 . (5.38)
data structure, LieTensor for Lie Group and Lie Algebra. Specifically, we will show
its numerical challenges and how PyPose tackle this challenge.
Analytical Foundations of Exponential Mapping to Quaternions. The
exponential map is a fundamental concept in the theory of Lie groups and is partic-
ularly critical when transitioning between Lie algebras and Lie groups represented
by quaternions. This mapping enables the translation of angular velocities from the
algebraic structure in R3 to rotational orientations in the group of unit quaternions
S3 . Analytically, the exponential map for quaternions is derived from the Rodrigues’
rotation formula, which relates a vector in R3 to the corresponding rotation. Given
a vector x in R3 , representing the axis of rotation scaled by the rotation angle, the
quaternion representation of the rotation is given by:
⊤
∥ν∥ ν ⊤ ∥x∥
Exp(ν) = sin , cos (5.40)
2 ∥ν∥ 2
where ∥ν∥ represents the magnitude of ν, corresponding to the angle of rotation,
ν
and ∥ν∥ is the unit vector in the direction of ν.
One of the challenges of implementing a differentiable LieTensor is that one
often need to calculate numerically problematic terms such as sinν ν in (5.40) for the
Exp and Log mapping [257]. The direct computation of sine and cosine functions
for very small angles can lead to precision issues due to the finite representation of
floating-point numbers in computer systems. To manage these issues and maintain
numerical stability, PyPose takes the Taylor expansion to avoid calculating the
division by zero.
T
T ∥ν∥
ν γ e , cos( ) if ∥ν∥ > eps
2
Exp(ν) = T (5.41)
∥ν∥2 ∥ν∥4
T
ν γo , 1 − + otherwise,
8 384
∥ν∥ 2 4
sin( )
where γe = ∥ν∥2 when ∥ν∥ is significant, and γo = 21 − ∥ν∥ ∥ν∥
48 + 3840 for small ∥ν∥,
ensuring precise calculations across all ranges of rotation magnitudes. Here, eps is
the smallest machine number where 1 + eps ̸= 1. This analytical-to-numerical pro-
gression demonstrates the importance of accurate and stable methods for computing
exponential maps in applications that require high fidelity in rotation representa-
tion, such as in 3D graphics, robotics, and aerospace engineering.
LieTensor is different from the existing libraries in several aspects: (1) PyPose
supports auto-diff for any order gradient and is compatible with most popular de-
vices, such as CPU, GPU, TPU, and Apple silicon GPU, while other libraries like
LieTorch [257] implement customized CUDA kernels and only support 1st -order
gradient. (2) LieTensor supports parallel computing of gradient with the vmap
operator, which allows it to compute Jacobian matrices much faster. (3) Libraries
such as LieTorch, JaxLie [303], and Theseus only support Lie groups, while Py-
114 Differentiable Optimization
Pose supports both Lie groups and Lie algebras. As a result, one can directly call
the Exp and Log maps from a LieTensor instance, which is more flexible and
user-friendly. Moreover, the gradient with respect to both types can be automat-
ically calculated and back-propagated. The readers may find a list of supported
LieTensor operations in [2] and the tutorial of PyPose is available in [4]. The
usages of a LieTensor and its automatic differentiation can be found at https:
//github.com/pypose/slambook-snippets/blob/main/lietensor.ipynb.
A · δt = β, (5.44)
P P
where A = i (Λi + λ · diag(Λi )), β = − i JiT Σi ri . In practice, the square ma-
trix A is often positive-definite, so we could leverage standard linear solvers such as
Cholesky. If the Jacobian Ji is large and sparse, we may also use sparse solvers such
as sparse Cholesky [46] or preconditioned conjugate gradient (PCG) [113] solver.
In practice, one often introduces robust kernel functions ρ : R 7→ R into (5.42) to
5.4 Modern Libraries 115
where ci = rTi Σi ri , rρi and Jiρ are the corrected model residual and Jacobian due to
the introduction of kernel functions, respectively. More details about FastTriggs
and its proof can be found in [1], while IRLS was introduced in Section 4.3.
A simple LM optimizer may not converge to the global optimum if the initial
guess is too far from the optimum. For this reason, we often need other strate-
gies such as adaptive damping, dogleg, and trust region methods [158] to re-
strict each step, preventing it from stepping “too far”. To adopt those strategies,
one may simply pass a strategy instance, e.g., TrustRegion, to an optimizer.
In summary, PyPose supports easy extensions for the aforementioned algorithms
by simply passing optimizer arguments to their constructor, including solver,
strategy, kernel, and corrector. A list of available algorithms and examples can
be found in [3]. The usages of a 2nd-order optimizatoin can be found at https:
//github.com/pypose/slambook-snippets/blob/main/optimization.ipynb.
We now shift our focus to a different aspect of SLAM, specifically its mapping com-
ponent. The mapping problem is approached with the assumption that the robot’s
pose is known, and the objective is to construct a dense map of its surroundings.
Indeed, typical approaches first solve for the robot trajectory using the SLAM back-
end —as discussed in the previous chapters— and then reconstruct a dense map
given the trajectory. In this chapter, we illustrate the details of the dense map
representation, focusing on the map elements, data structures, and methods.
Early mapping approaches were predominantly based on sparse, landmark-based
solutions as discussed in Chapter 2 that extract only a few salient features from
the environment. However, the increase in compute capabilities paired with the
advent of accurate 3D range sensors, such as mechanical 3D LiDARs or RGB-D
cameras that provide detailed 3D range measurements at high frequencies, led to an
increasing research interest in dense map representations. Dense maps are crucial
for downstream tasks that require a detailed understanding of the environment,
such as planning, navigation, manipulation and precise localization. This chapter
explains how these dense methods leverage the full spectrum of range sensor data
to refine and update comprehensive maps.
The chapter begins by presenting key sensor types that facilitate dense mapping,
primarily focusing on range sensors that produce detailed range measurements.
The chapter continues with an introduction to fundamental representation elements
and data structures in Section 6.2, that we then tailor to specific applications in
Section 6.4. Contrasting with sparse landmark-based mapping, the choice of a dense
map representation hinges on the sensor types used and the intended downstream
applications. Key factors influencing the selection of the representation type are
summarized in Section 6.5.
Figure 6.1 Single ray and multi-ray types for LiDAR sensors. Sample data from real-world
is visualized to show RGB, depth, and LiDAR range image.
use a structured infrared (IR) light source with a known pattern that is projected
onto the environment. The distance of individual pixels is then determined from
the distortion of the known pattern. As sunlight usually interferes with this sensing
mechanism, such RGB-D cameras using projected light are mainly used in indoor
environments. Fortunately, newer generations of RGB-D sensors introduce an IR
texture projector or TOF less affected by interferences, supporting outdoor appli-
cations.
(a) Points (b) Occupancy (c) Implicit Surface (d) Distance Field (e) Surface
Explicit Implicit
Figure 6.4 The representation can be either explicit or implicit. The illustration is simpli-
fied for clarity. In reality, the abstraction is not clearly separable and can often be applied
in a combined manner.
Q2. How should the world be represented? This is the question of what
space abstraction we use for representation. Broadly, representation can be either
explicit or implicit. Explicit space abstractions are further classified based on the
type of geometry they utilize, while implicit representation can be categorized based
on their choice of functions. The list of abstraction types are illustrated in Figure
6.4.
Q3. What data structure and storage should be used? The chosen repre-
sentation should be stored in memory for later use. The data structure and storage
method should be selected based on the specific application and intended usage.
In the literature, a wide variety of approaches exist for generating a dense rep-
resentation of the scene using range sensors, varying in terms of their estimated
quantities, space abstraction, storage structure, continuity, and application areas.
Beginning the discussion on different representations, we first explore the primary
quantities estimated from range measurements. The focus is on understanding the
key quantities predominantly estimated in the mapping phase. We will provide a
concise overview of the basic definitions of each quantity, elaborating their signifi-
cance and the specific contexts in which they play a crucial role.
pied cells and 0 for cells deemed empty. Essentially occupancy mapping is a binary
classification problem to predict the binary class probability of each cell.
mi
robot
Figure 6.5 A simple ray-casting example in 2D. Given a range measurement at a certain
(computed or estimated) azimuth, the return of the range measurement indicates the
existence of an obstacle.
Given a set of sensor measurements z1:t and a set of sensor poses x1:t , the proba-
bility of being occupied for each cell in the map m is modeled as p(m|z1:t , x1:t ). A
sample map is shown in Figure 6.5. Assuming that each cell mk is independent and
that the measurements are conditionally independent, the update of occupancy can
be formulated efficiently using the well-known log-odds form [179],
l(mk |z1:t ) = l(mk |z1:t − 1) + l(mk |zt ) , (6.6)
where l(·|·) = log(o(·|·)), and o(·|·) is the odds form:
p(mk |z1:t )
o(mk |z1:t ) = . (6.7)
1 − p(mk |z1:t )
The main advantage of occupancy mapping is shown in (6.6), where only the
previous occupancy value and the inverse sensor model l(mk |zt ) are needed to up-
date the probability through a simple addition. Despite these benefits, occupancy
grids rely on very strong assumptions of the environment to be efficient. Notably,
the assumption that the likelihood of occupancy in one cell is independent of other
cells disregard spatial correlations that can be important to infer occupancy in
unobserved nearby regions. Additionally, traditional occupancy grids require the
discretization of the environment be defined a priori which makes the spatial reso-
lution constant throughout the map.
boundary using an analytical function in three variables (x, y and z) which reaches 0
whenever a point p = (x, y, z) lies on the surface. In other words, the function’s zero
crossings correspond to the surface itself. Such a function is known as an implicit
surface. By convention, the function’s sign is negative when p lies inside an object
and positive outside. A simple example in Figure 6.6 illustrates how this implicit
function values are determined.
1.0 1.0
0.5 0.5
0.0 0.0
Y
0.5 0.5
1.0 1.0
1.0 0.5 0.0 0.5 1.0
X
Figure 6.6 A solid 2D disk represented as an explicit surface (black outline) and implicit
surface (colored field). The implicit surface function is negative inside the object (blue)
and positive outside (red). Note how the function’s zero crossings correspond to the surface
itself.
in terms of their boundary of the objects in the scene. The simplest abstraction
that can represent the boundary is directly the point cloud produced by the range
sensors. Another general representation of the surface is the polygon mesh (Section
6.4.3), which comprises vertices, edges, and faces. These meshes have the ability
to encode the directed surfaces of a volume by forming connected closed polygons,
more commonly triangles. Surfels (Section 6.4.2) are also popular abstraction widely
used in mapping. Surface representations are a key for any visualization application,
but also are used for rendering simulated environments, augmented reality or for
computed aided design and 3D printing.
Similar strategies are employed in 3D volume modeling. Naive point-based rep-
resentations are commonly used in LiDAR SLAM. Additionally, occupancy or
distance-based voxels (Section 6.4.4) are popular choices for explicit representation.
When storing volumetric maps, careful consideration of data storage is necessary
to minimize computational costs. Implicit representations for volumetric mapping
are also utilized, typically through functions. GP (Section 6.4.5) and Hilbert maps
(Section 6.4.6) are well-known examples of implicit representations.
(a)
(b)
Figure 6.7 Qualitative comparison of maps generated by accumulating point clouds and
surfels from a sequence of LiDAR scans from the KITTI dataset [96] Sequence 07. (a)
Point cloud map. The brightness of points indicates the remission of the LiDAR measure-
ments. (b) Corresponding surfel map based on circular disks. The complete map with all
accumulated point clouds use 2.95 GB, while the corresponding surfel map by SuMa [24]
uses only 160 MB.
6.3.2.2 Surfels
While point cloud maps directly represent the measurements, the stored points
do not contain surface information or can represent from which direction a point
has been measured. With surfels [208], we can encode such information by adding
directional information to a point. Surfels are commonly represented via circular or
elliptic discs [131, 24, 285, 35, 34], or more generally ellipsoids [246, 247, 74, 314]
modeled with a a Gaussian. So-called splatting [314, 34] allows to integrate texture
information but also blend overlapping surfels into coherent renderings of a specific
viewpoint.
A commonly employed circular surfel representing a circular disk is defined by
a location p ∈ R3 , a normal direction n ∈ R3 , and a radius r ∈ R. As rendering
primitive such surface patches can be efficiently rendered using the capabilities of
modern graphics processing units (GPUs), which can be exploited to efficiently
128 Dense Map Representations
6.3.2.3 Meshes
While describing local surface properties, both point clouds and surfel maps are still
relatively sparse as they do not model the surface’s connectivity. One way to get a
more complete understanding is to use meshes, which describe the surface as a set
of points that are connected to form a collection of polygons. This, in turn, makes it
possible to represent watertight surfaces, query and interpolate new surface points,
and efficiently iterate along a connected surface.
In meshing terminology, each polygon is referred to as a face, and each corner
point as a vertex. The most common types are triangle meshes, where each face is
bounded by three vertices, and quad meshes, whose faces are bound by four vertices.
Note that a polygon, or face, can always be broken down into an equivalent set of
triangles; hence, triangle meshes are not only the simplest but also the most general.
A mesh is a very flexible and memory-efficient representation because the number
of faces and vertices can be directly adapted to the surface complexity and required
detail. For example, a plane of any size can be represented with just two triangular
faces and four vertices. Furthermore, meshes are well-suited for parallel processing
and rendering. Meshes are often used in applications that overlap with computer
graphics, such as rendering, surface analysis, manipulation, and deformation, and
more generally in applications involving digital models, simulation, or surface-based
algorithms, such as path planning for ground robots.
6.3 Map Representations 129
6.3.2.4 Voxels
Point clouds and meshes are well suited to represent properties of the environment
that are defined along surfaces. However, certain estimated quantities, including
occupancy and Signed Distance, are defined throughout the entire volume. One
straightforward way to store and process volumetric properties is to discretize them
over a regular grid. Discretized occupancy and Signed Distance maps are called
occupancy grids and Signed Distance Fields, respectively.
Generalizing the concept of 2D pixels, the cells in a 3D grid are referred to as
voxels. Given a grid’s regular structure, each voxel can easily be assigned a unique
index and stored in a data structure. Note that a voxel is merely a container or, more
formally, a space partition. The significance of its contents varies from one method
to another. In a classic occupancy grid, a voxel’s value represents the likelihood
that any point in the voxel is occupied. Hence, the occupancy at an arbitrary point
in the map is equal to the value of the voxel that contains the point. However, a
voxel’s value does not have to represent a constant little cube. For example, voxels
in a Signed Distance Field estimate the signed distance at each voxel’s center.
To retrieve the signed distance at an arbitrary point, one would therefore query
the voxels that neighbor the point and obtain the point’s value using interpolation.
Finally, some applications even use (sparse) voxel grids to store and efficiently query
non-volumetric properties, such as points or surface colors.
Figure 6.8 The algorithm works by projecting the cubes into the implicit surface, querying
the sign of the values at the corners of the cubes, and looking up which one of the 15
configurations these values map to.
6.3.2.6 Conversions
The abstractions listed above are not always used exclusively; they are often con-
verted from one form to another or employed simultaneously in multiple forms.
For instance, explicit geometry, such as points and meshes, can be transformed
into an implicit surface. One flexible method to compute the signed distance at any
point in space is through a closest point lookup, which can be performed against
any explicit geometry and on-demand, only when and where needed. Alternatively,
the signed distance can be computed across all points on a regular grid using
wavefront propagation, which can efficiently be implemented via the fast march-
ing method [231].
Conversely, it is common to convert implicit surfaces into mesh representations.
The original technique for converting distance fields into meshes is known as March-
ing Cubes [157]. The algorithm divides the implicit surface into a grid of fixed-size
cubes, which it processes independently. Each cube generates a set of triangle ele-
ments based on the implicit surface’s values at its eight corners (Figure 6.8). The
positions of their vertices are then refined through linear interpolation. Meshes, in-
cluding those from BIM or CAD models, can, in turn, be sampled to create points
or surfels.
Occasionally, a discrete representation must be converted into a continuous one.
This is typically achieved by solving an optimization problem over the parameters
6.3 Map Representations 131
(a)
(b)
Figure 6.9 (a) Mapping of logical grid coordinates to an underlying naive array-based
storage through a function f (·) that uniquely maps coordinates to linear indices. (b)
Storage of unordered data directly into an array structure.
of the continuous representation, minimizing the fitting error with respect to the
discrete data.
a hash function to convert the coordinates of each shard into a single value, and
stores the sharded data in a table indexed by this hash value. The shards are
typically chosen to represent map subregions with well-established coordinates, such
as cubes in a regular grid. These cubes may correspond to individual voxels or fixed-
size groups of voxels, referred to as voxel blocks. Alternatively, they can also store
other elements like points, surfels, or mesh fragments contained in their respective
subregions.
A hash table retains the fast O(1) look-up time of a fixed array while allowing
the map to grow dynamically without reallocation. Three key considerations must
be addressed when using a hash table for dense map storage:
In most cases, hash tables offer a good balance of fast access and efficient insertion
and deletion of data. However, they may require initial tuning to perform well for
a given application.
Figure 6.10 Example of an octree and its octants at different levels of the tree hierarchy.
Each level of an octree subdivides the space in more fine-grained octants. Note that deeper
levels of the octree only represent the occupied space.
6.4.1 Points
As mentioned in Section 6.3.2.1, naively storing points by accumulating the mea-
sured point clouds will not scale to large-scale environments and will lead to redun-
dantly represented measurements. Therefore, most approaches [307, 70, 272] adopt
a point-based representation in combination with a voxel grid or octree to repre-
sent the dense map. Moreover, the selection of a data structure is driven by the
requirement for efficient nearest neighbor searches, essential for conducting scan reg-
istration through iterative closest point (ICP), where point correspondences must
be iteratively established.
In order to handle large-scale environments, some methods, such as the well-
known LiDAR SLAM LOAM [307], filter the raw point clouds to extract corner
and surface points thereby significantly reducing the point cloud size. A voxel grid
is applied to store only a subset of points in the map representation, pruning redun-
dant measurements. Stemming from the point-based voxelization used in LOAM,
several follow-up approaches [234, 276, 198, 152, 213, 233] refine the extraction of
points [234, 276, 198], improve the optimization pipeline [198, 152], or integrate
information of an IMU [213, 233].
6.4 Constructing Maps: Methods and Practices 135
Another branch of methods handles the amount of point cloud data differently
to avoid reliance on a capable feature extraction approach. Regularly sampling
the point clouds via a voxel grid [70] significantly reduces the number of points
per LiDAR scan and removes potentially redundant information. The key insight
is here that points in the voxel grid are not aggregated and averaged, but original
measurements are retained. Following these insights, Dellenbach et al. [70] and Vizzo
et al. [272] use this strategy to downsample an input point cloud, only storing a
restricted number of points inside a voxel grid map.
Overall, as also mentioned in Section 6.3.2.1, the (hashed) voxel grid serves dual
purposes: it abstracts space by storing a limited number of point measurements per
voxel, and it facilitates accelerated nearest neighbor search through direct indexing
of neighboring voxels.
6.4.2 Surfels
For surfels, similar strategies can be applied as for point clouds, but notably Stückler
et al. [246] and follow-up work by Dröschel et al. [74] use an octree to represent
surfels at multiple levels in the octree hierarchy for data association. The so-called
multi-resolution surfel maps indirectly represent the surfels via accumulated mean
and covariance statistics, like a NDT.
In contrast, Whelan et al. [285] store surfels as a simple list and exploit efficient
rendering techniques to produce a projection for data association for RGB-D SLAM
in indoor environments. In this case, surfels are explicit geometric primitives and,
therefore, need to be directly handled to update the surfel properties (i.e.,, size
and direction) accordingly [131]. A key contribution of Whelan et al. is leveraging
a map deformation that directly deforms the surfels instead of relying on a pose
graph optimization, which enables the use of the measurements represented by the
surfels to deform the map on a loop closure detection. A similar strategy for map
deformation of surfels was employed by Park et al. [200].
Similarly, Behley et al. [24] target outdoor environments, which makes it neces-
sary to represent the surfels via multiple submaps of 100 m×100 m spatial extent
that can be off-loaded from GPU memory. In contrast to ElasticFusiuon [285],
the approach relies on pose graph optimization but exploits that surfels can be
freely positioned and ties surfels to poses enabling a straight-forward deformation
of the map with pose-graph-optimized poses, which was also adopted by other ap-
proaches [278].
6.4.3 Meshes
As introduced ealier, meshes offer an expressive, flexible way to represent connected
surfaces. Mesh generation methods can be split into two families of approaches.
136 Dense Map Representations
The first family directly converts the measured points into a mesh. In contrast, the
second family splits the problem into two steps: reconstructing an implicit surface,
followed by iso-surface extraction to get the final mesh (see Section 6.3.2.6).
Methods in the first family typically work directly by computing the Delaunay
triangulation of the input point set and identifying the subset of Delaunay trian-
gles that lie on the surface. A detailed overview of such methods is provided in [45].
When building directly from points, the mesh implicitly adapts itself to the sam-
pling density. This can be an advantage, as it provides adaptive resolution, but it
also means these methods are more sensitive to sampling irregularities and holes. In
practice, direct meshing methods are chosen when the entire surface can be sampled
densely with a very accurate depth sensor, for example, using surveying equipment.
In robotics applications, constructing a mesh from a live sensor stream is often de-
sirable. One way to make surface reconstruction efficient enough to run in real-time
is to use incremental updates. TSDF-based surface reconstruction is particularly
popular in practice given its inherently incremental nature and general simplicity.
This method falls under the second family of approaches and estimates the implicit
surface by averaging projective distances. Since the cost of updating the TSDF, or
implicit surface in general, overshadows the cost of the mesh extraction, real-time
methods primarily focus on optimizing the former.
6.4 Constructing Maps: Methods and Practices 137
6.4.4 Voxels
Voxel-based methods are among the most commonly used volumetric represen-
tations in 3D reconstruction and robotics. Instead of covering a swath of existing
literature chronologically, this section will focus on concepts commonly encountered
in practice and organize them according to three fundamental decision criteria: the
chosen estimated quantity, data structure, and scalability considerations.
For each measured point, ray tracing integrators cast a ray from the sensor to the
point and update all the voxels intersected by the ray. An advantage of this approach
is that it is very general, and only requires that the position of the sensor’s origin is
known. However, voxels may be hit by multiple rays, especially if they are near the
sensor. This leads to duplicated efforts, and handling the resulting race conditions
in parallel implementations creates implementation and performance overheads.
In contrast, projection-based methods directly iterate over the observed voxels
and look up the ray(s) needed to compute their update by projecting each voxel into
sensor coordinates. Iterating over the map instead of the rays inherently avoids race
conditions. Projection-based methods are, therefore, prevalent in multi-threaded
and GPU-accelerated volumetric mapping frameworks. The predictable access pat-
tern resulting from directly iterating over the map also reduces memory bottlenecks.
Yet, a major disadvantage is the need for explicit knowledge of the sensor’s full pose
and projection model. This method is also harder to use with disorganized point
clouds, including the clouds obtained after applying LiDAR motion-undistortion.
levels still have to be synchronized explicitly. One way to eliminate this synchro-
nization requirement is to encode only the differences between each resolution level,
instead of storing absolute values in each octree node. This can formally be done by
applying wavelet decomposition. Wavelet-encoded maps can efficiently be queried
at any resolution at any time. Using this property, wavemap [220] reduces the com-
putational complexity even further by updating the map in a coarse-to-fine manner.
In addition to adjusting the update resolution to the measurement entropy, it also
skips uninformative updates, such as when the occupancy for an area in the map
has converged to being free, and all measurements agree.
6.4.5 GPs
As mentioned in Section 6.3.2.5, formulating the mapping problem as a regression
problem is desired to obtain a continuous representation. Moreover, if the aim is
to limit the number of assumptions about the environment, solving a non-linear
regression problem with non-parametric methods is ideal. GP [217] is a stochastic,
non-parametric, non-linear regression approach. It allows estimating the value of
an unknown function at an arbitrary query point given noisy and sparse measure-
ments at other points. We already learned in Chapter 3.2 how GP can be used for
continuous time trajectory representation. As will be apparent, GP are also an ap-
pealing solution for mapping continuous quantities, and they have been extensively
used in the robotics literature to model continuously spatial phenomena with depth
sensors [268, 190, 98, 134].
The information in GP models is contained in its mean m(x) and kernel functions
K(x, x′ ) and model the estimated continuous quantity as
Here, (6.10) and (6.11) are the predictive equations for the estimated quantitative.
GPs have proven particularly powerful to represent spatially correlated data,
hence overcoming the traditional assumption of independence between cells, charac-
teristic of the occupancy grid method for mapping environments. Gaussian Process
Occupancy Map (GPOM)s [190] collects sensor observations and the corresponding
labels (free or occupied) as training data; the map cells comprise testing locations,
which are related to the training data as shown in (6.9). After the regression is
performed using (6.10) and (6.11), the cell’s probability of occupancy is obtained
by “squashing” regression outputs into occupancy probabilities using binary clas-
sification functions.
In its original formulation GPOM is a batch mapping technique with cubic com-
putational complexity (O(J 3 +J 2 N ) ). Approaches that aim to tacking this compu-
tational complexity especially for incremental GP map building have been proposed
following this work, for example [134, 135, 277, 99].
A key advantage of mapping with GP-based functions is that the estimated quan-
tity can be linearly operated [228] and still produce a GP as an output. Given that
derivatives and, therefore gradients, are linear operations, the differentiation out-
put of the estimated quantity is probabilistic. A continuous representation of the
uncertainty in the environment can be used to highlight unexplored regions and
optimize a robot’s search plan [99, 154]. The continuity property of the GP map
can improve the flexibility of a planner by inferring directly on collected sensor data
without being limited by the resolution of a grid/voxel cell.
have considered the use of parametric function priors to capture given shapes more
accurately [171, 118]. Other approaches aimed to estimate not only the implicit
surface but the full distance field. Given the nature of the vanilla version of the
GPIS formulation, the distance is well approximated near the measurements, i.e.,
on the surface, but falls back to the mean, which in this case is zero, faraway from
the surface. To estimate the full distance field in a continuous and probabilistic
formulation further away from the surface, works have considered applying a non-
linear operation to a GPIS-like formulation [288, 289, 145].
All these works have to deal with the computational complexity of the GP-
based formulation, but as an exchange, a continuous, generative, and probabilistic
representation of the environment, given only point clouds can be achieved.
Figure 6.11 (a) The observations by a robot using a 2D LiDAR sensor, which is turned
into a dataset (b) Free (green) and occupied (red) points. These are then used to train a
Hilbert Map as seen in (c).
is a tradeoff in the form of number of kernels and their lengthscale affecting the
computational cost, reconstruction detail, and interpolation ability.
neural decoders to turn features into signed distance values, but also being effective
for large-scale scenes, such as outdoor environments.
The area of deep learning-based mapping, reconstruction, and SLAM is currently
rapidly evolving and integrating ideas from classical representation, such as surfel
splatting [130, 173], to achieve remarkable results in terms of reconstruction qual-
ity, but also capabilities. In particular, the ability to render novel views and gen-
erate new data at arbitary positions could be potentially exploited for robot learn-
ing without relying on simulated environments. For example, NeRF and Gaussian
splatting [314, 34] have gained considerable popularity, demonstrating significant
potential in various SLAM-related works. These will be further detailed in Chapter
16.
itself and their fidelity can easily be adapted to the detail required for each part
of the scene. When free-space information is required, multi-resolution approaches
can offer significant improvements over fixed-resolution voxelized representations in
terms of accuracy, memory, and their ability to capture very thin objects.
One final consideration is whether the environment has a significant amount of
dynamic objects and the degree to which these should be modeled. Most existing
mapping frameworks can be grouped into one of three categories of approaches.
The first set of approaches does not consider dynamics and directly fuses all mea-
surements into one of the representations introduced in this chapter. In practice,
this might already suffice when using implicit representations, since their free-space
updates typically do a good job at erasing leftovers of objects after they moved.
The second category of approaches tries to only integrate the environment’s static
elements into the map, by explicitly detecting and discarding all measurements cor-
responding to dynamic objects. This approach is particularly popular when using
explicit maps, where leftovers are more tedious to remove, and generally makes it
possible to generate clean maps even in highly dynamic spaces. The last set of solu-
tions not only represents the background but also the moving elements in the scene.
Note that this is commonly done using hybrid representations, mixing fundamental
geometric representations introduced in this chapter with bespoke representations
at the object level.
Efficient in
Operation Explicit representation Implicit representation
Filter measurements Along the surface In Cartesian space
(texture,...) (occupancy,...)
Query and iterate In surface coordinates In Cartesian coordinates
(coverage planning,...) (collision checking,...)
Modify surface Geometry Topology
(deformation,...) (merge, cut, simplify,...)
Aenean sem dolor, fermentum nec, gravida hendrerit, mattis eget, felis. Nullam
non diam vitae mi lacinia consectetuer. Fusce non massa eget quam luctus posuere.
Aenean vulputate velit. Quisque et dolor. Donec ipsum tortor, rutrum quis, mollis
eu, mollis a, pede. Donec nulla. Duis molestie. Duis lobortis commodo purus. Pel-
lentesque vel quam. Ut congue congue risus. Sed ligula. Aenean dictum pede vitae
felis. Donec sit amet nibh. Maecenas eu orci. Quisque gravida quam sed massa.
9
LiDAR SLAM
Author I, Author II, and Author III
10
Radar SLAM
Author I, Author II, and Author III
Aenean sem dolor, fermentum nec, gravida hendrerit, mattis eget, felis. Nullam
non diam vitae mi lacinia consectetuer. Fusce non massa eget quam luctus posuere.
Aenean vulputate velit. Quisque et dolor. Donec ipsum tortor, rutrum quis, mollis
eu, mollis a, pede. Donec nulla. Duis molestie. Duis lobortis commodo purus. Pel-
lentesque vel quam. Ut congue congue risus. Sed ligula. Aenean dictum pede vitae
felis. Donec sit amet nibh. Maecenas eu orci. Quisque gravida quam sed massa.
11
Event-based SLAM
Author I, Author II, and Author III
12
Inertial Odometry for SLAM
Author I, Author II, and Author III
13
Leg Odometry for SLAM
Marco Camurri and Matı́as Mattamala
PART THREE
FROM SLAM TO SPATIAL PERCEPTION AI
14
Spatial AI
Author I, Author II, and Author III
Aenean sem dolor, fermentum nec, gravida hendrerit, mattis eget, felis. Nullam non
diam vitae mi lacinia consectetuer. Fusce non massa eget quam luctus posuere. Ae-
nean vulputate velit. Quisque et dolor. Donec ipsum tortor, rutrum quis, mollis eu,
mollis a, pede. Donec nulla. Duis molestie. Duis lobortis commodo purus. Pellentes-
que vel quam. Ut congue congue risus. Sed ligula. Aenean dictum pede vitae felis.
Donec sit amet nibh. Maecenas eu orci. Quisque gravida quam sed massa.[307]
15
Boosting SLAM with Deep Learning
Author I, Author II, and Author III
Aenean sem dolor, fermentum nec, gravida hendrerit, mattis eget, felis. Nullam
non diam vitae mi lacinia consectetuer. Fusce non massa eget quam luctus posuere.
Aenean vulputate velit. Quisque et dolor. Donec ipsum tortor, rutrum quis, mollis
eu, mollis a, pede. Donec nulla. Duis molestie. Duis lobortis commodo purus. Pel-
lentesque vel quam. Ut congue congue risus. Sed ligula. Aenean dictum pede vitae
felis. Donec sit amet nibh. Maecenas eu orci. Quisque gravida quam sed massa.
16
NeRF and GS
Author I, Author II, and Author III
Aenean sem dolor, fermentum nec, gravida hendrerit, mattis eget, felis. Nullam non
diam vitae mi lacinia consectetuer. Fusce non massa eget quam luctus posuere. Ae-
nean vulputate velit. Quisque et dolor. Donec ipsum tortor, rutrum quis, mollis eu,
mollis a, pede. Donec nulla. Duis molestie. Duis lobortis commodo purus. Pellentes-
que vel quam. Ut congue congue risus. Sed ligula. Aenean dictum pede vitae felis.
Donec sit amet nibh. Maecenas eu orci. Quisque gravida quam sed massa.[307]
17
Dynamic and Deformable SLAM
Author I, Author II, and Author III
Aenean sem dolor, fermentum nec, gravida hendrerit, mattis eget, felis. Nullam
non diam vitae mi lacinia consectetuer. Fusce non massa eget quam luctus posuere.
Aenean vulputate velit. Quisque et dolor. Donec ipsum tortor, rutrum quis, mollis
eu, mollis a, pede. Donec nulla. Duis molestie. Duis lobortis commodo purus. Pel-
lentesque vel quam. Ut congue congue risus. Sed ligula. Aenean dictum pede vitae
felis. Donec sit amet nibh. Maecenas eu orci. Quisque gravida quam sed massa.
18
Metric-Semantic SLAM
Author I, Author II, and Author III
19
Foundation Models for SLAM
Author I, Author II, and Author III
Notes
References
[14] Ankenbauer, Jacqueline, Lusk, Parker C., and How, Jonathan P. 2023 (Mar.).
Global Localization in Unstructured Environments Using Semantic Object
Maps Built from Various Viewpoints.
[15] Antonante, P., Tzoumas, V., Yang, H., and Carlone, L. 2021. Outlier-Robust
Estimation: Hardness, Minimally Tuned Algorithms, and Applications. IEEE
Trans. Robotics, 38(1), 281–301. .
[16] Barath, Daniel, Noskova, Jana, Ivashechkin, Maksym, and Matas, Jiri. 2020.
MAGSAC++, a fast, reliable and accurate robust estimator. Pages 1304–1312
of: IEEE Conf. on Computer Vision and Pattern Recognition (CVPR).
[17] Barfoot, T D. 2024. State Estimation for Robotics. 2nd edn. Cambridge
University Press.
[18] Barfoot, T D, Forbes, J R, and D’Eleuterio, G M T. 2022. Vectorial Param-
eterizations of Pose. Robotica, 40(7), 2409–2427.
[19] Barfoot, Timothy D. 2017. State estimation for robotics. Cambridge Univer-
sity Press.
[20] Barrau, A., and Bonnabel, S. 2017. The Invariant Extended Kalman Filter
as a Stable Observer. IEEE Trans. on Automatic Control, 62(4), 1797–1812.
[21] Barron, Jonathan T. 2019. A general and adaptive robust loss function. Pages
4331–4339 of: Proceedings of the IEEE Conference on Computer Vision and
Pattern Recognition.
[22] Bauernfeind, Carl Max v. 1856. Elemente der Vermessungskunde: ein
Lehrbuch der praktischen Geometrie. Cotta.
[23] Bazin, J.C., Seo, Y., Hartley, R.I., and Pollefeys, M. 2014. Globally optimal
inlier set maximization with unknown rotation and focal length. Pages 803–
817 of: European Conf. on Computer Vision (ECCV).
[24] Behley, J., and Stachniss, C. 2018. Efficient Surfel-Based SLAM using 3D
Laser Range Data in Urban Environments. In: Robotics: Science and Systems
(RSS).
[25] Behley, Jens, Steinhage, Volker, and Cremers, Armin B. 2015. Efficient Radius
Neighbor Search in Three-dimensional Point Clouds. In: IEEE Intl. Conf. on
Robotics and Automation (ICRA).
[26] Bentley, J.L. 1975. Multidimensional Binary Search Trees Used for Associa-
tive Searching. Communications of the ACM, 18(9), 509–517.
[27] Bezdek, James C, and Hathaway, Richard J. 2003. Convergence of alternating
optimization. Neural, Parallel & Scientific Computations, 11(4), 351–368.
[28] Bhardwaj, Mohak, Boots, Byron, and Mukadam, Mustafa. 2020. Differen-
tiable gaussian process motion planning. Pages 10598–10604 of: 2020 IEEE
International Conference on Robotics and Automation (ICRA). IEEE.
[29] Biber, Peter, and Straßer, Wolfgang. 2003. The normal distributions trans-
form: A new approach to laser scan matching. Pages 2743–2748 of: IEEE/RSJ
Intl. Conf. on Intelligent Robots and Systems (IROS), vol. 3. IEEE.
[30] Bierman, G.J. 1977. Factorization methods for discrete sequential estimation.
Mathematics in Science and Engineering, vol. 128. New York: Academic
Press.
[31] Black, Michael J., and Rangarajan, Anand. 1996. On the unification of line
processes, outlier rejection, and robust statistics with applications in early
vision. Intl. J. of Computer Vision, 19(1), 57–91.
[32] Blake, Andrew, and Zisserman, Andrew. 1987. Visual reconstruction. MIT
Press.
168 References
[33] Bosse, M., Agamennoni, G., and Gilitschenski, I. 2016. Robust Estimation
and Applications in Robotics. Foundations and Trends in Robotics, 4(4),
225–269.
[34] Botsch, M., Spernat, M., and Kobbelt, L. 2004. Phong splatting. In: Sympo-
sium on Point-Based Graphics (PBG).
[35] Botsch, Mario, Hornung, Alexander, Zwicker, Matthias, and Kobbelt, Leif.
2005. High-Quality Surface Splatting on Today’s GPUs. In: Symposium on
Point-Based Graphics (PBG).
[36] Boumal, Nicolas. 2022 (Mar). An introduction to optimization on smooth
manifolds. To appear with Cambridge University Press.
[37] Bradbury, James, Frostig, Roy, Hawkins, Peter, Johnson, Matthew James,
Leary, Chris, Maclaurin, Dougal, Necula, George, Paszke, Adam, VanderPlas,
Jake, Wanderman-Milne, Skye, and Zhang, Qiao. 2018. JAX: composable
transformations of Python+NumPy programs.
[38] Bustos, Á. P., and Chin, T. J. 2018. Guaranteed outlier removal for point
cloud registration with correspondences. 40(12), 2868–2882.
[39] Bustos, Alvaro Parra, Chin, Tat-Jun, Neumann, Frank, Friedrich, Tobias, and
Katzmann, Maximilian. 2019. A Practical Maximum Clique Algorithm for
Matching with Pairwise Constraints. arXiv preprint arXiv:1902.01534.
[40] Bylow, Erik, Sturm, Jürgen, Kerl, Christian, Kahl, Fredrik, and Cremers,
Daniel. 2013. Real-time camera tracking and 3D reconstruction using signed
distance functions. Page 2 of: Robotics: Science and Systems (RSS), vol. 2.
[41] Cadena, C., Carlone, L., Carrillo, H., Latif, Y., Scaramuzza, D., Neira, J.,
Reid, I., and Leonard, J. J. 2016. Past, Present, and Future of Simultaneous
Localization and Mapping: Toward the Robust-Perception Age. IEEE Trans.
Robotics, 32(6), 1309–1332.
[42] Carlone, L. 2023. Estimation Contracts for Outlier-Robust Geometric Percep-
tion. Foundations and Trends (FnT) in Robotics, arXiv preprint: 2208.10521.
.
[43] Carlone, L., and Calafiore, G. 2018. Convex Relaxations for Pose Graph
Optimization with Outliers. IEEE Robotics and Automation Letters, 3(2),
1160–1167. arxiv preprint: 1801.02112, .
[44] Carr, J. C., Beatson, R. K., Cherrie, J. B., Mitchell, T. J., Fright, W. R.,
McCallum, B. C., and Evans, T. R. 2001. Reconstruction and representation
of 3D objects with radial basis functions. Pages 67–76 of: Intl. Conf. on
Computer Graphics and Interactive Techniques (SIGGRAPH). Association
for Computing Machinery.
[45] Cazals, Frédéric, and Giesen, Joachim. 2006. Delaunay Triangulation Based
Surface Reconstruction. In: Effective Computational Geometry for Curves
and Surfaces.
[46] Chadwick, Jeffrey N, and Bindel, David S. 2015. An efficient solver for
sparse linear systems based on rank-structured Cholesky factorization. arXiv
preprint arXiv:1507.05593.
[47] Chang, Y., Ebadi, K., Denniston, C., Ginting, M. Fadhil, Rosinol, A., Reinke,
A., Palieri, M., Shi, J., A, Chatterjee, Morrell, B., Agha-mohammadi, A.,
and Carlone, L. 2022. LAMP 2.0: A Robust Multi-Robot SLAM System
for Operation in Challenging Large-Scale Underground Environments. IEEE
Robotics and Automation Letters, 7(4), 9175–9182. .
References 169
[48] Chatila, R., and Laumond, J.-P. 1985. Position referencing and consistent
world modeling for mobile robots. Pages 138–145 of: IEEE Intl. Conf. on
Robotics and Automation (ICRA).
[49] Chatterjee, A., and Govindu, V. M. 2013. Efficient and Robust Large-Scale
Rotation Averaging. Pages 521–528 of: Intl. Conf. on Computer Vision
(ICCV).
[50] Chebrolu, Nived, Läbe, Thomas, Vysotska, Olga, Behley, Jens, and Stach-
niss, Cyrill. 2020. Adaptive Robust Kernels for Non-Linear Least Squares
Problems. arXiv preprint arXiv:2004.14938.
[51] Chen, Hansheng, Wang, Pichao, Wang, Fan, Tian, Wei, Xiong, Lu, and Li,
Hao. 2022. EPro-PnP: Generalized End-to-End Probabilistic Perspective-n-
Points for Monocular Object Pose Estimation. Pages 2781–2790 of: Proceed-
ings of the IEEE/CVF Conference on Computer Vision and Pattern Recog-
nition.
[52] Chen, Tianqi, Li, Mu, Li, Yutian, Lin, Min, Wang, Naiyan, Wang, Minjie,
Xiao, Tianjun, Xu, Bing, Zhang, Chiyuan, and Zhang, Zheng. 2015. Mxnet:
A flexible and efficient machine learning library for heterogeneous distributed
systems. arXiv preprint arXiv:1512.01274.
[53] Chen, Xiangyu, Yang, Fan, and Wang, Chen. 2024. iA*: Imperative Learning-
based A* Search for Pathfinding. arXiv preprint arXiv:2403.15870.
[54] Chen, Y., Davis, T.A., Hager, W.W., and Rajamanickam, S. 2008. Algorithm
887: CHOLMOD, Supernodal Sparse Cholesky Factorization and Update/-
Downdate. ACM Trans. Math. Softw., 35(3), 22:1–22:14.
[55] Chin, T., Kee, Y. H., Eriksson, A., and Neumann, F. 2016 (June). Guaranteed
Outlier Removal with Mixed Integer Linear Programs. Pages 5858–5866 of:
IEEE Conf. on Computer Vision and Pattern Recognition (CVPR).
[56] Chum, O., and Matas, J. 2005. Matching with PROSAC - Progressive Sample
Consensus. In: IEEE Conf. on Computer Vision and Pattern Recognition
(CVPR).
[57] Chum, Ondřej, Matas, Jiřı́, and Kittler, Josef. 2003. Locally optimized
RANSAC. Pages 236–243 of: Joint Pattern Recognition Symposium. Springer.
[58] Clark, J.H. 1976. Hierarchical geometric models for visible surface algorithms.
Communications of the ACM, 19(1), 547–554.
[59] Collobert, Ronan, Bengio, Samy, and Mariéthoz, Johnny. 2002. Torch: a
modular machine learning software library. Tech. rept. Idiap.
[60] Crowley, J.L. 1989. World modeling and position estimation for a mobile
robot using ultra-sonic ranging. Pages 674–680 of: IEEE Intl. Conf. on
Robotics and Automation (ICRA).
[61] Curless, Brian, and Levoy, Marc. 1996. A volumetric method for building
complex models from range images. Pages 303–312 of: Intl. Conf. on Com-
puter Graphics and Interactive Techniques (SIGGRAPH).
[62] Czarnowski, Jan, Laidlow, Tristan, Clark, Ronald, and Davison, Andrew J.
2020. Deepfactors: Real-time probabilistic dense monocular slam. IEEE
Robotics and Automation Letters, 5(2), 721–728.
[63] Davis, T.A. 2011. Algorithm 915: SuiteSparseQR, A multifrontal multi-
threaded sparse QR factorization package. ACM Trans. Math. Softw., 38(1),
8:1–8:22.
[64] Davis, T.A., Gilbert, J.R., Larimore, S.I., and Ng, E.G. 2004. A column
170 References
[82] Ebadi, Kamak, Bernreiter, Lukas, Biggie, Harel, Catt, Gavin, Chang, Yun,
Chatterjee, Arghya, Denniston, Christopher E., Deschênes, Simon-Pierre,
Harlow, Kyle, Khattak, Shehryar, Nogueira, Lucas, Palieri, Matteo, Petráček,
Pavel, Petrlı́k, Matěj, Reinke, Andrzej, Krátký, Vı́t, Zhao, Shibo, Agha-
mohammadi, Ali-akbar, Alexis, Kostas, Heckman, Christoffer, Khosoussi,
Kasra, Kottege, Navinda, Morrell, Benjamin, Hutter, Marco, Pauling, Fred,
Pomerleau, François, Saska, Martin, Scherer, Sebastian, Siegwart, Roland,
Williams, Jason L., and Carlone, Luca. 2024. Present and Future of SLAM in
Extreme Environments: The DARPA SubT Challenge. IEEE Trans. Robotics,
40, 936–959.
[83] Elfes, A. 1989. Using occupancy grids for mobile robot perception and navi-
gation. Computer, 22(6), 46–57.
[84] Elseberg, J., Borrmann, D., and Nüchter, A. 2013. One billion points in
the cloud – an octree for efficient processing of 3D laser scans. ISPRS J. of
Photogrammetry and Remote Sensing (JPRS), 76, 76–88.
[85] Enqvist, O., Josephson, K., and Kahl, F. 2009. Optimal correspondences from
pairwise constraints. Pages 1295–1302 of: Intl. Conf. on Computer Vision
(ICCV).
[86] Eustice, R., Singh, H., and Leonard, J. 2005a (April). Exactly Sparse Delayed-
State Filters. Pages 2417–2424 of: IEEE Intl. Conf. on Robotics and Automa-
tion (ICRA).
[87] Eustice, R., Walter, M., and Leonard, J. 2005b (Aug). Sparse Extended Infor-
mation Filters: Insights into Sparsification. Pages 3281–3288 of: IEEE/RSJ
Intl. Conf. on Intelligent Robots and Systems (IROS).
[88] Feige, Uriel, Goldwasser, Shafi, Lovász, László, Safra, Shmuel, and Szegedy,
Mario. 1991 (Sept.). Approximating clique is almost NP-complete. Pages
2–12 of: Symp. on Foundations of Computer Science.
[89] Fischler, M., and Bolles, R. 1981. Random sample consensus: a paradigm for
model fitting with application to image analysis and automated cartography.
Commun. ACM, 24, 381–395.
[90] Fornasier, A., van Goor, P., Allak, E., Mahony, R., and Weiss, S. 2024.
MSCEqF: A Multi State Constraint Equivariant Filter for Vision-Aided In-
ertial Navigation. IEEE Robotics and Automation Letters, 9(1), 731–738.
[91] Forsgren, Brendon, Kaess, Michael, Vasudevan, Ram, McLain, Timothy W.,
and Mangelson, Joshua G. 2024. Group-k consistent measurement set max-
imization via maximum clique over k-uniform hypergraphs for robust multi-
robot map merging. Intl. J. of Robotics Research.
[92] Frese, U. 2005. Treemap: An O(log n) Algorithm for Simultaneous Localiza-
tion and Mapping. Pages 455–476 of: Spatial Cognition IV. Springer Verlag.
[93] Frese, U., Larsson, P., and Duckett, T. 2005. A Multilevel Relaxation Al-
gorithm for Simultaneous Localisation and Mapping. IEEE Trans. Robotics,
21(2), 196–207.
[94] Fu, Taimeng, Su, Shaoshu, Lu, Yiren, and Wang, Chen. 2024. iSLAM: Im-
perative SLAM. IEEE Robotics and Automation Letters (RA-L).
[95] Funk, Nils, Tarrio, Juan, Papatheodorou, Sotiris, Popović, Marija, Alcantar-
illa, Pablo F., and Leutenegger, Stefan. 2021. Multi-Resolution 3D Mapping
With Explicit Free Space Representation for Fast and Accurate Mobile Robot
Motion Planning. IEEE Robotics and Automation Letters, 6(2), 3553–3560.
172 References
[96] Geiger, A., Lenz, P., and Urtasun, R. 2012 (June). Are we ready for Au-
tonomous Driving? The KITTI Vision Benchmark Suite. Pages 3354–3361
of: IEEE Conf. on Computer Vision and Pattern Recognition (CVPR).
[97] Geneva, Patrick, Eckenhoff, Kevin, Yang, Yulin, and Huang, Guoquan. 2018.
LIPS: LiDAR-Inertial 3D Plane SLAM. Pages 123–130 of: IEEE/RSJ Intl.
Conf. on Intelligent Robots and Systems (IROS).
[98] Gentil, Cédric Le, Vayugundla, Mallikarjuna, Giubilato, Riccardo, Sturzl,
Wolfgang, Vidal-Calleja, Teresa, and Triebel, Rudolph. 2020. Gaussian Pro-
cess Gradient Maps for Loop-Closure Detection in Unstructured Planetary
Environments. Pages 1895–1902 of: IEEE/RSJ Intl. Conf. on Intelligent
Robots and Systems (IROS).
[99] Ghaffari Jadidi, Maani, Valls Miro, Jaime, and Dissanayake, Gamini. 2018.
Gaussian processes autonomous mapping and exploration for range-sensing
mobile robots. Autonomous Robots, 42(2), 273–290.
[100] Giftthaler, Markus, Neunert, Michael, Stäuble, Markus, and Buchli, Jonas.
2018. The control toolbox-an open-source c++ library for robotics, opti-
mal and model predictive control. Pages 123–129 of: 2018 IEEE Inter-
national Conference on Simulation, Modeling, and Programming for Au-
tonomous Robots (SIMPAR). IEEE.
[101] Golub, G.H., and Loan, C.F. Van. 1996. Matrix Computations. Third edn.
Baltimore: Johns Hopkins University Press.
[102] Grinvald, Margarita, Furrer, Fadri, Novkovic, Tonci, Chung, Jen Jen, Cadena,
Cesar, Siegwart, Roland, and Nieto, Juan. 2019. Volumetric instance-aware
semantic mapping and 3D object discovery. IEEE Robotics and Automation
Letters, 4(3), 3037–3044.
[103] Grisetti, G., Stachniss, C., and Burgard, W. 2007. Improved Techniques for
Grid Mapping With Rao-Blackwellized particle filters. IEEE Trans. Robotics,
23(1), 34–46.
[104] Grisetti, Giorgio, Kümmerle, Rainer, Strasdat, Hauke, and Konolige, Kurt.
2011. g2o: A general framework for (hyper) graph optimization. Pages 9–
13 of: Proceedings of the IEEE International Conference on Robotics and
Automation (ICRA).
[105] Guennebaud, Gaël, Jacob, Benoit, et al. 2010. Eigen. URl: http://eigen.
tuxfamily. org, 3.
[106] Guo, Yifan, Ren, Zhongqiang, and Wang, Chen. 2024. iMTSP: Solving
Min-Max Multiple Traveling Salesman Problem with Imperative Learning.
In: IEEE/RSJ International Conference on Intelligent Robots and Systems
(IROS).
[107] Gutmann, J.-S., and Konolige, K. 2000 (November). Incremental Mapping of
Large Cyclic Environments. Pages 318–325 of: IEEE Intl. Symp. on Compu-
tational Intelligence in Robotics and Automation (CIRA).
[108] Han, Luxin, Gao, Fei, Zhou, Boyu, and Shen, Shaojie. 2019. Fiesta: Fast in-
cremental euclidean distance fields for online motion planning of aerial robots.
Pages 4423–4430 of: IEEE/RSJ Intl. Conf. on Intelligent Robots and Systems
(IROS).
[109] Handa, Ankur, Bloesch, Michael, Pătrăucean, Viorica, Stent, Simon, McCor-
mac, John, and Davison, Andrew. 2016. gvnn: Neural network library for
geometric computer vision. Pages 67–82 of: Computer Vision–ECCV 2016
References 173
[126] Kaess, M., Johannsson, H., Roberts, R., Ila, V., Leonard, J., and Dellaert,
F. 2011 (May). iSAM2: Incremental Smoothing and Mapping with Fluid
Relinearization and Incremental Variable Reordering. In: IEEE Intl. Conf.
on Robotics and Automation (ICRA).
[127] Kaess, M., Johannsson, H., Roberts, R., Ila, V., Leonard, J., and Dellaert, F.
2012. iSAM2: Incremental Smoothing and Mapping Using the Bayes Tree.
Intl. J. of Robotics Research, 31(Feb), 217–236.
[128] Kaess, Michael. 2015. Simultaneous localization and mapping with infinite
planes. Pages 4605–4611 of: IEEE Intl. Conf. on Robotics and Automation
(ICRA).
[129] Kazhdan, Michael, Bolitho, Matthew, and Hoppe, Hugues. 2006. Poisson
surface reconstruction. Pages 61–70 of: Proceedings of the fourth Eurographics
symposium on Geometry processing. Eurographics Association.
[130] Keetha, Nikhil, Karhade, Jay, Jatavallabhula, Krishna Murthy, Yang, Geng-
shan, Scherer, Sebastian, Ramanan, Deva, and Luiten, Jonathon. 2023.
SplaTAM: Splat, Track & Map 3D Gaussians for Dense RGB-D SLAM. arXiv
preprint.
[131] Keller, M., Lefloch, D., Lambers, M., and Izadi, S. 2013. Real-time 3D Re-
construction in Dynamic Scenes using Point-based Fusion. In: Intl. Conf. on
3D Vision (3DV).
[132] Kerbl, Bernhard, Kopanas, Georgios, Leimkühler, Thomas, and Drettakis,
George. 2023. 3D Gaussian Splatting for Real-Time Radiance Field Render-
ing. arXiv preprint.
[133] Kerl, Christian, Sturm, Jürgen, and Cremers, Daniel. 2013. Robust odometry
estimation for RGB-D cameras. Pages 3748–3754 of: 2013 IEEE international
conference on robotics and automation. IEEE.
[134] Kim, S., and Kim, J. 2012. Building occupancy maps with a mixture of
Gaussian processes. Pages 4756–4761 of: IEEE Intl. Conf. on Robotics and
Automation (ICRA).
[135] Kim, S., and Kim, J. 2013. Occupancy Mapping and Surface Reconstruction
Using Local Gaussian Processes With Kinect Sensors. Pages 1335–1346 of:
IEEE Trans. on Cybernetics.
[136] Kim, Soohwan, and Kim, Jonghyuk. 2015. GPmap: A Unified Framework for
Robotic Mapping Based on Sparse Gaussian Processes. Springer International
Publishing. Pages 319–332.
[137] Kingma, Diederik P, and Ba, Jimmy. 2014. Adam: A method for stochastic
optimization. arXiv preprint arXiv:1412.6980.
[138] Koenemann, Jonas, Licitra, Giovanni, Alp, Mustafa, and Diehl, Moritz. 2017.
Openocl–open optimal control library.
[139] Koller, D., and Friedman, N. 2009. Probabilistic Graphical Models: Principles
and Techniques. The MIT Press.
[140] Konolige, K. 2004. Large-scale map-making. In: Proc. 21th AAAI National
Conference on AI.
[141] Kukko, Antero, Kaijaluoto, Risto, Kaartinen, Harri, Lehtola, Ville V,
Jaakkola, Anttoni, and Hyyppä, Juha. 2017. Graph SLAM correction for
single scanner MLS forest data under boreal forest canopy. ISPRS Journal
of Photogrammetry and Remote Sensing, 132, 199–209.
[142] Lajoie, P., Hu, S., Beltrame, G., and Carlone, L. 2019. Modeling Perceptual
References 175
[175] Meagher, D. 1980. Octree Encoding: A New Technique for the Represen-
tation, Manipulation and Display of Arbitrary 3-D Objects by Computer.
Technical Report, Image Processing Laboratory, Rensselaer Polytech-
nic Institute(IPL-TR-80-111).
[176] Melkumyan, Arman, and Ramos, Fabio Tozeto. 2009. A sparse covariance
function for exact Gaussian process inference in large datasets. In: Intl. Joint
Conf. on AI (IJCAI).
[177] Mildenhall, B., Srinivasan, P.P., Tancik, M., Barron, J.T., Ramamoorthi, R.,
and Ng, R. 2020. NeRF: Representing Scenes as Neural Radiance Fields for
View Synthesis. In: European Conf. on Computer Vision (ECCV).
[178] Montemerlo, M., Thrun, S., Koller, D., and Wegbreit, B. 2002. FastSLAM: A
Factored Solution to the Simultaneous Localization and Mapping Problem.
In: Proc. 19th AAAI National Conference on AI.
[179] Moravec, Hans, and Elfes, Alberto. 1985. High resolution maps from wide
angle sonar. Pages 116–121 of: IEEE Intl. Conf. on Robotics and Automation
(ICRA).
[180] Mourikis, A.I., and Roumeliotis, S.I. 2007 (April). A Multi-State Constraint
Kalman Filter for Vision-aided Inertial Navigation. Pages 3565–3572 of: IEEE
Intl. Conf. on Robotics and Automation (ICRA).
[181] Mullane, J., Vo, B-N., Adams, M., and Vo, B-T. 2011. A Random-Finite-Set
Approach to Bayesian SLAM. IEEE Trans. Robotics, 27(2), 268–282.
[182] Mur-Artal, Raul, Montiel, Jose Maria Martinez, and Tardos, Juan D. 2015.
ORB-SLAM: a versatile and accurate monocular SLAM system. IEEE Trans.
Robotics, 31(5), 1147–1163.
[183] Museth, Ken. 2021. NanoVDB: A GPU-Friendly and Portable VDB Data
Structure For Real-Time Rendering And Simulation. In: Intl. Conf. on Com-
puter Graphics and Interactive Techniques (SIGGRAPH).
[184] Museth, Ken, Lait, Jeff, Johanson, John, Budsberg, Jeff, Henderson, Ron,
Alden, Mihai, Cucka, Peter, Hill, David, and Pearce, Andrew. 2013. Open-
VDB: an open-source data structure and toolkit for high-resolution vol-
umes. In: Intl. Conf. on Computer Graphics and Interactive Techniques (SIG-
GRAPH).
[185] Newcombe, R. A., Izadi, S., Hilliges, O., Molyneaux, D., Kim, D., Davison,
A. J., Kohli, P., Shotton, J., Hodges, S., and Fitzgibbon, A. 2011. KinectFu-
sion: Real-Time Dense Surface Mapping and Tracking. In: IEEE and ACM
Intl. Sym. on Mixed and Augmented Reality (ISMAR).
[186] Nießner, M., Zollhöfer, M., Izadi, S., and Stamminger, M. 2013. Real-time
3D Reconstruction at Scale using Voxel Hashing. In: Intl. Conf. on Computer
Graphics and Interactive Techniques (SIGGRAPH) Asia.
[187] Nieto, J., Guivant, H., Nebot, E., and Thrun, S. 2003. Real Time Data
Association for FastSLAM. In: IEEE Intl. Conf. on Robotics and Automation
(ICRA).
[188] Nistér, D. 2003. An Efficient Solution to the Five-Point Relative Pose Prob-
lem. In: IEEE Conf. on Computer Vision and Pattern Recognition (CVPR).
[189] Nocedal, Jorge, and Wright, Stephen J. 1999. Numerical Optimization.
Springer Series in Operations Research. Springer-Verlag.
[190] O’Callaghan, Simon T, and Ramos, Fabio T. 2012. Gaussian process occu-
pancy maps. Intl. J. of Robotics Research, 31(1), 42–62.
178 References
[191] Ochs, Peter, Dosovitskiy, Alexey, Brox, Thomas, and Pock, Thomas. 2015.
On iteratively reweighted algorithms for nonsmooth nonconvex optimization
in computer vision. SIAM Journal on Imaging Sciences, 8(1), 331–372.
[192] Ogayar-Anguita, C. J., Lopez-Ruiz, A., Rueda-Ruiz, A. J., and Segura-
Sanchez, Rafael J. 2023. Nested spatial data structures for optimal indexing
of LiDAR data. ISPRS J. of Photogrammetry and Remote Sensing (JPRS),
195, 287–297.
[193] Oleynikova, H., Taylor, Z., Fehr, M., Siegwart, R., and Nieto, J. 2017.
Voxblox: Incremental 3D Euclidean Signed Distance Fields for on-board MAV
planning. Pages 1366–1373 of: IEEE/RSJ Intl. Conf. on Intelligent Robots
and Systems (IROS).
[194] Oliphant, Travis E. 2006. A guide to NumPy. Vol. 1. Trelgol Publishing USA.
[195] Olson, E., Leonard, J., and Teller, S. 2006 (May). Fast Iterative Alignment
of Pose Graphs with Poor Initial Estimates. Pages 2262–2269 of: IEEE Intl.
Conf. on Robotics and Automation (ICRA).
[196] Olson, Edwin, and Agarwal, Pratik. 2012 (July). Inference on networks of
mixtures for robust robot mapping. In: Robotics: Science and Systems (RSS).
[197] Open, NN. 2016. An open source neural networks c++ library. URL:
http://opennn.cimne.com (2016).
[198] Pan, Yue, Xiao, Pengchuan, He, Yujie, Shao, Zhenlei, and Li, Zesong. 2021.
MULLS: Versatile LiDAR SLAM via multi-metric linear least square. Pages
11633–11640 of: IEEE Intl. Conf. on Robotics and Automation (ICRA).
IEEE.
[199] Parameshwara, Chethan M, Hari, Gokul, Fermüller, Cornelia, Sanket, Nitin J,
and Aloimonos, Yiannis. 2022. DiffPoseNet: Direct differentiable camera pose
estimation. Pages 6845–6854 of: Proceedings of the IEEE/CVF Conference
on Computer Vision and Pattern Recognition.
[200] Park, C., Moghadam, P., Kim, S., Elfes, A., Fookes, C., and Sridharan, S.
2018. Elastic LiDAR Fusion: Dense Map-Centric Continuous-Time SLAM.
In: IEEE Intl. Conf. on Robotics and Automation (ICRA).
[201] Paskin, M.A. 2003. Thin Junction Tree Filters for Simultaneous Localization
and Mapping. In: Intl. Joint Conf. on AI (IJCAI).
[202] Paszke, Adam, Gross, Sam, Massa, Francisco, Lerer, Adam, Bradbury, James,
Chanan, Gregory, Killeen, Trevor, Lin, Zeming, Gimelshein, Natalia, Antiga,
Luca, et al. 2019. Pytorch: An imperative style, high-performance deep learn-
ing library. Advances in neural information processing systems, 32.
[203] Pattabiraman, Bharath, Patwary, Md. Mostofa Ali, Gebremedhin, Asse-
faw H., keng Liao, Wei, and Choudhary, Alok. 2015. Fast Algorithms for the
Maximum Clique Problem on Massive Graphs with Applications to Overlap-
ping Community Detection. Internet Mathematics, 11(4-5), 421–448.
[204] Pearlmutter, Barak A, and Siskind, Jeffrey Mark. 2008. Reverse-mode AD in
a functional framework: Lambda the ultimate backpropagator. ACM Trans-
actions on Programming Languages and Systems (TOPLAS), 30(2), 1–36.
[205] Peng, Liangzu, Kümmerle, Christian, and Vidal, René. 2023. On the Conver-
gence of IRLS and Its Variants in Outlier-Robust Estimation. Pages 17808–
17818 of: IEEE Conf. on Computer Vision and Pattern Recognition (CVPR).
[206] Peng, Songyou, Niemeyer, Michael, Mescheder, Lars, Pollefeys, Marc, and
Geiger, Andreas. 2020. Convolutional occupancy networks. In: European
Conf. on Computer Vision (ECCV).
References 179
[207] Perera, Samunda, and Barnes, Nick. 2012. Maximal cliques based rigid body
motion segmentation with a RGB-D camera. Pages 120–133 of: Asian Conf.
on Computer Vision. Springer.
[208] Pfister, H., Zwickler, M., v. Baar, J., and Gross, M. 2000. Surfels: surface
elements as rendering primitives. In: Intl. Conf. on Computer Graphics and
Interactive Techniques (SIGGRAPH).
[209] P.H.S. Torr, A. Zisserman. 2000. MLESAC: A New Robust Estimator with
Application to Estimating Image Geometry. Tech. rept. MSR-TR-99-60. MSR.
[210] Pineda, Luis, Fan, Taosha, Monge, Maurizio, Venkataraman, Shobha, Sodhi,
Paloma, Chen, Ricky T. Q., Ortiz, Joseph, DeTone, Daniel, Wang, Austin S.,
Anderson, Stuart, Dong, Jing, Amos, Brandon, and Mukadam, Mustafa.
2022a (Oct.). Theseus: A Library for Differentiable Nonlinear Optimization.
In: Conf. Neural Information Processing Systems (NIPS).
[211] Pineda, Luis, Fan, Taosha, Monge, Maurizio, Venkataraman, Shobha, Sodhi,
Paloma, Chen, Ricky TQ, Ortiz, Joseph, DeTone, Daniel, Wang, Austin, An-
derson, Stuart, Dong, Jing, Amos, Brandon, and Mukadam, Mustafa. 2022b.
Theseus: A Library for Differentiable Nonlinear Optimization. Advances in
Neural Information Processing Systems.
[212] Powell, M.J.D. 1970. A New Algorithm for Unconstrained Optimization.
Pages 31–65 of: Rosen, J., Mangasarian, O., and Ritter, K. (eds), Nonlinear
Programming. Academic Press.
[213] Qin, Chao, Ye, Haoyang, Pranata, Christian E, Han, Jun, Zhang, Shuyang,
and Liu, Ming. 2020. LINS: A Lidar-Inertial State Estimator for Robust
and Efficient Navigation. In: IEEE Intl. Conf. on Robotics and Automation
(ICRA).
[214] Qin, Tong, Li, Peiliang, and Shen, Shaojie. 2018. VINS-Mono: A Robust and
Versatile Monocular Visual-Inertial State Estimator. IEEE Trans. Robotics,
34(4), 1004–1020.
[215] Rahimi, Ali, and Recht, Benjamin. 2007. Random features for large-scale
kernel machines. In: Advances in Neural Information Processing Systems
(NIPS), vol. 20.
[216] Ramos, Fabio, and Ott, Lionel. 2016. Hilbert maps: Scalable continuous
occupancy mapping with stochastic gradient descent. Intl. J. of Robotics
Research, 35(14), 1717–1730.
[217] Rasmussen, Carl Edward, and Williams, Christopher KI. 2006. Gaussian
Processes for Machine Learning. Cambridge, Mass.: MIT Press.
[218] Ravichandran, Z., Peng, L., Hughes, N., Griffith, J.D., and Carlone, L. 2022.
Hierarchical Representations and Explicit Memory: Learning Effective Navi-
gation Policies on 3D Scene Graphs using Graph Neural Networks. In: IEEE
Intl. Conf. on Robotics and Automation (ICRA). .
[219] Reijgwart, V., Millane, A., Oleynikova, H., Siegwart, R., Cadena, C., and
Nieto, J. 2020. Voxgraph: Globally Consistent, Volumetric Mapping Using
Signed Distance Function Submaps. IEEE Robotics and Automation Letters.
[220] Reijgwart, Victor, Cadena, Cesar, Siegwart, Roland, and Ott, Lionel. 2023-07.
Efficient volumetric mapping of multi-scale environments using wavelet-based
compression.
[221] Revels, Jarrett, Lubin, Miles, and Papamarkou, Theodore. 2016. Forward-
mode automatic differentiation in Julia. arXiv preprint arXiv:1607.07892.
180 References
[238] Sim, R., Elinas, P., Griffin, M., Shyr, A., and Little, J.J. 2006 (Jun). De-
sign and Analysis of a Framework for Real-time Vision-based SLAM using
Rao-Blackwellised Particle Filters. In: Proc. of the 3rd Canadian Conf. on
Computer and Robotic Vision (CRV).
[239] Smith, R., and Cheeseman, P. 1987. On the representation and estimation of
spatial uncertainty. Intl. J. of Robotics Research, 5(4), 56–68.
[240] Sola, Joan, Deray, Jeremie, and Atchuthan, Dinesh. 2018. A micro Lie theory
for state estimation in robotics. arXiv preprint arXiv:1812.01537.
[241] Speciale, P., Paudel, D. P., Oswald, M. R., Kroeger, T., Gool, L. V., and
Pollefeys, M. 2017 (July). Consensus Maximization with Linear Matrix In-
equality Constraints. Pages 5048–5056 of: IEEE Conf. on Computer Vision
and Pattern Recognition (CVPR).
[242] Stadie, Bradly, Zhang, Lunjun, and Ba, Jimmy. 2020. Learning intrinsic
rewards as a bi-level optimization problem. Pages 111–120 of: Conference
on Uncertainty in Artificial Intelligence. PMLR.
[243] Stillwell, J. 2008. Naive Lie Theory. Springer.
[244] Stork, Johannes A, and Stoyanov, Todor. 2020. Ensemble of Sparse Gaussian
Process Experts for Implicit Surface Mapping with Streaming Data. IEEE
Intl. Conf. on Robotics and Automation (ICRA).
[245] Stoyanov, T., Saarinen, J.P., Andreasson, H., and Lilienthal, A.J. 2013. Nor-
mal Distributions Transform Occupancy Map Fusion: Simultaneous Mapping
and Tracking in Large Scale Dynamic Environments. In: IEEE/RSJ Intl.
Conf. on Intelligent Robots and Systems (IROS).
[246] Stückler, J., and Behnke, S. 2014. Multi-Resolution Surfel Maps for Efficient
Dense 3D Modeling and Tracking. J. of Visual Communication and Image
Representation, 25(1), 137–147.
[247] Stueckler, J., and Behnke, S. 2014. Efficient Deformable Registration of Multi-
Resolution Surfel Maps for Object Manipulation Skill Transfer. In: IEEE Intl.
Conf. on Robotics and Automation (ICRA).
[248] Sucar, Edgar, Liu, Shikun, Ortiz, Joseph, and Davison, Andrew J. 2021. imap:
Implicit mapping and positioning in real-time. In: Intl. Conf. on Computer
Vision (ICCV).
[249] Sünderhauf, N., and Protzel, P. 2012a. Switchable Constraints for Robust
Pose Graph SLAM. In: IEEE/RSJ Intl. Conf. on Intelligent Robots and
Systems (IROS).
[250] Sünderhauf, N., and Protzel, P. 2012b. Towards a robust back-end for pose
graph SLAM. Pages 1254–1261 of: IEEE Intl. Conf. on Robotics and Au-
tomation (ICRA). IEEE.
[251] Tang, Chengzhou, and Tan, Ping. 2019a. Ba-net: Dense bundle adjustment
network. International Conference on Learning Representations (ICLR).
[252] Tang, Chengzhou, and Tan, Ping. 2019b. BA-Net: Dense bundle adjustment
networks. 7th International Conference on Learning Representations, ICLR
2019.
[253] Tavish, K. Mac, and Barfoot, T. D. 2015. At all costs: A comparison of
robust cost functions for camera correspondence outliers. Pages 62–69 of:
Conf. Computer and Robot Vision. IEEE.
[254] Tedrake, Russ, and the Drake Development Team. 2019. Drake: Model-based
design and verification for robotics.
182 References
[255] Teed, Zachary, and Deng, Jia. 2018. Deepv2d: Video to depth with differen-
tiable structure from motion. arXiv preprint arXiv:1812.04605.
[256] Teed, Zachary, and Deng, Jia. 2021a. Droid-slam: Deep visual slam for monoc-
ular, stereo, and rgb-d cameras. Advances in Neural Information Processing
Systems, 34.
[257] Teed, Zachary, and Deng, Jia. 2021b. Tangent space backpropagation for 3d
transformation groups. Pages 10338–10347 of: Proceedings of the IEEE/CVF
Conference on Computer Vision and Pattern Recognition.
[258] Thrun, S., Liu, Y., Koller, D., Ng, A.Y., Ghahramani, Z., and Durrant-Whyte,
H. 2004. Simultaneous Localization and Mapping With Sparse Extended
Information Filters. Intl. J. of Robotics Research, 23(7-8), 693–716.
[259] Thrun, S., Burgard, W., and Fox, D. 2005. Probabilistic Robotics. The MIT
press, Cambridge, MA.
[260] Thrun, Sebastian, et al. 2002. Robotic mapping: A survey. Exploring artificial
intelligence in the new millennium, 1(1-35), 1.
[261] Tian, Y., Chang, Y., Arias, F. Herrera, Nieto-Granda, C., How, J.P., and
Carlone, L. 2022. Kimera-Multi: Robust, Distributed, Dense Metric-Semantic
SLAM for Multi-Robot Systems. IEEE Trans. Robotics. accepted, arXiv
preprint: 2106.14386, .
[262] Tokui, Seiya, Oono, Kenta, Hido, Shohei, and Clayton, Justin. 2015. Chainer:
a next-generation open source framework for deep learning. Pages 1–6 of:
Proceedings of workshop on machine learning systems (LearningSys) in the
twenty-ninth annual conference on neural information processing systems
(NIPS), vol. 5.
[263] Trevor, Alexander J. B., Rogers, John G., and Christensen, Henrik I. 2012.
Planar surface SLAM with 3D and 2D sensors. Pages 3041–3048 of: IEEE
Intl. Conf. on Robotics and Automation (ICRA).
[264] Triggs, Bill, McLauchlan, Philip F, Hartley, Richard I, and Fitzgibbon, An-
drew W. 1999. Bundle adjustment—a modern synthesis. Pages 298–372 of:
International workshop on vision algorithms. Springer.
[265] Trulls, E., Jin, Y., Yi, K.M., Mishkin, D., and Matas, J. 2022. Image matching
challenge. https://www.kaggle.com/competitions/image-matching-challenge-
2022. Accessed: 2022.
[266] Tsardoulias, Emmanouil G, Iliakopoulou, A, Kargakos, Andreas, and Petrou,
Loukas. 2016. A review of global path planning methods for occupancy grid
maps regardless of obstacle density. J. of Intelligent and Robotic Systems,
84(1), 829–858.
[267] Tseng, Paul. 2001. Convergence of a block coordinate descent method for non-
differentiable minimization. Journal of optimization theory and applications,
109, 475–494.
[268] Vasudevan, Shrihari, Ramos, Fabio, Nettleton, Eric, and Durrant-Whyte,
Hugh. 2009. Gaussian process modeling of large-scale terrain. Pages 812–
840 of: J. of Field Robotics, vol. 26.
[269] Vespa, Emanuele, Funk, Nils, Kelly, Paul HJ, and Leutenegger, Stefan.
2019. Adaptive-resolution octree-based volumetric SLAM. Pages 654–662
of: Intl. Conf. on 3D Vision (3DV).
[270] Vizzo, I., Chen, X., Chebrolu, N., Behley, J., and Stachniss, C. 2021. Poisson
Surface Reconstruction for LiDAR Odometry and Mapping. In: IEEE Intl.
Conf. on Robotics and Automation (ICRA).
References 183
[271] Vizzo, Ignacio, Guadagnino, Tiziano, Behley, Jens, and Stachniss, Cyrill.
2022. VDBFusion: Flexible and Efficient TSDF Integration of Range Sen-
sor Data. IEEE Sensors, 22(3).
[272] Vizzo, Ignacio, Guadagnino, Tiziano, Mersch, Benedikt, Wiesmann, Louis,
Behley, Jens, and Stachniss, Cyrill. 2023. KISS-ICP: In Defense of Point-to-
Point ICP – Simple, Accurate, and Robust Registration If Done the Right
Way. IEEE Robotics and Automation Letters, 8(2), 1029–1036.
[273] Wächter, Andreas, and Biegler, Lorenz T. 2006. On the implementation of
an interior-point filter line-search algorithm for large-scale nonlinear program-
ming. Mathematical programming, 106(1), 25–57.
[274] Wang, Chen, Gao, Dasong, Xu, Kuan, Geng, Junyi, Hu, Yaoyu, Qiu, Yuheng,
Li, Bowen, Yang, Fan, Moon, Brady, Pandey, Abhinav, Aryan, Xu, Jiahe, Wu,
Tianhao, He, Haonan, Huang, Daning, Ren, Zhongqiang, Zhao, Shibo, Fu,
Taimeng, Reddy, Pranay, Lin, Xiao, Wang, Wenshan, Shi, Jingnan, Talak,
Rajat, Cao, Kun, Du, Yi, Wang, Han, Yu, Huai, Wang, Shanzhao, Chen,
Siyu, Kashyap, Ananth, Bandaru, Rohan, Dantu, Karthik, Wu, Jiajun, Xie,
Lihua, Carlone, Luca, Hutter, Marco, and Scherer, Sebastian. 2023. PyPose: A
Library for Robot Learning with Physics-based Optimization. In: IEEE/CVF
Conference on Computer Vision and Pattern Recognition (CVPR).
[275] Wang, Chen, Ji, Kaiyi, Geng, Junyi, Ren, Zhongqiang, Fu, Taimeng, Yang,
Fan, Guo, Yifan, He, Haonan, Chen, Xiangyu, Zhan, Zitong, Du, Qiwei,
Su, Shaoshu, Li, Bowen, Qiu, Yuheng, Lin, Xiao, Du, Yi, Li, Qihang, and
Zhao, Zhipeng. 2024. Imperative Learning: A Self-supervised Neural-Symbolic
Learning Framework for Robot Autonomy. arXiv preprint.
[276] Wang, H., Wang, C., Chen, C., and Xie, L. 2021a. F-LOAM: Fast LiDAR
Odometry and Mapping. In: IEEE/RSJ Intl. Conf. on Intelligent Robots and
Systems (IROS).
[277] Wang, Jinkun, and Englot, Brendan. 2016. Fast, accurate gaussian process
occupancy maps via test-data octrees and nested Bayesian fusion. Pages
1003–1010 of: IEEE Intl. Conf. on Robotics and Automation (ICRA).
[278] Wang, K., Gao, F., and Shen, S. 2019. Real-Time Scalable Dense Surfel
Mapping. In: IEEE Intl. Conf. on Robotics and Automation (ICRA).
[279] Wang, Sen, Clark, Ronald, Wen, Hongkai, and Trigoni, Niki. 2017. Deepvo:
Towards end-to-end visual odometry with deep recurrent convolutional neural
networks. Pages 2043–2050 of: 2017 IEEE international conference on robotics
and automation (ICRA). IEEE.
[280] Wang, Wenshan, Zhu, Delong, Wang, Xiangwei, Hu, Yaoyu, Qiu, Yuheng,
Wang, Chen, Hu, Yafei Hu, Kapoor, Ashish, and Scherer, Sebastian. 2020.
TartanAir: A Dataset to Push the Limits of Visual SLAM. Pages 4909–4916
of: IEEE/RSJ International Conference on Intelligent Robots and Systems
(IROS).
[281] Wang, Wenshan, Hu, Yaoyu, and Scherer, Sebastian. 2021b. Tartanvo: A
generalizable learning-based vo. Pages 1761–1772 of: Conference on Robot
Learning. PMLR.
[282] Weber, Simon, Demmel, Nikolaus, Chan, Tin Chon, and Cremers, Daniel.
2023. Power Bundle Adjustment for Large-Scale 3D Reconstruction. In:
IEEE Conference on Computer Vision and Pattern Recognition (CVPR).
[283] Wei, Peng, Hua, Guoliang, Huang, Weibo, Meng, Fanyang, and Liu, Hong.
184 References
[300] Yang, Wen, Gong, Zheng, Huang, Baifu, and Hong, Xiaoping. 2022. Lidar
With Velocity: Correcting Moving Objects Point Cloud Distortion From Os-
cillating Scanning Lidars by Fusion With Camera. IEEE Robotics and Au-
tomation Letters, 7(3).
[301] Yannakakis, M. 1981. Computing the minimum fill-in is NP-complete. SIAM
J. Algebraic Discrete Methods, 2.
[302] Yi, Brent, Lee, Michelle A, Kloss, Alina, Martı́n-Martı́n, Roberto, and Bohg,
Jeannette. 2021a. Differentiable factor graph optimization for learning
smoothers. Pages 1339–1345 of: 2021 IEEE/RSJ International Conference
on Intelligent Robots and Systems (IROS). IEEE.
[303] Yi, Brent, Lee, Michelle, Kloss, Alina, Martı́n-Martı́n, Roberto, and Bohg,
Jeannette. 2021b. Differentiable Factor Graph Optimization for Learning
Smoothers. In: IEEE/RSJ International Conference on Intelligent Robots
and Systems (IROS).
[304] Yokoyama, N., Ha, S., Batra, D., Wang, J., and Bucher, B. 2024. VLFM:
Vision-Language Frontier Maps for Zero-Shot Semantic Navigation. In: IEEE
Intl. Conf. on Robotics and Automation (ICRA).
[305] Yugay, Vladimir, Li, Yue, Gevers, Theo, and Oswald, Martin R. 2023.
Gaussian-SLAM: Photo-realistic Dense SLAM with Gaussian Splatting.
arXiv preprint.
[306] Zhan, Zitong, Gao, Dasong, Lin, Yun-Jou, Xia, Youjie, and Wang, Chen. 2024.
iMatching: Imperative Correspondence Learning. In: European Conference on
Computer Vision (ECCV).
[307] Zhang, J., and Singh, S. 2014. LOAM: Lidar Odometry and Mapping in
Real-time. In: Robotics: Science and Systems (RSS).
[308] Zhao, Shibo, Wang, Peng, Zhang, Hengrui, Fang, Zheng, and Scherer, Se-
bastian. 2020. Tp-tio: A robust thermal-inertial odometry with deep ther-
malpoint. Pages 4505–4512 of: 2020 IEEE/RSJ International Conference on
Intelligent Robots and Systems (IROS). IEEE.
[309] Zheng, Y., Sugimoto, S., and Okutomi, M. 2011. Deterministically maximiz-
ing feasible subsystem for robust model fitting with unit norm constraint.
Pages 1825–1832 of: IEEE Conf. on Computer Vision and Pattern Recogni-
tion (CVPR).
[310] Zhong, Xingguang, Pan, Yue, Behley, Jens, and Stachniss, Cyrill. 2023.
SHINE-Mapping: Large-Scale 3D Mapping Using Sparse Hierarchical Implicit
Neural Representations. In: IEEE Intl. Conf. on Robotics and Automation
(ICRA).
[311] Zhou, Q.Y., Park, J., and Koltun, V. 2016. Fast global registration. Pages
766–782 of: European Conf. on Computer Vision (ECCV). Springer.
[312] Zhu, Zihan, Peng, Songyou, Larsson, Viktor, Xu, Weiwei, Bao, Hujun, Cui,
Zhaopeng, Oswald, Martin R, and Pollefeys, Marc. 2022. NICE-SLAM: Neu-
ral Implicit Scalable Encoding for SLAM. In: IEEE Conf. on Computer Vision
and Pattern Recognition (CVPR).
[313] Zuckerman, David. 2006 (May). Linear degree extractors and the inapprox-
imability of max clique and chromatic number. Pages 681–690 of: ACM Symp.
on Theory of Computing (STOC).
[314] Zwicker, Matthias, Pfister, Hanspeter, van Baar, Jeroen, and Gross, Markus.
2001. Surface Splatting. In: Intl. Conf. on Computer Graphics and Interactive
Techniques (SIGGRAPH).
Author index
Subject index