《SLAM十四讲》相关库安装及问题解决

#《SLAM十四讲》相关库安装
环境:Ubuntu14.04,cmake3.12.
因为扩展虚拟机存储空间把系统搞坏了,重新安装了书里提到的各种库。本文又名“踩过的那些坑…”

提醒:

  1. OpenCV库及其扩展库contrib请选择匹配版本(3.3.1+3.3.1)且同时编译安装,避免出错。(contrib的模块虽然在书内不涉及使用,但最好安装上,以后跑开源程序避免不了。)
  2. G2O库请使用作者提供的版本,包含在slambook的3rdparty里。
  3. ubuntu系统安装后,请把软件源设置到离你较近的服务器上,详见1.

##安装内容:

  • g++
  • Kdevelop
  • Eigen
  • pangolin
  • Sophus
  • OpenCV+contrib
  • PCL
  • Ceres
  • G2O

g++,Kdevelop,Eigen

  1. g++:sudo apt-get install g++.
  2. Kdevelop:可直接从软件中心下载.
  3. Eigen: sudo apt-get install libeigen3-dev.
    通过命令定位:sudo updatedb—>locate eigen3.(两条命令,—>可看作回车的意思,下同。)

###Pangolin
提供了安装包,请阅读README.md.

  • 依赖项(详见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写作方式,格式不甚美观,引用失败以贴网址代替,见谅。



  1. https://jingyan.baidu.com/article/75ab0bcbea7e43d6864db2f1.html. ↩︎

你可能感兴趣的:(SLAM-配置,SLAM,OpenCV,G2O)