A Long-Tracked-Feature Linked Optimized Window for Visual-Inertial Odometry
This package requires some features of C++14.
This package is developed and tested under ROS Melodic (Ubuntu 18.04) and ROS Noetic (Ubuntu 20.04) environment.
Clone the repository to your catkin workspace (for example ~/catkin_ws/):
cd ~/catkin_ws/src/
git clone https://github.com/xiaohong-huang/FLOW-VIO.gitBuild the OpenCV4 (>=4.2.0):this project use 4.2.0 version
Note, the OpenCV version must be larger than 4.2.0 (the newest version is 4.10.0, which is work well in our project). Otherwise, some of the function may not work well.
Then build the package with:
cd ~/catkin_ws/
catkin_makeDownload the EuRoC bag Dataset.
Download the TUM-VI (512x512) bag Dataset.
Download Our bag Dataset.
Download the 4Seasons Dataset using the dm-vio-python-tools and follow the instructions in 4seasons_bag_generate to generate the ROS bag.
Launching the rviz via:
source ~/catkin_ws/devel/setup.bash
roslaunch flow_vio visual_inertial_rviz.launchOpen another terminal and run the project by:
source ~/catkin_ws/devel/setup.bash
rosrun flow_vio flow_vio_node src/FLOW-VIO/yaml/SETTING.yaml YOUR_BAG_FOLDER/BAG_NAME.bag trajectory.tumYOUR_BAG_FOLDER is the folder where you save the dataset.
BAG_NAME is the name of the dataset.
SETTING.yaml is the setting for different datasets.
You could use the following settings to perform VIO in different datasets.
euroc_config.yaml #EuRoC dataset
tum_config.yaml #TUM-VI dataset
my_config.yaml #Our dataset
4seasons_config.yaml #4Seasons dataset
We have also provide demos for runing and evaluating with all the datasets (see run_evaluate_all).
The VIO framework is developed from VINS-Mono. The Dogleg solving strategy is developed base on Ceres-Solver. The packages for interfacing ROS with OpenCV is forked from ros-perception.
The version with code comments will be uploaded in the future.
The source code is released under GPLv3 license.