摘要: 闭环这一部分,主要工作就是找出闭环,并且找出闭环之后可以优化关键帧位姿、地图点。 主要的步骤也是在那个经典的论文图里面。这里就不贴出图了。这些讲重要的函数。 这个函数对应论文VII的A部分。Loop Candidates Detection。 第一步:计算当前帧mpCurrentKF和每一个与当前帧 阅读全文
posted @ 2017-06-13 15:21 功夫Panda1 阅读(608) 评论(0) 推荐(0) 编辑
摘要: 这部分主要是处理每个新的关键帧,加入局部地图,该关键帧里面的合适的关键点要变成地图点。 主要的步骤:论文里面说的非常清楚,代码也是跟着论文的策略。见下图: 这图十分简洁清楚的将各个部分的具体步骤说的很清楚。 LOCAL MAPPING 的具体操作: a:新来的关键帧插入到局部地图。( 对应论文的第V 阅读全文
posted @ 2017-06-13 15:20 功夫Panda1 阅读(974) 评论(0) 推荐(0) 编辑
摘要: 一、直接上图,清楚明了。(来自论文) 我们注意到TRACKING线程,很清楚明白的告诉了我们是如何跟踪的,第一,提取ORB特征;第二,进行地图初始化(如果没初始化的话)。第三,初始位置估计(这里用3种模型,代码在这里经过了很多判断来选择这三种模型的其中一种)得到是一个很粗略的初始位姿;第四,跟踪局部 阅读全文
posted @ 2017-06-13 15:19 功夫Panda1 阅读(620) 评论(0) 推荐(0) 编辑
摘要: orb-slam2 Inlitializer.h 头文件的学习 a.预备知识,主要读取了作者的论文。 作者在论文中提到,这个头文件定义的东西全是用于单目的,双目和RGBD不需要初始化。地图初始化的目的就是得到两帧的相对运动,R T, 然后根据 R T 和这两帧匹配好的关键点,三角化出初始的三 维地图 阅读全文
posted @ 2017-06-13 15:17 功夫Panda1 阅读(452) 评论(0) 推荐(0) 编辑
摘要: 1.MapPoint.h 里面有个类MapPoint,其有两个构造函数。分别为,参考帧是关键帧和参入是普通帧的情况。 当参考帧为关键帧的时候,在构造函数里面只是简单的设置下这个地图点的3D坐标。设置这个地图的编号,初始化mNormalVector 。当传入为普通帧的时候,设置这个点的3D坐标,mNo 阅读全文
posted @ 2017-06-13 15:10 功夫Panda1 阅读(1314) 评论(0) 推荐(0) 编辑
摘要: 1.公有函数: 构造函数:输入进来一帧,该帧作为关键帧。将该帧传入地图、关键帧的集合。 根据给的量设置公有变量,和获得公有量。 计算词袋,mBowVec,mFeatVec。上一篇讲过了,只是注意mFeatVec指定了层数。 当前帧与传入的pKF(输入)有共视的时候,增加连接关系。weight(输入) 阅读全文
posted @ 2017-06-13 15:07 功夫Panda1 阅读(1221) 评论(0) 推荐(0) 编辑
摘要: 写在前面: orb_slam是自己学习的第一个完整的开源slam系统,将自己的粗略理解写成博客,有理解不到位和出错的地方还望各位大神前辈指出。文中涉及的公式理论,主要是参考了ORB_SLAM论文和高博的视觉SLAM14讲,希望大家共同进步。博客的主要内容是对各个函数代码的理解,网上也有很多优秀的博客 阅读全文
posted @ 2017-06-13 14:59 功夫Panda1 阅读(1890) 评论(0) 推荐(0) 编辑