https://github.com/93won/lidar_odometry
Fast LiDAR SLAM
https://github.com/93won/lidar_odometry
lidar odometry slam
Last synced: 3 months ago
JSON representation
Fast LiDAR SLAM
- Host: GitHub
- URL: https://github.com/93won/lidar_odometry
- Owner: 93won
- License: mit
- Created: 2025-09-26T07:36:39.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-12-24T01:16:09.000Z (6 months ago)
- Last Synced: 2025-12-25T14:21:53.213Z (6 months ago)
- Topics: lidar, odometry, slam
- Language: C++
- Homepage:
- Size: 25.1 MB
- Stars: 452
- Watchers: 7
- Forks: 67
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Fast LiDAR SLAM
A high-performance real-time LiDAR SLAM system (~400 FPS on KITTI).
[](https://www.youtube.com/watch?v=eBdYP55IMEY)
## Features
- 2-Level hierarchical voxel map with precomputed surfels
- Point-to-plane ICP with Gauss-Newton optimization on Lie manifold
- Adaptive M-estimator for robust estimation (PKO)
- Loop closure detection with LiDAR Iris
- **Configurable correspondence method**: Surfel-based (O(1) lookup) or KDTree-based (dynamic plane fitting)
### Correspondence Method Selection
```yaml
use_surfel_correspondence: false # true: O(1) surfel lookup, false: KDTree + plane fitting
```
- **Surfel-based (default)**: Pre-computed surfels enable O(1) correspondence lookup. Best for outdoor environments with large planar structures.
- **KDTree-based**: Dynamic plane fitting at query time. Recommended for unstructured environments or narrow indoor spaces where pre-computed surfels may not represent local geometry accurately.
## Build
```bash
git clone https://github.com/93won/lidar_odometry
cd lidar_odometry
./build.sh
```
## Run
Before run algorithm on a test data do not foget update paths in config yaml files
```bash
# KITTI dataset
./build/kitti_lidar_odometry config/kitti.yaml
# MID360 / PLY files
./build/lidar_odometry config/mid360.yaml
```
## Sample Data
- [KITTI Sequence 07](https://drive.google.com/drive/folders/13YL4H9EIfL8oq1bVp0Csm0B7cMF3wT_0?usp=sharing)
- [MID360 Dataset](https://drive.google.com/file/d/1psjoqrX9CtMvNCUskczUlsmaysh823CO/view?usp=sharing)
## ROS Wrapper
https://github.com/93won/lidar_odometry_ros_wrapper
## References
```bibtex
@article{choi2025surfel,
title={Surfel-LIO: Fast LiDAR-Inertial Odometry with Pre-computed Surfels and Hierarchical Z-order Voxel Hashing},
author={Choi, Seungwon and Park, Dong-Gyu and Hwang, Seo-Yeon and Kim, Tae-Wan},
journal={arXiv preprint arXiv:2512.03397},
year={2025}
}
@article{choi2025pko,
author={Choi, Seungwon and Kim, Tae-Wan},
journal={IEEE Robotics and Automation Letters},
title={Probabilistic Kernel Optimization for Robust State Estimation},
year={2025},
volume={10},
number={3},
pages={2998-3005},
doi={10.1109/LRA.2025.3536294}
}
@inproceedings{wang2020iris,
title={LiDAR Iris for Loop-Closure Detection},
author={Wang, Ying and Sun, Zezhou and Xu, Cheng-Zhong and Sarma, Sanjay and Yang, Jian and Kong, Hui},
booktitle={IROS},
year={2020}
}
```
## License
MIT License