1. 程式人生 > >ORB_SLAM2編譯與測試(一)

ORB_SLAM2編譯與測試(一)

git 一段 分享 CI 圖像 它的 第三方 學習 clas

ORB_SLAM2編譯與測試

學習視覺slam,經典的slam開源框架的學習,是不可避免的。記錄一下ORB_SLAM2的編譯與測試,此次配置的是無ROS版本。
跑的數據集TUM Dataset 系統版本:ubuntu16.04 ORB_SLAM2源碼:https://github.com/raulmur/ORB_SLAM2 ORB_SLAM2項目主頁:http://webdiis.unizar.es/~raulmur/orbslam/

一、安裝依賴

1.Pangolin

1 sudo apt-get install libglew-dev   #安裝Glew  
2 sudo apt-get install cmake         #安裝CMake 
3 4 #安裝Boost 5 sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev 6 7 sudo apt-get install libpython2.7-dev #安裝Python2 / Python3
1 編譯安裝Pangolin:
2 
3 git clone https://github.com/stevenlovegrove/Pangolin.git
4 cd Pangolin
5 mkdir build
6 cd build
7 cmake ..
8 make

2.OpenCV

1 因為之前用過opencv,這裏給出編譯opencv參考博客!
2 用的是opencv3.2版本
3 參考博客:https://blog.csdn.net/lql0716/article/details/54564721

3.Eigen3

1 Eigen3是一個C++開源線性代數代數庫,提供矩陣的線性代數運算,安裝比較簡單,一條命令就行了。
2 
3 sudo apt-get install libeigen3-dev

4.BLAS and LAPACK

1 網上說是g2o需要BLAS和LAPACK
2 
3 sudo apt-get install libblas-dev 
4 sudo apt-get install liblapack-dev  

5.DBoW2 and g2o (Included in Thirdparty folder)

ORB_SLAM2使用的是修改版本DBoW2庫進行位置識別
另外使用修改的g2o庫進行非線性優化,所以將這兩個修改的版本都放在了第三方的文件夾裏
對於這兩個庫的安裝與編譯在build.sh給出了,這裏不用管它了。

二、編譯ORB_SLAM2

 1 git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2 
 2 cd ORB_SLAM2
 3 chmod +x build.sh
 4 ./build.sh
 5 
 6 註意:首先將build.sh中最後一行的make -j 改為make ,否則容易死機
 7 等待一段時間,就編譯成功了!
 8 
 9 編譯完成後生成libORB_SLAM2.so,其位於lib目錄下,
10 
11 生成的可執行程序mono_tum, mono_kitti, rgbd_tum, stereo_kitti, mono_euroc and stereo_euroc,位於Examples目錄下。

三、運行例子程序

1.RGB-D實例

 1 ******準備數據************
 2 1)下載TUM數據集
 3 從下面這個鏈接https://vision.in.tum.de/data/datasets/rgbd-dataset/download下載相關數據集,例如下載rgbd_dataset_freiburg2_pioneer_360.tgz
 4 2)然後解壓到你想要解壓的位置,這裏我把數據集解壓在ORB_SLAM2
 5 3)運行RGB-D實例時需要RGBD(depth)圖像和RGB圖像,因此需要將每一張RGB圖像和與之對應的RGBD圖像建立關聯,用到associate.py文件
 6 
 7 *******進行關聯操作********
 8 python associate.py PATH_TO_SEQUENCE/rgb.txt PATH_TO_SEQUENCE/depth.txt > associations.txt
 9 註意:
10 PATH_TO_SEQUENCE即rgb.txt所在目錄,在下載的數據集中,這裏我的目錄如下:
11 home/ttwang/ORB_SLAM2/rgbd_dataset_freiburg2_pioneer_360
12 
13 1)associate.py將放在/ORB_SLAM2/Examples/RGB-D/目錄下面
14 2)打開終端,進入associate.py所在目錄
15 3)執行:python associate.py home/ttwang/ORB_SLAM2/rgbd_dataset_freiburg2_pioneer_360/rgb.txt home/ttwang/ORB_SLAM2/rgbd_dataset_freiburg2_pioneer_360/depth.txt > associations.txt
16 
17 註意:這裏用的是python2
18 
19 *********進行測試*********
20 執行下面命令:
21 ./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUMX.yaml PATH_TO_SEQUENCE_FOLDER ASSOCIATIONS_FILE
22 
23 其中PATH_TO_SEQUENCE_FOLDER 我下載數據集所在的目錄,這裏我是放在了ORB_SLAM2工程目錄下,即/home/ttwang/ORB_SLAM2/rgbd_dataset_freiburg2_pioneer_360
24 
25  ASSOCIATIONS_FILE為生成的associations.txt,給出它的指定位置,這裏我把它拷貝到了數據集下面,即/home/ttwang/ORB_SLAM2/rgbd_dataset_freiburg2_pioneer_360
26 /associations.txt
27 
28 然後對應的,先cd ORB_SLAM2工程目錄下,我執行:
29 ./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM2.yaml /home/ttwang/ORB_SLAM2/rgbd_dataset_freiburg2_pioneer_360 /home/ttwang/ORB_SLAM2/rgbd_dataset_freiburg2_pioneer_360/associations.txt

運行效果:
技術分享圖片 技術分享圖片

ORB_SLAM2編譯與測試(一)