SLAM知识[7]:依赖项和安装
1 SLAM有什么依賴項?
?SLAM開發的依賴項有下列7項:
1.1 KDevelop
是集成開發環境。創建新工程、導入工程、編譯、執行文件。
1.2?Eigen
Eigen 是一個線性算術的C++模板庫,包括:vectors, matrices, 以及相關算法。功能強大、快速、優雅以及支持多平臺。
1.3 pangolin
Pangolin是對OpenGL進行封裝的輕量級的OpenGL輸入/輸出和視頻顯示的庫。可以用于3D視覺和3D導航的視覺圖,可以輸入各種類型的視頻、并且可以保留視頻和輸入數據用于debug。
參考地址:
【1】Pangolin:https://github.com/stevenlovegrove/Pangolin
【2】Pangolin安裝問題:http://www.cnblogs.com/liufuqiang/p/5618335.html
【3】Pangolin的Example:https://github.com/stevenlovegrove/Pangolin/tree/master/examples
【4】Pangolin的使用:http://docs.ros.org/fuerte/api/pangolin_wrapper/html/namespacepangolin.html
【5】特性:http://www.stevenlovegrove.com/?id=44
轉載原文:https://blog.csdn.net/c602273091/article/details/65441315 ?
Pangolin 安裝及其使用_算法攻城獅-CSDN博客_pangolin
1.4 sophus
一個較好的?李代數庫是由Strasdat維護的Sophus庫。Sophus庫支持三維運動的?SO(3)、?SE(3),此外還支持二維運動的?SO(2)、?SE(2)和相似變換?Sim(3)等內容。它是直接在Eigen庫基礎上開發的,因此我們不需要安裝額外的依賴庫。
1.5 opencv
opencv安裝教程 - 多弗朗強哥 - 博客園 (cnblogs.com)
從略
1.6 ceres
Ceres solver 是谷歌開發的一款用于非線性優化的庫,在谷歌的開源激光雷達slam項目cartographer中被大量使用。Ceres官網上的文檔非常詳細地介紹了其具體使用方法,相比于另外一個在slam中被廣泛使用的圖優化庫G2O,ceres的文檔可謂相當豐富詳細。本篇博客介紹一下Ceres庫的基本使用方法。
1.7 g2o
圖優化本質上仍然是非線性優化。只不過利用圖的方式表現出來,使問題可視化,然后可以根據可視化的結果來更好的調整優化過程。
常見的,比如bundle adjustment,ICP,數據擬合,都可以用g2o來做。甚至我還在想神經網絡能不能寫成圖優化的形式呢……
深入理解圖優化與g2o:g2o篇 - 半閑居士 - 博客園 (cnblogs.com)
從代碼層面來說,g2o是一個c++編寫的項目,用cmake構建。它的github地址在:https://github.com/RainerKuemmerle/g2o?
2 依賴項的安裝過程
2.1 kdevelop安裝過程
- sudo apt-get install cmake
- sudo apt-get install kdevelop
測試,輸入: Kdevelop
出現可視化界面就OK了。
2.2? Eigen安裝過程
- sudo apt-get install libeigen3-dev
2.3 pangolin安裝過程
2.3.1 安裝依賴
-
sudo apt-get install libglew-dev
-
sudo apt-get install cmake
-
sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev
2.3.2 下載Pangolin
- sudo git clone https://github.com/stevenlovegrove/Pangolin.git
2.3.3 編譯Pangolin
cd? Pangolin?????????????? #? [此為Pangolin的克侖路徑)] 打開解壓后的Pangolin文件夾
mkdir build
cd build? ? ? ? ? ? ? ? ? ? ? #?無序列表
cmake ..
make? ? ? ? ? ? ? ? ? ? ? ? ?# (或者用cmake --build .)
sudo make install? ? ? #? ?(.h默認安裝到了/usr/local/include)
到此,Pangolin已經被安裝好了。
2.3 安裝Sophus代數
sudo git clone http://github.com/strasdat/Sophus.gitcd? Sophus? ? ? ? ? ? ? ?#? [此為Sophus的克侖路徑)] 打開解壓后的Sophus文件夾
mkdir build
cd build? ? ? ? ? ? ? ? ? ? ? #?無序列表
cmake ..
make? ? ? ? ? ? ? ? ? ? ? ? ?# (或者用cmake --build .)
sudo make install? ? ? #? ?(.h默認安裝到了/usr/local/include)
2.4 安裝opencv
2.4.1 下載opencv
mkdir ~/opencv_build && cd ~/opencv_build git clone https://github.com/opencv/opencv.git git clone https://github.com/opencv/opencv_contrib.git2.4.2 安裝依賴項
http://opencv.org/releases.html
sudo apt install build-essential cmake git pkg-config libgtk-3-dev \libavcodec-dev libavformat-dev libswscale-dev libv4l-dev \libxvidcore-dev libx264-dev libjpeg-dev libpng-dev libtiff-dev \gfortran openexr libatlas-base-dev python3-dev python3-numpy \libtbb2 libtbb-dev libdc1394-22-dev libopenexr-dev \libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev2.4.3 生成編譯場地
cd ~/opencv_build/opencv mkdir -p build && cd build2.4.4 預編譯?
cmake -D CMAKE_BUILD_TYPE=RELEASE \-D CMAKE_INSTALL_PREFIX=/usr/local \-D INSTALL_C_EXAMPLES=ON \-D INSTALL_PYTHON_EXAMPLES=ON \-D OPENCV_GENERATE_PKGCONFIG=ON \-D OPENCV_EXTRA_MODULES_PATH=~/opencv_build/opencv_contrib/modules \-D BUILD_EXAMPLES=ON ..出現下面提示,說明預編譯完成。?
-- Configuring done -- Generating done -- Build files have been written to: /home/vagrant/opencv_build/opencv/build?2.4.5 開始編譯
make -j162.4.6 開始安裝
sudo make install檢查版本?
pkg-config --modversion opencv42.5 安裝ceres
2.5.1下載:
sudo git clone?https://github.com/ceres-solver/ceres-solver
2.5.2 安裝依賴?
sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3.1.2 libgflags-dev libgoogle-glog-dev libgtest-dev2.6.3 編譯
mkdir build cd build cmake .. make -j42.6.4 安裝
sudo make install
2.7? 安裝g2o
2.7.1 下載g2o:
鏈接github下載地址直接下載比較慢。
可以通過以下鏈接下載:鏈接:https://pan.baidu.com/s/1g5QpMNWeUdSI063qiMbZpA?提取碼:aqxp?
2.7.2 安裝依賴
?sudo apt-get install libqt4-dev qt4-qmake libqglviewer-dev libsuitesparse-dev libcxsparse3.1.2
| 根本不需要編譯源碼直接一行命令就可以 sudo apt-get install libpcl-dev 如果沒有安裝pcl_viewer就再加一行命令 sudo apt-get install pcl-tools 就完事了! |
總結
以上是生活随笔為你收集整理的SLAM知识[7]:依赖项和安装的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深入理解ROS技术 【1】ROS下的模块
- 下一篇: 深入理解ROS技术 【2】ROS下的模块