Advertisement

orb-slam3的编译和运行以及踩坑记录

阅读量:

首先进行源码的下载

复制代码
    git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git
    
    AI写代码

然后输入下面代码进行编译

复制代码
 cd ORB_SLAM3

    
 chmod +x build.sh
    
 ./build.sh
    
    
    
    
    AI写代码

我在尝试使用g2o时遇到了错误提示。查看错误信息后发现缺少Boost库的支持。需要从官方渠道下载Boost库进行安装。

安装Boost库

访问Boost官方网站:https://www.boost.org/

或者参考以下下载链接获取相应版本:下载的是1.75.0

解压后运行

复制代码
 sudo ./bootstrap.sh

    
 sudo ./b2 install
    
    
    
    
    AI写代码

编译完成后是这个样子

请通过kmavvisualinertialdatasets – ASL Datasets 这个资源库获取一个遵循ASL格式的数据序列(其中我个人获取了MH01序列)

存储位置为ORBSLAM3数据集目录下的MAV序列号为_的子序列。具体来说,在ORBSLAM3数据集目录下新建一个mh##子目录,并将其中的原始数据命名为对应的ma
v命名规则所指示的名字

然后打开orb-slam3源码中的脚本,“euroc_examples.sh“,找到包含MH01的指令

这里新版的orbslam源码中没有这个文件,然而README中是这么说的

随后立即寻找是否有前辈已经下载并提供过euroc_examples.sh这一文件。接着,在GitHub平台中发现了该文件。其中一个是关于ORB-SLAM3项目的详细注释版本,在以后深入理解代码时不可少,请将此链接放置在此处作为备用备查。
GitHub - electech6/ORB_SLAM3_detailed_comments: Detailed comments for ORB-SLAM3

将这个版本的slam解压完成后,在他的example文件夹中查看euroc_examples.sh文件,并将其放置于根目录位置

然后打开这个文件夹,找到下面的指令

复制代码
    ./Examples/Monocular/mono_euroc ./Vocabulary/ORBvoc.txt ./Examples/Monocular/EuRoC.yaml "$pathDatasetEuroc"/MH01 ./Examples/Monocular/EuRoC_TimeStamps/MH01.txt dataset-MH01_mono
    
    
    AI写代码

请将变量pathDatasetEuroc的值改为设置为自己的路径/dataset/MH01,并去除了指令中关于dataset-MH01_mono的部分。

复制代码
    ./Examples/Monocular/mono_euroc ./Vocabulary/ORBvoc.txt ./Examples/Monocular/EuRoC.yaml ./dataset/MH01 ./Examples/Monocular/EuRoC_TimeStamps/MH01.txt
    
    AI写代码

然后运行

我们未发现任何问题,在可视化界面环节也无问题。随后,在百度搜索的基础上, 我们打开了 mono_euroc.cc 文件并进行了查看.

复制代码
 // Create SLAM system. It initializes all system threads and gets ready to process frames.

    
     ORB_SLAM3::System SLAM(argv[1],argv[2],ORB_SLAM3::System::MONOCULAR, false);
    
    
    
    
    AI写代码

我们将这里的false改成true,然后重新 ./build.sh

然后再执行这个,就出现了可视化界面

复制代码
    ./Examples/Monocular/mono_euroc ./Vocabulary/ORBvoc.txt ./Examples/Monocular/EuRoC.yaml ./dataset/MH01 ./Examples/Monocular/EuRoC_TimeStamps/MH01.txt
    
    AI写代码

全部评论 (0)

还没有任何评论哟~