PROBABILISTIC
ROBOTICS
Sebastian THRUN
Stanford University
Stanford, CA
Wolfram BURGARD
University of Freiburg
Freiburg, Germany
Dieter FOX
University of Washington
Seattle, WA
EARLY DRAFT—NOT FOR DISTRIBUTION
cSebastian Thrun, Dieter Fox, Wolfram Burgard, 1999-2000
CONTENTS
1
2
INTRODUCTION
1.1 Uncertainty in Robotics
1.2
1.3
1.4 Road Map
1.5 Bibliographical Remarks
Probabilistic Robotics
Implications
Introduction
RECURSIVE STATE ESTIMATION
2.1
2.2 Basic Concepts in Probability
2.3 Robot Environment Interaction
2.3.1 State
2.3.2 Environment Interaction
2.3.3 Probabilistic Generative Laws
2.3.4 Belief Distributions
2.4 Bayes Filters
2.4.1 The Bayes Filter Algorithm
2.4.2 Example
2.4.3 Mathematical Derivation of the Bayes Filter
2.4.4 The Markov Assumption
2.5 Representation and Computation
2.6
2.7 Bibliographical Remarks
Summary
3 GAUSSIAN FILTERS
Introduction
3.1
3.2 The Kalman Filter
v
1
1
3
5
6
7
9
9
10
16
16
18
20
22
23
23
24
28
30
30
31
32
33
33
34
vi
PROBABILISTIC ROBOTICS
3.2.1 Linear Gaussian Systems
3.2.2 The Kalman Filter Algorithm
3.2.3 Illustration
3.2.4 Mathematical Derivation of the KF
3.3 The Extended Kalman Filter
3.3.1 Linearization Via Taylor Expansion
3.3.2 The EKF Algorithm
3.3.3 Mathematical Derivation of the EKF
3.3.4 Practical Considerations
3.4 The Information Filter
3.4.1 Canonical Representation
3.4.2 The Information Filter Algorithm
3.4.3 Mathematical Derivation of the Information Filter
3.4.4 The Extended Information Filter Algorithm
3.4.5 Mathematical Derivation of the Extended Information
Filter
3.4.6 Practical Considerations
Summary
3.5
3.6 Bibliographical Remarks
4
NONPARAMETRIC FILTERS
4.1 The Histogram Filter
4.1.1 The Discrete Bayes Filter Algorithm
4.1.2 Continuous State
4.1.3 Decomposition Techniques
4.1.4 Binary Bayes Filters With Static State
4.2 The Particle Filter
4.2.1 Basic Algorithm
4.2.2 Importance Sampling
4.2.3 Mathematical Derivation of the PF
4.2.4 Properties of the Particle Filter
Summary
4.3
4.4 Bibliographical Remarks
5
ROBOT MOTION
5.1
Introduction
34
36
37
39
48
49
50
51
53
55
55
57
58
60
61
62
64
65
67
68
69
69
73
74
77
77
80
82
84
89
90
91
91
Contents
5.2
Preliminaries
5.2.1 Kinematic Configuration
5.2.2 Probabilistic Kinematics
5.3 Velocity Motion Model
5.3.1 Closed Form Calculation
5.3.2 Sampling Algorithm
5.3.3 Mathematical Derivation
5.4 Odometry Motion Model
5.4.1 Closed Form Calculation
5.4.2 Sampling Algorithm
5.4.3 Mathematical Derivation
5.5 Motion and Maps
5.6
5.7 Bibliographical Remarks
Summary
6 MEASUREMENTS
Introduction
6.1
6.2 Maps
6.3 Beam Models of Range Finders
6.3.1 The Basic Measurement Algorithm
6.3.2 Adjusting the Intrinsic Model Parameters
6.3.3 Mathematical Derivation
6.3.4 Practical Considerations
6.4 Likelihood Fields for Range Finders
6.4.1 Basic Algorithm
6.4.2 Extensions
6.5 Correlation-Based Sensor Models
6.6
Feature-Based Sensor Models
6.6.1 Feature Extraction
6.6.2 Landmark Measurements
6.6.3 Sensor Model With Known Correspondence
6.6.4 Sampling Poses
6.6.5 Further Considerations
Practical Considerations
Summary
6.7
6.8
vii
92
92
93
95
95
96
99
107
108
111
113
114
118
119
121
121
123
124
124
129
134
138
139
139
143
145
147
147
148
149
150
152
153
154
viii
PROBABILISTIC ROBOTICS
7 MOBILE ROBOT LOCALIZATION
Introduction
Illustration of Markov Localization
7.1
7.2 A Taxonomy of Localization Problems
7.3 Markov Localization
7.4
7.5 EKF Localization
7.5.1 Illustration
7.5.2 The EKF Localization Algorithm
7.5.3 Mathematical Derivation
7.6 Estimating Correspondences
7.6.1 EKF Localization with Unknown Correspondences
7.6.2 Mathematical Derivation
7.7 Multi-Hypothesis Tracking
7.8
7.9
Practical Considerations
Summary
8 GRID AND MONTE CARLO LOCALIZATION
Introduction
8.1
8.2 Grid Localization
8.2.1 Basic Algorithm
8.2.2 Grid Resolutions
8.2.3 Computational Considerations
8.2.4 Illustration
8.3 Monte Carlo Localization
8.3.1 The MCL Algorithm
8.3.2 Properties of MCL
8.3.3 Random Particle MCL: Recovery from Failures
8.3.4 Modifying the Proposal Distribution
8.4 Localization in Dynamic Environments
Practical Considerations
8.5
8.6
Summary
8.7 Exercises
9 OCCUPANCY GRID MAPPING
Introduction
9.1
9.2 The Occupancy Grid Mapping Algorithm
157
157
158
162
164
166
167
168
170
174
174
176
179
181
184
187
187
188
188
189
193
195
200
200
201
204
209
211
216
218
219
221
221
224
Contents
9.2.1 Multi-Sensor Fusion
9.3 Learning Inverse Measurement Models
9.3.1 Inverting the Measurement Model
9.3.2 Sampling from the Forward Model
9.3.3 The Error Function
9.3.4 Further Considerations
9.4 Maximum A Posterior Occupancy Mapping
9.4.1 The Case for Maintaining Dependencies
9.4.2 Occupancy Grid Mapping with Forward Models
Summary
9.5
10 SIMULTANEOUS LOCALIZATION AND
MAPPING
10.1 Introduction
10.2 SLAM with Extended Kalman Filters
10.2.1 Setup and Assumptions
10.2.2 SLAM with Known Correspondence
10.2.3 Mathematical Derivation
10.3 EKF SLAM with Unknown Correspondences
10.3.1 The General EKF SLAM Algorithm
10.3.2 Examples
10.3.3 Feature Selection and Map Management
10.4 Summary
10.5 Bibliographical Remarks
10.6 Projects
11 THE EXTENDED INFORMATION FORM
ALGORITHM
11.1 Introduction
11.2 Intuitive Description
11.3 The EIF SLAM Algorithm
11.4 Mathematical Derivation
11.4.1 The Full SLAM Posterior
11.4.2 Taylor Expansion
11.4.3 Constructing the Information Form
11.4.4 Reducing the Information Form
ix
230
232
232
233
234
236
238
238
240
242
245
245
248
248
248
252
256
256
260
262
264
265
265
267
267
268
271
276
277
278
280
283
x
PROBABILISTIC ROBOTICS
11.4.5 Recovering the Path and the Map
11.5 Data Association in the EIF
11.5.1 The EIF SLAM Algorithm With Unknown Correspon-
dence
11.5.2 Mathematical Derivation
11.6 Efficiency Consideration
11.7 Empirical Implementation
11.8 Summary
12 THE SPARSE EXTENDED INFORMATION
FILTER
12.1 Introduction
12.2 Intuitive Description
12.3 The SEIF SLAM Algorithm
12.4 Mathematical Derivation
12.4.1 Motion Update
12.4.2 Measurement Updates
12.5 Sparsification
12.5.1 General Idea
12.5.2 Sparsifications in SEIFs
12.5.3 Mathematical Derivation
12.6 Amortized Approximate Map Recovery
12.7 How Sparse Should SEIFs Be?
12.8 Incremental Data Association
12.8.1 Computing Data Association Probabilities
12.8.2 Practical Considerations
12.9 Tree-Based Data Association
12.9.1 Calculating Data Association Probaiblities
12.9.2 Tree Search
12.9.3 Equivalency Constraints
12.9.4 Practical Considerations
12.10 Multi-Vehicle SLAM
12.10.1Fusing Maps Acquired by Multiple Robots
12.10.2Establishing Correspondence
12.11 Discussion
285
286
287
290
292
294
300
303
303
305
308
312
312
316
316
316
318
319
320
323
328
328
330
335
336
339
340
341
344
344
347
349