Source-linked AI summary
IMLS-SLAM: scan-to-model matching based on 3D data
Jean-Emmanuel Deschaud
TL;DR
Direct LiDAR-based odometry remains limited despite LiDAR’s usefulness for autonomous-driving perception. This paper proposes a scan-to-model 3D LiDAR SLAM framework with specific sampling and IMLS surfaces, achieving low drift and strong KITTI results.
Problem
Few SLAM methods directly use 3D LiDAR data for odometry, although LiDAR supports autonomous-driving localization and is less affected by lighting-dependent measurement noise than cameras.
Method
The method uses only 3D LiDAR, selects scan samples using vehicle-frame axes, and matches scans to a model of previous sweeps represented by an IMLS surface.
Results
The method produced low drift on a 4 km Velodyne HDL32 acquisition and outperformed previously published results on KITTI training data with 0.55% translation drift and 0.0015 deg/m rotation error.
Takeaways & Limitations
The experiments support 3D LiDAR-only scan-to-model SLAM as a low-drift approach, with results among the best on the KITTI benchmark.
Takeaways & Limitations
The implementation is not real time because normal computation and rebuilding a k-d tree over stored scans are computationally expensive.
Abstract
from arXiv · showhide
The Simultaneous Localization And Mapping (SLAM) problem has been well studied in the robotics community, especially using mono, stereo cameras or depth sensors. 3D depth sensors, such as Velodyne LiDAR, have proved in the last 10 years to be very useful to perceive the environment in autonomous driving, but few methods exist that directly use these 3D data for odometry. We present a new low-drift SLAM algorithm based only on 3D LiDAR data. Our method relies on a scan-to-model matching framework. We first have a specific sampling strategy based on the LiDAR scans. We then define our model as the previous localized LiDAR sweeps and use the Implicit Moving Least Squares (IMLS) surface representation. We show experiments with the Velodyne HDL32 with only 0.40% drift over a 4 km acquisition without any loop closure (i.e., 16 m drift after 4 km). We tested our solution on the KITTI benchmark with a Velodyne HDL64 and ranked among the best methods (against mono, stereo and LiDAR methods) with a global drift of only 0.69%.
I. INTRODUCTION
Vehicle localization is important for autonomous driving, but accurate maps may be unavailable or outdated. The paper addresses this need with a LiDAR scan-to-model framework designed for large, sparse 3D data.
- Accurate maps support vehicle localization, but unmapped or substantially changed areas require SLAM solutions.
- LiDAR measurements have noise independent of distance and lighting conditions, although their large data volume and sparse range images remain challenging.
- The paper presents a scan-to-model framework using an implicit surface representation to handle acquired LiDAR data.The reported outcome is low-drift LiDAR odometry and improved mapping quality.
II. RELATED WORK
Prior 3D LiDAR SLAM methods largely build on scan matching, while RGB-D scan-to-model methods are constrained by voxel-map volume. This work uses only 3D LiDAR and defines a surface-based scan-to-model map.
- Most LiDAR SLAM approaches are variations of ICP scan-to-scan registration, including point-to-plane matching.
- The Paris trajectory figure compares IMLS SLAM in red with classical scan-to-scan matching in black over two 2 km loops.
- LOAM matches selected LiDAR edge and planar features against edge-line and planar-planar surfaces stored in a map.
- RGB-D scan-to-model methods can be fast and accurate but are limited in the volume explored by voxel maps.
- The proposed method uses only 3D LiDAR, de-skews each rotational sweep, selects matching samples, and models the map as a point-set surface.
III. SCAN EGOMOTION AND DYNAMIC OBJECT REMOVAL
The method estimates scan egomotion from previous odometry, de-skews each sweep through interpolated poses, registers it to the map, and removes small likely dynamic objects before matching.
- A scan is one LiDAR rotation, during which vehicle motion requires displacement-aware point-cloud construction.
- Vehicle pose for each measurement is obtained by linear interpolation between the previous and current scan-end poses.
- The current scan is de-skewed using a position predicted from the two previous relative displacements.
- The de-skewed scan is rigidly registered to the map, assuming angular and linear LiDAR velocities are smooth and continuous.
- Ground points and small clusters are discarded as a practical approximation to dynamic-object removal.Clusters are removed when their bounding-box dimensions are below 14 m in Xv and Yv and 4 m in Zv.
IV. SCAN SAMPLING STRATEGY
The sampling strategy prioritizes geometrically informative LiDAR points by vehicle-frame orientation, planarity, and distance, balancing observability against matching speed.
- Unlike random ICP sampling, the method uses vehicle-frame axes so planar regions align with directions relevant to vehicle motion.
- Ground and facade points provide observability for translation along Zv and along Xv and Yv, respectively.
- Each point receives planarity- and normal-based scores for three vehicle axes, producing nine sorted lists of candidate samples.
- The first six scores favor points far from the sensor for rotation observability, while the final three scores assess translation observability without that distance preference.
- Experiments used 900 samples, about 7% of a 13,683-point scan, to balance transformation observability with matching speed.
- Figure 2 marks selected samples in red, emphasizing distant points for rotation and planar zones for matching.
V. SCAN-TO-MODEL MATCHING WITH IMPLICIT MOVING LEAST SQUARES (IMLS) SURFACE REPRESENTATION
The method localizes each LiDAR scan against an implicit surface built from previous localized scans, using IMLS distances and iterative transformation updates. This scan-to-model formulation is intended to improve matching quality over classical ICP scan-to-point-cloud matching.
- The map Pk accumulates n previous localized scans, including measurement noise and localization errors.
- IMLS defines IPk(x) as an approximate distance from x in R3 to the implicit surface represented by point cloud Pk.The function uses points pi and normals ni, with distance-weighted contributions from nearby map points.
- The method projects scan points onto the IMLS surface, then estimates R and t by minimizing point-to-surface residuals.Projected points use the IMLS value and the normal of the closest map point as an approximation to the projected surface normal.
- The scan-to-model iteration repeatedly projects points, solves for R and t, transforms the scan, and updates the estimate until the iteration limit.The finalized pose combines the matching transformation with the predicted pose, after which the new de-skewed scan enters the map and the oldest scan is removed.
- Compared with ICP's closest-point distance, IMLS matching minimizes distance to an implicit surface, moving the scan toward that surface to improve matching quality.Figure 3 contrasts the first and last iterations of ICP point-to-plane matching with IMLS point-to-model matching.
VI. EXPERIMENTS
The implementation uses standard nearest-neighbor and linear-algebra libraries and evaluates the method on outdoor spinning Velodyne LiDAR datasets. Experiments use fixed sampling, surface, neighborhood, iteration, and map-size parameters.
- The system is implemented in C++ using FLANN for nearest-neighbor search with a k-d tree and Eigen.
- Tests use Velodyne HDL32 and HDL64 sensors spinning at 10 Hz, with each scan acquired over 100 ms.The method runs on one 4 GHz CPU core and uses less than 1 Go of RAM.
- All experiments use 100 samples per list, h = 0.06 m, r = 0.20 m, 20 matching iterations, and n = 100 map scans.
A. Tests on our Velodyne HDL32 dataset
On a 4 km Paris acquisition, IMLS SLAM produces low endpoint drift without loop closure and preserves fine map details. A separate Lille test with many turns yields a map without duplicate objects.
- 16 m endpoint error over 4 km corresponds to 0.40% drift for IMLS SLAM on the Paris HDL32 acquisition.The route comprised two traversals of a 2 km loop and returned to nearly the same location.
- Fine fence details in the generated point cloud indicate a good egomotion estimate for each laser scan.
- The Lille HDL32 test used a 60-degree pitch tilt and many turns; the resulting point cloud contained no duplicate objects.The point cloud provides a qualitative evaluation of mapping quality.
B. Tests on the public dataset KITTI with Velodyne HDL64
On KITTI, the method was evaluated across diverse environments and achieved low drift, outperforming published LOAM results on the training set while remaining sensitive to calibration, ground-truth, and environmental factors.
- Evaluation setup: KITTI provides 22 sequences spanning urban, rural, highway, vegetation, and traffic conditions, with 11 sequences accompanied by ground truth.The dataset uses a vertical Velodyne HDL64 mounted on a car.
- Training results: 0.55% drift in translation and 0.0015 deg/m error in rotation were obtained on the training dataset.The authors report outperforming previously published results, including approximately 1.5% translation drift and 0.01 deg/m rotation error from.
- Test results: 0.69% drift in translation and 0.0018 deg/m error in rotation were obtained on the test dataset.This was better than published LOAM at 0.88% drift, while LOAM’s KITTI website result was slightly better at 0.64% drift.
- Limitations and factors: The KITTI drift was worse than on the HDL32 acquisition because of intrinsic-angle calibration distortion, GPS ground-truth errors, and more varied environments.The authors cite more than 5 m of GPS error at the beginning of sequence 8 and calibrated the intrinsic vertical angle to 0.22 degrees using training data.
- Component studies: Ablation studies examined dynamic-object removal, sampling strategy, map size n, and sample count s on the KITTI training dataset.The map-size study reports continued improvement from n = 10 to n = 100 scans, with no change beyond n = 100.
- Mapping quality: The generated KITTI point clouds retained environmental details such as cars and poles despite many outliers.Figure 6 covers sequences 0 and 6, and the text states that the method is robust to the outliers.
C. Discussion of the processing time
The implementation is not real time: normal computation and rebuilding a k-d tree dominate processing, while the matching iterations are comparatively fast.
- Runtime bottlenecks: 0.2 s per scan is required for normal computation, and rebuilding the k-d tree takes 1 s per sweep when n = 100.Normals are computed from the 3D point cloud because KITTI lacks raw LiDAR data; the k-d tree is rebuilt from the whole stored point cloud.
- Matching cost: 0.05 s per scan is required for the matching iterations.The limited number of queries from the sampling strategy keeps matching comparatively fast.
- Overall processing time: 1.25 s per scan is the reported runtime for the implementation on KITTI.The authors suggest faster normal computation and a persistent, specialized k-d tree could enable real-time operation.
- Runtime comparison: LOAM is reported to run at 1 s per scan on KITTI, compared with 1.25 s per scan for this implementation.The comparison is stated in the processing-time discussion.
VII. CONCLUSION
The paper concludes with a 3D LiDAR SLAM method based on specific sampling and scan-to-model matching, reporting low drift on HDL32 data and strong KITTI benchmark results.
- VII. CONCLUSION: The presented 3D LiDAR SLAM combines a specific sampling strategy with new scan-to-model matching.The conclusion identifies these as the method’s central components.
- VII. CONCLUSION: Experiments showed low drift on the Velodyne HDL32 dataset and among-best results on the KITTI benchmark.The conclusion summarizes the reported experimental outcomes without loop-closure or runtime details.