[VIO|实践]跑VINS FUSION代码记录-以EuRoC数据集为例

目录

    • 环境
    • 编译
    • 执行
      • 单目+IMU
      • 双目+IMU

vins fusion是vins mono的多功能版,有双目数据、GPS融合。
代码下载链接:https://github.com/HKUST-Aerial-Robotics/VINS-Fusion

环境

UBUNTU,ceres1.13.0,ROS Kinect

编译

  1. 新建文件夹vins-catkin_ws,里面再建一个叫src的文件夹,然后把解压好的代码集VINS-FUSION-master放进去。
  2. 命令行进入到/vins-catkin_ws这一层,进行catkin_make
  3. 开启ros的工作空间,就是source devel/setup.bash

具体命令:

mkdir -p vins-catkin_ws/src
cd vins-catkin_ws/src
git clone https://github.com/HKUST-Aerial-Robotics/VINS-Fusion.git
cd ..
catkin_make 
source devel/setup.bash

跑数据集:首先打开一个终端roscore,让ros跑起来。然后注意,在每一个终端运行roslaunch或者rosrun的时候,都需要在工作区间内,就是你都需要source devel/setup.bash。

执行

单目+IMU

终端执行命令:

  1. 开一单独终端窗口
roscore

另开一窗口:

  1. 运行启动文件

进入工作区间内:

source devel/setup.bash

再输入:

roslaunch vins vins_rviz.launch

另开一窗口:

  1. vins-catkin_ws目录下
    再进入工作区间内:
source devel/setup.bash

再输入:

 rosrun vins vins_node src/VINS-Fusion-master/config/euroc/euroc_mono_imu_config.yaml 

另开一窗口:

4. 闭环,必须在开环执行到一定程度才能启动

再进入工作区间内:

source devel/setup.bash

这里的回环检测部分是可选的。可以跑两次试试。

rosrun loop_fusion loop_fusion_node src/VINS-Fusion-master/config/euroc/euroc_mono_imu_config.yaml 

(运行时,rosrun的节点名称,比如loop_fusion_node,是和CMakeLists中add_excutable的可执行文件名一致的,跑KITTI Raw的)

另开一窗口:

  1. 运行下载的ROS bag

再进入工作区间内:

source devel/setup.bash

输入:

rosbag play YOUR_DATASET_FOLDER/MH_01_easy.bag

我的是:rosbag play /home/ji***xin/dataset/MH_05_difficult.bag

实验结果:

  1. 闭环
    [VIO|实践]跑VINS FUSION代码记录-以EuRoC数据集为例_第1张图片
  2. 没有回环
    [VIO|实践]跑VINS FUSION代码记录-以EuRoC数据集为例_第2张图片

双目+IMU

vins-catkin_ws目录下:

不要忘记另开窗口,并进入工作环境,和前面一样就简写了。

	// 执行启动文件
    roslaunch vins vins_rviz.launch
    // 开环
    rosrun vins vins_node src/VINS-Fusion-master/config/euroc/euroc_stereo_imu_config.yaml 
    // 闭环优化
    (optional) rosrun loop_fusion loop_fusion_node src/VINS-Fusion-master/config/euroc/euroc_stereo_imu_config.yaml 
    // 运行ROS bag
    rosbag play YOUR_DATASET_FOLDER/MH_01_easy.bag

加闭环的实验结果:
[VIO|实践]跑VINS FUSION代码记录-以EuRoC数据集为例_第3张图片目前就只试了这些。

你可能感兴趣的:(VIO实践)