入坑视觉SLAM已经快一年了,目前还没有完整的接触过VIO,一般来说,纯VO都不能满足工程应用需求,因此融合IMU是至关重要的.
VINS作为开源VIO方案中效果数一数二的,实在是很有必要学习一下.并且关于VINS的学习资料很多,有许多大牛都写了相应的博客.本文只是记录一下自己运行VINS的一些经验.
创建ROS工作空间
首先保证电脑安装了ROS系统,在Ubuntu16.04系统中安装的是ROS kinetic,其他Ubuntu系统下装的ROS也是可以的.
创建工作空间的步骤:(对ROS不了解的可以看看古月ROS入门21讲)
mkdir -p ~/vins/src ##//其中vins是可以更改的,src不能更改
cd ~/vins/src
catkin_init_workspace ###//创建工作空间
编译VINS
首先保证电脑安装了相应的依赖项,VINS的依赖项主要有 ceres ,opencv , eigen .网上关于这些依赖项的安装方法有很多.
编译VINS的步骤为:
cd ~/vins/src ##// 进入刚刚创建的工作空间中的src文件及
git clone https://github.com/HKUST-Aerial-Robotics/VINS-Mono.git ###//下载代码,
cd ../
catkin_make ##///编译
运行VINS
打开三个终端,
第一个终端:
source ~/vins/devel/setup.bash ##///配置环境变量 ,,注意是vins ,这与之前创建的工作空间名字有关
roslaunch vins_estimator euroc.launch ///这是运行euroc数据集的启动节点,,还有其他一些启动节点
第二个终端:
source ~/vins/devel/setup.bash ##///配置环境变量 ,,注意是vins ,这与之前创建的工作空间名字有关
roslaunch vins_estimator vins_rviz.launch ##启动rviz
rviz启动界面如下图所示.
第三个终端:
source ~/vins/devel/setup.bash ##///配置环境变量 ,,注意是vins ,这与之前创建的工作空间名字有关
rosbag play YOUR_PATH_TO_DATASET/MH_01_easy.bag ###///播放bag数据集.
运行结果如图所示..
运行其他数据集
对于vins,运行不同的公开数据集需要启动不同的启动节点,运行实际采集数据集需要更改相应的topic 名称.