重读ORB_SLAM之Tracking线程难点】的更多相关文章

1. 初始化 当获取第一帧图像与深度图后,首先设置第一帧位姿为4*4单位矩阵,然后为整个map添加关键帧与地图点.且更新地图点与关键帧的联系,例如地图点被哪个关键帧观测到,而此关键帧又包含哪些地图点.而且不得不为ORB的处理细节感动,每个地图点因为对应着不同关键帧的特征点,需要择优选取地图点最合适的描述子,pNewMP->ComputeDistinctiveDescriptors().然后为localmapping线程添加关键帧,以及其他一些准备工作. 2. 正常定位建图模式 后续的定位工作,主…
1. 认清几个锁与布尔参数 线程的通信与相互影响在ORB比较复杂,需要好好缕清思路. 1.1 mbStopRequested,由RequestStop函数设定,主要是在回环线程里,在运行全局优化时,以及检测后,调整Loop时,localMapping需要暂停. 1.2 mbStopped:由stop()函数设定.mbNotStop: 由SetNotStop()设定. 这两个真是把人搞得头大.在Tracking线程,如果mapping线程被要求暂停,也就是mpLocalMapper->isStop…
1. DetectLoop 这里有个ConsistenGroup概念,比较难懂.这里是最让人迷惑的地方.一旦vbConsistentGroup为真,其他帧的spCanditateGroup就进不来了. if(!vbConsistentGroup[iG]) { ConsistentGroup cg = make_pair(spCandidateGroup,nCurrentConsistency); vCurrentConsistentGroups.push_back(cg); vbConsiste…
本文要点: ORB-SLAM2 Tracking 线程 论文内容介绍 ORB-SLAM2 Tracking 线程 代码结构介绍 写在前面 上一篇文章中我们已经对 ORB-SLAM2 系统有了一个概览性的了解.通过我绘制的详细的思维导图形式的程序导图,我们也可以很清晰地看出各个线程之间的关系,以及它们是如何和论文中的 System Overview 图对应上的. 依旧祭出该图,方便查看: 也再次献上我绘制的程序导图全图:ORB-SLAM2 程序导图 从这篇文章开始,我们将会进入 ORB-SLAM2…
初始化完成后,对于相机获取当前图像mCurrentFrame,通过跟踪匹配上一帧mLastFrame特征点的方式,可以获取一个相机位姿的初始值:为了兼顾计算量和跟踪鲁棒性,处理了三种模型: 1. TrackWithMotionModel 2. TrackReferenceKeyFrame 3. Relocalization 这三种跟踪模型都是为了获取相机位姿一个粗略的初值,后面会通过跟踪局部地图TrackLocalMap对位姿进行BundleAdjustment(捆集调整),进一步优化位姿. 优…
ORB视觉里程计主体在tracking线程中…
SLAM(Simultaneous Localization and Mapping)是业界公认视觉领域空间定位技术的前沿方向,中文译名为“同步定位与地图构建”,它主要用于解决机器人在未知环境运动时的定位和地图构建问题.本次阅面科技资深研究员赵季也将从SLAM方向着手,为大家展现更深层次的技术干货. 赵季:阅面科技资深研究员.2012年获华中科技大学博士学位,2012年至2014年在CMU机器人研究所做博士后.曾在三星研究院从事深度相机.SLAM.人机交互方面的研究.目前专注于空间感知技术的研发…
转载请注明出处,谢谢 原创作者:Mingrui 原创链接:https://www.cnblogs.com/MingruiYu/p/12360913.html 本文要点: ORB-SLAM2 LocalMapping 线程 论文内容介绍 ORB-SLAM2 LocalMapping 线程 代码结构介绍 写在前面 之前的 ORB-SLAM2 系列文章中,我们已经对 Tracking 线程和其中的单目初始化部分进行了介绍.我们将在本文中,对 ORB-SLAM2 系统的 LocalMapping 线程进…
转载请注明出处,谢谢 原创作者:Mingrui 原创链接:https://www.cnblogs.com/MingruiYu/p/12369339.html 本文要点: ORB-SLAM2 LoopClosing 线程 论文内容介绍 ORB-SLAM2 LoopClosing 线程 代码结构介绍 写在前面 之前的 ORB-SLAM2 系列文章中,我们已经对 Tracking 线程和 LocalMapping 进行了介绍.我们将在本文中,对 ORB-SLAM2 系统的 LoopClosing 线程…
tracking线程 Tracking线程的主要工作是从图像中提取ORB特征,根据上一帧进行姿态估计或者进行通过全局重定位初始化位姿,然后跟踪已经重建的局部地图,优化位姿,再根据一些规则确定新的关键帧,将这些关键帧送给localmapping线程 1. 基本流程 首先从主线程system中的GrabImageMonocular()函数开始,进行图像的预处理和Frame的构造,Frame构造完成后真正进入Tracking. ↓↓↓主要看下面这张图↓↓↓↑↑↑主要看上面这张图↑↑↑ 2. 各部分详解…