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,給出他的制定目錄位置