orbSLAM2 之 追踪

orbSLAM2 之 追踪

      • 简介:
      • 流程:

简介:

TRACKING线程图像预处理之外的内容。
估计当前帧的位姿,并决定是否创建和创建新关键帧。
函数Tracking::Tack()。

流程:

1,如果系统还没有初始化,进行初始化。
  双目/RGBD 初始化:函数StereoInitialization()。
  单目初始化:函数MonocularInitialization()。
  
2,如果已经初始化,且状态(mState)=OK,则初步计算当前帧的位姿(SLAM系统)。
  如果当前帧是初始化后的第二帧,或者上一帧的速度(mVelocity)无效,则采用追踪参考关键帧计算。
  反之,采用运动模型追踪计算。
  如果运动模型追踪计算失败,则采用追踪参考关键帧计算

3,如果已经初始化,但状态(mState)=LOST,则重定位,函数Relocalization()。

4,如果当前帧位姿初步计算成功,则追踪局部地图。函数TrackLocalMap()。

5,如果[追踪局部地图]成功,则:
  更新运动模型(帧速度mVelocity);
  去除当前帧匹配的地图点中的外点;
  判断是否创建新关键帧,如是,则创建新关键帧(含相应地图点)。
  函数:NeedNewKeyFrame() 及  CreateNewKeyFrame()。

6,如果[追踪局部地图]失败,则:
  判断已有的关键帧是否超过5个,如不到5个,则重置系统,函数Reset()。

你可能感兴趣的:(orbSLAM2笔记,orbSLAM2)