Probabilistic Robotics

How to Read This Book

The FCP method, the notation, the running lab, and what you need to know before starting.

This book is organized so that you can read it three different ways, and all three are legitimate.

The three passes

Every chapter makes three passes over its subject, in this order:

In this chapter

Conceptual comes first, because intuition should precede formalism. You will meet an interactive figure before you meet an equation, and the figure will usually make you predict something and then show you whether you were right.

Foundation is the mathematics, in full. Definitions are precise, assumptions are stated where they are made rather than buried, and derivations are carried to the end. Long algebra folds into collapsible blocks, so you can take the result on faith the first time through and come back for the proof later.

Practical is the Rust. Not pseudocode dressed up as code: real types, real crates, code that compiles and that you could lift into a robot.

Reading paths

  • The full path — read straight through. Parts I–II build the machinery, III–IV apply it to localization, V to mapping and SLAM, VI to acting under uncertainty.
  • The estimation path — Chapters 2, 5, 6, 7, 8, then 11, 12, 15. This is the shortest route from "what is a belief" to "what modern SLAM back-ends actually compute".
  • The builder's path — skim the Foundation sections, play with every widget, and implement the Practical section of each chapter. The exercises marked P are the spine of this route.

The running lab

Two worlds recur throughout the book, so that every new method can be compared against the last on identical ground.

The Hallway is a one-dimensional corridor with indistinguishable doors. It exists because a belief over a 1-D world can be drawn as a curve, which makes the Bayes filter visible in a way that no 2-D picture manages.

The Apartment is a 2-D floorplan with rooms, doorways, and a long corridor, sensed by a simulated LiDAR. It is deliberately a little symmetric — two rooms look alike from the inside — because ambiguity is where probabilistic methods earn their keep.

The robot is Rusty, a differential-drive rover with wheel encoders and a laser scanner. Rusty is built in Chapter 4 and appears in every chapter after it. By Chapter 26, Rusty explores and maps an apartment it has never seen.

Notation and color

The book follows the notation of Thrun, Burgard and Fox, extended with the operators modern estimation needs on manifolds. The notation reference lists every symbol.

One convention is worth internalizing before you start, because it runs through the prose, the equations, the figures, and the code comments alike:

  • Prior
  • Prediction
  • Measurement
  • Posterior
  • Truth

Blue is always what you believed before. Orange is always what you believe after moving. Green is always what a sensor said. Purple is always what you believe after taking that sensor seriously. Gray, where it appears, is the truth that the robot does not have access to.

On the Rust

The book uses Rust because state estimation is exactly the kind of code where the type system earns its keep: dimensions are checked at compile time, frames and units can be made impossible to mix up, and there is no garbage collector to interfere with a control loop.

You do not need to know Rust before starting. What you need is patience with a compiler that is stricter than you are used to, and the willingness to read a type signature as documentation. The crates the book relies on — nalgebra, faer, rand, parry2d, factrs — are introduced when they are first needed.