ORB_SLAM2开源代码

一、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
2
3
cd ORB_SLAM2
chmod +x build.sh
./build.sh

四、TUM数据集

SLAM数据集TUM,KITTI,EuRoC数据集的下载地址与真实轨迹文件的查找_m0_60355964的博客-CSDN博客_euroc数据集下载

【TUM数据集 】Computer Vision Group - Dataset Download

五、Demo RUN

1、单目例子

1
2
./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt 
Examples/Monocular/TUM1.yaml ../TUM_datasets/rgbd_dataset_freiburg1_desk/

Example Video

2、自制单目-数据集mp4

3、

相关博客

vslam流程框架介绍_chengwei_peng的博客-CSDN博客_vslam是什么意思

【知乎】VSLAM小科普

orbslam2 安装与运行_Darren_pty的博客-CSDN博客_orbslam2安装运行

ORB_SLAM2 源码解析 ORB_SLAM2简介(一)_小负不负的博客-CSDN博客_orb-slam2

【一文足以系列】ORB SLAM2完整详细算法流程_铃灵狗的博客-CSDN博客_orbslam2

ORB-SLAM2笔记 ·魔法少女郭德纲 语雀(B站视频讲解)

他人镜:

文科生:

实践代码:

Math