ORB_SLAM3 — 配置安裝
- 2021 年 10 月 25 日
- 筆記
- SLAM系統配置、安裝與測試
安裝環境 Ubuntu20.04
ORB_SLAM3依賴項安裝
opencv3
ORB_SLAM3可用opencv3或opencv4編譯,作者這裡安裝測試了opencv3
Step1: 安裝opencv的依賴包
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
- 如果提示找不到libjasper-dev軟體包
sudo apt-add-repository "deb //security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev
Step2: 下載opencv和opencv_contrib
cd ~/<my_working_directory> # <my_working_directory>替換為你的工作目錄
git clone //github.com/opencv/opencv.git
git clone //github.com/opencv/opencv_contrib.git
cd opencv
git checkout 3.4.16
cd ..
cd opencv_contrib
git checkout 3.4.16
cd ..
Step3: 編譯和安裝opencv以及opencv_contrib模組
Step3.1 創建build目錄
cd opencv
mkdir build
cd build
Step3.2 執行cmake命令
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_C_EXAMPLES=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D WITH_TBB=ON \
-D WITH_V4L=ON \
-D WITH_QT=ON \
-D WITH_OPENGL=ON \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
-D BUILD_EXAMPLES=ON ..
Step3.3 編譯並安裝
# 執行如下命令後獲取cpu核心數以加快編譯
nproc
# 將nproc得到的數字放在make -j後面,作者的電腦有16的CPU核心
make -j16
sudo make install
sudo sh -c 'echo "/usr/local/lib" >> /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig
- opencv安裝參考
Pangolin
- pangolin版本更新到了0.6。此版本編譯ORB_SLAM2,ORB_SLAM3,DSO,LDSO等SLAM框架時均會出現問題。
- 解決方法:採用較早版本的pangolin
非常不建議使用最新版本的pangolin進行編譯安裝,會遇到error: 『slots_reference』 was not declared in this scope或者cannot findind Eigen3.cmake
issue: //github.com/raulmur/ORB_SLAM2/issues/1015
Step1: 安裝Pangolin的依賴包
sudo port install glew
sudo apt-get install cmake
sudo apt-get install libpython2.7-dev
sudo apt-get install ffmpeg libavcodec-dev libavutil-dev libavformat-dev libswscale-dev
sudo apt-get install libdc1394-22-dev libraw1394-dev
sudo apt-get install libjpeg-dev libpng12-dev libtiff5-dev libopenexr-dev
- libpng12-dev安裝可能會報錯,但不影響後續步驟。
# Ubuntu16.04之後不支援libpng12-dev 修改為
sudo apt install libpng-dev
- 這裡提供一個較早版本的Pangolin
鏈接://pan.baidu.com/s/17A51BZIq_iJlCvLHUTCH7g
提取碼:oitb
- 儘管有人提到了Pangolin v0.5版本可以解決問題,但作者的機器上並沒有成功
這裡提供了百度網盤的版本
鏈接://pan.baidu.com/s/17A51BZIq_iJlCvLHUTCH7g
提取碼:oitb
–來自百度網盤超級會員V5的分享
Step2: 編譯並安裝Pangolin
cd Pangolin
# 百度網盤的版本有build文件,要先刪除再創建
rm -rf build
mkdir build
cd build
cmake ..
# 16替換為你自己電腦的CPU核心數
make -j16
sudo make install
- pangolin安裝參考
ORB_SLAM3安裝
Step1: 安裝ORB_SLAM3的依賴包
sudo apt install libpython2.7-dev
Step2: 下載、編譯並安裝ORB_SLAM3
git clone //github.com/UZ-SLAMLab/ORB_SLAM3.git ORB_SLAM3
cd ORB_SLAM3
chmod +x build.sh
# 可以修改 CMakeList.txt 中的`make -j`為`make -j16`來加快編譯速度。16替換為你的電腦的CPU核心數
./build.sh
編譯ORB_SLAM3常見問題
- ORBSLAM3 fatal error: openssl/md5.h: No such file or directory
- 解決方法:執行如下命令
sudo apt install libssl-dev
- make[2]: *** [CMakeFiles/ORB_SLAM3.dir/build.make:89: CMakeFiles/ORB_SLAM3.dir/src/LocalMapping.cc.o] Error 1
- 解決方法:在orb_SLAM3/include/CameraModels/KannalaBrandt8.h中添加
namespace cv
{
template<typename _Tp, int m, int n> static inline Matx<_Tp, m, n> operator/(const Matx<_Tp, m, n>& a, float alpha)
{
return Matx<_Tp, m, n>(a, 1.f/alpha, Matx_ScaleOp());
}
}
- ORB_SLAM3安裝參考