Skip to main content

Command Palette

Search for a command to run...

FAST-LIO2: 100Hz LiDAR Odometry Without Features

Direct point registration + ikd-Tree — 8x faster than LIO-SAM, more accurate across 19 benchmark sequences

Published
7 min read
T
I build robots for a living. Not in simulation. Not in a lab. On the floor, with real hardware, real failure modes, and real deadlines. My work spans the full stack of modern robotics: embedded systems firmware, autonomous navigation, and the end-to-end pipeline for Vision-Language-Action (VLA) model development — dataset collection, training, inference optimization, and sim-to-real transfer. I've worked hands-on with platforms from Unitree, Deep Robotics, Dexmate, and Robotis, among others. Each one teaches you something different about the gap between what models promise and what robots actually do.

TL;DR

FAST-LIO2 is a high-speed, high-accuracy LiDAR-IMU Odometry system developed by HKU MARS Lab. Two core innovations: (1) Direct raw point cloud registration to the map — no feature extraction, (2) Incremental k-d Tree (ikd-Tree) for O(log n) real-time map updates. Result: 100Hz on an Intel i7, real-time performance even on ARM embedded boards. Outperforms LIO-SAM, LOAM, and LILI-OM on 19 benchmark sequences in both accuracy and speed. Published in IEEE Transactions on Robotics 2022.


Background: The Long-Standing Trade-off in LiDAR Odometry

The history of LiDAR odometry has largely been a story of trade-offs.

LOAM family (2014~): Extracts edge and planar features, then performs scan-to-map matching. Accurate, but feature extraction is expensive — and brittle in feature-poor environments like tunnels, corridors, and open plazas.

LIO-SAM (2020): IMU pre-integration + factor graph + LiDAR feature matching + loop closure. Capable, but heavyweight — and requires re-tuning parameters for each different LiDAR model.

FAST-LIO (2021, predecessor): Still feature-based, but uses an iterated Kalman filter to reduce compute. The direct precursor to FAST-LIO2.

This progression naturally leads to a question:

"Can we build a system that skips feature extraction entirely, and keeps the map updated in real time?"

FAST-LIO2 is the answer.


Core Architecture: Two Key Innovations

FAST-LIO2 System Overview Fig.1. FAST-LIO2 system pipeline — LiDAR scan + IMU input, state estimation via iterated Kalman filter, direct registration to ikd-Tree map

Innovation 1: Direct Point Registration (No Feature Extraction)

LOAM and LIO-SAM extract edge and planar features from raw scans before matching. FAST-LIO2 eliminates this step entirely.

Instead, each raw point is matched against its k nearest neighbors in the map to compute a planar residual:

residual = uⱼᵀ · (T̂_GI · T̂_IL · pʲ_L − qʲ)
  • uⱼ: local plane normal vector from the map
  • pʲ_L: point in LiDAR frame
  • : centroid of nearest neighbors in the map

Advantages:

  • No environment-specific feature extraction parameter tuning
  • Same pipeline works for indoors, outdoors, corridors, and open areas
  • LiDAR-agnostic — Livox solid-state and Velodyne spinning both work without code changes

Measurement model Fig.2. Measurement model — residual computation between map plane normals and incoming LiDAR points

Innovation 2: ikd-Tree (Incremental k-d Tree)

How do you manage a map that's constantly growing? Existing approaches have problems:

  • Static k-d tree: Adding points over time requires periodic full rebuilds → latency spikes
  • Voxel grid: Fixed resolution, fast but accuracy-limited

The ikd-Tree solves both simultaneously:

OperationComplexity
Point insertion (with downsampling)O(log n)
Box-wise deletionO(H(n))
k-NN searchO(log n)
Re-balancingO(n log n), runs in a parallel thread

Key mechanisms:

  • α-balanced: Automatic rebalancing when tree height becomes uneven
  • α-deleted: Garbage collection when deleted node ratio exceeds threshold
  • Lazy deletion: Nodes are flagged rather than immediately removed
  • Parallel rebuilding: Subtree reconstruction runs in a background thread — never blocks the main estimation loop

