FixTheRobot Explore Robotics / Localization & SLAM / M5 / M5-L2

This lab works on phones, but writing code is much easier on a laptop.

Localization & SLAM · LiDAR SLAM · M5-L2 · Advanced

Diagnose Poor Scan Registration

The lidar odometry works in the lab and slides in the corridor. Its pose jumps forward and back along the hallway while the walls look perfect in the map.

You find out why, build the check that would have warned the system, and then explore what else makes registration fail.

Your task

    Simulation
    solution.pyLoading Python…
    Ctrl+Enter runs
    What Python can I use?

    Plain Python with math and, for matrices, slamkit (matmul, transpose, solve, inverse, identity). The data arrive as the dictionary D. There is no NumPy, random, json or copy in the browser runtime. Your code runs locally and never leaves this page.

    Hints

    What this lab teaches

    Stage 1 turns the degeneracy analysis of M5-T4 into code: assemble the normal matrix of a point-to-line problem, read its smallest translation eigenvalue, and refuse to invent motion in a direction the scan cannot measure. It is graded on a room and a corridor whose true correction stays in the simulator. Stage 2 is an experiment on the two other classic causes of bad registration: the cost function and the starting error.

    Why it matters

    A registration that always returns an answer is dangerous. The useful ones also return how much to trust it.

    Theory for this lab

    LiDAR SLAM labs

    1. M5-L1: Fix Point-Cloud Preprocessing
    2. M5-L2: Diagnose Poor Scan Registration: this lab.
    3. M5-L3: Understand the LOAM Pipeline
    4. M5-L4: Diagnose LiDAR SLAM Drift
    5. M5-L5: Investigate a Failed LiDAR Mapping Run

    Educational simplification: straight, perfectly known walls, one linearised step with rotation about the origin, 2D instead of 6-DOF, and a fixed threshold on the eigenvalue. Production systems analyse the 6×6 matrix, scale the directions and combine the result with the IMU.

    Get the next lab

    Get notified when new robotics labs are released. One email per new lab, nothing else.