Voxel-SVIO (Voxel-SVIO: Stereo Visual-Inertial Odometry based on Voxel Map) is a MSCKF based visual-inertial odometry (VIO) that utilizes voxel-based map management. The voxel-based map management 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.
Voxel-SVIO: Stereo Visual-Inertial Odometry based on Voxel Map
Authors: Zikang Yuan, Fengtian Lang, Jie Deng, Hongcheng Luo and Xin Yang
GCC >= 7.5.0
Cmake >= 3.16.0
Eigen3 >= 3.3.4
OpenCV == 4.2.0
Ceres >= 1.14
OS | GCC | Cmake | Eigen3 | OpenCV | Ceres |
---|---|---|---|---|---|
Ubuntu 20.04 | 9.4.0 | 3.16.3 | 3.3.7 | 4.2.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.