#《SLAM十四讲》相关库安装
环境:Ubuntu14.04,cmake3.12.
因为扩展虚拟机存储空间把系统搞坏了,重新安装了书里提到的各种库。本文又名“踩过的那些坑…”
提醒:
##安装内容:
###Pangolin
提供了安装包,请阅读README.md.
$ sudo apt-get install libglew-dev
//可选git clone https://github.com/stevenlovegrove/Pangolin.git
$ cd Pangolin
$ mkdir build
$ cd build
$ cmake -DCPP11_NO_BOOST=1 ..
$ make -j12
cmake ——>make,编译命令,sudo make install,安装命令。全文通用.
###Sophus
根据作者提供的源码(slambook的3rdparty里)进行解压编译安装.
或者:
git clone https://github.com/strasdat/Sophus.git
cd Sophus
git checkout a621ff
Sophus本身是一个cmake工程,编译即可(cmake->make).
###OpenCV+contrib
将下载好的opencv_contrib解压到opencv文件夹下.
[compiler] sudo apt-get install build-essential
[required] sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
[optional] sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
libvtk6-dev
[my]sudo apt-get install qt5-default ccache libv4l-dev libavresample-dev libgphoto2-dev libopenexr-dev libopenblas-base libopenblas-dev doxygen
cmake命令可选:
cmake -D CMAKE_BUILD_TYPE=Release\
-D CMAKE_INSTALL_PREFIX=/usr/local\
-D OPENCV_EXTRA_MODULES_PATH=/home/xxx/opencv-3.3.1/opencv_contrib-3.3.1/modules/ ..
或者
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local/ \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_C_EXAMPLES=ON \
-D PYTHON_EXCUTABLE=/usr/bin/python \
-D OPENCV_EXTRA_MODULES_PATH=/home/xxx/opencv-3.3.1/opencv_contrib-3.3.1/modules \
-D WITH_CUDA=OFF \
-D WITH_CUFFT=OFF \
-D WITH_CUBLAS=OFF \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_QT=ON \
-D WITH_GTK=ON \
-D WITH_OPENGL=ON \
-D BUILD_EXAMPLES=ON ..
第二个太长了,我选第一个.注意地址改成自己的路径,参考
https://www.cnblogs.com/needybeerlxy/p/8979238.html
https://blog.csdn.net/SLAM_masterFei/article/details/80307267
https://blog.csdn.net/pkokocl/article/details/78777651(ippcv)
http://www.linuxfromscratch.org/blfs/view/7.9/general/opencv.html
注意:
contrib中VGG,IPPICV,Boostdesc等i后缀文件的下载问题参考这篇帖子,即如果未下载成功,手动下载:https://codeload.github.com/opencv/opencv_3rdparty/zip /+相应模块文件打开后的commit。
例如:ippicv在3rdparty/ippicv/**.cmake 为
https://codeload.github.com/opencv/opencv_3rdparty/zip/81a676001c8075ada498583e4166079e5744668)。
下载后修改文件名(ippicv还需要压缩成.tgz格式)放入opencv 3.3.1/.cache(相应模块)中。
###PCL
$ sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl
$ sudo apt-get update
$ sudo apt-get install libpcl-all
###Ceres
提供了安装包。安装如下命令的依赖库,然后编译安装。
$ sudo apt-get install liblapack-dev libsuitesparse-dev \
libcxsparse3.1.2 libgflags-dev libgoogle-glog-dev libgtest-dev
###G2O
务必使用提供的安装包(slambook-master/3rdparty/g2o.tar.gz).
安装依赖项,编译安装.
$ sudo apt-get install libqt4-dev qt4-qmake libqglviewer-dev\
libsuitesparse-dev libcxsparse3.1.2 libcholmod(最后的依赖项可能和系统有关,按tab自动获取版本后回车)
注意
GitHub相应链接的g2o库已经更新,为了直接运行slambook-master里的程序,最好安装该文件内提供的g2o包。如果文件是从pc机win系统传到虚拟机,可能发生文件传送不完全的错误,可以对应检查一下。(我刚开始文件包里没有g2o,就从GitHub链接下载的……)
如果安装了新版(2018.7下载)g2o库对应相关程序有两条语句需要做改动:
原程序:
Block* solver_ptr = new Block(linearSolver);
g2o::OptimizationAlgorithmLevenberg* solver=OptimizationAlgorithmLevenberg(solver_ptr);
改后:
Block* solver_ptr = new Block(std::unique_ptr linearSolver);(矩阵求解器)
g2o::OptimizationAlgorithmLevenberg* solver=OptimizationAlgorithmLevenberg(std::unique_ptr solver_ptr);
这里OptimizationAlgorithmLevenberg跟具体选择的梯度下降方法相关,写法可能有异.
如果改语句没有解决问题,建议查询相关帖子,后续如果找到帖子我会贴到这里。——>这里不确定,印象中我升级到cmake 3.X(ubuntu14.04默认的2.8.X),升级后其他安装的库需要重新编译安装?
PS:
TUM数据集下载https://vision.in.tum.de/data/datasets/rgbd-dataset/download
先写这些吧,后续有必要再补充(这里可以编辑重传吗…)
不熟悉CSDN写作方式,格式不甚美观,引用失败以贴网址代替,见谅。
https://jingyan.baidu.com/article/75ab0bcbea7e43d6864db2f1.html. ↩︎