之前的slam环境是在Ubuntu14.04下的,最近电脑出了些问题,索性直接换到18.04版本。
Ubuntu14.04下的环境是根据《视觉SLAM十四讲 从理论到实践》书中的提示进行安装的。在Ubuntu18.04下安装有些库的安装和依赖改变,还是有一些坑的。
G++
首先是最基本的c++编译环境,需要安装g++,可以直接
sudo apt-get install g++
在Ubuntu14.04下这样安装是不会出现任何问题的,但是在Ubuntu18.04下,由于18.04默认安装的gcc和g++版本问题,在安装Sophus时会出现一个小问题,在下边安装Sophus时会提到。
Eigen
线性代数库Eigen的安装不存在问题
sudo apt-get install libeigen3-dev
git
sudo apt-get install git
Sophus
Sophus的安装存在两个问题,一个是Sophus模板类和非模板类的区别,为了新手方便使用高博在十四讲中推荐的是非模板类的Sophus,需要将git到的Sophus回滚到a621ff版本;另一个就是由于编译器版本的不同,出现非模板类Sophus编译不过。
先贴上Ubuntu14.04下的安装过程,在对Ubuntu18.04的问题进行解决,Sophus只需要编译不需要安装。
git clone https://github.com/strasdat/Sophus.git
cd Sophus
git checkout a621ff
mkdir build
cd build
cmake ..
在ubuntu18.04下遇到的问题:
出现“unit_complex_.real() = 1.; unit_complex_.imag() = 0. ;"的错误
解决方法:在sophus/so2.cpp文件中,将
unit_complex_.real() = 1. ;
unit_complex_.imag() = 0. ;
改为
unit_complex_.real(1.) ;
unit_complex_.imag(0.) = ;
然后重新编译即可。
或更换gcc,g++为以前的版本,
卸载gcc,g++
安装gcc5,g++5
OpenCV
先写上ubuntu18.04的不同。之前版本的ubuntu终端apt-get安装到的opencv是二系的,而在ubuntu18.04安装到的是3.2版本的,这一区别之前直接下载源码安装的三系,用到二系安装时才发现的不对。
下边是18.04下的安装方法:
apt-get安装opencv3.2
sudo apt-get install libopencv-dev
而2系OpenCV需要从官网下载自己编译安装,
首先在官网https://opencv.org/下载OpenCV源码,解压。
安装依赖项
sudo apt-get install build-essential libgtk2.0-dev libvtk6-dev libjpeg-dev libtiff4-dev libopenexr-dev libtbb-dev
进入解压后的文件夹
mkdir build
cd build cmake ..
make -j4
sudo make install
笔者之前先源码安装的opencv3.4,在发现apt-get安装的版本为3.2后,选择一样源码安装2.4版本,同时通过源码安装两个版本需要将两个版本安装在不同位置,具体步骤在另一篇博客中https://blog.csdn.net/qq_41814939/article/details/81625666,官网下载源码可能会有一些慢,这篇文章也贴上了一种解决方法。
Ubuntu16.04之后安装pcl可以直接apt-get,
sudo apt-get install libpcl-dev pcl-tools
安装依赖项
sudo apt-get install libglew-dev libboost-dev libboost-thread-dev libboost-filesystem-dev
然后就是git下源码,编译安装
git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
mkdir build
cd build
cmake -DCPP11_NO_BOOST= 1 ..
make -j4
sudo make install
Ceres
Ceres依赖谷歌的日志和测试工具
sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3.1.2 libgflags-dev libgoogle-glog-dev libgtest-dev
然后是git,编译安装
git clone https://github.com/ceres-solver/ceres-solver.git
cd ceres-solver
mkdir build
cd build
cmake ..
make -j4
sudo make install
g2o
在ubuntu18.04安装g2o与在14.04下安装的主要区别在于qt,18.04默认安装 qt5,
安装依赖项
sudo apt-get install libsuitesparse-dev qtdeclarative5-dev qt5-qmake libqglviewer-dev
所需要的依赖项在下载的源码中 README.md 文件中有写
依旧是git,编译安装
git clone https://github.com/RainerKuemmerle/g2o
cd g20
mkdir build
cd build
cmake ..
make -j4
sudo make install
DBoW3
git clone https://github.com/rmsalinas/DBow3.git
cd DBow3
mkdir build
cd build
cmake ..
make
sudo make install