ORB-SLAM3编译指南

ORB-SLAM3编译指南

  • 作者编译环境
  • 编译流程
    • 1.先下载
    • 2.配置环境
    • 3.编译ORB-SLAM3

ORB-SLAM3直接按照官网的教程进行编译会有一些错误报出,这篇博客总结了作者在第一次编译ORB-SLAM3的时候遇到的一些问题,供大家参考。主题流程为 官方GitHub库的README.md中的教程

作者编译环境

Ubuntu 16.04 LTS
OpenCV 3.4.4
Eigen 3.2.29

编译流程

1.先下载

  1. 去该项目GitHub官网将本工程下载下来,或直接git下来
git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git ORB_SLAM3
  1. 下载数据集,其一共提供了两个数据集EuRoC数据集和 TUM-VI数据集。以后者为例,直接找到下载链接,如下图所示
    ORB-SLAM3编译指南_第1张图片
    其下方给出的下载例程脚本不好用,故采用迅雷下载,还可以使用迅雷会员进行加速。下载方式为:“单机”某个链接进入数据集列表>“右击”某个链接>“复制链接地址”>“打开迅雷”>“新建任务”>“粘贴”文件链接>下载,如下图所示。其他文件方式相同。
    ORB-SLAM3编译指南_第2张图片
    ORB-SLAM3编译指南_第3张图片

2.配置环境

  1. 确认自己的C++编译器版本,一般都不会有问题
  2. 安装Pangolin,进入其GitHub官网,下载项目文件,然后安装依赖库

安装OpenGL

sudo apt install libgl1-mesa-dev

安装Glew(也可参见其GitHub官网)

sudo apt install libglew-dev

安装CMake(编译环境,一般都会有,可以不装)

sudo apt install cmake

安装Python2 / Python3,(如果已经安装了ROS,就不用装了)

sudo apt install libpython2.7-dev

安装pkg-config(一般情况也已经安装好了,具体用法详见此链接)

sudo apt install pkg-config

安装Wayland和EGL

sudo apt install libegl1-mesa-dev libwayland-dev libxkbcommon-dev wayland-protocols

Doxygen(此为GitHub库,用于产生html或pdf文档,下方命令参考OneSea-V3.1的博客)

sudo apt-get install doxygen

依赖库安装完成,接下来编译下载好的Pangolin

cd Pangolin
mkdir build
cd build
cmake ..
cmake --build . --target pangolin_doc

但是实际上还需要进行安装,官网没说

sudo make install

否则,在编译ORB-SLAM3时会报错

[ 37%] Building CXX object CMakeFiles/ORB_SLAM3.dir/src/System.cc.o
make[2]: *** No rule to make target '/home/bit/Pangolin-master/build/src/libpangolin.so', needed by '../lib/libORB_SLAM3.so'。 停止。
make[2]: *** 正在等待未完成的任务....
  1. 检查是否已经安装OpenCV,(ROS没有自带安装),并查看版本
opencv_version

若没有该指令说明没有安装,需要安装,若版本低于3.0,则需要升级。

  1. 安装Eigen3(若安装了ROS则无需安装),最低版本3.1.0,查看是否安装Eigen3
locate eigen3

若有目录返回,则即可确定安装位置,查看Eigen详细版本因安装路径不同而不同,一般为如下两个路径

/usr/include/eigen3/Eigen/src/Core/util
/usr/local/include/eigen3/Eigen/src/Core/util

打开Macros.h文件,后面三个数字连起来就是版本号,此处为3.2.92

#define EIGEN_WORLD_VERSION 3
#define EIGEN_MAJOR_VERSION 2
#define EIGEN_MINOR_VERSION 92

若Eigen为安装,则需要安装

sudo apt-get install libeigen3-dev

3.编译ORB-SLAM3

  1. 接下来需要对ORB-SLAM3中的“CMakeLists.txt”文件进行修改,防止版本与其默认3.1.0不同而无法编译(如下所示),其实高版本如果差的不是很多,“CMakeLists.txt”更改之后应该没有影响。
Could not find a package configuration file provided by "Eigen3" (requested version 3) with any of the following names: Eigen3Config.cmake eigen3 config.cmake

对路径为 …/ORB-SLAM3/CMakeLists.txt的47行,进行修改

find_package(Eigen3 3.1.0 REQUIRED)

去掉3.1.0限制,改为

find_package(Eigen3 REQUIRED)

同时对路径 …/ORB_SLAM3/Thirdparty/g2o/CMakeLists.txt的第72行,进行修改

FIND_PACKAGE(Eigen3 3.1.0 REQUIRED)

去掉3.1.0限制,改为

FIND_PACKAGE(Eigen3 REQUIRED)
  1. 接下来对下载下来的ORB-SLAM3进行编译
cd ORB_SLAM3
chmod +x build.sh
./build.sh
  1. 接下来可以按照包里面的READM.md使用前面下载的数据集进行测试。

你可能感兴趣的:(自动驾驶,SLAM,计算机视觉,linux,c++,slam,计算机视觉)