最近老師有乙個slam專案,問我有沒有興趣參加。
由於之前也沒有做過slam,所以寫個部落格記錄一下,當作自己的入門。
重置了一下自己的阿里雲到ubuntu16.04,按照網上的步驟安裝一下slam:
安裝gcc、cmake及git
apt-get update安裝pangolin及其依賴庫apt-get install cmake
apt-get install git
glew:
sudo apt-get install libglew-devboost:
sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev編譯庫:
sudo apt-get install build-essential正式安裝:
git clone安裝opencv及其依賴cd pangolin
mkdir build
cd build
cmake -dcpp11_no_boost=1 …
make
sudo apt-get install libcv-dev安裝的版本是2.4左右,後續編譯是沒有問題的。sudo apt-get install libopencv-dev
安裝eigen
mkdir build安裝blas and lapack庫cd build
cmake …
make
sudo make install
sudo apt-get install libblas-dev安裝orb_slam2:sudo apt-get install liblapack-dev
git clone orb_slam2吐槽一下,clone2的時候速度還是很快的,3就半天下不下來…也是很迷
cd orb_slam2下一步就是編譯了,但這裡會出現很多問題,首先是過程中會有error說很多檔案中的『usleep』未定義。chmod +x build.sh
原因是包中有乙個地方出錯,需要在/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這裡前面的半句是你自己示例檔案的路徑,tumx中的x對應fr(x)中的x,path_to_sequence_folder是資料集資料夾的路徑。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.與當前...