日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Ubuntu >内容正文

Ubuntu

Ubuntu18.04配置视觉SLAM十四讲代码运行环境

發布時間:2023/12/10 Ubuntu 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 #若不執行該步驟,則安裝的版本為最新的模板版本;若執行,則為非模板版本 mkdir build cd build cmake .. make sudo make install

若出現該錯誤:

/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.; 該錯誤可以定位到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步安裝相關依賴(2.4.11和3.2.0需要的依賴幾乎一致)
額外再安裝viz模塊

sudo apt-get isntall libvtk5-dev

將opencv3.2.0和opencv_contrib-3.2.0解壓在一個文件夾內

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文件,安裝過程中可能會出現無法下載該文件的錯誤。若出現,則把下載好的文件替換到opencv-3.2.0/3rdparty/ippicv/downloads/linux-808b791a6eac9ed78d32a7666804320e文件下

7.開始編譯視覺SLAM十四講代碼
下載源碼:https://github.com/gaoxiang12/slambook (這是第一版的代碼,現在也有第二版的代碼了)
選擇slambook-master/project/04項目進行編譯

cd slambook-master/project/04 mkdir build cd build cmake .. make

若出現visual_odometry.cpp代碼編譯錯誤,

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 維度為 3Block::LinearSolverType* linearSolver = new g2o::LinearSolverCSparse<Block::PoseMatrixType>(); // 線性方程求解器Block* solver_ptr = new Block ( linearSolver ); // 矩陣塊求解器g2o::OptimizationAlgorithmLevenberg* solver = new g2o::OptimizationAlgorithmLevenberg ( solver_ptr );g2o::SparseOptimizer optimizer;optimizer.setAlgorithm ( solver );

修改為:

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 );

若出現Sophus相關未定義錯誤,則在CMakeLists.txt中有關Sophus的內容中添加代碼。
原代碼為:

# Sophus find_package( Sophus REQUIRED ) include_directories( ${Sophus_INCLUDE_DIRS} )

改為:

# Sophus find_package( Sophus REQUIRED ) include_directories( ${Sophus_INCLUDE_DIRS} ) set(Sophus_LIBRARIES libSophus.so)

總結

以上是生活随笔為你收集整理的Ubuntu18.04配置视觉SLAM十四讲代码运行环境的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。