实验室要求跑通VINS-mono的demo,于是我展开了一系列摸索
从安装ROS,到安装OPENCV3.3.1,再到安装各种依赖,最后到跑通Vins-mono
本文将截图展示全流程中很重要的部分
本文主要参照了这篇文章,建议读者按照他的流程走,有出入的地方我会圈出来
我的视觉SLAM学习的小小入门---Ubuntu18配置VINS-MONO
辅助指导的是这篇文章,是ubuntu16.04的环境,对比观看
Ubuntu16.04系统运行vins mono(完整版环境配置及编译)
本处将全流程中需要特别注意的地方,以图片形式标注出来,与参考文章冲突的地方建议以我为准
由于经常要下载软件包以及运行
sudo apt-get update
所以需要进行换源,而Ubuntu18.04的换源比较容易
首先是点击launch里的“软件与更新”
然后点击红框,选择其他的站点
接着选择来自中国的镜像,我个人使用的是阿里云的镜像和bfsu镜像
你也可以“选择最佳服务器”,选择后reload使得变化生效就行
以上换源的手法不用修改配置文件,这样的好处在哪里呢?
手动修改源的配置文件,在源失效的时候,你需要手动删除,否则更新软件的时候,会遇到你意想不到的错误
而这里选择服务器镜像,避免了手动修改的问题,非常方便,大型的如阿里镜像源是会不断更新的,省去了人工的烦恼
换源结束再执行一次,完成更新
sudo apt-get update
sudo apt-get upgrade
大多数教程里都不会提到,不换源下载十分缓慢,我电脑不关机下载了一夜才完成,而换源后速度起飞!
这是官方的镜像源地址:ROS/Installation/UbuntuMirrors
我身处北京,因此选择清华的源
首先添加公钥,确保换源成功
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
执行这一行命令即可换成清华的源
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
安装ROS的这些依赖性,就不用安装Vins-mono中的这部分的依赖性,二者是相同的
sudo apt-get install ros-melodic-cv-bridge ros-melodic-tf ros-melodic-message-filters ros-melodic-image-transport
这是官方文档中的依赖性安装方式,可以不用安了(注意大写的YOUR_DISTRO等是要替换成自己的)
sudo apt-get install ros-YOUR_DISTRO-cv-bridge ros-YOUR_DISTRO-tf ros-YOUR_DISTRO-message-filters ros-YOUR_DISTRO-image-transport
链接: https://pan.baidu.com/s/1S5_O8iiMS7zKR6psDQ7yZQ
提取码:llw4
这里放出opencv3.3.1的安装包,下载完后解压然后在build里编译(过程可能比较久)
sudo make -j6
我用的make -j6,如果你的线程比较多,可以sudo make -j12甚至更高
我先放上一份,我上传的百度云链接的Euroc数据集地址
链接:https://pan.baidu.com/s/1G_Sc1UyZSJtR88J-KIx6ig
提取码:9oos
这是Euroc的数据集地址官网地址
我们只需要Machine Hall 01 ROS bag
不过,直接点击下载,在浏览器里下载Euroc的数据集,巨慢;而且经常没法正常下载
建议复制篮色框标记的link,然后在种子下载器里下载
我推荐Freedownload下载器,免费好用,而且支持Windows、Macos、Linux三种系统,还有Chrome的浏览器插件可配合使用;熟悉迅雷用迅雷也可以
我用下载器下载,很快就下载完了
主要的流程,我附上的俩篇参考文献已经总结的不错了,我列的这些重点是和他们的区别所在,也是我实践淌出来(走的弯路)发现的非常有价值的地方
希望能够帮到你跑起来!