参考博客:
Ubuntu18下ORB_SLAM2的安装与配置
ORB_SLAM2配置过程
Ubuntu18.04 ORB_SLAM2的安装、配置、运行SLAM单目实例 Unbuntu18.04 安装并配置OpenCV3.4.1
TUM数据集 rgbd_dataset_freiburg1_xyz.tgz
废话不多说,流程先列出来,有个大致认识:
Pangolin----OpenCV----Eigen----ORB_SLAM2
以下是正式流程:
1. 安装工具
配置前需要下载cmake、gcc、g++和Git工具
sudo apt-get install cmake
sudo apt-get install git
sudo apt-get install gcc g++
CMake是一个跨平台的编译自动配置工具
sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具
apt-get 命令是 Ubuntu 系统中的包管理工具,可以用来安装、卸载包,也可以用来升级包,还可以用来把系统升级到新的版本
2. 安装Pangolin
在安装Pangolin之前,先要安装必要的依赖项:
sudo apt-get install libglew-dev
sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev
sudo apt-get install libpython2.7-dev
安装Pangolin:
git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
mkdir build
cd build
cmake ..
make -j4
sudo make install
make -j是所有进程一起运行容易死机,-j4是4个进程一起跑
编译sudo make
make的基本用处是自动根据makefile里的指令来编译源文件.
安装sudo make install
make install:将程序安装至系统中。如果原始码编译无误,且执行结果正确,便可以把程序安装至系统预设的可执行文件存放路径。默认/usr/local/bin
3. 安装OpenCV
安装OpenCV的依赖项:
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
安装OpenCV:
用命令下载opencv3.4.1的source版本,或者去官网下载 http://opencv.org
wget -O opencv-3.4.1.zip https://github.com/Itseez/opencv/archive/3.4.1.zip
进入OpenCV文件夹,编译安装
cd opencv-3.4.1
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j4
sudo make install
配置OpenCV的编译环境:
将OpenCV的库添加到路径,这样的目的是可以让系统找到
sudo gedit /etc/ld.so.conf.d/opencv.conf
执行命令后打开的可能是一个空白的文件,直接添加上下面这句代码
/usr/local/lib
执行下列命令使刚才的配置路径生效
sudo ldconfig
配置bash
sudo gedit /etc/bash.bashrc
把下列这两句代码,添加在文末处
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
保存后,执行如下命令使配置生效
source /etc/bash.bashrc
这一句命令运行完好像关不掉,可以直接关掉终端
4. 安装Eigen
直接命令安装Eigen,进行矩阵运算
sudo apt-get install libeigen3-dev
5. 安装ORB_SLAM2库
clone克隆仓库,然后进行编译
git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2
cd ORB_SLAM2
chmod +x build.sh
./build.sh
此时会出现错误,出现“usleep”错误,需要在相应的文件添加头文件
#include<unistd.h>
需要增加unistd.h的文件有:
Examples/Monocular/mono_euroc.cc
Examples/Monocular/mono_kitti.cc
Examples/Monocular/mono_tum.cc
Examples/RGB-D/rgbd_tum.cc
Examples/Stereo/stereo_euroc.cc
Examples/Stereo/stereo_kitti.cc
src/LocalMapping.cc
src/LoopClosing.cc
src/System.cc
src/Tracking.cc
src/Viewer.cc
需要根据实际情况,提示哪个文件usleep有问题就去加头文件,我直接全添加了
6. 运行单目SLAM实例
下载数据集
有TUM、KITTI、EuRoC三种数据集,这儿使用TUM数据集,下载下来的文件名是:rgbd-dataset_freiburg1_xyz
解压成文件夹,保存在相应的路径,运行时需要使用路径
TUM数据集 rgbd_dataset_freiburg1_xyz.tgz
运行ORB_SLAM2
在ORB_SLAM2文件夹下打开终端,通过cd命令进入文件夹,执行以下命令来运行程序:
官方给出的命令格式如下:
PATH_TO_SEQUENCE_FOLDER为数据集的存储路径
tumx.yaml与数据集对应,比如TUM1.yaml、TUM2.yaml 、TUM3.yaml 分别对应 freiburg1、freiburg2 、 freiburg3
./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txtExamples/Monocular/TUMX.yaml PATH_TO_SEQUENCE_FOLDER
根据自己保存路径不一样适当修改。我的数据集放在“/home/数据”目录下
./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml /home/数据/rgbd_dataset_freiburg1_xyz
即可成功运行