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” 编译即可 (我的就是这种情况)
最终的运行结果如下: