Skip to content

[RA-L'25 & IROS'25] II-NVM: Enhancing Map Accuracy and Consistency with Normal Vector-Assisted Mapping

Notifications You must be signed in to change notification settings

chengwei0427/II-NVM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

II-NVM

Enhancing Map Accuracy and Consistency with Normal Vector-Assisted Mapping

This work has been accepted to IEEE Robotics and Automation Letters (RA-L 2025).


Code arXiv IEEE YouTube


illustrates a real-world scenario where the double-sided mapping issue arises, presenting examples of both erroneous and correct mappings.


Demonstration of real-world scenarios where mapping results of walls and doors in a real scenario.


System Overview: II-NVM Pipeline


Comparison of localization estimates from different algorithms.


The extended work: NVMS-SLAM.

Abstract

SLAM technology plays a crucial role in indoor mapping and localization. A common challenge in indoor environments is the “double-sided mapping issue”, where closely positioned walls, doors, and other surfaces are mistakenly identified as a single plane, significantly hindering map accuracy and consistency. To addressing this issue this paper introduces a SLAM approach that ensures accurate mapping using normal vector consistency. We enhance the voxel map structure to store both point cloud data and normal vector information, enabling the system to evaluate consistency during nearest neighbor searches and map updates. This process distinguishes between the front and back sides of surfaces, preventing incorrect point-to-plane constraints. Moreover, we implement an adaptive radius KD-tree search method that dynamically adjusts the search radius based on the local density of the point cloud, thereby enhancing the accuracy of normal vector calculations. To further improve real time performance and storage efficiency, we incorporate a Least Recently Used (LRU) cache strategy, which facilitates efficient incremental updates of the voxel map. The code is released as open-source and validated in both simulated environments and real indoor scenarios. Experimental results demonstrate that this approach effectively resolves the “double-sided mapping issue” and significantly improves mapping precision. Additionally, we have developed and open-sourced the first simulation and real world dataset specifically tailored for the “double-sided mapping issue”.

Contributors: Chengwei Zhao, Yixuan Li, Yina Jian, Jie Xu, Linji Wang, Yongxin Ma, Xinglai Jin

📝 News

  • [15/12/2025]: Upload ROS2 Version.
  • [10/12/2025]: Code release.
  • [24/10/2025]: Attend the IROS 2025 conference, and the code will be open-sourced before December.
  • [21/07/2025]: The extended journal NVMS-SLAM of this paper has been submitted to IEEE, and the related code will be open-sourced after the paper is accepted. 🎉🎉🎉
  • [11/04/2025]: Submitted the paper to arxiv.
  • [10/04/2025]: II-NVM is accepted to IEEE Robotics and Automation Letters.

📁 II-NVM Dataset

Our data has been uploaded to OneDrive. For users in mainland China, we provide a Baidu Cloud, with the extraction code: 5678.

✅ Installation Guide

🔧 Recommended System Setup

  • Operating System: Ubuntu 22.04

🔧 Dependencies

  1. tbb

  2. ceres-210

🔧 Build and Run

git clone https://github.com/chengwei0427/II-NVM.git
cd ..
colcon build --packages-select II_NVM --cmake-args -DCMAKE_BUILD_TYPE=Release
source install/setup.bash

🔧 Running the System

ros2 launch II_NVM run.launch.py

rosbag play yourbag.bag --clock

🐳 Docker

ROS1 (Noetic - Ubuntu 20.04)

# Build
docker compose build ii-nvm-ros1

# Run
./run_docker.sh 1

# Inside container
roslaunch II_NVM run.launch

# New terminal - play bag
docker exec -it ii-nvm-ros1 bash
rosbag play /bags/your.bag --clock

ROS2 (Humble - Ubuntu 22.04)

# Build
docker compose build ii-nvm-ros2

# Run
./run_docker.sh 2

# Inside container
ros2 launch II_NVM run.launch.py

# New terminal - play bag
docker exec -it ii-nvm-ros2 bash
ros2 bag play /bags/your.bag --clock

📖 Citation

If your like our projects, please cite us and support us with a star 🌟. We kindly recommend to cite our paper if you find this library useful:

@ARTICLE{10966190,
  author={Zhao, Chengwei and Li, Yixuan and Jian, Yina and Xu, Jie and Wang, Linji and Ma, Yongxin and Jin, Xinglai},
  journal={IEEE Robotics and Automation Letters}, 
  title={II-NVM: Enhancing Map Accuracy and Consistency With Normal Vector-Assisted Mapping}, 
  year={2025},
  volume={10},
  number={6},
  pages={5465-5472},
  keywords={Vectors;Point cloud compression;Accuracy;Simultaneous localization and mapping;Laser radar;Real-time systems;Pose estimation;Odometry;Data mining;Artificial intelligence;SLAM;Mapping;indoor;double-sided mapping issue;normal vector-assisted},
  doi={10.1109/LRA.2025.3561568}}

Acknowledgments

Thanks for CT-ICP, SR-LIVO and slam_in_autonomous_driving.

About

[RA-L'25 & IROS'25] II-NVM: Enhancing Map Accuracy and Consistency with Normal Vector-Assisted Mapping

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •