TL;DR:
Dead reckoning estimates position by adding up motion, and its uncertainty grows with distance traveled.
Sighting a landmark at a known place gives a position fix whose error does not grow, and it shrinks the uncertainty.
Combining both, weighted by how much each is trusted, is better than either alone.
You are blindfolded in your own hallway. You can count steps and turns, so you have a rough idea where you are. After ten steps you could be wrong by an arm's length. Then your hand touches the doorframe of the kitchen, and suddenly you know exactly where you are. Robot localization works the same way.
What localization is
Localization answers the question "where am I on this map?" The answer is a pose: position and heading. The robot starts with a map (see occupancy grid maps) and has to find its place in it. This is different from mapping, where the map itself is being built.
Dead reckoning
Dead reckoning uses the robot's own motion: starting from a known pose, add each small movement as measured by wheel encoders (odometry) or an IMU. It is always available and updates fast, but errors build up. A tiny error in each step adds up, and a heading error is especially bad because it turns every following step in the wrong direction.
Random errors add in a particular way. If each 1 m move has an independent random error with standard deviation σ, after N moves the standard deviation of the total is σ × √N, not σ × N. Systematic errors, such as a wheel that is a little smaller than assumed, grow linearly.
Landmarks
A landmark is something the robot can recognize at a known place on the map: a door, a corner, a marker on the wall (see fiducial markers). When the robot measures its distance to a landmark, it gets a position fix whose error depends on the sensor, not on how far it has traveled. That error does not grow with time.
Worked example: a robot in a known map
A robot drives along a corridor that runs along the x-axis of its map. It starts at x = 0 m with a known position. Each 1 m of driving adds an independent random error with standard deviation 0.05 m (example numbers).
After 1 m:
σ = 0.05 m.After 4 m: the errors add in quadrature:
σ = 0.05 × √4 = 0.10 m.After 16 m:
σ = 0.05 × √16 = 0.20 m.
So the uncertainty grows as the square root of the distance.
At x ≈ 4 m the robot sees a landmark (a door frame) that the map puts at exactly x = 4.5 m, and measures that it is 0.45 m ahead. Its range sensor has σ = 0.10 m. This gives a second estimate of its own position: 4.5 − 0.45 = 4.05 m with σ = 0.10 m. Suppose dead reckoning says the robot is at 4.00 m, with σ = 0.10 m. Two estimates with the same uncertainty are combined by averaging:
Combined position:
(4.00 + 4.05) / 2 = 4.025 m.Combined uncertainty: with weights
1/σ²,σ² = 1 / (1/0.01 + 1/0.01) = 1 / 200 = 0.005, soσ = 0.0707 m.
The uncertainty fell from 0.10 m to 0.071 m, a factor of √2. The robot is more certain than either source alone, and from here the dead reckoning starts again from a smaller error. The exact method of weighting by uncertainty is the heart of the Kalman filter.
If the landmark sensor were much better, say σ = 0.02 m, the combined estimate would lean heavily on it: weights 1/0.01 = 100 and 1/0.0004 = 2500, so the position is (100 × 4.00 + 2500 × 4.05) / 2600 = 4.048 m and σ = √(1/2600) = 0.0196 m.
So uncertainty grows while the robot drives (dead reckoning) and shrinks whenever it sees a landmark. Plotted over time, it looks like a sawtooth.
Where it goes wrong
Wrong landmark. Two similar doors look the same. If the robot matches the wrong one, it makes a confident, wrong fix. This is called perceptual aliasing.
Wrong map. If a door has been moved since the map was made, the landmark gives the wrong position.
Too few landmarks. In a long empty corridor, the along-corridor position can only come from dead reckoning.
Bad starting pose. If the robot starts without knowing where it is, it faces the "global localization" problem, which needs methods that can hold several guesses at once, such as particle filters.
The kidnapped robot. If someone picks the robot up and puts it elsewhere, dead reckoning is wrong and the filter may be too sure to recover.
Overconfidence. If you claim a smaller σ than the truth, the filter will ignore good corrections.
Safety: Do not let a robot move based on a position that the localization system has flagged as uncertain. Slow down or stop when the uncertainty is large, and have the robot ask for help rather than guess. Keep an emergency stop and an independent obstacle sensor, since a robot that believes it is somewhere else can drive into a wall or down stairs.
How real robots use it
Robot vacuums, warehouse vehicles and delivery robots all combine odometry or an IMU with sightings of the map features. Outdoors, satellite navigation provides the fix that landmarks give indoors. The same pattern, a fast drifting estimate corrected by slower accurate measurements, is everywhere in robotics. If the map does not exist yet, the robot has to build it while it localizes, which is the problem of SLAM.
Try it yourself
Walk a straight line across a room with your eyes closed, counting steps of a fixed length, and mark where you stop. Do it ten times and measure the spread of the stopping points. Then do it again, but stop to touch a wall every few steps. Compare the spread. You have measured the effect of a landmark.
Frequently asked questions
What is the difference between localization and mapping?
Localization finds the robot's pose on a map that already exists. Mapping builds the map. Doing both at the same time is SLAM.
Why does dead reckoning drift?
Every step has a small error, and the errors add up. A heading error is the worst, because it rotates all the later steps.