ikd-Tree map region management Fig.3. Map region management — points outside the LiDAR FOV are removed via box-wise delete; new points are inserted in O(log n)

ikd-Tree subtree rebalancing Fig.4. ikd-Tree subtree re-building — unbalanced subtrees are reconstructed in a parallel thread without blocking the main thread

Iterated Extended Kalman Filter (iEKF)

State vector (24-dimensional, on manifold SO(3)×ℝ¹⁵×SO(3)×ℝ³):

x = [R ∈ SO(3), p ∈ ℝ³, v ∈ ℝ³, bω ∈ ℝ³, ba ∈ ℝ³, g ∈ ℝ³, R_IL ∈ SO(3), t_IL ∈ ℝ³]
VariableMeaning
R, pRotation, position
vVelocity
bω, baGyro/accel biases
gGravity vector (estimated online)
R_IL, t_ILLiDAR-IMU extrinsic — calibrated online

State propagation on manifold:

xᵢ₊₁ = xᵢ ⊞ (Δt · f(xᵢ, uᵢ, wᵢ))

Motion distortion correction: Each LiDAR point has a precise capture timestamp. IMU back-propagation interpolates the pose at that exact moment, eliminating point cloud distortion even at high rotational speeds.

Online LiDAR-IMU extrinsic calibration: R_IL and t_IL are included in the state vector and estimated simultaneously with odometry. No offline calibration required — provide a rough initial guess and it converges during operation.


Evaluation: 19 Sequences, 5 Datasets

DatasetLiDAR TypeChannelsEnvironment
LILILivox Horizon (solid-state)Non-uniformIndoor/outdoor
LIO-SAMVLP-16 (spinning)16chOutdoor large-scale
UTBM/ULHKHDL-32E (spinning)32chUrban driving
NCLTHDL-32E (spinning)32chLong-term UGV

Accuracy: Lowest RMSE on the majority of 19 sequences versus LOAM, LIO-SAM, LINS, and LILI-OM.

Speed: Over 8x faster than LIO-SAM. Sustains 100Hz on an Intel i7-8550U.

Embedded operation: Real-time confirmed on ARM Cortex-A73 (Khadas VIM3, 4GB RAM). Onboard drone deployment becomes practical.


Key Experiments

Stress Tests

High angular velocity robustness: Stable pose estimation up to 1000 deg/s. LOAM-family systems diverge at this speed. IMU back-propagation is what makes this possible.

UAV deployment: Demonstrated real-time odometry on a quadrotor with Livox Avia + DJI Manifold 2-C. Stable under motor vibration and aggressive maneuvers.

Sensor agnosticism: Livox Horizon (non-uniform solid-state scan) and VLP-16 (uniform spinning scan) both processed with the same code and same parameters. Feature-based methods inevitably require per-LiDAR parameter tuning — FAST-LIO2 eliminates this overhead entirely.

ikd-Tree vs. Existing Data Structures

The paper benchmarks ikd-Tree against octree, R*-tree, and nanoflann k-d tree:

  • Insert/delete speed: ikd-Tree > all others
  • Search speed: ikd-Tree ≈ nanoflann (optimized static k-d tree)
  • Dynamic updates: ikd-Tree only

Limitations — A Field Engineer's Perspective

Limitations acknowledged in the paper:

  1. No loop closure: Pure odometry system. Drift accumulates over long distances; the map won't close when returning to the start point
  2. Local map size is bounded: Points beyond a certain range are deleted. Not suitable for large-scale persistent mapping
  3. Static initialization required: Needs a stationary start to estimate IMU biases. Cold start while moving is not supported

Additional field observations:

  • Degenerate geometry: In environments where surface normals concentrate in one direction — long corridors, open plazas — estimation becomes unstable. FAST-LIO2 is not immune to geometry degeneracy. Deploying a separate degeneracy detection layer is recommended for production
  • No dense map: The ikd-Tree stores a sparse point map for odometry purposes. Dense 3D reconstruction or voxel occupancy maps require extension systems like R3LIVE or FAST-LIVO2
  • Solid-state scan edge cases: Livox's non-uniform scan pattern can produce uneven nearest-neighbor search results within a single frame in some edge cases
  • Not fully parameter-free: No feature extraction, but ikd-Tree α-balance/α-delete thresholds and point downsampling resolution still need environment-specific tuning for optimal performance

