1、Eigen線性代數庫的安裝
Eigen庫是一個C++線性代數開源庫,它提供了有關線性代數、矩陣和矢量運算、數值分析及相關的算法。
Eigen庫由Ubuntu軟件源提供,通過apt命令可以很方便的安裝Eigen:
sudo apt-get install libeigen3-dev
使用Eigen時,在CMakeLists.txt裏添加Eigen頭文件的目錄,也就是添加
include_directories("/usr/include/eigen3")
2、Sophus李代數庫的安裝
Sophus庫是一個李代數庫,它是直接在Eigen庫基礎上開發的,因此我們不需要安裝額外的依賴庫。
可以通過輸入以下命令獲得非模板類的Sophus庫:
git clone https://github.com/strasdat/Sophus.git
cd Sophus #進入Sophus文件夾
git checkout a621ff #檢查a621ff版本
由於Sophus庫是一個Cmake工程,所以需要進行編譯,使用以下命令:
cd Sophus #進入Sophus文件目錄下
mkdir build #新建build文件夾
cd build #進入build文件夾
cmake .. #build上一層目錄下執行CMake命令
make #編譯
使用時需要在CMakeLists.txt中添加Sophus庫的頭文件和庫文件,幷包含目錄 find_package( Sophus REQUIRED ) #尋找庫頭文件和庫文件
include_directories( ${Sophus_INCLUDE_DIRS} ) #包含頭文件目錄
target_link_libraries( 工程名 ${Sophus_LIBS})
3、OpenCV計算機視覺庫
OpenCV提供了大量的開源視覺算法庫,是計算機視覺中使用極其廣泛的圖像處理算法庫。 首先我們安裝一些依賴項:
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
sudo apt-get install freeglut3-dev mesa-common-dev libgtkglext1 libgtkglext1-dev
sudo apt-get install checkinstall yasm libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libgtk2.0-dev libmp3lame-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils ffmpeg
sudo apt-get install libatlas-base-dev gfortran qt5-default qtcreator
爲了使用VIZ模塊(默認不安裝)我們還需要安裝VTK。VTK下載地址:https://www.vtk.org/download/下載VTK後進入文件夾,在文件夾下打開終端,輸入命令:
mkdir build #創建新的文件夾build
cd build #進入build文件夾
cmake ..
make #編譯
sudo make install #安裝
下載opencv,源碼下載地址: https://github.com/opencv/opencv/tree/3.4.1
然後編譯安裝Opencv庫,在Opencv文件夾下打開終端,輸入命令:
mkdir build #創建新的文件夾build
cd build #進入build文件夾
cmake -DWITH_VTK=ON ..
make #編譯
sudo make install #安裝
使用Opencv時,需要在CMakeLists.txt中添加
find_package( Opencv REQUIRED ) #尋找庫頭文件和庫文件
include_directories( ${Opencv_INCLUDE_DIRS} ) #包含頭文件目錄
target_link_libraries( 工程名 ${Opencv_LIBS})
4、PCL點雲庫
首先安裝一些依賴項,打開終端,輸入命令:
sudo apt-get update
sudo apt-get install git build-essential linux-libc-dev
sudo apt-get install cmake cmake-gui
sudo apt-get install libusb-1.0-0-dev libusb-dev libudev-dev
sudo apt-get install mpi-default-dev openmpi-bin openmpi-common
sudo apt-get install libflann1.8 libflann-dev
sudo apt-get install libeigen3-dev
sudo apt-get install libboost-all-dev
sudo apt-get install libvtk5.10-qt4 libvtk5.10 libvtk5-dev
sudo apt-get install libqhull* libgtest-dev
sudo apt-get install freeglut3-dev pkg-config
sudo apt-get install libxmu-dev libxi-dev
sudo apt-get install mono-complete
sudo apt-get install qt-sdk openjdk-8-jdk openjdk-8-jre
然後下載源碼:
git clone https://github.com/PointCloudLibrary/pcl.git
最後編譯安裝,在PCL文件夾下打開終端,輸入命令:
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_GPU=ON -DBUILD_apps=ON -DBUILD_examples=ON -DCMAKE_INSTALL_PREFIX=/usr ..
make
sudo make install
使用PCL時,需要在CMakeLists.txt中添加:
find_package( PCL REQUIRED COMPONENT common io )
include_directories( ${PCL_INCLUDE_DIRS} )
add_definitions( ${PCL_DEFINITIONS} )
target_link_libraries( 工程名根據實際情況添加 ${PCL_LIBRARIES} )
5、Ceres非線性優化庫
Ceres庫是來自谷歌的非線性優化庫,Ceres庫面向通用的最小二乘問題求解。首先安裝一些依賴項,在終端輸入命令:
sudo apt-get install liblapack-dev libsuitesparse-dev libatlas-base-dev libcxsparse3.1.2 libgflags-dev libgoogle-glog-dev libgtest-dev
如果找不到部分庫,則使用以下辦法:
(1)使用命令打開source.list
sudo gedit /etc/apt/sources.list
(2)將下面的源粘貼到source.list的最上方
deb http://cz.archive.ubuntu.com/ubuntu trusty main universe
(3)使用下列命令更新源:
sudo apt-get update
(4) 繼續使用 sudo apt-get install 命令安裝未安裝的依賴項 依賴項安裝完成後下載Ceres,下載地址:https://github.com/ceres-solver/ceres-solver
最後進入Ceres文件夾,打開終端,輸入命令:
mkdir build
cd build
cmake ..
make
sudo make install
在使用Ceres庫時需要在CMakeLists.txt中添加:
# 添加cmake模塊以使用ceres庫
list( APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake_modules )
# 尋找Ceres庫並添加它的頭文件
find_package( Ceres REQUIRED )
include_directories( ${CERES_INCLUDE_DIRS} )
target_link_libraries( 工程名 ${CERES_LIBRARIES} )
6、G2O圖優化庫
首先安裝一些依賴項:
sudo apt-get install libqt4-dev qt4-qmake libqglviewer-dev libsuitesparse-dev libcxsparse3.1.4 libcholmod3.0.6
然後下載g2o:https://github.com/RainerKuemmerle/g2o
最後進入g2o文件,打開終端,輸入命令:
mkdir build
cd build
cmake ..
make
sudo make install
在使用g2o庫時,需要在CMakeLists.txt中添加:
find_package( G2O REQUIRED )
include_directories( ${G2O_INCLUDE_DIRS})
target_link_libraries( 工程名 g2o_core g2o_stuff)
注意:如果使用視覺SLAM十四講中的代碼,出現如下錯誤:
error: no matching function for call to ‘g2o::OptimizationAlgorithmLevenberg::OptimizationAlgorithmLevenberg(Block*&)’
則是使用的g2o庫不同,需要將
Block* solver_ptr = new Block( linearSolver ); // 矩陣塊求解器
g2o::OptimizationAlgorithmLevenberg* solver = new g2o::OptimizationAlgorithmLevenberg( solver_ptr );
改成:
Block* solver_ptr = new Block( unique_ptr<Block::LinearSolverType>(linearSolver) ); // 矩陣塊求解器
g2o::OptimizationAlgorithmLevenberg* solver = new g2o::OptimizationAlgorithmLevenberg( unique_ptr<Block>(solver_ptr) );
這樣就可以編譯成功了。