Skip to main content
Robotics & Embodied AI

⏱ About 15 min15 XP

Localization: Where Am I?

Before a robot can navigate anywhere, it needs to answer a deceptively simple question: Where am I right now? This problem is called localization — determining the robot's own position and orientation within a known space or coordinate system. It sounds trivial until you realize that sensors are noisy, the world is dynamic, and even tiny errors in position estimates can compound into large navigational mistakes over time.

Odometry: Counting Wheel Turns

The simplest localization strategy is odometry — tracking how far the robot has moved by counting wheel rotations. If a wheel has a circumference of 50 centimeters and the encoder records 3 full rotations, the robot has traveled 150 centimeters in the direction the wheel was pointing. By combining the rotation counts from left and right wheels, the robot can also estimate how much it has turned. Odometry is inexpensive and requires no external landmarks, but it accumulates error relentlessly. Wheels slip on slick floors. Carpet fibers add slight, unpredictable drag. Manufacturing differences between left and right wheels create tiny biases. After a hundred meters, these small errors stack up into position estimates that can be several meters off. This growing uncertainty is called odometric drift.

Odometric Drift

Odometry errors are cumulative. Each small positioning error adds to the previous one rather than averaging out. A robot relying only on odometry will be lost by the end of a long corridor.

Landmarks: Anchoring Position Estimates

One way to fight drift is to use landmarks — recognizable features in the environment whose positions are already known. When the robot's sensors detect a landmark, it can compare the observed position of the landmark with where that landmark should be on its map, and use the difference to correct its estimated location. Landmarks can be natural (a distinctive wall corner, a unique doorway) or artificial (a QR code sticker placed deliberately on the wall). Many warehouse robots use a floor covered in special markers — barcodes printed on tiles — that cameras read continuously. Every time a marker is detected, the robot's position estimate is snapped back to the known position of that marker, eliminating drift almost entirely.

Probabilistic Localization

A powerful modern approach to localization treats the robot's position not as a single definite point but as a probability distribution — a cloud of possibilities, each with an associated likelihood. At the start, before any sensor readings, the cloud might be spread uniformly across the entire map, reflecting total uncertainty. As sensors provide evidence, the cloud narrows: positions that are inconsistent with the sensor observations get lower probability, and positions that match get higher probability. One elegant implementation is called a particle filter. The robot maintains a population of hypotheses — thousands of virtual copies of itself placed at different positions. Each particle represents one guess about where the robot is. When sensor data arrives, particles whose hypothetical positions are consistent with the data are kept and replicated; inconsistent particles are discarded. Over time, the surviving particles converge on a small cloud around the true position.

Particle Filter

A particle filter represents the robot's uncertain position as thousands of sample hypotheses. Sensor evidence votes out bad hypotheses and keeps good ones. The cluster of surviving particles converges on the true position.

Match each localization concept to its correct description.

Terms

Odometry
Odometric drift
Landmark
Particle filter
Probability distribution

Definitions

The gradual growth of position error caused by accumulating small measurement mistakes
A recognizable feature whose known position can anchor the robot's location estimate
Estimating position by integrating wheel-rotation counts over time
A probabilistic localization method using thousands of sampled position hypotheses
A mathematical description of how likely each possible position is, encoding the robot's uncertainty

Drag terms onto their definitions, or click a term then click a definition to match.

GPS and Its Limits

Outdoor robots can use GPS (Global Positioning System) — a network of satellites that broadcasts precise timing signals from which a receiver can triangulate its position on Earth's surface. Standard GPS is accurate to about 3 to 5 meters, which is fine for car navigation but dangerously coarse for a robot that needs centimeter precision. Differential GPS and Real-Time Kinematic (RTK) GPS use ground-based correction stations to achieve centimeter-level accuracy outdoors. Indoors, GPS signals are blocked by building materials. In dense cities, signals reflect off skyscrapers — a problem called multipath error — producing readings that can be tens of meters off the true position. For these environments, robots rely on lidar, cameras, and the probabilistic methods described above.

Why does odometry accumulate error over time?

How does a particle filter represent the robot's uncertainty about its position?

Estimating a robot's position by counting wheel rotations is called . The progressive growth of position error in this method is called odometric . A filter represents the robot's uncertain position as thousands of sampled hypotheses.

Human Particle Filter

  1. Step 1: Draw a simple top-down map of your classroom or a room at home on paper. Mark six distinct landmark positions (desk, door, window, bookshelf, whiteboard, lamp).
  2. Step 2: Scatter 20 small dots randomly across your map. Each dot is a 'particle' — a hypothesis about where the robot might be.
  3. Step 3: Announce a sensor observation: 'The robot sees the door 2 meters to its left.' Circle any dots that could plausibly produce this observation (within half a grid square of that relationship).
  4. Step 4: Eliminate all non-circled dots. Redraw the eliminated number as new dots scattered near the surviving ones.
  5. Step 5: Repeat steps 3-4 with two more observations. How quickly does your particle cloud converge? What makes it converge faster or slower?