// the find
gaoxiang12/lightning-lm
Lidar Localization and Mapping
A 3D LiDAR SLAM and localization stack from gaoxiang12 (the author behind the well-known Chinese SLAM teaching codebases), pairing a FastLIO-style front end with a custom incremental pose-graph optimizer. It's aimed at people building real-time localization for mobile robots or AGVs on constrained CPUs, not researchers comparing loop-closure algorithms in isolation.
The changelog shows actual dataset-by-dataset validation (NCLT, VBR, UrbanLoco, Deep Robotics quadruped data) with specific fixes tied to specific GitHub issues (Jacobian bug in height constraint, out-of-bounds in loop closure, std::vector<bool> parallelization bug) rather than vague 'improved stability' notes. The custom 'miao' optimizer supports incremental optimization without rebuilding the graph from scratch each cycle, which matters for running loop closure and localization at real-time rates. Dynamic/static layer separation with three retention strategies for localizing in environments that change over time is a feature most open SLAM stacks skip entirely. CPU usage claims are concrete numbers (0.8 cores online localization, 1.2 cores mapping, 32-line lidar) instead of marketing-speak.
No LICENSE file anywhere in the tree - that's a hard blocker for anyone considering this for a commercial product, not a minor omission. There are no automated tests; the 'Test Results' section is a hand-maintained pass/fail table per dataset, so regressions get caught by issue reports after the fact, not CI. It's hard-pinned to ROS2 Humble on Ubuntu 22.04 and vendors thirdparty code directly in-tree (a zipped Pangolin build, raw Sophus headers, the Livox driver) instead of submodules, which makes dependency updates and CVE tracking painful. GPS integration and vehicle odometry input are both still TODO, so despite being pitched for vehicles and AGVs, it's currently lidar-only - a real gap for outdoor driving or wheeled robots with encoders.