  Local geometric information, i.e. normal and distribution of points, is
crucial for LiDAR-based simultaneous localization and mapping (SLAM) because it
provides constraints for data association, which further determines the
direction of optimization and ultimately affects the accuracy of localization.
However, estimating normal and distribution of points are time-consuming tasks
even with the assistance of kdtree or volumetric maps. To achieve fast normal
estimation, we look into the structure of LiDAR scan and propose a ring-based
fast approximate least squares (Ring FALS) method. With the Ring structural
information, estimating the normal requires only the range information of the
points when a new scan arrives. To efficiently estimate the distribution of
points, we extend the ikd-tree to manage the map in voxels and update the
distribution of points in each voxel incrementally while maintaining its
consistency with the normal estimation. We further fix the distribution after
its convergence to balance the time consumption and the correctness of
representation. Based on the extracted and maintained local geometric
information, we devise a robust and accurate hierarchical data association
scheme where point-to-surfel association is prioritized over point-to-plane.
Extensive experiments on diverse public datasets demonstrate the advantages of
our system compared to other state-of-the-art methods. Our open source
implementation is available at https://github.com/tiev-tongji/LOG-LIO.
