25 #include "LocalMapping.h"    27 #include "ORBVocabulary.h"    30 #include "KeyFrameDatabase.h"    34 #include "Thirdparty/g2o/g2o/types/types_seven_dof_expmap.h"    41 class KeyFrameDatabase;
    48     typedef pair<set<KeyFrame*>,
int> ConsistentGroup;    
    49     typedef map<KeyFrame*,g2o::Sim3,std::less<KeyFrame*>,
    50         Eigen::aligned_allocator<std::pair<const KeyFrame*, g2o::Sim3> > > KeyFrameAndPose;
    68     void RunGlobalBundleAdjustment(
unsigned long nLoopKF);
    71         unique_lock<std::mutex> lock(mMutexGBA);
    75         unique_lock<std::mutex> lock(mMutexGBA);
    83     EIGEN_MAKE_ALIGNED_OPERATOR_NEW
    87     bool CheckNewKeyFrames();
    93     void SearchAndFuse(
const KeyFrameAndPose &CorrectedPosesMap);
    97     void ResetIfRequested();
    98     bool mbResetRequested;
    99     std::mutex mMutexReset;
   103     bool mbFinishRequested;
   105     std::mutex mMutexFinish;
   111     ORBVocabulary* mpORBVocabulary;
   115     std::list<KeyFrame*> mlpLoopKeyFrameQueue;
   117     std::mutex mMutexLoopQueue;
   120     float mnCovisibilityConsistencyTh;
   125     std::vector<ConsistentGroup> mvConsistentGroups;
   126     std::vector<KeyFrame*> mvpEnoughConsistentCandidates;
   127     std::vector<KeyFrame*> mvpCurrentConnectedKFs;
   128     std::vector<MapPoint*> mvpCurrentMatchedPoints;
   129     std::vector<MapPoint*> mvpLoopMapPoints;
   133     long unsigned int mLastLoopKFid;
   139     std::mutex mMutexGBA;
   140     std::thread* mpThreadGBA;
   151 #endif // LOOPCLOSING_H Definition: Tracking.h:53
Definition: KeyFrame.h:43
Definition: LoopClosing.h:44
Definition: KeyFrameDatabase.h:42
Definition: Converter.cpp:24
Definition: LocalMapping.h:40