Ubuntu16.04下 ORB_SLAM2的安装与配置

ORB_SLAM2的安装与配置

    • 一、安装工具
    • 二、安装Pangolin作为可视化和用户界面
    • 三、安装OpenCV ,用于处理图像和特征
    • 四、安装Eigen3,它是一个开源线性库,可进行矩阵运算
    • 五、安装ORB-SLAM2
    • 六、运行单目SLAM实例

一、安装工具

在配置过程中需要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

Ubuntu16.04下 ORB_SLAM2的安装与配置_第1张图片

(3)编译安装

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

Ubuntu16.04下 ORB_SLAM2的安装与配置_第2张图片
Ubuntu16.04下 ORB_SLAM2的安装与配置_第3张图片

三、安装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

Ubuntu16.04下 ORB_SLAM2的安装与配置_第4张图片
(3)编译安装

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

Ubuntu16.04下 ORB_SLAM2的安装与配置_第5张图片

make -j8

出现以下表示编译成功
Ubuntu16.04下 ORB_SLAM2的安装与配置_第6张图片
编译过程会花费较长时间,电脑CPU性能较低的建议不要使用make -j,容易卡死;CPU性能较高的可以使用make -jx,x代表线程,可加速编译。

执行命令

sudo make install

Ubuntu16.04下 ORB_SLAM2的安装与配置_第7张图片

(4)配置一些OpenCV的编译环境
1.sudo make install 执行完毕后OpenCV编译过程就结束了,接下来就需要配置一些OpenCV的编译环境首先将OpenCV的库添加到路径,从而可以让系统找到

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

执行此命令后打开的可能是一个空白的文件,不用管,只需要在文件末尾添加

/usr/local/lib  

Ubuntu16.04下 ORB_SLAM2的安装与配置_第8张图片
保存回到命令行界面,执行如下命令使得刚才的配置路径生效

sudo ldconfig  

2.配置bash

sudo gedit /etc/bash.bashrc  

在最末尾添加

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

Ubuntu16.04下 ORB_SLAM2的安装与配置_第9张图片
保存,执行如下命令使得配置生效

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

Ubuntu16.04下 ORB_SLAM2的安装与配置_第10张图片

c.如过需要在ROS环境下运行ORB_SLAM,则需要执行一下命令:

在ROS环境下运行ORB_SLAM,最好将工程放在catkin_ws/src文件夹下,如图
Ubuntu16.04下 ORB_SLAM2的安装与配置_第11张图片
1)将包含Examples/ROS/ORB_SLAM2的路径添加到ROS_PACKAGE_PATH环境变量中。打开.bashrc文件并在最后添加以下行。

 sudo  gedit ~/.bashrc

Ubuntu16.04下 ORB_SLAM2的安装与配置_第12张图片

source ./catkin_ws/devel/setup.sh

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

source ~/.bashrc

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

运行后会出现错误:
Ubuntu16.04下 ORB_SLAM2的安装与配置_第13张图片
解决办法:

修改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
)

如图所示:
Ubuntu16.04下 ORB_SLAM2的安装与配置_第14张图片
再次运行,:

chmod +x build_ros.sh
./build_ros.sh

Ubuntu16.04下 ORB_SLAM2的安装与配置_第15张图片
如图所示,编译成功。

六、运行单目SLAM实例

编译完成后会在ORB_SLAM2/Examples文件夹下生成各种可执行文件。我们以单目情况为例,展示如何运行ORB_SLAM2程序。
(1)下载数据集
有TUM、KITTI、EuRoC三种数据集,本实验使用TUM数据集,从http://vision.in.tum.de/data/datasets/rgbd-dataset/download下载序列并解压缩。这便是解压后的数据集
Ubuntu16.04下 ORB_SLAM2的安装与配置_第16张图片
Ubuntu16.04下 ORB_SLAM2的安装与配置_第17张图片

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

Ubuntu16.04下 ORB_SLAM2的安装与配置_第18张图片
Ubuntu16.04下 ORB_SLAM2的安装与配置_第19张图片

你可能感兴趣的:(ROS学习,linux,ubuntu,机器学习,深度学习)