Ubuntu18.04配置视觉SLAM十四讲代码运行环境
1.安裝Pangolin:參考教程 https://blog.csdn.net/l243225530/article/details/105900272 第6步;
2.安裝engine3:參考上述教程第7步;
3.安裝g2o:https://github.com/RainerKuemmerle/g2o 下載源碼,安裝步驟安裝即可;
4.安裝boost依賴:sudo apt-get install libboost-all-dev
5.安裝Sophus
git clone https://github.com/strasdat/Sophus.git cd Sophus/ git checkout a621ff #若不執(zhí)行該步驟,則安裝的版本為最新的模板版本;若執(zhí)行,則為非模板版本 mkdir build cd build cmake .. make sudo make install若出現(xiàn)該錯(cuò)誤:
/Sophus/sophus/so2.cpp:32:26: error: lvalue required as left operand of assignment unit_complex_.real() = 1.; /Sophus/sophus/so2.cpp:33:26: error: lvalue required as left operand of assignment unit_complex_.imag() = 0.; 該錯(cuò)誤可以定位到so2.cpp源碼文件下: 原代碼為: SO2::SO2() {unit_complex_.real() = 1.;unit_complex_.imag() = 0.; } 修改為: SO2::SO2() {//unit_complex_.real() = 1.;//unit_complex_.imag() = 0.;unit_complex_.real(1.);unit_complex_.imag(0.); }6.安裝opencv3.2
 下載opencv3.2.0和opencv_contrib-3.2.0
 參考教程 https://blog.csdn.net/l243225530/article/details/105900272 第9步安裝相關(guān)依賴(2.4.11和3.2.0需要的依賴幾乎一致)
 額外再安裝viz模塊
將opencv3.2.0和opencv_contrib-3.2.0解壓在一個(gè)文件夾內(nèi)
cd opencv3.2.0 mkdir build cd build cmake -DENABLE_PRECOMPILED_HEADERS=OFF -DWITH_VTK=ON -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local/opencv3.2 -DWITH_CUDA=OFF -DBUILD_DOCS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF .. make sudo make install注:可提前下載好ippicv_linux_20151201.tar文件,安裝過程中可能會出現(xiàn)無法下載該文件的錯(cuò)誤。若出現(xiàn),則把下載好的文件替換到opencv-3.2.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e文件下
7.開始編譯視覺SLAM十四講代碼
 下載源碼:https://github.com/gaoxiang12/slambook (這是第一版的代碼,現(xiàn)在也有第二版的代碼了)
 選擇slambook-master/project/04項(xiàng)目進(jìn)行編譯
若出現(xiàn)visual_odometry.cpp代碼編譯錯(cuò)誤,
error: no matching function for call to ‘g2o::BlockSolver<g2o::BlockSolverTraits<6, 3> >::BlockSolver(g2o::BlockSolver<g2o::BlockSolverTraits<6, 3> >::LinearSolverType*&)’Block* solver_ptr = new Block ( linearSolver );等等,則打開該文件,修改代碼。
 原代碼為:
修改為:
typedef g2o::BlockSolver< g2o::BlockSolverTraits<6,3> > Block; // pose 維度為 6, landmark 維度為 3 Block::LinearSolverType* linearSolver = new g2o::LinearSolverCSparse<Block::PoseMatrixType>(); // 線性方程求解器 Block* solver_ptr = new Block ( std::unique_ptr<Block::LinearSolverType>(linearSolver) ); // 矩陣塊求解器 g2o::OptimizationAlgorithmLevenberg* solver = new g2o::OptimizationAlgorithmLevenberg ( std::unique_ptr<Block>(solver_ptr) ); g2o::SparseOptimizer optimizer; optimizer.setAlgorithm ( solver );若出現(xiàn)Sophus相關(guān)未定義錯(cuò)誤,則在CMakeLists.txt中有關(guān)Sophus的內(nèi)容中添加代碼。
 原代碼為:
改為:
# Sophus find_package( Sophus REQUIRED ) include_directories( ${Sophus_INCLUDE_DIRS} ) set(Sophus_LIBRARIES libSophus.so)總結(jié)
以上是生活随笔為你收集整理的Ubuntu18.04配置视觉SLAM十四讲代码运行环境的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: vld检测不输出_输出轴热处理形变超差,
- 下一篇: 万事开头难,用HTML写的第一个界面,收