The Lineage — What FAST-LIO2 Unlocked

SystemWhat it took from FAST-LIO2
FAST-LIVO (2022)ikd-Tree backbone + RGB camera fusion
R3LIVE (2022)FAST-LIO2 backend + dense color map reconstruction
FAST-LIVO2 (2024)Direct LiDAR-IMU-Visual tight coupling, improved robustness
Point-LIO (2023)Point-by-point processing for higher frequency, improved IMU model
Faster-LIO (2022)Incremental voxel map as an alternative to ikd-Tree
All HKU-MARS LIO workCommon backbone for LiDAR-visual-inertial fusion research

What FAST-LIO2 proved: Direct registration without features + incremental map = fast + accurate + generalizable. This combination became the baseline for every subsequent HKU-MARS LIO system.


Summary — Key Takeaways

  1. Dropping feature extraction makes you more accurate, not less — Direct raw point registration improves both adaptability and accuracy. Challenges the prevailing belief that feature-based pipelines are inherently more stable
  2. ikd-Tree is why 100Hz is possible — O(log n) real-time map updates with no latency spikes. Parallel rebalancing is the critical enabler
  3. LiDAR-IMU extrinsic as a state variable — No separate calibration step; the system converges during normal operation. A major operational convenience win
  4. Real-time on ARM embedded — Validated on Khadas VIM3 (ARM, 4GB). Onboard deployment on drones and mobile robots is now realistic
  5. It's odometry, not SLAM — No loop closure. For long-range mapping applications, extensions like SC-FAST-LIO2 are needed. Know what you're deploying

📄 Paper: arXiv:2107.06829 🐙 GitHub: hku-mars/FAST_LIO

Next post: Octo — open-source generalist robot policy, the democratization of VLA

More from this blog

TwinVLA: 단일 팔 VLA 두 개로 양팔 조작 구현 — 50 에피소드로 RDT-1B 능가

TL;DR TwinVLA(arXiv:2511.05275)는 두 개의 사전 훈련된 단일 팔 VLA를 조합해 양팔 조작(Bimanual Manipulation)을 구현하는 프레임워크다. 양팔 데이터로 처음부터 대규모 사전 훈련 없이, 단일 팔 데이터만으로 사전 훈련된 SingleVLA(0.8B)를 두 개 인스턴스로 구성하고 Joint Attention + Causal Mask로 양팔을 협조시킨다. 결과: RDT-1B(학습 데이터 2,400시간)을 ...

Apr 21, 20268 min read1

Swerve Drive: 슬립 없는 전방향 이동 플랫폼 완전 분석 (2휠/3휠/4휠 비교)

TL;DR Swerve Drive(스워브 드라이브)는 각 바퀴가 독립적으로 조향(steering)과 구동(driving)을 동시에 수행하는 전방향 이동 플랫폼이다. 모든 방향으로 슬립 없이 이동할 수 있으면서도 메카넘 휠 대비 높은 견인력을 유지한다. 핵심은 역기구학(Inverse Kinematics): 원하는 차체 속도(vx, vy, ω)를 입력받아 각 바퀴의 속도와 각도를 실시간 계산한다. 산업용 AGV, 경쟁 로봇(FRC), 서비스 로봇 ...

Apr 20, 202612 min read5

telos-robotics

26 posts

VLA Paper Reviews RT-1, RT-2, π0, OpenVLA, Octo — the models that define where robot learning is headed. Not just summaries. Architecture breakdowns, training details, deployment considerations. Autonomous Driving Navigation Path planning algorithms, localization techniques (LiDAR SLAM ...), perception stacks. The building blocks of autonomous mobile robots. Robot Platform Notes Hands-on observations from working with specific hardware. Things you only learn by running the robot until it fails.