SLAM
1. SLAM
Simultaneous localization and mapping (SLAM): a body with quantative sensors moves through a previously unknown, static environment, mapping it and calculating its egomotion. Most SLAM algorithms make makes of natural scene features, Features should be easily recognisable from different viewpoints to enable reliable matching.
In SLAM, we store & update a joint distribution over the states of both the robot and the mapped world. Features are gradually discovered as the robot explores, so the dimension of this joint distribution problem will grow.
2. Methodology
The most common way to efficiently represent the high-dimensional probability distributions is a joint Gaussian distribution, updated via the Extended Kalman Filter. The PDF is represented by a state vector and covariance matrix:
The state vector contains the robot's state (
3. Practical Solutions
Purely metric probabilistic SLAM is limited to small domains:
- Poor computational scaling of probabilistic filters.
- Growth in uncertainty at large distances from the starting point.
Instead, lots of little local maps are made which are then related at a higher level.
Modern solutions follow a metric / topological approach to approximate full metric SLAM. They need:
- Local metric mapping for accurate short-term estimation
- Place recognition for loop closure
- Global optimisation for consistency
This avoids maintaining a single massive joint covariance matrix.
3.1 Loop Closure Detection
Loop closure can be detected using image retrieval techniques such as Visual Bag-of-Words. When an old place is recognised, strong constraints are added to the map.
Place recognition converts perceptual similarity into geometric constraints that reduce accumulated drift.
3.2 Pure Topological SLAM
In purely topological SLAM, the environment is represented as a graph of places and connections. No explicit metric coordinates are stored.
This representation is compact and well-suited for symbolic planning but lacks precise geometric detail.
4. Pose Graph Optimisation
In graph-based SLAM, nodes represent robot poses and edges represent relative motion constraints. When loops are detected, pose graph optimisation adjusts all poses to maximise global consistency.
Optimisation only meaningfully changes the map when loops are present to constrain accumulated drift.
A factor graph expresses the SLAM posterior as a product of measurement likelihoods:
Each factor has Gaussian form:
where
Solving a factor graph means computing the most probable configuration of variables or their marginals. Sparsity of the graph allows scalable optimisation.
Common approaches include:
- Batch optimisation (bundle adjustment)
- Incremental filtering (EKF-style)
- Incremental smoothing (e.g., iSAM)
- Belief propagation