Xiaoyu Zhang1, Jinhu Dong1, Yin Zhang2, Yun-Hui Liu1,
1 The Chinese University of Hong Kong, 2 Westlake University
Accepted by Journay of Field Robotics (JFR)
While most visual SLAM systems traditionally prioritize accuracy or speed, the associated memory consumption would also become a concern for robots working in large‐scale environments, primarily due to the perpetual preservation of increasing number of redundant map points. Although these redundant map points are initially constructed to ensure robust frame tracking, they contribute little once the robot moves to other locations and are primarily kept for potential loop closure. After continuous optimization, these map points are accurate and actually not all of them are essential for loop closure. Therefore, this project proposes MS‐SLAM, a memory‐efficient visual SLAM system with Map Sparsification aimed at selecting only parts of useful map points to keep in the global map. In MS‐SLAM, all local map points are temporarily kept to ensure robust frame tracking and further optimization, while redundant non‐local map points are removed through the proposed novel sliding window map sparsification, which is efficient and running concurrently with original SLAM tracking. The loop closure still operates well with the selected useful map points. Through exhaustive experiments across various scenes in both public and self‐collected datasets, MS‐SLAM has demonstrated comparable accuracy with the state‐of‐the‐art visual SLAM while significantly reducing memory consumption by over 70% in large‐scale scenes. This facilitates the scalability of visual SLAM in large‐scale environments, making it a promising solution for real‐world applications.
ms-slam.mp4
This project is built on ORB-SLAM3. Please follow their instruction to install most prerequisites.
You also need to install the optimization tool GUROBI, and remember to modify cmake_modules/FindGUROBI.cmake
based on your own installation.
Currently, we test with stereo and stereo-inertial mode, and provide following examples running on different datasets.
Examples/Stereo/stereo_euroc Vocabulary/ORBvoc.txt Examples/Stereo/EuRoC.yaml PATH_TO_SEQUENCE_FOLDER Examples/Stereo/EuRoC_TimeStamps/SEQUENCE.txt
Examples/Stereo-Inertial/stereo_inertial_euroc Vocabulary/ORBvoc.txt Examples/Stereo-Inertial/EuRoC.yaml PATH_TO_SEQUENCE_FOLDER Examples/Stereo-Inertial/EuRoC_TimeStamps/SEQUENCE.txt
Examples/Stereo/stereo_kitti Vocabulary/ORBvoc.txt Examples/Stereo/KITTIX.yaml PATH_TO_SEQUENCE_FOLDER
Examples/Stereo-Inertial/stereo_inertial_4season Vocabulary/ORBvoc.txt Examples/Stereo-Inertial/4season.yaml PATH_TO_SEQUENCE_FOLDER
If you find this project is useful in your research or applications, please consider giving us a star 🌟 and citing it by the following BibTeX entry.
@article{
author = {Zhang, Xiaoyu and Dong, Jinhu and Zhang, Yin and Liu, Yun-Hui},
title = {MS-SLAM: Memory-Efficient Visual SLAM With Sliding Window Map Sparsification},
journal = {Journal of Field Robotics},
doi = {https://doi.org/10.1002/rob.22431},
url = {https://onlinelibrary.wiley.com/doi/abs/10.1002/rob.22431},
}