ORB-SLAM2安装笔记
本文介绍基于Ubuntu16.04+ORB-SLAM2的安装。
一.虚拟机安装
1.1 虚拟机平台
虚拟机下载:VMware Workstation16
1.2 Ubuntu16.04
镜像下载:Ubuntu16.04.7
二. 依赖安装
主要依赖有:Pangolin、Opencv、Eigen3;g2o与DBoW2(ORB_SLAM2自带)
- Pangolin:用于3D绘图
- Eigen3:线性代数库
- g2o:图优化库
- DBoW2:用于训练字典
2.1 安装前的准备
sudo apt-get install vim cmake
sudo apt-get install git
sudo apt-get install gcc g++
2.2 安装Pangolin
(1)安装依赖项
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`
(2)安装Pangolin
本人安装最新版本出现异常,安装0.5版本正常。
wget https://github.com/stevenlovegrove/Pangolin/archive/refs/tags/v0.5.zip
unzip V0.5.zip
cd Pangolin-0.5
mkdir build
cd build`
cmake -DCPP11_NO_BOOSR=1 ..
make -j
备注:不清楚-DCPP11_NO_BOOSR=1
的含义,本人所阅读的资料大多出现这个参数。
2.3 安装opencv3.4.0
(1)安装依赖项
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff4.dev libswscale-dev libjasper-dev
(2)安装Opencv
下载并解压。
wget https://github.com/opencv/opencv/archive/3.4.0.zip
unzip 3.4.0.zip
cd opencv-3.4.0
编译安装。
mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
sudo make
sudo make install
配置环境变量。
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 sudo updatedb
测试。
cd opencv-3.4.0/samples/cpp/example_cmake
cmake .
make
./opencv_example
2.4 安装Eigen
下载源码:eigen-3.3.7.zip
进入解压的文件夹。
mkdir build
cd build
cmake ..
sudo make install
安装后 头文件安装在/usr/local/include/eigen3/。在很多程序中include 时经常使用#include <Eigen/Dense> 而不是使用#include<eigen3/Eigen/Dense> 所以要做以下处理:
sudo cp -r /usr/local/include/eigen3/Eigen /usr/local/include
三.运行ORB-SLAM2
3.1 编译ORB-SLAM2
git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2
cd ORB_SLAM2
chmod +x build.sh
./build.sh
可能会出现的问题:
-
报错:
usleep is not declared this scope
-
解决方式:
在对应文件加上头文件
#include<unistd.h>
3.2 数据集测试
以 TUM Dataset 数据集为例。
(1)下载数据集
(2)运行
./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUMX.yaml PATH_TO_SEQUENCE_FOLDER
备注:
- TUMX.yaml:如果视频序列是freiburg1(fr1)目录下的,则改为TUM1.yaml;如果视频序列是freiburg2(fr2)目录下的,则改为TUM2.yaml;如果视频序列是freiburg3(fr3)目录下的,则改为TUM3.yaml;
- PATH_TO_SEQUENCE_FOLDER:将其改为刚才解压后视频序列文件夹的路径。
官方GitHub项目地址介绍了多种数据集的测试。点击前往。