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