LESSON 13 · NAVIGATION

Estimate motion and locate the robot

Understand drift, covariance and map-based correction.

Environment and verification

Documented target: Ubuntu 24.04 · ROS 2 Jazzy · Gazebo Harmonic where used. Browser labs tested; ROS/Ubuntu/hardware execution not performed here.

What you will understand

  • Explain odometry drift.
  • Describe uncertainty.
  • Separate fusion from map localization.

Prerequisites: Find a colour region with OpenCV and its stated environment.

The idea, made clear.

Wheel odometry integrates local motion. Radius error and slip accumulate, so it drifts. Localization corrects pose using observations relative to a known environment. Keep odometry, localization and simulator ground truth explicitly labelled rather than calling all three position.

An extended Kalman filter combines a model with observations and their uncertainty. Covariance represents confidence and correlations. Zero uncertainty for imperfect sensors makes estimates overconfident. Do not fuse the same underlying observation twice as if the sources were independent.

AMCL estimates planar pose inside an existing map using particles. It requires appropriate scans, transforms and initial pose. Working odometry alone does not establish global localization. Diagnose sensor timing and the complete frame chain before adjusting algorithm parameters.

Motion modelUncertaintyObservationPose estimate
An original overview of the information or commissioning sequence.

Try it, step by step.

1

Read odometry

Use a simulation publishing /odom.

odometry-and-localization-1.txt
ros2 interface show nav_msgs/msg/Odometry
ros2 topic echo /odom --once

Expected: Pose, twist, frames and covariance.

2

Check the chain

Inspect the locally continuous transform.

odometry-and-localization-2.txt
ros2 run tf2_ros tf2_echo odom base_link

Expected: A valid local transform when configured.

3

Plan comparison

Record simulator ground truth separately if exposed.

Expected: A comparison that distinguishes estimates from reference data.

Explore the interactive lab →

If something goes wrong

Localization fails
Check map, initial pose, scan, transforms and time.
Filter is overconfident
Review covariance and correlated inputs.

Check your understanding

What does AMCL require?

Make it yours

Explain uncertainty during wheel slip and what observation could correct it.

Your learning progress

Optional progress stays in this browser. No account needed.

Go to the source documentation

Commands are educational examples for the stated environment, not a transcript of local ROS execution. Verify actual behavior on your machine.

Look up a term · Version notes · Report an issue