Ubuntu16.04下 ORB_SLAM2的安裝與配置

一、安裝工具

在配置過程中需要cmake、gcc、g++和Git工具。可在終端通過以下命令下載。

(1)更新apt庫,更新軟件列表

sudo apt-get update

(2)安裝git,用於從Github上克隆項目到本地

sudo apt-get install git

(3)安裝cmake,用於程序的編譯

sudo apt-get install cmake

(4)安裝gcc、g++

sudo apt-get install g++ 
sudo apt-get install gcc  

二、安裝Pangolin作爲可視化和用戶界面

(1)安裝依賴項

sudo apt-get install libglew-dev libpython2.7-dev

(2)從Github將項目下載到本地

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

在這裏插入圖片描述

(3)編譯安裝

cd Pangolin
mkdir build
cd build
cmake ..
make -j
sudo make install

在這裏插入圖片描述
在這裏插入圖片描述

三、安裝OpenCV ,用於處理圖像和特徵

(1)安裝依賴項

sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

(2)在OpenCV官網(http://opencv.org)下載OpenCV 3.4.1的source版本,然後解壓到本地
或者用命令下載如下

wget -O opencv-3.4.1.zip https://github.com/Itseez/opencv/archive/3.4.1.zip

在這裏插入圖片描述
(3)編譯安裝

cd ~/opencv-3.4.1
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release –D CMAKE_INSTALL_PREFIX=/usr/local ..

在這裏插入圖片描述

make -j8

出現以下表示編譯成功
在這裏插入圖片描述
編譯過程會花費較長時間,電腦CPU性能較低的建議不要使用make -j,容易卡死;CPU性能較高的可以使用make -jx,x代表線程,可加速編譯。

執行命令

sudo make install

在這裏插入圖片描述

(4)配置一些OpenCV的編譯環境
1.sudo make install 執行完畢後OpenCV編譯過程就結束了,接下來就需要配置一些OpenCV的編譯環境首先將OpenCV的庫添加到路徑,從而可以讓系統找到

sudo gedit /etc/ld.so.conf.d/opencv.conf 

執行此命令後打開的可能是一個空白的文件,不用管,只需要在文件末尾添加

/usr/local/lib  

在這裏插入圖片描述
保存回到命令行界面,執行如下命令使得剛纔的配置路徑生效

sudo ldconfig  

2.配置bash

sudo gedit /etc/bash.bashrc  

在最末尾添加

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig  
export PKG_CONFIG_PATH  

在這裏插入圖片描述
保存,執行如下命令使得配置生效

source /etc/bash.bashrc  

四、安裝Eigen3,它是一個開源線性庫,可進行矩陣運算

sudo apt-get install libeigen3-dev

五、安裝ORB-SLAM2

a. 克隆倉庫

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

在這裏插入圖片描述
b. 編譯ORB-SLAM2,第三方庫中的DBoW2和g2o,並解壓ORB詞典

cd ORB_SLAM2
chmod +x build.sh
./build.sh

在這裏插入圖片描述

c.如過需要在ROS環境下運行ORB_SLAM,則需要執行一下命令:

在ROS環境下運行ORB_SLAM,最好將工程放在catkin_ws/src文件夾下,如圖
在這裏插入圖片描述
1)將包含Examples/ROS/ORB_SLAM2的路徑添加到ROS_PACKAGE_PATH環境變量中。打開.bashrc文件並在最後添加以下行。

 sudo  gedit ~/.bashrc

在這裏插入圖片描述

source ./catkin_ws/devel/setup.sh

使修改後的/.bashrc文件生效

source ~/.bashrc

cd catkin_ws/src/ORB_SLAM2
chmod +x build_ros.sh
./build_ros.sh

運行後會出現錯誤:
在這裏插入圖片描述
解決辦法:

修改Examples/ROS/ORB_SLAM2/文件夾下的CMakeLists.txt文件。

set(LIBS 
${OpenCV_LIBS} 
${EIGEN3_LIBS}
${Pangolin_LIBRARIES}
${PROJECT_SOURCE_DIR}/../../../Thirdparty/DBoW2/lib/libDBoW2.so
${PROJECT_SOURCE_DIR}/../../../Thirdparty/g2o/lib/libg2o.so
${PROJECT_SOURCE_DIR}/../../../lib/libORB_SLAM2.so
)

修改爲:

set(LIBS 
${OpenCV_LIBS} 
${EIGEN3_LIBS}
${Pangolin_LIBRARIES}
${PROJECT_SOURCE_DIR}/../../../Thirdparty/DBoW2/lib/libDBoW2.so
${PROJECT_SOURCE_DIR}/../../../Thirdparty/g2o/lib/libg2o.so
${PROJECT_SOURCE_DIR}/../../../lib/libORB_SLAM2.so
-lboost_system
)

如圖所示:
在這裏插入圖片描述
再次運行,:

chmod +x build_ros.sh
./build_ros.sh

在這裏插入圖片描述
如圖所示,編譯成功。

六、運行單目SLAM實例

編譯完成後會在ORB_SLAM2/Examples文件夾下生成各種可執行文件。我們以單目情況爲例,展示如何運行ORB_SLAM2程序。
(1)下載數據集
有TUM、KITTI、EuRoC三種數據集,本實驗使用TUM數據集,從http://vision.in.tum.de/data/datasets/rgbd-dataset/download下載序列並解壓縮。這便是解壓後的數據集
在這裏插入圖片描述
在這裏插入圖片描述

GitHub上給出的命令執行格式:

./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txtExamples/Monocular/TUMX.yaml PATH_TO_SEQUENCE_FOLDER

其中PATH_TO_SEQUENCE_FOLDER爲數據集的存儲路徑,並將tumx.yaml與下載的數據集對應,比如TUM1.yaml,TUM2.yaml 和TUM3.yaml 分別對應 freiburg1, freiburg2 和 freiburg3

根據情況自己確定數據集的路徑,我的路徑是/home/weiweu/rgbd_dataset_freiburg1_xyz

./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml /home/weiweu/rgbd_dataset_freiburg1_xyz

在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章