Engineering Guides · Module 02
Sensor combination: LiDAR + IMU
The IMU deskews and bridges between scans; the LiDAR bounds the IMU’s drift with geometry. Together they are LiDAR-inertial odometry.
Assumptions: General fusion guidance. Named algorithms appear only where their READMEs were checked (see the SLAM Selection Guide). No performance figures are given.
1. Engineering problem
A moving LiDAR distorts its own scan, and scan matching alone fails in fast rotation or sparse geometry. The IMU supplies the motion within the sweep and between scans.
2. When is this needed?
- Outdoor and indoor mapping without GNSS.
- Fast or rough motion.
- Any robot that needs a dense 3D map.
3. Selection and design decisions
What each sensor contributes
| Sensor | Contribution | Weakness the other covers |
|---|---|---|
| LiDAR | Direct metric geometry, independent of light | Distorted by motion in a sweep; degenerate geometry; weather |
| IMU | Motion within a sweep (deskew), prediction between scans | Drifts alone |
Fusion approaches
- Tightly coupled LIO: FAST-LIO (iterated extended Kalman filter, per its README) and LIO-SAM (factor-graph smoothing and mapping, per its README); they have different IMU requirements, so check the SLAM Selection Guide.
- Loosely coupled: a LiDAR odometry result fused with the IMU in an outer filter.
4. Advantages and disadvantages
- Tight coupling needs correct LiDAR–IMU extrinsics and per-point timestamps.
- More points cost compute.
- Not every method uses a Kalman filter: filters and factor graphs both appear.
5. Requirements and constraints
- Time synchronisation to within what the estimator tolerates (use the Sensor Time Synchronization Simulator).
- Calibrated extrinsics between every fused pair, with the transform direction documented (see the frame-conventions guide).
- Per-point (or per-packet) timestamps and a shared clock with the IMU.
- LiDAR–IMU extrinsic calibrated, direction documented.
- IMU of sufficient rate and quality for the chosen method.
6. Architecture
LiDAR (points + per-point time) ─┐
├─▶ LIO estimator ─▶ odometry, map
IMU (≥ 200 Hz) ──────────────────┘7. Implementation
- Verify the LiDAR publishes per-point time and the IMU stamps are on the same clock.
- Calibrate the LiDAR–IMU extrinsic and check its direction with a test motion.
- Configure the estimator and its IMU parameters; start stationary to initialise.
- Validate against closed loops and a reference.
Compare structures in the Sensor Fusion Architecture Builder.
8. Real examples
- A tracked inspection robot in a tunnel; a car-park mapping cart.
9. Failure scenarios
- Wrong extrinsic: jumping at start-up.
- Unsynchronised stamps: zig-zag during motion.
- Degenerate corridors or open fields under-constrain registration.
- Rain or dust creating false points.
10. Troubleshooting
- Check the IMU output and axis convention before running.
- Check LiDAR–IMU time offset with a rotation test.
- Plot the odometry in a degenerate area and compare with wheel odometry.
11. Validation
- Closed-loop drift below your limit over repeated routes.
- Stable start-up from rest in five trials.
- Map thickness of a flat wall below your limit.
12. Engineering checklist
13. Further references
- Class-level guidance written from general engineering knowledge; it contains no product specifications. Product-specific numbers must come from the manufacturer’s datasheet for the exact model and operating mode.
- ROS 2 message types: sensor_msgs (jazzy branch).
Related on FixTheRobot
- LIO-SAM SLAM · Lesson
- FAST-LIO and FAST-LIO2 SLAM · Lesson
- Sensor Calibration and Synchronization SLAM · Lesson