目录
一、写在前面
ORB_SLAM3在2020年下半年提出,其为ORB_SLAM系列中比较完整的视觉SLAM系统,支持单目、双目、RGB-D和IMU的各种组合。小编现在才尝试,但也不晚,一起来看看吧。
期间参考了这篇不错的博客:https://blog.youkuaiyun.com/holly_Z_P_F/article/details/118031317
二、各类依赖包安转
1. Eigen3 注意选择是3.2.1版本,矩阵库。
2. opencv 注意选择是3.x.x版本,视觉必备库。
3. Pangolin 选择稳定版本即可,基于Qt编写,用于显示图像。
4. Boost 选择稳定版本即可,推荐1.75.0版本,ORB_SLAM3用了Boost的Serialization库。
以上参考上述给出的博客分别安装即可,写得不错的博客小编也是无偿引流的😀。
5. ORB_SLAM3的源码获取:git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git
如果下载比较慢,可以尝试:git clone https://hub.fastgit.org/UZ-SLAMLab/ORB_SLAM3.git
三、ORB_SLAM3编译
上述依赖安转完成后,基本没啥问题,那么就可以运行build.sh编译脚本了,运行之前将make换成make -j1,避免电脑卡死,尤其是编译orb_slam3的时候。小编的编译过程很顺利,没有出现博客所说的Bug。
四、MH04测试
下载测试数据:kmavvisualinertialdatasets – ASL Datasets,这里下载的是MH04。解压后将mav0放在新创建的MH04文件夹下即可。
进入Example文件夹,打开euroc_examples.sh文件,查看命令。这里小编以单目+IMU和纯单目作为测试对比。
单目+IMU:./Monocular-Inertial/mono_inertial_euroc ../Vocabulary/ORBvoc.txt ./Monocular-Inertial/EuRoC.yaml “YOUR PATH”/MH04 ./Monocular-Inertial/EuRoC_TimeStamps/MH04.txt dataset-MH04_monoi
纯单目:./Monocular/mono_euroc ../Vocabulary/ORBvoc.txt ./Monocular/EuRoC.yaml “YOUR PATH”/MH04 ./Monocular/EuRoC_TimeStamps/MH04.txt dataset-MH04_mono
五、评估对比
进入Example文件夹,打开euroc_eval_examples.sh文件,查看命令。注意用python2
单目+IMU结果评估:python ../evaluation/evaluate_ate_scale.py "YOUR PATH"/MH04/mav0/state_groundtruth_estimate0/data.csv f_dataset-MH04_monoi.txt --plot MH04_monoi.pdf
单目结果评估:python ../evaluation/evaluate_ate_scale.py "YOUR PATH"/MH04/mav0/state_groundtruth_estimate0/data.csv f_dataset-MH04_mono.txt --plot MH04_mono.pdf
单目+IMU评估结果:
纯单目评估结果:
单目、单目+IMU、双目、双目+IMU评估对比结果
(1)单目:
(2)单目+IMU:
(3)双目:
(4)双目+IMU:
由评估结果可初步得到一个不太严谨的推论:
良好的地图点初值和良好的位姿初值是多么的重要。
那在我们实际应用案例中,回环检测相比EKF这类开环的SLAM有什么优势?
**一方面,减少累计误差。
**另一方面,重定位。
回环修正的效果和回环帧的姿态准确性息息相关。一起来入坑吧!!!