VINS-Mono 初体验

    技术2025-07-10  27

    一、基本介绍

    1. what is vins:

          HUKST Aerial Robotics Group 开发的 visual-inertial slam 算法,覆盖了预积分,边缘化,FEJ 等理论,是学习 VIO 很好的学习资料

         vins-mono 是初始版本,支持单目相机和IMU融合,后来在2019开源了支持双目版本的 VINS-Fusion 版本

    2. github:

          https://github.com/HKUST-Aerial-Robotics/VINS-Mono

    二、简单上手

    1. 必备软件

    (1). ROS (Ubuntu 16.04. ROS Kinetic)

    (2). Ceres Solver (安装至标准路径,/usr/local/)

    (3). Other Eigen, OpenCV

    2. catkin_make ROS (常见步骤)

    cd ~/catkin_ws/src git clone https://github.com/HKUST-Aerial-Robotics/VINS-Mono.git cd ../ catkin_make source ./devel/setup.bash

       编译成功截图

       

    3. 下载 EuRoC-MAV-datasets

       网上有人整理了百度云链接,参考 SLAM中常用数据集下载链接(TUM KITTI DSO Mono EuRoC)

    4. 运行示例

    roscore & roslaunch vins_estimator vins_rviz.launch # rviz 可视化 roslaunch vins_estimator euroc.launch # 开启 vins rosbag play xxx/MH_01_easy.bag # play rosbag

    (1). 出现问题及解决

    ERROR: cannot launch node of type [feature_tracker/feature_tracker]: can't locate node [feature_tracker] in package [feature_tracker] ERROR: cannot launch node of type [vins_estimator/vins_estimator]: can't locate node [vins_estimator] in package [vins_estimator] ERROR: cannot launch node of type [pose_graph/pose_graph]: can't locate node [pose_graph] in package [pose_graph]

    <1>. 可能原因1: opencv 版本问题,https://github.com/HKUST-Aerial-Robotics/VINS-Mono/issues/75

    <2>. 可能原因2: ~/catkin_ws/src 目录下有其他非 ros 工程,编译时使用的是 "catkin_make_isolated" 命令,将该 非 ros工程移除到 catkin_ws 外,然后 “catkin_make” 编译即可  (我的就是这种情况)

    最终的运行结果如下:

    Processed: 0.013, SQL: 9