robotics//SLAM

SLAM lets a robot build a map of a place it has never seen while working out where it is in that map, with no GPS and no prior survey. A vacuum cleaner learning a flat, a warehouse robot, a drone indoors, a phone placing virtual objects on a table: each must locate itself relative to landmarks (corners, edges, visual features, walls in a laser scan) whose positions it only knows from having seen them while it moved. Simultaneous localization and mapping is the name for estimating both at once.


SLAM lets a robot build a map of a place it has never seen while working out where it is in that map, with no GPS and no prior survey. A vacuum cleaner learning a flat, a warehouse robot, a drone indoors, a phone placing virtual objects on a table: each must locate itself relative to landmarks (corners, edges, visual features, walls in a laser scan) whose positions it only knows from having seen them while it moved. Simultaneous localization and mapping is the name for estimating both at once.

The two problems cannot be separated. The position of a landmark is known only as well as the position of the robot when it saw it, and the position of the robot is known only from landmarks; so their errors are correlated, and the correlation is what carries the problem. When the robot returns to a corner it saw an hour ago and recognizes it (a loop closure), the one reading corrects not only its own drifted position but, through those correlations, every landmark seen along the way. A method that kept robot and landmarks as independent estimates would lose exactly that effect.

The classic formulation is EKF-SLAM: one extended Kalman filter whose state holds the robot's pose and every landmark's position, with the full covariance between all of them (covariance propagation). It is exact about the correlations and costs time quadratic in the number of landmarks per update, which limits it to small maps.

FastSLAM splits the problem with a particle filter over robot trajectories and small independent filters for each landmark given the trajectory, which scales with the map far better.

Most current systems are graph-based: robot poses and landmarks are nodes, every odometry step and observation is a constraint between them, and the whole graph is solved as a least-squares problem, re-solved when a loop closes. Storage grows linearly with the map.

It all rests on recognizing a landmark again. A wrong association (two similar corners taken for one) is an outlier that bends the whole map, which is why SLAM systems gate and verify their matches before using them (innovation gating).