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项目地址介绍了多种数据集的测试。点击前往

四.参考

1.ubuntu16.04安装opencv3.4.0 - 路明 - 博客园

2.ORB-SLAM2 初体验 —— 配置安装 - MingruiYu - 博客园

posted on 2021-11-11 17:42  yinbc  阅读(758)  评论(0)    收藏  举报