• orb-slam3编译手册(Ubuntu20.04)



    写在前面:本文是在Ubuntu20.04系统上从零编译运行orb-slam3的全纪录,我相信即便是0基础的同学跟着本篇博客走下来以后也可以完美的让orb-slam3跑起来。本文包含从环境配置、安装依赖项、源代码获取到数据集下载、代码测试整个全链路打通的编译过程,是一个易于理解和跟随的指南,以确保用户能够成功构建和编译代码工程。

    一、环境要求

    作者是在Ubuntu20.04系统上编译成功的,其他版本不确定是否没问题。

    1.安装git

    查看git版本

    git --version
    
    • 1

    若不显示版本号则证明系统没有安装git,使用如下命令安装

    sudo apt install git
    
    • 1

    再次查看git版本号:
    在这里插入图片描述

    2.安装g++

    查看g++版本

    g++ --version
    
    • 1

    若报错则安装g++

    sudo apt install g++
    
    • 1

    再次查看g++版本号

    在这里插入图片描述

    3.安装CMake

    sudo apt install build-essential libssl-dev
    wget https://github.com/Kitware/CMake/releases/download/v3.18.4/cmake-3.18.4.tar.gz
    tar -zxvf cmake-3.18.4.tar.gz
    cd cmake-3.18.4
    ./bootstrap
    make
    sudo make install
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    安装好后查看版本号,如如图所示则安装成功
    在这里插入图片描述

    4.安装vi编辑器

    sudo apt-get remove vim-common
    sudo apt-get install vim
    
    • 1
    • 2

    至此orb-slam3的环境要求就满足,接下来进行源代码的下载。

    二、源代码下载

    将orb-slam3的源码保存在自己新建的文件夹中。

    mkdir orb_slam3
    cd orb_slam3
    git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git
    
    • 1
    • 2
    • 3

    如果你的电脑访问github有问题,可以尝试git换源,搜索一下就有一大堆解决方案。

    三、依赖库下载

    1.Eigen安装

    #github 有个mirror,版本3.3.4 from 2017
    git clone https://github.com/eigenteam/eigen-git-mirror
     
    #安装
    cd eigen-git-mirror
    mkdir build
    cd build
    cmake ..
    sudo make install
     
    #安装后,头文件安装在/usr/local/include/eigen3/
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    2.Pangolin安装

    安装Pangolin所需依赖
    如果提示已经安装的跳过即可

    sudo apt install libgl1-mesa-dev
    sudo apt install libglew-dev
    //sudo apt install cmake //注意以前装了就不需要安装了
    sudo apt install libpython2.7-dev
    //sudo apt install python-pip
    //sudo python -mpip install numpy pyopengl Pillow pybind11
    sudo apt install pkg-config
    sudo apt install libegl1-mesa-dev libwayland-dev libxkbcommon-dev wayland-protocols
    //sudo apt install ffmpeg libavcodec-dev libavutil-dev libavformat-dev libswscale-dev libavdevice-dev
    //sudo apt install libdc1394-22-dev libraw1394-dev
    //sudo apt install libjpeg-dev libpng-dev libtiff5-dev libopenexr-dev
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    安装Pangolin

    # 默认git版本为0.6
    git clone https://github.com/stevenlovegrove/Pangolin/tree/v0.6.git    
    cd Pangolin
    mkdir build && cd build
    cmake ..
    make -j4
    sudo make install
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    如果git进不去这个网址可以自己手动下载压缩包解压,然后进行编译安装,是一样的。
    安装成功后进行测试。

    cd examples/HelloPangolin
    ./HelloPangolin
    
    • 1
    • 2

    若出现一个可以随意拖动的正方体,证明安装成功。
    在这里插入图片描述

    3.opencv安装

    此处略过,网络上很多教程,因为我电脑本身就有opencv4.2所以直接跳过了这一步。
    需要注意的是虽然opencv3/4都是可以的,但是在后面的整个项目的make过程中需要针对自己的opencv版本改一处地方,否则会报错,后面会提到。

    4.安装Python & libssl-dev

    sudo apt install libpython2.7-dev
    
    • 1
    sudo apt-get install libssl-dev
    
    • 1

    5.安装boost库

    进入boost官网:https://www.boost.org/
    我下载的是1.75版本
    在这里插入图片描述
    下载完毕解压后在文件夹中运行:

    sudo ./bootstrap.sh
    sudo ./b2 install
    
    • 1
    • 2

    三、安装orb-slam3

    在编译安装之前,修改一处地方,代码位置如下:
    如果你这里的最后一个bool类型是false,请改成true,该bool类型是控制单目摄像头跑euroc数据集结果可视化的参数,如果为false会导致运行的时候无法可视化。
    在这里插入图片描述

    可以直接一步到位,但是容易出问题且不好找问题。

    cd ORB_SLAM3
    chmod +x build.sh
    ./build.sh
    
    • 1
    • 2
    • 3

    如果上述方法报错了建议按照下面的一步一步来,其实就是一个个子文件夹挨个编译安装,虽然麻烦但是容易定位问题。

    cd Thirdparty/DBoW2
    mkdir build
    cd build
    cmake .. -DCMAKE_BUILD_TYPE=Release
    make
     
    cd ../../g2o
     
    echo "Configuring and building Thirdparty/g2o ..."
     
    mkdir build
    cd build
    cmake .. -DCMAKE_BUILD_TYPE=Release
    make
     
    cd ../../../
     
    echo "Uncompress vocabulary ..."
     
    cd Vocabulary
    tar -xf ORBvoc.txt.tar.gz
    cd..
     
     
    echo "Configuring and building ORB_SLAM3 ..."
     
    mkdir build
    cd build
    cmake .. -DCMAKE_BUILD_TYPE=Release
    make -j4
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    注意,前面提到的opencv版本问题,如果make过程中报错

    FATAL_ERROR OpenCV > 3.2 not found

    在哪个文件夹的make过程中报错就去哪个文件夹中的CMakeLists文件里找下面的代码块:
    在这里插入图片描述
    这里的find_package需要改成自己的opencv版本,否则会报错。
    编译完成后就可以下载数据集进行测试。

    四、数据集下载及测试

    1. 去官网(https://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets)下载ASL格式的数据集,例如我这里下载的就是MH01的ASL格式数据集,下载后是一个压缩包,先放着。
    2. 在orb-slam3工程目录下新建dataset文件夹,dataset文件夹下新建一个文件夹MH01,将刚下载的数据集解压后的mav0文件夹拖到MH01文件夹中即可。
    3. 双击打开ORB-SLAM3源码中的脚本“euroc_examples.sh“,找到包含MH01的指令,如单目摄像头的快捷运行命令:
    ./Examples/Monocular/mono_euroc ./Vocabulary/ORBvoc.txt ./Examples/Monocular/EuRoC.yaml "$pathDatasetEuroc"/MH01 ./Examples/Monocular/EuRoC_TimeStamps/MH01.txt dataset-MH01_mono
    
    • 1

    "$pathDatasetEuroc"修改为./dataset,修改后的命令如下:

    ./Examples/Monocular/mono_euroc ./Vocabulary/ORBvoc.txt ./Examples/Monocular/EuRoC.yaml ./dataset/MH01 ./Examples/Monocular/EuRoC_TimeStamps/MH01.txt dataset-MH01_mono
    
    • 1

    在terminal中运行如上命令,结果如下:
    在这里插入图片描述
    至此orb-slam3的编译运行便是成功了。

  • 相关阅读:
    Zookeeper篇---第十二篇
    轻量级笔记软件评测 Drafts. Apple 备忘录、Flomo、Workflowy
    开机强制进入安全模式的三种方法
    Nginx缓存配置教程
    关于python内置数据类型的小练习
    A1. Prefix Flip (Easy Version)
    常见的软件测试面试题,千万别答错了
    深入解析 const 关键字:指针、参数、返回值和类成员函数
    SpringBoot ApplicationContext分析
    Cookie和Session的对比和总结 [JavaWeb][Servlet]
  • 原文地址:https://blog.csdn.net/weixin_45939019/article/details/134027426