赞
踩
首先进行源码的下载
git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git
然后输入下面代码进行编译
- cd ORB_SLAM3
- chmod +x build.sh
- ./build.sh
在这里我是出现了错误,卡在g2o报错,然后看报错提示,原来是没有安装boost,在下载上boost
安装boost库
进入boost官网:https://www.boost.org/
或者和我下载一样的下载的是1.75.0解压后运行
- sudo ./bootstrap.sh
- sudo ./b2 install
编译完成后是这个样子
接下来下载数据集从kmavvisualinertialdatasets – ASL Datasets 下载一个ASL格式的序列(本人下载的Machine Hall 01数据集,简称MH01)
路径:ORB_SLAM3/dataset/MH_##/mav0
(举例:MH01解压后文件名为mav0,在dataset文件夹中新建MH01文件夹,将mav0放入,不要直接修改文件名!!!)
然后打开orb-slam3源码中的脚本,“euroc_examples.sh“,找到包含MH01的指令
这里新版的orbslam源码中没有这个文件,然而README中是这么说的
于是赶紧找找有没有前辈下载下来了euroc_examples.sh这个文件,然后就找到了个github里头是有这个文件的,这个github还是ORB-SLAM3的详细注释版,以后要看懂代码的话少不了它,链接先放这了
GitHub - electech6/ORB_SLAM3_detailed_comments: Detailed comments for ORB-SLAM3
将这个版本的slam解压后,找到他的example文件夹里的euroc_examples.sh,然后将他复制到我们的slam下,我是直接复制到了根目录
然后打开这个文件夹,找到下面的指令
./Examples/Monocular/mono_euroc ./Vocabulary/ORBvoc.txt ./Examples/Monocular/EuRoC.yaml "$pathDatasetEuroc"/MH01 ./Examples/Monocular/EuRoC_TimeStamps/MH01.txt dataset-MH01_mono
将"$pathDatasetEuroc"/MH01,修改为自己的路径 /dataset/MH01,并去掉指令中的dataset-MH01_mono,修改后为
./Examples/Monocular/mono_euroc ./Vocabulary/ORBvoc.txt ./Examples/Monocular/EuRoC.yaml ./dataset/MH01 ./Examples/Monocular/EuRoC_TimeStamps/MH01.txt
然后运行
我们发现什么都没出,可视化界面也没有,然后进行百度搜索后,我们打开mono_euroc.cc
查看,第83行
- // 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);
我们将这里的false改成true,然后重新 ./build.sh
然后再执行这个,就出现了可视化界面
./Examples/Monocular/mono_euroc ./Vocabulary/ORBvoc.txt ./Examples/Monocular/EuRoC.yaml ./dataset/MH01 ./Examples/Monocular/EuRoC_TimeStamps/MH01.txt
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。