1. 程式人生 > >ubuntu16.04安裝orb_slam2

ubuntu16.04安裝orb_slam2

最近在學習slam,所以安裝orb_slam2,參考了網上的很多部落格,中間也遇到一些問題,有些部落格講解的也不是那麼詳細。現在補充記錄如下。

整體思路主要參考了這篇文章:https://www.cnblogs.com/feifanrensheng/p/8480362.html

行文按照這篇文章進行擴充。

1 安裝必要工具

 

首先,有兩個工具是需要提前安裝的。即cmake和Git

 

sudo apt-get install cmake

 

sudo apt-get install git

開始時sudo不能安裝任何軟體 ,如下命令得到解決:sudo apt-get install -f

 

 

2 安裝Pangolin,用於視覺化和使用者介面

 

安裝依賴項:

 

sudo apt-get install libglew-dev

 

sudo apt-get install libpython2.7-dev

 

 

 

先轉到一個要儲存Pangolin的路徑下,例如~/Documents,然後

 

git clone https://github.com/stevenlovegrove/Pangolin.git

 

cd Pangolin

 

mkdir build

 

cd build

 

cmake ..

 

make –j

 

sudo make install

 

 

 

3 安裝OpenCV

ubuntu16.04下安裝opencv3.1.0

參考博文: http://www.cnblogs.com/feifanrensheng/p/8480286.html

安裝opencv時,遇到cuda編譯的問題 :cudalegacy/src/graphcuts.cpp:120:54: error: ‘NppiGraphcutState’ has not been declared

解決方案:需要修改一處原始碼:
在graphcuts.cpp中將
 
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)  
 
改為
 
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000)

 

4 安裝Eigen3

 

最低要求版本為3.1.0。在http://eigen.tuxfamily.org 下載Eigen3的最新版本,一般是一個壓縮檔案,下載後解壓,然後cd到Eigen3的根目錄下。

 sudo apt-get install libeigen3-dev

Eigen標頭檔案的預設位置在 “usr/include/eigen3”

如果不確定,可以通過以下命令查詢

sudo updatedb

locate eigen3

 

5 安裝ORBSLAM2

 

先轉到自己打算儲存ORBSLAM2工程的路徑,然後執行下列命令

 

git clone https://github.com/raulmur/ORB_SLAM2.git

 

cd ORB_SLAM2

 

chmod +x build.sh

 

./build.sh

編譯時遇到很多錯誤:/ORB_SLAM2/src/LocalMapping.cc:94:28: error: ‘usleep’ was not declared in this scope

需要開啟相應的程式碼,在標頭檔案裡面新增usleep 的標頭檔案unistd.h,很多原始檔要新增感覺很不方便。

 

 

之後會在lib資料夾下生成libORB_SLAM2.so,並且在Examples資料夾下生成mono_tum,mono_kitti, rgbd_tum,stereo_kitti, mono_euroc 和 stereo_euroc。

 

6,用orb-slam2跑RGB-D Example中的TUM Dataset

      找了一個較小的資料集做測試

     主要參考這篇文章:https://www.cnblogs.com/bigzhao/p/6246084.html

   

1.按照要求下載資料集,我下載的是rgbd_dataset_freiburg2_pioneer_360,將其解壓到你喜歡的目錄.我個人放在了orbslam2工程目錄下面了.

2.下載 associate.py.放在/ORB_SLAM2/Examples/RGB-D/目錄下面.

3.開啟終端,進入到associate.py所在目錄,即/ORB_SLAM2/Examples/RGB-D/,之後執行

python associate.py PATH_TO_SEQUENCE/rgb.txt PATH_TO_SEQUENCE/depth.txt > associations.txt

這一步開始用預設的python3未成功,用python2成功了。

在該目錄中將會生成一個associations.txt檔案.

4.參照所給連結中的第3步,https://github.com/raulmur/ORB_SLAM2,即

./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUMX.yaml PATH_TO_SEQUENCE_FOLDER ASSOCIATIONS_FILE
PATH_TO_SEQUENCE_FOLDER資料夾即為資料庫所在資料夾,我的是在orbslam2工程下面,
ASSOCIATIONS_FILE即為第3步中生成的associations.txt,給出他的制定目錄位置