Skip to content

mingren11/NVMS-SLAM

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 

Repository files navigation

NVMS-SLAM

a normal vector-based multi-session LiDAR SLAM system tailored for indoor environments

Official implementation of our paper in IEEE Transactions on Automation Science and Engineering (T-ASE), 2026


arXiv GitHub Bilibili YouTube -->

Abstract

Multi-session SLAM is essential for long-term robotic operations in indoor environments such as warehouses and office buildings. However, the thin walls separating enclosed spaces in such environments introduce a challenge known as the double-sided issue, where point clouds from opposite sides are mistakenly associated as a single surface during single-session mapping, and are prone to being grouped into the same voxel during voxelization in multi-session map fusion, leading to poor voxel planarity, which causes voxel invalidation and reduces the available constraints for global optimization. To address this, we propose NVMS-SLAM, a normal vector-based multi-session LiDAR SLAM system tailored for indoor environments. For single-session mapping, an extended voxel map is designed to preserve normal vector information and to distinguish between visible and non-visible surfaces, thereby improving data association. At the multi-session level, a density-encoded indoor scan-context descriptor is introduced for robust loop closure. In addition, a two-stage global map fusion strategy is adopted, combining joint pose graph optimization and normal vector-based bundle adjustment to ensure globally consistent mapping. Experiments on simulated datasets and real-world environments demonstrate that NVMS-SLAM can effectively resolve the double-sided issue at both the single-session and multi-session stages.

Contributors: Yongxin Ma, Chengwei Zhao, Jie Xu, Yixuan Li, Xuanxuan Zhang, Shenghai Yuan, Lihua Xie

1. Prerequisites

1.1 Ubuntu and ROS

Ubuntu >= 18.04.

ROS >= Melodic. ROS

1.2 PCL && Eigen && gtsam

PCL >= 1.8, Follow PCL.

Eigen >= 3.3.4, Follow EIGEN.

gtsam >= 4.0.0, Follow gtsam.

1.3 livox_ros_driver

Follow livox_ros_driver Installation.

2. Build

3. Directly run

4. Rosbag Example

4.1 Simulated Dataset

Download our test bags here: geogle.

4.2 Real-world Dataset

Download our test bags here: geogle.

5. Example results

Citation

If you use NVMS-SLAM for any academic work, please cite our original paper

@ARTICLE{11479301,
  author={Ma, Yongxin and Zhao, Chengwei and Xu, Jie and Li, Yixuan and Zhang, Xuanxuan and Yuan, Shenghai and Xie, Lihua},
  journal={IEEE Transactions on Automation Science and Engineering}, 
  title={NVMS-SLAM: Normal Vector-based Multi-Session LiDAR SLAM in Indoor Environments}, 
  year={2026},
  volume={},
  number={},
  pages={1-1},
  keywords={Kalman filters;Filters;Central Processing Unit;Indoor environment;Electronic mail;Product development;Graphical user interfaces;Indoor communication;Location awareness;High frequency;Double-sided issue;LiDAR simultaneous location and mapping;multi-session;normal vector},
  doi={10.1109/TASE.2026.3682733}}


Acknowledgements

License

The source code is released under GPLv2 license.

About

a normal vector-based multi-session LiDAR SLAM system tailored for indoor environments

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors