Open Source Robotics

A curated collection of high-quality open source robotics projects, tools, and software to propel the robotics community forward.

LiDAR Odometry

  • Also called: laser odometry, LO
  • Category: State estimation & navigation › Localisation
  • Tags: lidar, odometry, slam, state-estimation, point-cloud-registration

Estimating a robot's motion by registering successive LiDAR scans against each other or against a local map; it drifts over distance unless corrected by loop closure.

Definition

LiDAR odometry estimates the motion of a lidar sensor, and the robot carrying it, by aligning each new scan with previous data. It is one form of odometry: like wheel odometry or visual odometry, it integrates relative motion over time and so accumulates drift. It differs from visual odometry in its input, direct range measurements instead of camera images, which gives metric scale from a single sensor and makes it largely independent of lighting. It differs from iterative closest point in scope: ICP is one registration algorithm, often used inside a lidar odometry system, while lidar odometry is the whole pipeline of preprocessing, registration, motion compensation and map management.

Two main families exist. Feature-based methods, such as LOAM by Zhang and Singh in 2014, extract edge and planar points from each scan and match them to features in a local map. Dense methods register most of the points, typically with point-to-plane ICP or a normal distributions transform, against the previous scan or a downsampled local map. Scan-to-map registration drifts less than scan-to-scan registration because each scan is aligned to a structure built from many earlier scans.

A spinning lidar collects a scan over a full rotation, so a moving sensor distorts it. Systems correct this by de-skewing points using an assumed constant velocity, an IMU, or, as in CT-ICP, a continuous-time trajectory with separate poses at the start and end of each scan. Lidar odometry struggles where geometry does not constrain all six degrees of freedom: long corridors, tunnels, open fields and flat roads. Tight fusion with an IMU, as in lidar-inertial odometry, helps with fast motion and short degenerate stretches, and a full SLAM system adds loop closure and pose graph optimization to remove accumulated drift.

Why it matters

Lidar odometry is the main source of motion estimates for many autonomous vehicles, mobile robots and mapping systems, especially outdoors and in the dark where cameras struggle. Its accuracy limits the quality of every map and localization result built on top of it.

Key applications

  • Ego-motion estimation for autonomous cars and delivery robots
  • Front end of lidar SLAM and 3D mapping systems
  • Handheld and backpack mobile mapping
  • Navigation in mines, tunnels and other dark environments
  • State estimation for legged robots and drones with onboard lidar

In practice

A team fits a spinning lidar and an IMU to a survey robot that drives through a construction site. Each scan is de-skewed using the IMU, downsampled into a voxel grid, and registered with point-to-plane ICP to a local map of recent scans. The resulting pose feeds the robot's navigation stack at the scan rate. When the robot drives down a long bare corridor, the team sees the position estimate stretch along the corridor axis, because the walls do not constrain motion along it; they add a degeneracy check on the ICP solution, rely more on the IMU and wheel odometry in those stretches, and run loop closure offline to correct the final map.

Common misconceptions

  • Lidar odometry gives drift-free global positions — it integrates relative motion and drifts, so loop closure or a global reference is needed for long runs
  • Lidar odometry is the same as ICP — ICP is one registration step; odometry also includes de-skewing, filtering, map management and often IMU fusion
  • Because lidar measures range directly, it works everywhere — geometrically featureless scenes such as tunnels or open fields leave some directions unconstrained
  • Each scan is a snapshot taken at one instant — a spinning lidar sweeps over time, so a moving sensor produces distorted scans unless they are corrected

Who should know this

  • SLAM and state estimation engineers
  • Autonomous driving perception teams
  • Mobile mapping and surveying developers
  • Field robotics engineers working outdoors or underground

Related technologies

  • LOAM
  • KISS-ICP
  • CT-ICP
  • Lidar-Inertial Odometry
  • Normal Distributions Transform

Related terms

  • Odometry
  • Visual Odometry
  • Iterative Closest Point
  • LIDAR
  • Loop Closure
  • SLAM

Related projects

  • LingBot-Map: Streaming 3D reconstruction from one camera: pose and depth for every frame, live
  • oomwoo: Open-source DIY robot vacuum: 3D-printed, ROS2 + 2D LiDAR, fully local.
  • Cartographer: Google's real-time 2D and 3D SLAM system for multi-platform robotics
  • FAST-LIVO2: Fast, direct LiDAR-inertial-visual odometry from HKU-MARS, published in IEEE T-RO
  • DimOS: Python robotics runtime with agents, SLAM and teleop, no ROS required
  • evo: De-facto standard tool for evaluating and plotting odometry/SLAM trajectories

Videos

  • LiDAR Odometry - 5 Minutes with Cyrill: Cyrill Stachniss

This website requires JavaScript to function properly. Please enable JavaScript to explore our collection of open source robotics projects.