Abstract. Snake-SLAM is a scalable visual inertial SLAM system for autonomous navigation in low-power aerial devices. The tracking front-end features map reuse, loop closing, relocalization, and supports monocular, stereo, and RGBD input. The keyframes are reduced by a graph-based simplification approach and further refined using a novel deferred mapping stage to ensure a sparse yet accurate global map. The optimization back-end decouples IMU state estimation from visual bundle adjustment and solves them separately in two simplified sub problems. This greatly reduces computational complexity and allows Snake-SLAM to use a larger local window size than existing SLAM methods. Our system implements a novel multi-stage VI initialization scheme, which uses gyroscope data to detect visual outliers and recovers metric velocity, gravity, and scale. We evaluate Snake-SLAM on the EuRoC dataset and show that it outperforms all other approaches in efficiency while also achieving state-of-the-art tracking accuracy.
Download and install the following libraries before continuing with the build instructions.
sudo apt install libyaml-cpp-dev
cd Snake-SLAM
git submodule update --init --recursive
# Other compilers should also work here
export CXX=clang++-10
export CUDAHOSTCXX=g++-9
mkdir build
cd build
cmake ..
make -j8
dir = /ssd2/slam/euroc/MH_01/mav0
cd Snake-SLAM
./build/bin/snake_slam configs/euroc.ini
At the time of release, Snake-SLAM is the most efficient VI-SLAM system.
This can be validated by adjusting the Dataset-playback_fps
in the config file.
By default we have set async = false
in the config file and which disables all non-deterministic parallelism.
Maximum performance will be only be achieved by setting async = true
. However this can reduce tracking accuracy, if
the playback_fps
is unreasonably high. Our recommendation therefore is:
Debugging, Testing, Development
async = false
playback_fps = 200
Deployment, Real-world Usage
async = true
playback_fps = 30
euroc_mono_25_runs_each.zip
and euroc_stereo_25_runs_each.zip
configs/euroc.ini
Rückert, Darius, and Marc Stamminger. "Snake-SLAM: Efficient Global Visual Inertial SLAM using Decoupled Nonlinear Optimization." Proceedings of the 2021 International Conference on Unmanned Aircraft Systems (ICUAS), Athen 2021.
https://ieeexplore.ieee.org/abstract/document/9476760
@INPROCEEDINGS{9476760,
author={Rückert, Darius and Stamminger, Marc},
booktitle={2021 International Conference on Unmanned Aircraft Systems (ICUAS)},
title={Snake-SLAM: Efficient Global Visual Inertial SLAM using Decoupled Nonlinear Optimization},
year={2021},
volume={},
number={},
pages={219-228},
doi={10.1109/ICUAS51884.2021.9476760}}