Ubuntu20.04中 ORBSLAM3的安裝和測試

遥感摆烂人發表於2024-07-04

ORBSLAM3 安裝以及測試教程(Ubuntu20.04)

1.前期準備工作

1.1安裝相關依賴

 sudo apt install git cmake gcc g++ mlocate

1.2下載ORBSLAM3原始碼

可以直接透過github下載原始碼: (https://github.com/UZ-SLAMLab/ORB_SLAM3)

2.安裝一些所需的庫

2.1 安裝Eigen3庫

直接透過命令安裝 sudo apt-get install libeigen3-dev
但是通常安裝不全會遇到一定麻煩。因此通常是採用原始碼編譯的方法: Eigen3庫github地址: https://github.com/eigenteam/eigen-git-mirror/tree/3.3.4 一定要下載對應的3.3.4版本。 直接解壓然後編譯安裝:

cd eigen-git-mirror-3.3.4
mkdir build & cd build
cmake ..
sudo make install

2.2 安裝Pangolin0.6

github下載原始碼:https://github.com/stevenlovegrove/Pangolin/tree/v0.6 一定要安裝0.6的版本
根據github對應的依賴依次安裝。
img
然後解壓進入檔案中編譯:

cd Pangolin0.6/
mkdir build &cd build
cmake ..
make -j4
sudo make install

可以透過下述方法測試是否安裝成功:

cd Pangolin0.6/examples/HelloPangolin
mkdir build & cd build
cmake ..
make 
./HelloPangolin

執行後如果出現一個紅綠藍立方體,則代表安裝成功。

2.3安裝OpenCV

ORBSLAM3要求OpenCV版本為4.x以上,本文采用的是OpenCV4.4.0,從Opencv官網下載4.4.0版本:https://opencv.org/releases/。
下載完後解壓到主資料夾內(Home)新建的opencv中
然後在github中下載contrib版本(下載4.4.0版本):https://github.com/opencv/opencv_contrib/tree/4.4.0
同樣解壓到opencv資料夾中。
img

通常opencv_contirb中會缺少一些需要的檔案,因此可以透過連結下載:https://wwtt.lanzouw.com/if60o1cwvv4h 密碼:d5fx
下載後將檔案放入opencv_contrib-4.4.0/modules/xfeatures2d/src 資料夾內。

然後需要對兩個地方進行修改

  • opencv_contrib-4.4.0/modules/xfeatures2d/test/test_features2d.cpp 檔案 將裡面的第 51~52 行程式碼路徑改為:
#include "../../../../opencv-4.4.0/modules/features2d/test/test_detectors_regression.impl.hpp"
 #include "../../../../opencv-4.4.0/modules/features2d/test/test_descriptors_regression.impl.hpp"

  • 修改 opencv_contrib-4.4.0/modules/xfeatures2d/test/test_rotation_and_scale_invariance.cpp 檔案,將裡面的第 7~8 行程式碼路徑改為:
#include "../../../../opencv-4.4.0/modules/features2d/test/test_detectors_invariance.impl.hpp" // main OpenCV repo
#include "../../../../opencv-4.4.0/modules/features2d/test/test_descriptors_invariance.impl.hpp" // main OpenCV repo

開啟終端編譯:

cd opencv
mkdir -p build && cd build
cmake -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.4.0/modules ../opencv-4.4.0
make -j4
sudo make install

3.安裝ORBSLAM3

解壓ORBSLAM3檔案,進入其中,開啟對應的視覺化選項
開啟 Examples/Monocular 資料夾下的 mono_euroc.cc 檔案,找到第 83 行:
將ORB_SLAM3::System SLAM(argv[1],argv[2],ORB_SLAM3::System::MONOCULAR, false);改為true。

按照官網給的指令編譯安裝:

cd ORB_SLAM3
chmod +x build.sh
./build.sh  #如果遇到問題就按照命令列一行一行輸入,檢視問題出在哪

4.資料集測試

4.1資料集下載

下載地址:https://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets#downloads
將第一個Machine Hall01資料集下載對應的ASL Data。
img

下載完成後進入資料夾(隨便哪個資料夾),建立dataset資料夾,再在下面建立MH01資料夾,將解壓得到的mav0檔案移動到MH01中。然後在終端中測試:

將最後的路徑換成你下載的MH01對應路徑

cd ORB_SLAM3
cd Examples
./Monocular/mono_euroc ../Vocabulary/ORBvoc.txt ./Monocular/EuRoC.yaml /home/xiao/dataset/MH01 ./Monocular/EuRoC_TimeStamps/MH01.txt

出現以下結果就是成功

5.遇到的一些問題

5.1 opencv編譯失敗

opencv編譯失敗可能是一些動態庫指向錯誤,主要是與anaconda環境相沖突,連結給出了很好的解答。

5.2編譯成功後執行出現GTK+2.X錯誤

img
按照提示安裝 libgtk2.0-dev
或者在conda環境下pip install opencv-contrib-python,重新編譯opencv即可(兩種之一解決方法?)
參考連結:
[1]:https://www.cnblogs.com/xiaoaug/p/17766112.html
[2]:https://blog.csdn.net/qq_19278525/article/details/134039141
[3]:https://blog.csdn.net/kuvinxu/article/details/126233165
[4]:https://www.zhihu.com/question/263917089

相關文章