MCPcopy Create free account
hub / github.com/AutonomousFieldRoboticsLab/SVIn / Keyframe

Class Keyframe

pose_graph/include/pose_graph/Keyframe.h:32–168  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

30};
31
32class Keyframe {
33 public:
34 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
35 Keyframe(int64_t _time_stamp,
36 std::vector<Eigen::Vector3i>& _point_ids, // NOLINT
37 int _index,
38 Eigen::Vector3d& _svin_T_w_i, // NOLINT
39 Eigen::Matrix3d& _svin_R_w_i, // NOLINT
40 cv::Mat& _image, // NOLINT
41 std::vector<cv::Point3f>& _point_3d, // NOLINT
42 std::vector<cv::KeyPoint>& _point_2d_uv, // NOLINT
43 std::map<Keyframe*, int>& KFcounter, // NOLINT
44 int _sequence,
45 BriefVocabulary* vocBrief,
46 const Parameters& params,
47 const bool vio_keyframe = true);
48
49 Keyframe(int64_t _time_stamp,
50 int _index,
51 Eigen::Vector3d& _svin_T_w_i, // NOLINT
52 Eigen::Matrix3d& _svin_R_w_i, // NOLINT
53 std::map<Keyframe*, int>& KFcounter, // NOLINT
54 int _sequence,
55 const Parameters& params,
56 const bool is_vio_keyframe = false);
57
58 bool findConnection(Keyframe* old_kf);
59 void computeWindowBRIEFPoint();
60 void computeBRIEFPoint();
61
62 int HammingDis(const DVision::BRIEF256::bitset& a, const DVision::BRIEF256::bitset& b);
63 bool searchInAera(const DVision::BRIEF256::bitset window_descriptor,
64 const std::vector<DVision::BRIEF256::bitset>& descriptors_old,
65 const std::vector<cv::KeyPoint>& keypoints_old,
66 const std::vector<cv::KeyPoint>& keypoints_old_norm,
67 cv::Point2f& best_match, // NOLINT
68 cv::Point2f& best_match_norm); // NOLINT
69 void searchByBRIEFDes(std::vector<cv::Point2f>& matched_2d_old, // NOLINT
70 std::vector<cv::Point2f>& matched_2d_old_norm, // NOLINT
71 std::vector<uchar>& status, // NOLINT
72 const std::vector<DVision::BRIEF256::bitset>& descriptors_old,
73 const std::vector<cv::KeyPoint>& keypoints_old,
74 const std::vector<cv::KeyPoint>& keypoints_old_norm);
75 void PnPRANSAC(const std::vector<cv::Point2f>& matched_2d_old_norm,
76 const std::vector<cv::Point3f>& matched_3d,
77 std::vector<uchar>& status, // NOLINT
78 Eigen::Vector3d& PnP_T_old, // NOLINT
79 Eigen::Matrix3d& PnP_R_old); // NOLINT
80 void getSVInPose(Eigen::Vector3d& _T_w_i, Eigen::Matrix3d& _R_w_i); // NOLINT
81 void getPose(Eigen::Vector3d& _T_w_i, Eigen::Matrix3d& _R_w_i); // NOLINT
82 void updatePose(const Eigen::Vector3d& _T_w_i, const Eigen::Matrix3d& _R_w_i);
83 void updateSVInPose(const Eigen::Vector3d& _T_w_i, const Eigen::Matrix3d& _R_w_i); // NOLINT
84 void updateLoop(Eigen::Matrix<double, 8, 1>& _loop_info); // NOLINT
85
86 Eigen::Vector3d getLoopRelativeT();
87 double getLoopRelativeYaw();
88 Eigen::Quaterniond getLoopRelativeQ();
89

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected