ORB-SLAM2第四节---跟踪线程(阶段一)

1.参考帧跟踪

应用场景:刚刚初始化  /  恒速模型失败

流程:

  1. 将当前普通帧的描述子转化为词袋向量。
  2. 通过词袋加快普通帧和关键帧之间的特征点匹配,记录特征匹配成功后当前帧每个特征点对应的地图点。
  3. 将上一帧的位姿作为当前帧位姿,通过3D-2D重投影误差来校准位子,BA优化仅优化位姿。
  4. 剔除优化后的匹配点中的外点。并通过成功匹配的地图点数来判断是否追踪成功。

代码: 

2.恒速模型跟踪 

 从上一帧到当前最新帧之间的位姿变换和上上帧到上一帧的位姿变换相同。  T=VT  上一帧的位姿是通过其对应的参考帧及参考帧到上一帧的相对位姿更新的,速度是上上帧到上一帧计算的。

 流程:

  1. 更新上一帧位姿。
  2. 根据之前估计的速度,用恒速模型得到当前帧的初始位姿,用上一帧的地图点进行投影匹配,如果匹配点不够,扩大搜索半径再试一次,利用3D-2D投影关系,优化当前帧位姿。
  3. 剔除优化后的匹配点中的外点。并通过成功匹配的地图点数来判断是否追踪成功。

代码: 

3.重定位跟踪

 流程:

  1. 计算当前帧特征点的词袋向量。
  2. 利用词袋找候选重定位关键帧。
  3. 匹配点足够的情况下用EPnP迭代初始位姿。
  4. 选择上一步的内点进行BA优化,仅优化位姿。
  5. 统计BA内点,如果不足,则通过投影的方式将关键帧中未匹配的地图点投影到当前帧,生成新的匹配关系。再进行一次BA优化。
  6. 重新进行投影搜索匹配来增加匹配点的数量。
  7. 达到阈值再进行一次BA。

代码: 

你可能感兴趣的:(机器人)