環(huán)境說明
使用:VMware Workstation Pro
虛擬機(jī)系統(tǒng)版本是:Ubuntu 18.04.06
虛擬機(jī)內(nèi)存:8g(若為4g大小,很容易出現(xiàn)后文中ORB-SLAM3編譯時(shí)會(huì)出現(xiàn)的內(nèi)存問題)
虛擬機(jī)存儲(chǔ):50g
若是配置完發(fā)現(xiàn)存儲(chǔ)空間不足,可以參考這篇博客進(jìn)行清理:
下載配置技巧:Ubuntu18.04安裝vmware-tools解決無法復(fù)制粘貼和自由移動(dòng)文件的問題
按照文章描述的內(nèi)容完成安裝后,可以在主機(jī)可以翻墻的情況下先下載好文件,而后挪入到虛擬機(jī)當(dāng)中,有一定程度的便利
必要配置
打開終端,分別輸入
sudo apt-get install git # 為了可以使用git指令
(這樣才能在終端界面上使用如,git clone這樣的指令)
sudo apt-get remove vim-common # 卸載舊版本vi編輯器
sudo apt-get install vim # 安裝新版本的vi編輯器
sudo apt-get install build-essential # 安裝g++和gcc
(為了避免如鏈接所描述的問題)
一、Pangolin
源碼和庫文件下載
1、鏈接地址下載:Pangolin
2、git 指令下載:
git clone https://github.com/stevenlovegrove/Pangolin.git
依賴安裝和編譯安裝
安裝依賴:
sudo apt install libgl1-mesa-dev
sudo apt install libglew-dev
sudo apt install cmake
sudo apt install libpython2.7-dev
sudo apt install pkg-config
sudo apt install libegl1-mesa-dev libwayland-dev libxkbcommon-dev wayland-protocols
編譯安裝:
cd Pangolin # 進(jìn)入Pangolin文件夾
mkdir build # 創(chuàng)建Build文件夾
cd build # 進(jìn)入build文件夾
cmake .. # 依照上級(jí)目錄的CMakeLists.txt文件編譯
cmake --build .
二、Eigen3
源碼和庫文件下載
1、鏈接地址下載:Eigen3
2、git 指令下載:
git clone https://github.com/eigenteam/eigen-git-mirror # github 有個(gè)mirror,版本3.3.4 from 2017
編譯安裝
cd eigen-git-mirror
mkdir build
cd build
cmake ..
sudo make install
#安裝后,頭文件安裝在/usr/local/include/eigen3/
三、Opencv
源碼和庫文件下載
Opencv:下載Opencv3.4.3版本
https://opencv.org/releases/page/5/
ippicv庫:電腦配置了vpn并且可以進(jìn)入外網(wǎng),可以忽略這部分下載
https://github.com/opencv/opencv_3rdparty/blob/dfe3162c237af211e98b8960018b564bc209261d/ippicv/ippicv_2017u3_lnx_intel64_general_20170822.tgz
編譯安裝
準(zhǔn)備工作
1、修復(fù)error: unable to locate libjasper-dev 無法定位這個(gè)包libjasper-dev
輸入:
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev
2、修復(fù)終端報(bào)錯(cuò)提示ippicv_2017u3_lnx_intel64_general_20170822.tgz的加速庫下載失敗
電腦配置了vpn并且在開始編譯的時(shí)候可以進(jìn)入外網(wǎng)的同學(xué),可以忽略這步
錯(cuò)誤示例:
把OpenCV源文件中 /3rdparty/ippicv 文件夾下的 ippicv.cmake 中,
第47行的
"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/"
改成你新下載的ippicv文件路徑
更改示例:
更新依賴庫:
sudo apt-get update
安裝依賴:
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libtiff5-dev libswscale-dev libjasper-dev
# 原博客安裝的是libtiff4-dev,運(yùn)行過程報(bào)錯(cuò),改成libtiff5-dev
編譯安裝:(跳過準(zhǔn)備工作中的加速庫配置的同學(xué)記得打開vpn進(jìn)入外網(wǎng))
cd opencv-3.4.3
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j4
sudo make install
配置環(huán)境:
1)添加庫路徑
sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
2)更新系統(tǒng)庫
sudo ldconfig
3)配置bash
sudo gedit /etc/bash.bashrc
在末尾添加如下兩行代碼
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
4)保存,執(zhí)行如下指令使得配置生效
source /etc/bash.bashrc
5)更新
sudo updatedb
如果該指令報(bào)錯(cuò),那么可能是沒有安裝mlocate
先執(zhí)行安裝命令
apt-get install mlocate
然后再
sudo updatedb
6)版本檢測
pkg-config --modversion opencv
注意:如果執(zhí)行后,顯示找不到包。那么注意下載的OpenCV版本是不是3.版本的,OpenCV版本4以上的,默認(rèn)不生成.pc文件,會(huì)出現(xiàn)找不到包的問題
輸出如下,表示OpenCV完成了安裝
四、DBoW2 和 g2o
DBoW2主要用于回環(huán)檢測,g2o(General Graph Optimization)主要用于圖優(yōu)化。
ORB-SLAM3的源碼包自帶DBoW2 和 g2o,編譯時(shí)會(huì)自動(dòng)安裝。不用管。
五、boost
源碼和庫文件下載
鏈接地址:下載1.77.0
版本的boost_1_77_0.tar.gz
https://www.boost.org/users/history/
編譯安裝
對(duì)下載的文件進(jìn)行解壓后,進(jìn)入文件夾boost_1_77_0
,在此打開終端
分別執(zhí)行:
sudo ./bootstrap.sh
sudo ./b2 install
需要一定時(shí)間,需要耐心等待
六、libssl-dev
直接打開終端,執(zhí)行:
sudo apt-get install libssl-dev
七、ORB-SLAM3
源碼和庫文件下載
1、鏈接地址下載:ORB-SLAM3
2、git clone指令:
git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git
編譯安裝
準(zhǔn)備工作:修改CMakeLists.txt
:打開ORB-SLAM3目錄下的CMakeLists.txt,找到第33行
find_package(OpenCV 4.4)
將OpenCV版本號(hào)改為:
find_package(OpenCV 3.4)
修改build.sh
:在將虛擬機(jī)內(nèi)存改為8G的前提下,將ORB_SLAM3目錄下的build.sh中的文件內(nèi)容修改為:
echo "Configuring and building Thirdparty/DBoW2 ..."
cd Thirdparty/DBoW2
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j4
cd ../../g2o
echo "Configuring and building Thirdparty/g2o ..."
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j4
cd ../../Sophus
echo "Configuring and building Thirdparty/Sophus ..."
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j4
前三塊都在ORB-SLAM3目錄下的Thirdparty文件夾中,
若是中斷了,可以在對(duì)應(yīng)文件夾里跳過cd執(zhí)行剩余內(nèi)容
cd ../../../
#此處在ORB-SLAM3的目錄下
echo "Uncompress vocabulary ..."
cd Vocabulary
tar -xf ORBvoc.txt.tar.gz
cd ..
echo "Configuring and building ORB_SLAM3 ..."
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make
#此塊內(nèi)容最容易出錯(cuò),且耗時(shí)長,我大概編譯了四十分鐘
必要說明:
將make改為make -j4會(huì)加快編譯速度,但也會(huì)加大內(nèi)存的占用,遇到問題:
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
所以最后一塊內(nèi)容的編譯是,make
使用make進(jìn)行編譯,內(nèi)存占比在4g左右浮動(dòng),盡量需要虛擬機(jī)內(nèi)存大于4g,這就是上文虛擬機(jī)內(nèi)存選擇8g的原因
開始編譯:
cd ORB_SLAM3
chmod +x build.sh
./build.sh
編譯成功示例如下:
最后一塊編譯內(nèi)容里容易出現(xiàn)的錯(cuò)誤:
解決方法是打開對(duì)應(yīng)的文件,如Tracking.cc, LoopClosing.cc等
在include后面添加以下代碼:
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());
}
}
修改完后重新運(yùn)行build.sh進(jìn)行編譯即可
其他可參考的錯(cuò)誤解決方案:
安裝orbslam3時(shí)報(bào)錯(cuò):error: no match for ‘operator/’
ORB-SLAM2編譯錯(cuò)誤_嵙杰的博客-CSDN博客
數(shù)據(jù)集測試
數(shù)據(jù)集鏈接地址:
鏈接地址:選擇ASL格式的V102
https://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets#downloads
測試方法:
解壓下載的數(shù)據(jù)集后(若該文件夾不名為V102,請(qǐng)改為V102),
V102文件夾里有一個(gè)mav0的文件夾,還有可能出現(xiàn)的_MACOSX 文件夾(該文件夾是緩存垃圾,可以直接刪除)
在ORB-SLAM3文件夾下創(chuàng)建文件夾dataset,將文件夾V102移入dataset
形成的目錄結(jié)構(gòu)如下
/ORB-SLAM3/dataset/V102/mav0
在ORB-SLAM3文件夾下打開終端,執(zhí)行指令
./Examples/Monocular-Inertial/mono_inertial_euroc ./Vocabulary/ORBvoc.txt ./Examples/Monocular-Inertial/EuRoC.yaml ./dataset/V102 ./Examples/Monocular-Inertial/EuRoC_TimeStamps/V102.txt dataset-V102_monoi
成功運(yùn)行界面:

參考鏈接
ORB-SLAM3配置及安裝教程(2023.3)
ORB-SLAM3配置安裝及運(yùn)行—Ubuntu20.04(2021年)文章來源:http://www.zghlxwxcb.cn/news/detail-706930.html
文章的很多內(nèi)容有所縮減,只是為了配置安裝,若是希望對(duì)細(xì)節(jié)有所了解,可以查看一下參考鏈接文章來源地址http://www.zghlxwxcb.cn/news/detail-706930.html
到了這里,關(guān)于Ubuntu18.04版本下配置ORB-SLAM3和數(shù)據(jù)集測試方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!