ORB-SLAM2详解(一)简介
(公开课)视觉SLAM原理与ORB-SLAM3系列算法
ORB指的是一种旋转不变性特征。
论文:ORB-SLAM: A Versatile and Accurate Monocular SLAM System
github代码仓库:ORB-SLAM
ORB-SLAM官网:ORB-SLAM
2015年,Raul Mur-Artal等人提出了一个基于特征点的稀疏建图系统ORB_SLAM,整个系统是基于ORB特征实现的。ORB-SLAM也是实时的单目SLAM系统,在大规模的、小规模的、室内室外的环境都可以运行。该系统对剧烈运动也很鲁棒,支持宽基线的闭环检测和重定位,包括全自动初始化。
最新的ORB_SLAM的进展是基于ORB_SLAM的关键帧做了半稠密场景重建,新的研究成果可持续关注 ORB-SLAM 项目主页。
从ORB-SLAM系统架构中可以看出,ORB-SLAM主要分为三个线程进行,分别是Tracking、LocalMapping、LoopClosing。ORB-SLAM2的工程非常清晰漂亮,三个线程分别存放在对应的三个文件中,分别是 Tracking.cpp
、LocalMapping.cpp
和 LoopClosing.cpp
文件。
这部分主要工作是,从图像中提取ORB特征,根据上一帧进行姿态估计,或者进行通过全局重定位初始化位姿,然后跟踪已经重建的局部地图,优化位姿,再根据一些规则确定新的关键帧。
这部分主要完成局部地图构建。包括对关键帧的插入,验证最近生成的地图点并进行筛选,然后生成新的地图点,使用局部捆集调整(Local BA),最后再对插入的关键帧进行筛选,去除多余的关键帧。
这部分主要分为两个过程,分别是回环检测和回环矫正。回环检测先使用WOB进行探测,然后通过 Sim3算法
计算相似变换;回环矫正,主要是回环融合和 Essential Graph
的图优化。
论文:ORB-SLAM2: an Open-Source SLAM System for Monocular, Stereo and RGB-D Cameras
github代码仓库:ORB-SLAM2
CSDN专栏:ORB SLAM2
CSDN专栏:SLAM
CSDN专栏:视觉SLAM
2017年,在ORB-SLAM的基础上,Raul Mur-Artal等人提出了改进版本的ORB-SLAM,它从单目相机扩展到双目和RGB-D相机。ORB-SLAM2利用远关键点和近关键点,在使用双目相机时提高算法的准确率。
ORB-SLAM2是一套完整的SLAM方案,它能够实现地图重用、回环检测和重新定位的功能。ORB-SLAM2在后端上采用基于单目和双目的 光束法平差优化(BA)
的方法,该方法允许米制比例尺的轨迹精确度评估。此外,ORB-SLAM2包含一个轻量级的定位模式,该模式能够在允许零点漂移的条件下,利用视觉里程计来追踪未建图的区域,并且匹配特征点。
遇到弱纹理(例如:白墙)的情况下,ORB-SLAM2提取的特征不足,导致跟踪丢失。
2017年, 在ORB-SLAM的基础上,Raul Mur-Artal等人提出了新的紧耦合视觉-惯性ORB-SLAM-VI系统,加入了 惯性测量单元 \textcolor{Red}{惯性测量单元} 惯性测量单元。
针对单目SLAM缺少尺度信息,提出了新颖的IMU初始化的方法,以高精度快速地计算尺度、重力方向、速度以及陀螺仪和加速度计偏差,并重用地图,在已重建区域实现零漂移定位。
论文:ORBSLAM-Atlas: a robust and accurate multi-map system(IROS 2019)
2019年,在ORB-SLAM2的基础上,Raul Mur-Artal等人提出了一个能够处理无限数量的非连接的子地图的系统,包括一个鲁棒的地图合并算法,使得相机跟踪丢失时不会停止更新地图,立即构建一个新的子地图。
相比于ORB-SLAM2,ORB-SLAM-Atlas主要工作如下:
论文:ORB-SLAM3: An Accurate Open-Source Library for Visual, Visual-Inertial and Multi-Map SLAM
github代码仓库:ORB_SLAM3
ORB-SLAM3整体流程详解
一文详解ORB-SLAM3
ORB-SLAM3是一个支持 视觉、视觉 + 惯导、混合地图 \textcolor{Red}{视觉、视觉+惯导、混合地图} 视觉、视觉+惯导、混合地图的SLAM系统,可以在 单目、双目和 R G B − D 相机 \textcolor{Red}{单目、双目和RGB-D相机} 单目、双目和RGB−D相机上利用针孔或者鱼眼相机模型运行。在大场景/小场景、室内/室外,ORB-SLAM3都能鲁棒地实时运行。
相较于ORB-SLAM2,ORB-SLAM3则增加了对于IMU融合的支持,兼容鱼眼相机模型,并且增加了Atlas多地图的支持;同时,回环检测为了支持多地图的模式,提供了一种叫Welding BA的优化方式。
在ORB-SLAM2中,在弱纹理场景下容易出现跟踪丢失的问题,而ORB-SLAM3可以重建地图,实现自动重定位。
对于在室内场景,ORB-SLAM3的定位精度高。
对于丰富的室外场景,可以直接使用ORB-SLAM3。
对于无人机导航,由于天空中特征点较少,ORB-SLAM3效果略差,需要融合多模态信息(GPS),提高定位导航精度。
对于无人驾驶,需要融合激光雷达,提高定位导航的精度。
Turbot-VSLAM入门教程-实现ORB-SLAM V2
Turbot-VSLAM入门教程-实现RGBD-SLAM-V2
ORB_SLAM运行详细过程(ubuntu14.04系统和ROS Indigo环境搭建,配置及测试运行)
EuRoC数据集
EuRoc数据集是在微型飞行器(Micro Aerial Vehicle,MAV)收集的视觉惯导数据集。该数据集包含:立体图像,同步IMU测量,精确的运动和结构的真值(ground-truth)。