Ubuntu 64 位 16.04 或 18.04。ROS 动力学或旋律。ROS安装
按照Ceres 安装。
克隆存储库和 catkin_make:
[hidecontent type="logged" desc="隐藏内容:登录后可查看"]
cd ~/catkin_ws/src
git clone https://github.com/HKUST-Aerial-Robotics/VINS-Fusion.git
cd ../
catkin_make
source ~/catkin_ws/devel/setup.bash
(如果这一步失败,请尝试找另一台系统干净的电脑或重装Ubuntu和ROS)
将EuRoC MAV 数据集下载到 YOUR_DATASET_FOLDER。以 MH_01 为例,您可以使用三种传感器类型(单目相机 + IMU、立体相机 + IMU 和立体相机)运行 VINS-Fusion。打开四个终端,分别运行vins odometry、visual loop closure(optional)、rviz和play包文件。绿色路径是VIO里程计;红色路径是视觉闭环下的里程计。
roslaunch vins vins_rviz.launch
rosrun vins vins_node ~/catkin_ws/src/VINS-Fusion/config/euroc/euroc_mono_imu_config.yaml
(optional) rosrun loop_fusion loop_fusion_node ~/catkin_ws/src/VINS-Fusion/config/euroc/euroc_mono_imu_config.yaml
rosbag play YOUR_DATASET_FOLDER/MH_01_easy.bag
roslaunch vins vins_rviz.launch
rosrun vins vins_node ~/catkin_ws/src/VINS-Fusion/config/euroc/euroc_stereo_imu_config.yaml
(optional) rosrun loop_fusion loop_fusion_node ~/catkin_ws/src/VINS-Fusion/config/euroc/euroc_stereo_imu_config.yaml
rosbag play YOUR_DATASET_FOLDER/MH_01_easy.bag
roslaunch vins vins_rviz.launch
rosrun vins vins_node ~/catkin_ws/src/VINS-Fusion/config/euroc/euroc_stereo_config.yaml
(optional) rosrun loop_fusion loop_fusion_node ~/catkin_ws/src/VINS-Fusion/config/euroc/euroc_stereo_config.yaml
rosbag play YOUR_DATASET_FOLDER/MH_01_easy.bag
将KITTI 里程计数据集下载到 YOUR_DATASET_FOLDER。以序列00为例,打开两个终端,分别运行vins和rviz。(我们在没有闭环功能的情况下在 KITTI 基准测试中评估了里程计)
roslaunch vins vins_rviz.launch
(optional) rosrun loop_fusion loop_fusion_node ~/catkin_ws/src/VINS-Fusion/config/kitti_odom/kitti_config00-02.yaml
rosrun vins kitti_odom_test ~/catkin_ws/src/VINS-Fusion/config/kitti_odom/kitti_config00-02.yaml YOUR_DATASET_FOLDER/sequences/00/
将KITTI 原始数据集下载到 YOUR_DATASET_FOLDER。以2011_10_03_drive_0027_synced为例。打开三个终端,分别运行vins、global fusion和rviz。绿色路径是VIO里程计;蓝色路径是GPS全球融合下的里程计。
roslaunch vins vins_rviz.launch
rosrun vins kitti_gps_test ~/catkin_ws/src/VINS-Fusion/config/kitti_raw/kitti_10_03_config.yaml YOUR_DATASET_FOLDER/2011_10_03_drive_0027_sync/
rosrun global_fusion global_fusion_node
将汽车包下载到 YOUR_DATASET_FOLDER。打开四个终端,分别运行vins odometry、visual loop closure(optional)、rviz和play包文件。绿色路径是VIO里程计;红色路径是视觉闭环下的里程计。
roslaunch vins vins_rviz.launch
rosrun vins vins_node ~/catkin_ws/src/VINS-Fusion/config/vi_car/vi_car.yaml
(optional) rosrun loop_fusion loop_fusion_node ~/catkin_ws/src/VINS-Fusion/config/vi_car/vi_car.yaml
rosbag play YOUR_DATASET_FOLDER/car.bag
VIO 不仅仅是一种软件算法,它非常依赖硬件质量。对于初学者,我们建议您使用专业设备运行 VIO,其中包含全局快门相机和硬件同步。
为您的设备编写配置文件。可以以 EuRoC 和 KITTI 的配置文件为例。
VINS-Fusion 支持多种相机模型(针孔、梅、等距)。您可以使用相机模型来校准相机。我们将一些示例数据放在 /camera_models/calibrationdata 下,告诉您如何校准。
cd ~/catkin_ws/src/VINS-Fusion/camera_models/camera_calib_example/
rosrun camera_models Calibrations -w 12 -h 8 -s 80 -i calibrationdata --camera-model pinhole
为了进一步促进构建过程,我们在代码中添加了 docker。Docker环境就像一个沙箱,从而使我们的代码环境无关。要使用 docker 运行,首先要确保你的机器上安装了ros和docker 。然后将您的帐户添加到docker
分组依据sudo usermod -aG docker $YOUR_USER_NAME
。如果出现错误,请重新启动终端或注销并重新登录Permission denied
,键入:
cd ~/catkin_ws/src/VINS-Fusion/docker
make build
请注意,docker 构建过程可能需要一段时间,具体取决于您的网络和机器。VINS-Fusion 成功构建后,您可以使用脚本运行 vins estimator run.sh
。脚本run.sh
可以采用多个标志和参数。Flag-k
意为KITTI,-l
代表loop fusion,-g
代表global fusion。您可以通过 获取使用详情./run.sh -h
。以下是此脚本的一些示例:
# Euroc Monocualr camera + IMU
./run.sh ~/catkin_ws/src/VINS-Fusion/config/euroc/euroc_mono_imu_config.yaml
# Euroc Stereo cameras + IMU with loop fusion
./run.sh -l ~/catkin_ws/src/VINS-Fusion/config/euroc/euroc_mono_imu_config.yaml
# KITTI Odometry (Stereo)
./run.sh -k ~/catkin_ws/src/VINS-Fusion/config/kitti_odom/kitti_config00-02.yaml YOUR_DATASET_FOLDER/sequences/00/
# KITTI Odometry (Stereo) with loop fusion
./run.sh -kl ~/catkin_ws/src/VINS-Fusion/config/kitti_odom/kitti_config00-02.yaml YOUR_DATASET_FOLDER/sequences/00/
# KITTI GPS Fusion (Stereo + GPS)
./run.sh -kg ~/catkin_ws/src/VINS-Fusion/config/kitti_raw/kitti_10_03_config.yaml YOUR_DATASET_FOLDER/2011_10_03_drive_0027_sync/
在 Euroc 情况下,您需要打开另一个终端并播放您的包文件。如果您需要修改代码,只需./run.sh
在更改后使用适当的 augments 重新运行即可。
[/hidecontent]