- [2025.05.17] Voxel-SVIO is officially published by RA-L !
- [2025.05.08] Voxel-SVIO can be early accessed in IEEE Xplore !
- [2025.04.30] The source code of Voxel-SVIO is released !
- [2025.04.21] Voxel-SVIO is accepted by RA-L 2025 without revision 🚀 !
Voxel-SVIO enables VIO systems to efficiently retrieve the most suitable points for optimizer inclusion, thereby ensuring optimal allocation of computational resources to the variables most critical for optimization. The map points in green voxels are feded into the estimator for MSCKF-based state update. Please refer to YouTube for smoother video playback.
Please cite our paper if you use this project in your research:
@article{yuan2025voxel,
author={Yuan, Zikang and Lang, Fengtian and Deng, Jie and Luo, Hongcheng and Yang, Xin},
journal={IEEE Robotics and Automation Letters},
title={Voxel-SVIO: Stereo Visual-Inertial Odometry based on Voxel Map},
year={2025},
volume={10},
number={6},
pages={6352-6359}
}
Please kindly star ⭐️ this project if it helps you. We take great efforts to develop and maintain it 😁.
GCC >= 7.5.0
Cmake >= 3.16.0
Eigen3 >= 3.3.4
OpenCV == 4.2.0 for Ubuntu 20.04
PCL == 1.10 for Ubuntu 20.04
Ceres >= 1.14
OS | GCC | Cmake | Eigen3 | OpenCV | PCL | Ceres |
---|---|---|---|---|---|---|
Ubuntu 20.04 | 9.4.0 | 3.16.3 | 3.3.7 | 4.2.0 | 1.10.0 | 1.14 |
mkdir -p ~/Voxel-SVIO/src
cd Voxel-SVIO/src
git clone https://github.com/ZikangYuan/voxel_svio.git
cd ..
catkin_make
Noted:
A. Please create a folder named "output" before running. When Voxel-SVIO is running, the estimated pose is recorded in real time in the pose.txt located in the output folder.
B. We store the public datasets on Baidu drive. Chinese users can download the rosbag data of TUM_VI and KAIST.
1. Run on EuRoC_MAV
Please go to the workspace of Voxel-SVIO and type:
cd Voxel-SVIO
source devel/setup.bash
roslaunch voxel_svio vio_euroc.launch
Then open the terminal in the path of the bag file, and type:
rosbag play SEQUENCE_NAME.bag --clock -d 1.0
2. Run on TUM_VI
Please go to the workspace of Voxel-SVIO and type:
cd Voxel-SVIO
source devel/setup.bash
roslaunch voxel_svio vio_tum_vi.launch
Then open the terminal in the path of the bag file, and type:
rosbag play SEQUENCE_NAME.bag --clock -d 1.0
For the TUM_VI dataset, different configuration files are required for the scenarios of corridor, magistrale, and room. Please select the appropriate configuration file according to the sequence being processed.
3. Run on KAIST
Please go to the workspace of Voxel-SVIO and type:
cd Voxel-SVIO
source devel/setup.bash
roslaunch voxel_svio vio_kaist.launch
Then open the terminal in the path of the bag file, and type:
rosbag play SEQUENCE_NAME.bag --clock -d 1.0
For the KAIST dataset, the extrinsic parameters of sequences urban38 and urban39 differ from other sequences. When processing urban38 or urban39, please use kaist2.yaml; for all other sequences, please use kaist.yaml.
We would like to express our gratitude to the following projects, which have provided significant support and inspiration for our work:
- Open-VINs: An open source platform for visual-inertial navigation research, the implementation of our MSCKF is based on it.
- DSO: A monocular direct sparse visual odometry, our feature extraction and matching is inspired from it.
- VINs-Mono: A robust and versatile monocular visual-inertial state estimator, our keyframe selection and marginalization is based on it.
- EPIC: A lightweight LiDAR-based UAV exploration framework for large-scale scenarios, our visualization module is mainly implemented by referring to it.