Class LoopClosureHandler¶
Defined in File loop-closure-handler.h
Class Documentation¶
-
class
loop_closure_handler
::
LoopClosureHandler
¶ Public Types
-
typedef std::unordered_map<FrameKeypointIndexPair, vi_map::LandmarkIdSet>
KeypointToLandmarksMap
¶
-
typedef std::vector<std::pair<FrameKeypointIndexPair, vi_map::LandmarkId>>
KeypointToLandmarkVector
¶
-
typedef std::vector<std::pair<vi_map::LandmarkId, vi_map::LandmarkId>>
LandmarkToLandmarkVector
¶
-
typedef std::unordered_map<vi_map::LandmarkId, vi_map::LandmarkId>
LandmarkToLandmarkMap
¶
-
typedef std::pair<Eigen::Vector3d, Eigen::Vector3d>
Vector3dPair
¶
-
typedef Aligned<std::vector, Vector3dPair>
MergedLandmark3dPositionVector
¶
-
typedef vi_map::MissionBaseFrameMap
MissionBaseFrameMap
¶
Public Functions
-
explicit
LoopClosureHandler
(vi_map::VIMap *map, LandmarkToLandmarkMap *landmark_id_old_to_new)¶
-
explicit
LoopClosureHandler
(summary_map::LocalizationSummaryMap const *summary_map, LandmarkToLandmarkMap *landmark_id_old_to_new)¶
-
LoopClosureHandler
() = delete¶
-
bool
handleLoopClosure
(const vi_map::LoopClosureConstraint &loop_closure_constraint, bool merge_matching_landmarks, bool add_loopclosure_edges, int *num_inliers, double *inlier_ratio, pose::Transformation *T_G_I_ransac, vi_map::LoopClosureConstraint *inlier_constraints, MergedLandmark3dPositionVector *landmark_pairs_merged, pose_graph::VertexId *vertex_id_closest_to_structure_matches, std::mutex *map_mutex, bool use_random_pnp_seed = true) const¶
-
bool
handleLoopClosure
(const aslam::VisualNFrame &query_vertex_n_frame, const std::vector<vi_map::LandmarkIdList> &query_vertex_landmark_ids, const pose_graph::VertexId &query_vertex_id, const vi_map::VertexKeyPointToStructureMatchList &structure_matches, bool merge_matching_landmarks, bool add_loopclosure_edges, int *num_inliers, double *inlier_ratio, pose::Transformation *T_G_I_ransac, vi_map::VertexKeyPointToStructureMatchList *inlier_structure_matches, MergedLandmark3dPositionVector *landmark_pairs_merged, pose_graph::VertexId *vertex_id_closest_to_structure_matches, std::mutex *map_mutex, bool use_random_pnp_seed = true) const¶
-
void
updateQueryKeyframeInvalidLandmarkAssociations
(const std::vector<int> &inliers, const KeypointToLandmarkVector &query_keypoint_idx_to_landmark_pairs, vi_map::Vertex *query_vertex) const¶
-
void
mergeLandmarks
(const std::vector<int> &inliers, const LandmarkToLandmarkVector &query_landmark_to_map_landmark_pairs, MergedLandmark3dPositionVector *landmark_pairs_actually_merged) const¶
Friends
- friend class LoopClosureHandlerTest
-
typedef std::unordered_map<FrameKeypointIndexPair, vi_map::LandmarkIdSet>