写在前面的废话
最近终于确定了毕业论文的题目,还是关于视觉和三维重建,于是兴冲冲地着手搭起工作环境。距离上一篇博客发布已经过去一年多了,实在很是我的风格。
随便谷歌一下,有很多基于高博《视觉SLAM十四讲》的安装教程。可惜时过境迁,各种版本更新,想要完整搭好环境还是费了一番心力。
谨以此篇,献给过两天可能就把系统搞崩溃的自己吧。
搭建流程
- win10 和 Ubuntu 16.04 双系统
- Eigen线性代数库
- Sophus李代数库
- OpenCV视觉库
- G2O图优化库
- PCL点云库
1. win10 和 Ubuntu 16.04 双系统
在这里强调Ubuntu的版本其实不必要,但还是要选择适合自己设备的版本。比如《视觉SLAM》推荐的14.04版,装到我的ThinkPad X1 Carbon 5th 上就变板砖了——网卡驱动不适配,上不了网。你猜我是怎么发现的。具体流程如下:
- 压缩一部分硬盘空间给新系统:
许多教程里推荐40G以上,想想毕竟是毕业设计任重道远,此处我分了100G左右。方法是:右键“此电脑”->“管理”->”磁盘管理“->选个空间大的磁盘右键->”压缩卷“->输入要压缩的大小,稍微等几秒,这部分磁盘空间变成”未分配“,就OK了。
- 准备一个U盘做启动盘:
据说要大于8G。很多教程推荐windows下安装一个UltraISO软件刻录Ubuntu镜像,然后我就很愉快的试了一下并失败了,报错mount CD-ROM。于是就投入我的大Mac怀抱,电脑多了果然没坏处。MacOS下用dd命令制作启动盘的方法如下:
1) 下载Ubuntu镜像
2) 插入U盘,查看盘符。终端下代码为:
|
|
比如我的叫disk3
3) 将ISO转换为IMG文件,复制内容到剪贴板。该命令会生成一个.IMG的磁盘镜像文件,但是MAC OSX会默认追加一个的.dmg,即生成的文件后缀是.img.dmg,这个后缀没关系,忽略可以。
|
|
4) 卸载U盘,准备写入镜像
|
|
5) 镜像写入
|
|
此处要是写错了盘符就哭去吧。
6) 漫长的等待
我的U盘大概写了30分钟,总之就是很久。然后弹出一个报错窗口,大概是说”您的电脑读不了这个U盘“,嗯,恭喜你的Linux启动盘已经做好了。
- 安装双系统
其实在安装前还执行了关闭win10的快速启动,进入BIOS关掉Network Secure等步骤,但是我已经忘了,溜了溜了。推荐大家关掉win10的BitLocker,否则每次进入win10要输入一串48位的解锁码。
插上U盘,重启电脑,选择U盘启动,安装Ubuntu…此处省略一万步。
2. Eigen线性代数库
这个是G2O的依赖库,没有它就装不好G2O。很多教程里推荐的安装方法是:
|
|
这个安装上最新版本的,有坑,你猜我怎么知道的。此处推荐安装Eigen 3.3.1版本,方法为:
1) 官网下载Eigen 3.3.1 tar.bz2 格式压缩文件。
文件名:eigen-eigen-f562a193118d.tar.bz2
2) 将文件解压到/usr/local/include目录下,在/usr/local/include目录下得到文件eigen-eigen-f562a193118d
|
|
3) 更改文件名为eigen3
|
|
至此Eigen就装好了,想测试一下?如果后面能装好G2O就说明它是好的。
3. Sophus李代数库
Eigen库提供了几何模块,但是没有提供李代数的支持。一个较好的李代数库是由Strasdat维护的Sophus库。Sophus库支持三维运动的SO(3)、SE(3),此外还支持二维运动的SO(2)、SE(2)和相似变换Sim(3)等内容。它是直接在Eigen库基础上开发的,因此我们不需要安装额外的依赖库。额,我也不知道为啥装这个,反正挺简单的就装着玩儿呗。步骤如下:
|
|
4. OpenCV视觉库
这个也是坑多到我都忘了。。。总之就是没有安装最新版本,下文借鉴于
一篇教程 。
1) 官网下载 opencv-3.2.0.zip 解压。进入目录
|
|
2) 安装OpenCV所需的库
|
|
3) 编译opencv
|
|
据说身在墙内会遇到ippicv_linux_20151201.tgz下载不成功的问题,可以到网上找到这个文件,下载后放入opencv-3.2.0目录下的/3rdparty/ippicv/downloads/linux-8b449a536a2157bcad08a2b9f266828b里面就可以了。然后继续从第4行开始执行,直至结束。
4) 测试opencv(C++)
a. 创建工作目录
|
|
b. 编辑如下代码
|
|
c. 创建CMake编译文件
|
|
写入如下内容
|
|
d. 编译
|
|
e. 执行
此时opencv-lena文件夹中已经产生了可执行文件DisplayImage,下载lena.jpg放在opencv-lena下,运行
|
|
5. G2O图优化库
这个坑尤其多,首先它依赖于一版靠谱的Eigen,但是很多教程都默认已经装好了,好在此时我们已经搞定了Eigen;其次,按照官方的安装方法,不出意外的又遇到新版本问题,报错Qt5不拉不拉的。谷歌了一波发现Ubuntu 16.04支撑Qt4的,所以要找回以前有效的版本。以下方法摘自另一篇教程。
1) 下载g2o
|
|
2) 切换到有效版本再安装g2o
注意有效版本是:8ba8a03f7863e1011e3270bb73c8ed9383ccc2a2
|
|
3) 测试运行g2o_viewer
|
|
6. PCL点云库
这个不是很难,主要麻烦在一些依赖库。以下内容引自又一篇教程。
1) 下载pcl
|
|
2) 准备一些依赖库
|
|
我其实没有全部都装,比如libeigen3-dev,很明显咱们已经装过了Eigen。但是,为了完整性,其实是我不想挑选了,总之大家择其善者而从之吧。
3) 安装pcl
|
|
这一步得等个几十分钟。。。然后执行以下
|
|
4) 测试pcl
以下内容是原创,鼓掌。
a. 创建工作目录
|
|
b. 编辑如下代码
|
|
c. 创建CMake编译文件
|
|
写入如下内容
|
|
d. 编译
|
|
e. 执行
此时pcl-test/build文件夹中已经产生了可执行文件pcd_write_test,运行
|
|
如果看到下面内容大概就是安装成功了。
|
|
以上。写教程比装环境更累。