  This paper presents FAST-LIO2: a fast, robust, and versatile LiDAR-inertial
odometry framework. Building on a highly efficient tightly-coupled iterated
Kalman filter, FAST-LIO2 has two key novelties that allow fast, robust, and
accurate LiDAR navigation (and mapping). The first one is directly registering
raw points to the map (and subsequently update the map, i.e., mapping) without
extracting features. This enables the exploitation of subtle features in the
environment and hence increases the accuracy. The elimination of a
hand-engineered feature extraction module also makes it naturally adaptable to
emerging LiDARs of different scanning patterns; The second main novelty is
maintaining a map by an incremental k-d tree data structure, ikd-Tree, that
enables incremental updates (i.e., point insertion, delete) and dynamic
re-balancing. Compared with existing dynamic data structures (octree, R*-tree,
nanoflann k-d tree), ikd-Tree achieves superior overall performance while
naturally supports downsampling on the tree. We conduct an exhaustive benchmark
comparison in 19 sequences from a variety of open LiDAR datasets. FAST-LIO2
achieves consistently higher accuracy at a much lower computation load than
other state-of-the-art LiDAR-inertial navigation systems. Various real-world
experiments on solid-state LiDARs with small FoV are also conducted. Overall,
FAST-LIO2 is computationally-efficient (e.g., up to 100 Hz odometry and mapping
in large outdoor environments), robust (e.g., reliable pose estimation in
cluttered indoor environments with rotation up to 1000 deg/s), versatile (i.e.,
applicable to both multi-line spinning and solid-state LiDARs, UAV and handheld
platforms, and Intel and ARM-based processors), while still achieving higher
accuracy than existing methods. Our implementation of the system FAST-LIO2, and
the data structure ikd-Tree are both open-sourced on Github.
