一、ORB_SLAM2的特点
1、ORB_SLAM2是首个支持单目、双目和RGB-D相机的完整开源SLAM方案,能够实现地图重用,回环检测和重新定位的功能。
2、能够在GPU上进行实时工作,比如手机、无人机、汽车。
3、特征点法的巅峰之作,定位精度非常高。
4、能够实时计算处相机的位姿,并生成场景的稀疏三维重建地图。
二、算法流程框架
ORB-SLAM整体流程如下图所示
它主要有三个线程组成:跟踪、Local Mapping(又称小图)、Loop Closing(又称大图)
a、跟踪(Tracking)
这一部分主要工作是从图像中提取ORB特征,根据上一帧进行姿态估计,或者进行通过全局重定位初始化位姿,然后跟踪已经重建的局部地图,优化位姿,再根据一些规则确定新的关键帧。
跟踪线程相当于一个视觉里程计,流程如下:
首先,对原始图像提取ORB特征并计算描述子。
根据特征描述,在图像间进行特征匹配。
根据匹配特征点估计相机运动。
根据关键帧判别准则,判断当前帧是否为关键帧。
b、建图(LocalMapping)
这一部分主要完成局部地图构建。包括对关键帧的插入,验证最近生成的地图点并进行筛选,然后生成新的地图点,使用局部捆集调整(Local BA),最后再对插入的关键帧进行筛选,去除多余的关键帧。
c、闭环检测(LoopClosing)
这一部分主要分为两个过程,分别是闭环探测和闭环校正。闭环检测先使用WOB进行探测,然后通过Sim3算法计算相似变换。闭环校正,主要是闭环融合和Essential Graph的图优化
三、安装教程
代码
1 | git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2 |
编译
1 | cd ORB_SLAM2 |
四、TUM数据集
SLAM数据集TUM,KITTI,EuRoC数据集的下载地址与真实轨迹文件的查找_m0_60355964的博客-CSDN博客_euroc数据集下载
【TUM数据集 】Computer Vision Group - Dataset Download
五、Demo RUN
1、单目例子
1 | ./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt |
2、自制单目-数据集mp4
3、
相关博客
vslam流程框架介绍_chengwei_peng的博客-CSDN博客_vslam是什么意思
orbslam2 安装与运行_Darren_pty的博客-CSDN博客_orbslam2安装运行
ORB_SLAM2 源码解析 ORB_SLAM2简介(一)_小负不负的博客-CSDN博客_orb-slam2
【一文足以系列】ORB SLAM2完整详细算法流程_铃灵狗的博客-CSDN博客_orbslam2
ORB-SLAM2笔记 ·魔法少女郭德纲 语雀(B站视频讲解)
他人镜:
文科生:
-
ORB-SLAM2代码阅读笔记(四):Tracking线程2——ORB特征提取_border_reflect_101 高斯模糊-文科生-CSDN博客
-
ORB-SLAM2代码阅读笔记(六):Tracking线程4—Track函数中相机位姿估计_orb-slam位姿估计算法-文科生-CSDN博客
实践代码:
Math