ORB SLAM2安裝及驗證簡易過程

2021-10-24 01:15:36 字數 2247 閱讀 3834

最近老師有乙個slam專案,問我有沒有興趣參加。

由於之前也沒有做過slam,所以寫個部落格記錄一下,當作自己的入門。

重置了一下自己的阿里雲到ubuntu16.04,按照網上的步驟安裝一下slam:

安裝gcc、cmake及git

apt-get update

apt-get install cmake

apt-get install git

安裝pangolin及其依賴庫

glew:

sudo apt-get install libglew-dev

boost:

sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev

編譯庫:

sudo apt-get install build-essential

正式安裝:

git clone

cd pangolin

mkdir build

cd build

cmake -dcpp11_no_boost=1 …

make

安裝opencv及其依賴
sudo apt-get install libcv-dev

sudo apt-get install libopencv-dev

安裝的版本是2.4左右,後續編譯是沒有問題的。

安裝eigen

mkdir build

cd build

cmake …

make

sudo make install

安裝blas and lapack庫

sudo apt-get install libblas-dev

sudo apt-get install liblapack-dev

安裝orb_slam2:

git clone orb_slam2

吐槽一下,clone2的時候速度還是很快的,3就半天下不下來…也是很迷

cd orb_slam2

chmod +x build.sh

下一步就是編譯了,但這裡會出現很多問題,首先是過程中會有error說很多檔案中的『usleep』未定義。

原因是包中有乙個地方出錯,需要在/include/system.h這個標頭檔案中新增#include

還有就是編譯過程會出現無法分配記憶體的提示,原因是ubuntu預設的swap太小了,這裡要用檔案swap來代替一下。

mkdir swap

cd swap

dd if=/dev/zero of=swap bs=1024 count=2000000

chmod 0600 swap

swapon swap

提示資源繁忙的話:

swapoff swap

swapon swap

然後

free -m

檢視一下swap是不是分配了

一般這樣之後重新回到orb_slam2的資料夾,執行

./build.sh

就可以了。如果還是卡住,可以重啟一下機子。

執行單目示例:

./examples/monocular/mono_tum vocabulary/orbvoc.txt examples/monocular/tumx.yaml

path_to_sequence_folder

這裡前面的半句是你自己示例檔案的路徑,tumx中的x對應fr(x)中的x,path_to_sequence_folder是資料集資料夾的路徑。

執行就能看到結果了。

ORB SLAM2安裝問題總結

rosbuild building package orb slam master rosbuild error from directory check opt ros kinetic share ros core rosbuild bin check same directories.py ho...

ORB SLAM2 定位模式

void load const string filename,systemsetting mysystemsetting,keyframedatabase mpkeyframedatabase 別忘了新增標頭檔案和命名空間中的類宣告。同樣,需要在map.cc檔案中修改load 函式。laod 函式...

ORBSLAM2之LocalMapping執行緒

一 處理新關鍵幀processnewkeyframe 五 區域性ba 六 刪除冗餘關鍵幀keyframeculling 七 將當前關鍵幀插入閉環檢測佇列 更新當前關鍵幀的共檢視updateconnections a 遍歷當前關鍵幀的mp,更新共檢視 b 更新當前關鍵幀的子關鍵幀與父關鍵幀 i.與當前...