Step 2: 本文默认跟踪功能是进入正常的SLAM模式, 即有地图更新功能. 首先判定mState状态是否为OK状态(初始化成功, 或跟踪成功后, mState就被赋值为OK状态) if(mState==OK) 若跟踪状态正常, 即mState==OK. Step 2.1: 检查并更新上一帧被替换的MapPoints 因为在局部建图线程中可能对原有的地图点进行替换, ...
ORBmatchermatcher(0.9,true);// Update last frame pose according to its reference keyframe// Create "visual odometry" points// 步骤1:对于双目或rgbd摄像头,根据深度值为上一关键帧生成新的MapPoints// (跟踪过程中需要将当前帧与上一帧进行特征点匹配,将上一帧的MapPoints投影到当前帧可以缩小匹配范围)//...
ORB-SLAM2源码系列--跟踪线程(重定位跟踪) LBK 算法工程师概述 当跟踪状态不正常的时候, 使用重定位跟踪进行挽回. 流程 Step 1: 计算当前帧特征点的词袋向量 Step 2: 用词袋找到与当前帧相似的候选关键帧 Step 3: 遍历所有的候选关键帧, 通过词袋进行快速匹配, 用匹配结果初始化PnP Solver. ...
ORB-SLAM2 系统有两种模式(可以由使用者手动切换),其以 mbOnlyTracking 变量进行区分: SLAM 模型:所有线程都正常工作 Localization 模式:只有 Tracking 线程工作,其它线程均不工作 同时,Localization 模式中也有两种情况(系统自动判定,根据当前跟踪情况自动切换),其以 mbVO 变量进行区分: VO 情况:Visual Odometry,上...
下图即为跟踪线程的总体流程,请参考: 该流程中所涉及主要内容如下: 构建 图像帧 1、图像金字塔 2、计算fast特征点及描述子 3、特征点旋转不变性 4、特征点均匀化-四叉树 单目 初始化 1、图像帧筛选 2、两图像帧反投影匹配 3、归一化 4、计算H矩阵和F矩阵及评分 ...
以关键帧为血脉,贯穿整个SLAM系统 (2)三大线程 跟踪线程: (1)ORB特征提取 8层金字塔提取fast角点,划分网格保证特征点提取的均匀性; (2)通过前一帧图像估计相机的初始位姿 匀速模型预测当前相机的位置,搜索上一帧图像中的特征点在地图中对应的点云与当前帧图像匹配进行当前帧相机位姿的优化; ...
Tracking线程的局部地图跟踪,首先每次更新当前帧的局部关键帧,再由局部关键帧得到局部地图点。而当前帧的局部关键帧是:(1)和当前帧共视(有共同地图点)的关键帧,(2)以及(1)中每个关键帧的最强共视关键帧10帧,(3)还有(1)中的的孩子和父亲关键帧统统拉入伙。然后通过局部关键帧得到局部地图点,用于Tracking线程的位...
ORB-SLAM2代码详解07_跟踪线程Tracking.pdf,各成员函数/变量 跟踪状态 初始化 单目相机初始化: MonocularInitialization() 双目/ RGBD相机初始化: StereoInitialization() 初始位姿估计 根据恒速运动模型估计初始位姿: TrackWithMotionModel() 根据参考帧估计位姿: TrackRef
跟踪线程track() 判断mState==NO_IMAGES_YET 是 执行mState=NO_INITIALIZED 判断mState==NO_INITIALIZED 是 此时情况为:1.还未获得初始帧 2.已经获得初始帧,但还未初始化成功 执行单目初始化MonocularInitialization() 判断mState!=OK 是 执行return