Ubuntu20.04 部署 ORB SLAM2 並執行

flypopo發表於2024-07-15

安裝基礎庫

sudo apt update
sudo apt install cmake gcc g++ git
sudo apt install pkg-config

建立原始碼目錄

在 home 目錄下新建 repos 資料夾用於存放原始碼。

cd ~
mkdir repos

安裝 eigen3 3.2.10

安裝 eigen 3.2.10 版本。

cd ~/repos
git clone https://gitlab.com/libeigen/eigen.git
cd eigen
git checkout 3.2.1
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local
sudo cmake --build . --target install

解除安裝方法:

eigen3 是僅頭部庫,沒有 uninstall 指令碼。

sudo rm -rf /usr/local/share/pkgconfig/eigen3.pc
sudo rm -rf /usr/local/include/eigen3/

安裝 Pangolin 0.6

安裝依賴:

# Glew
sudo apt install libglew-dev
# Wayland
sudo apt install libegl1-mesa-dev libwayland-dev libxkbcommon-dev wayland-protocols
# FFMPEG (For video decoding and image rescaling)
sudo apt install ffmpeg libavcodec-dev libavutil-dev libavformat-dev libswscale-dev libavdevice-dev
# DC1394 (For firewire input)
sudo apt install libdc1394-22-dev libraw1394-dev
# libjpeg, libpng, libtiff, libopenexr (For reading still-image sequences)
# libpng12-dev 安裝失敗
sudo apt install libjpeg-dev libpng12-dev libtiff5-dev libopenexr-dev

安裝 Pangolin:

cd ~/repos
git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
git checkout v0.6
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local
sudo cmake --build . --target install

安裝完成後進行測試:

cd ~/repos/Pangolin/examples/HelloPangolin/
mkdir build && cd build
cmake ..
make
./HelloPangolin

執行成功會顯示一個立方體。

安裝 opencv3

新增額外源

sudo apt-add-repository universe
sudo apt-get update

安裝依賴

sudo apt-get install libglew-dev libtiff5-dev zlib1g-dev libjpeg-dev libpng-dev libavcodec-dev libavformat-dev libavutil-dev libpostproc-dev libswscale-dev libeigen3-dev libtbb-dev libgtk2.0-dev pkg-config

安裝 opencv

cd ~/repos
git clone https://github.com/opencv/opencv.git
cd opencv
git checkout 3.4.16
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local
sudo cmake --build . --target install

新增環境變數

1、新增庫路徑

/etc/ld.so.conf.d/ 目錄下新建檔案 opencv3.conf。並輸入以下內容:

/usr/local/lib

2、新增環境變數

/etc/profile.d 新建檔案 opencv3.sh。並輸入以下內容:

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

3、更新環境變數:

source /etc/profile.d/opencv3.sh

4、驗證安裝是否成功

重啟並輸入命令:

pkg-config --modversion opencv
# 輸出
# 3.4.16

執行測試程式:

cd ~/repos/opencv/samples/cpp/example_cmake/
mkdir build && cd build
cmake ..
make
./opencv_example

安裝 ORB_SLAM2

原庫地址:https://github.com/raulmur/ORB_SLAM2.git。原庫直接編譯會有一些問題,因此對其做了一些修復,程式碼地址:https://github.com/FLYPoPo7/ORB_SLAM2.git

cd ~/repos
git clone https://github.com/FLYPoPo7/ORB_SLAM2.git
cd ORB_SLAM2
chmod +x build.sh
./build.sh

編譯過程可能會有警告。

測試

下載資料集:Computer Vision Group - Dataset Download (tum.de)

在 ORB_SLAM2 目錄下建立 data 目錄,下載並解壓資料集。

cd ~/repos/ORB_SLAM2/
mkdir data && cd data
wget https://cvg.cit.tum.de/rgbd/dataset/freiburg1/rgbd_dataset_freiburg1_xyz.tgz
tar -xvzf rgbd_dataset_freiburg1_xyz.tgz
# 執行資料集
cd ~/repos/ORB_SLAM2/
./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml data/rgbd_dataset_freiburg1_xyz

執行成功如下截圖如下:

參考

主要參考

Ubuntu20.04配置ORBSLAM2並執行(保姆級教程)_在ubuntu20.04上安裝並執行orb-slam2(保姆級教程)-CSDN部落格

OpenCV 按照以下的來,主要是配置環境變數

【OpenCV 】Ubuntu系統下配置安裝OpenCV開發環境_ubuntu opencv環境變數配置-CSDN部落格

踩坑參考

Ubuntu18.04下執行ORB-SLAM2踩坑記

WSL 特殊的坑

【環境配置】Windows 11 的 WSL(Ubuntu2204) 安裝OpenCV 4.5.4 (親測有效)_libdc1394-dev : 衝突: libdc1394-22-dev 但是 2.2.5-2.1 -CSDN部落格

其他參考

ORB SLAM3 和 資料集

【演算法】跑ORB-SLAM3遇到的問題、解決方法、效果展示(環境:Ubuntu18.04+ROS melodic)_fail to track local map!-CSDN部落格

相關文章