回环检测模块,需要插入帧到队列,然后在线程中运行主流程。

关键接口

  • 构造函数:接受地图、关键帧数据库和词典。

    LoopClosing(Map* pMap, KeyFrameDatabase* pDB, ORBVocabulary* pVoc,const bool bFixScale);
    

    FixScale 表示尺度是否固定。对单目而言,尺度是不固定的(所以是 7dof). 对双目/RGB-D, 尺度固定。

  • 线程主函数:void Run();
  • 插入新关键帧:void InsertKeyFrame(KeyFrame *pKF);
  • 运行 Global BA (GBA): void RunGlobalBundleAdjustment(unsigned long nLoopKF); 还有查询 GBA 状态的函数: 是否 GBA 在运行、是否 GBA 已结束。
  • 请求重置
  • 请求结束、是否已结束。

关键数据

  • 回环关键帧队列: std::list<KeyFrame*>