文章目录
- 前言
- 一、运行环境配置
- 1.在虚拟机上安装Ubuntu14.04
- 2.方便Ubuntu使用
- 二、《十四讲》的实践部分过程与问题
- 1.Ubuntu下安装包的两种方法
- 2.编译高翔的源码
- ch2
- ch3/useEigen
- ch3/useGeometry
- ch3/visualizeGeometry
- ch4/useSophus
- ch5/imageBasics
- ch5/joinMap
- ch6/ceres_curve_fitting
- ch6/g2o_curve_fitting
- 总结
前言
最近在看高博的《视觉SLAM十四讲》,几乎每一章都有实践部分。自己在实际操作中出现了一些问题,浪费了很多时间。于是想要把实践的过程和解决问题的过程记录下来,方便查阅。文中几乎所有问题都由前人解答过了,所以很多只是贴出链接。
一、运行环境配置
1.在虚拟机上安装Ubuntu14.04
链接: https://blog.csdn.net/qq_38410730/article/details/90954665.
2.方便Ubuntu使用
1.安装VMware Tools(用来跨系统复制粘贴,自由调整屏幕大小)
链接: https://blog.csdn.net/dcrmg/article/details/74090307.
之后可在虚拟机和Windows上相互复制粘贴,节省输入网址和代码的时间
2.解决火狐(Firefox)无法联网的问题(用来下载压缩包)
链接: https://blog.csdn.net/coding_Wen/article/details/108988911.
在第一步之后,我就能连上网了,搜索引擎自动变成了百度
进行第二步之后,我又上不了网了,原因是搜索引擎又跳回了Google,没找到百度,改成bing又可以了。
3.从文件目录下启动终端(在终端里切换目录太麻烦)
链接: https://blog.csdn.net/yuhengyue/article/details/98176655.
二、《十四讲》的实践部分过程与问题
1.Ubuntu下安装包的两种方法
使用apt-get命令安装
/*直接打开终端,输入*/
sudo apt-get install g++
使用cmake安装,(只要高博的源码3rdparty文件中包含的库,尽量不要自己下载,不同的版本可能会出现新问题。)
/*在解压好的文件夹内部,右键打开终端并输入*/
mkdir build
cd build
cmake ..
make
/*可以使用cmake -j4实现快速编译,但容易ram内存不足报错*/
/*如果是需要install的库,再加上一句*/
sudo make install
2.编译高翔的源码
在Firefox下打开https://github.com/gaoxiang12/slambook.,下载保存,并解压文件
ch2
在ch2文件夹内右键打开终端
mkdir build && cd build
cmake ..
make
cd ..
build/helloSLAM
ch3/useEigen
//使用apt-get命令安装Eigen
sudo apt-get install libeigen3-dev
//在useEigen文件内打开终端
mkdir build && cd build
cmake ..
make
cd ..
build/eigenMatrix
ch3/useGeometry
//在useGeometry文件内打开终端
mkdir build && cd build
cmake ..
make
cd ..
build/eigenGeometry
ch3/visualizeGeometry
//安装Pangolin依赖项
sudo apt-get install libglew-dev
//安装Pangolin
/*在解压好的Pangolin文件夹内打开终端*/
mkdir build && cd build
cmake ..
make
sudo make install
//在visualizeGeometry文件内打开终端
mkdir build && cd build
cmake ..
make
cd ..
build/eigenGeometry
1.最后运行出现报错Pangolin X11: Unable to retrieve framebuffer options已放弃(核心已转储),看这篇文章:
https://blog.csdn.net/abcwoabcwo/article/details/107959192.
ch4/useSophus
//安装Sophus
/*在解压好的Sophus文件夹内打开终端*/
mkdir build && cd build
cmake ..
make
//在useSophus文件内打开终端
mkdir build && cd build
cmake ..
make
cd ..
build/useSophus
ch5/imageBasics
//安装OpenCV依赖项
sudo apt-get install build-essential libgtk2.0-dev libvtk5-dev libjpeg-dev libtiff4-dev libjasper-dev
libopenexr-dev libtbb-dev
//安装opencv
/*在解压好的opencv-3.1.0文件夹内打开终端*/
mkdir build && cd build
cmake ..
make
sudo make install
//在imageBasics文件内打开终端
mkdir build && cd build
cmake ..
make
cd ..
build/imageBasics ubuntu.png
1.opencv下载
在Firefox里打开https://opencv.org/releases,选择OpenCV – 3.1.0的Sources下载保存,并解压文件。
2.一个安装错误
在安装过程中可能会出现ICV: Downloading ippicv_linux_20151201.tgz 超时,下载该文件替换opencv-3.1.0/3rdparty/ippicv/downloads/linux-*目录下的同名文件,重新cmake。
参考文章:https://blog.csdn.net/qq_30163461/article/details/80441522.
替换文件:https://github.com/ZhengHui-Z/ippicv_linux_20151201.
3.高翔书中的可执行文件名错写如下,上面代码最后一行已经更正
build/image_basics ubuntu.png
ch5/joinMap
//使用apt-get命令安装PCL
sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl
sudo apt-get update
sudo apt-get install libpcl-all
//在joinMap文件内打开终端
mkdir build && cd build
cmake ..
make
cd ..
build/joinMap
pcl_viewer map.pcd
ch6/ceres_curve_fitting
//安装Ceres依赖项
sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3.1.2 libgflags-dev libgoogle-glog-dev libgtest-dev
//安装Ceres
/*在解压好的ceres-solver文件夹内打开终端*/
mkdir build && cd build
cmake ..
make
sudo make install
//在ceres_curve_fitting文件内打开终端
mkdir build && cd build
cmake ..
make
cd ..
build/curve_fitting
ch6/g2o_curve_fitting
//安装g2o依赖项
sudo apt-get install libqt4-dev qt4-qmake libqglviewer-dev libsuitesparse-dev libcxsparse3.1.2
libcholmod-dev
//安装g2o
/*注意g2o不可以在中文目录下,否则报错*/
/*在解压好的g2o文件夹内打开终端*/
mkdir build && cd build
cmake ..
make
sudo make install
//在g2o_curve_fitting文件内打开终端
mkdir build && cd build
cmake ..
make
cd ..
build/curve_fitting
1.在中文目录下安装,会出现报错。移动到非中文目录下重新编译安装即可。
参考文章:https://blog.csdn.net/rsvp2012/article/details/53817613
2.报错:c++: fatal error: 已杀死 signal terminated program cc1plus
原因是使用多线程语句make -j4导致虚拟机的运行内存不足,减少线程或者干脆使用make即可解决问题。
参考文章:https://www.codeleading.com/article/10915219351/
总结
系统环境在虚拟机上使用Ubuntu14.04。目前除了opencv的包,其他的都使用apt-get命令安装或者使用作者提供的库。尽量与《十四讲》作者保持一致。