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写代码

