Table of contents

- Pieter Abbeel

- How to recognize previously visited locations?
- Rich sensor such as camera
- For range finders often have to do sub-mapping
- Single scans are not good enough to reliably determine loop closure

- What to do when a revisit is detected?
- Perform pose graph relaxation
- Distribute the angular and translation displacement error
- Spring model
- Minimise energy of the lattice

- Rat slam
- Mapping a Suburb with a Single Camera using a Biologically Inspired SLAM System
- http://www.youtube.com/watch?v=-0XSUi69Yvs

Pose graph is a graph of connected poses

- connected by observed relative pose either
- from odometry
- from scan matching

Spring network energy minimisation

Spring energy is \(E = \frac{k_1}{2} x^2 + \frac{k_2}{2} \theta ^2\)

For angular and translational displacements

Energy minimised over the whole network

Estimate position and variance of node i from each neighboring node j:

Andrew Davison SLAM lecture 8

- Pieter Abbeel

- Overview
- Iterative method for model parameter estimation
- Good generic goto algorithm
- In real world data outliers are usually possible

- Advantages
- Robust to outliers
- Simple to implement and effective
- Anytime algorithm

- Disadvantages
- Can take a long time
- Requires some parameters
- Number of elements required for a good fit
- Inlier/Outlier distance threshold
- Number of iterations

while iterations < k maybe_inliers := n randomly selected values from data maybe_model := model parameters fitted to maybe_inliers consensus_set := maybe_inliers for every point in data not in maybe_inliers if point fits maybe_model with an error smaller than t add point to consensus_set if the number of elements in consensus_set is > d (this implies that we may have found a good model, now test how good it is) this_model := model parameters fitted to all points in consensus_set this_error := a measure of how well this_model fits these points if this_error < best_error (we have found a model which is better than any of the previous ones, keep it until a better one is found) best_model := this_model best_consensus_set := consensus_set best_error := this_error increment iterations