NDT-LOAM: A Real-Time Lidar Odometry and Mapping With Weighted NDT and LFA

The Lidar Simultaneous Localization and Mapping (Lidar-SLAM) processes the point cloud from the Lidar and accomplishes location and mapping. Lidar SLAM is usually divided to front-end odometry and back-end optimization, which can run parallelly to improve computation efficiency. The font-end odometry estimates the Lidar motion through processing the point clouds and the Normal Distributions Transform (NDT) algorithm is usually utilized in the point clouds registration. In this paper, with the aim to reduce the accumulated errors, we proposed a weighted NDT combined with a Local Feature Adjustment (LFA) to process the point clouds and improve the accuracy. Cells of the NDT are weighted according to the range’s values and their surface characteristics, the new cost functions with weight are constructed. In the experiments, we tested NDT-LOAM on the KITTI odometry dataset and compared it with the state-of-the-art algorithm ALOAM/LOAM. NDT-LOAM had 0.899% average drift in translation, better than ALOAM and at the level of LOAM; moreover, NDT-LOAM can run at 10 Hz in real-time, while LOAM runs at 1 Hz. The results display that NDT-LOAM is a real-time and low-drift method with high accuracy. In addition, the source code is uploaded to GitHub and the download link is https://github.com/BurryChen/lv_slam.