2727
2828namespace form {
2929
30- using FrameIndex = size_t ;
30+ using ScanIndex = size_t ;
3131
3232// / @brief Scan representation
3333struct Scan {
34- // / @brief Index of the frame
34+ // / @brief Index of the scan
3535 size_t idx;
3636
37- // / @brief Number of times the frame has gone unconnected to recent frames
38- // / (only used if scan becomes a keyframe )
37+ // / @brief Number of times the scan has gone unconnected to recent scans
38+ // / (only used if scan becomes a keyscan )
3939 size_t unused_count = 0 ;
4040
41- // / @brief Size of the frame (number of features)
41+ // / @brief Size of the scan (number of features)
4242 size_t size = 0 ;
4343
4444 // / @brief Constructor
@@ -47,18 +47,18 @@ struct Scan {
4747
4848// / @brief Keyscan manager
4949// /
50- // / Maintains a set of recent frames and keyframes , adding/removing them based on
51- // / connectivity to recent frames
50+ // / Maintains a set of recent scans and keyscans , adding/removing them based on
51+ // / connectivity to recent scans
5252class KeyScanner {
5353public:
5454 // / @brief Parameters for the keyscanner
5555 struct Params {
56- // / @brief Maximum number of keyframes to keep
57- int64_t max_num_keyframes = 50 ;
58- // / @brief Maximum number of steps a keyframe can go unused before being removed
59- int64_t max_steps_unused_keyframe = 10 ;
60- // / @brief Maximum number of recent frames to keep
61- size_t max_num_recent_frames = 10 ;
56+ // / @brief Maximum number of keyscans to keep
57+ int64_t max_num_keyscans = 50 ;
58+ // / @brief Maximum number of steps a keyscan can go unused before being removed
59+ int64_t max_steps_unused_keyscan = 10 ;
60+ // / @brief Maximum number of recent scans to keep
61+ size_t max_num_recent_scans = 10 ;
6262 // / @brief Keyscan matching ratio
6363 double keyscan_match_ratio = 0.1 ;
6464 };
@@ -67,11 +67,11 @@ class KeyScanner {
6767 // / @brief Parameters
6868 Params m_params;
6969
70- // / @brief Recent frames
71- std::deque<Scan> m_recent_frames ;
70+ // / @brief Recent scans
71+ std::deque<Scan> m_recent_scans ;
7272
73- // / @brief Key frames
74- std::deque<Scan> m_keyframes ;
73+ // / @brief Key scans
74+ std::deque<Scan> m_keyscans ;
7575
7676public:
7777 // / @brief Default constructor
@@ -81,36 +81,35 @@ class KeyScanner {
8181 KeyScanner (const Params ¶ms) : m_params(params) {}
8282
8383 // ------------------------- Doers ------------------------- //
84- // / @brief Update the keyscanner with a new frame .
84+ // / @brief Update the keyscanner with a new scan .
8585 // /
86- // / Will perform all the transitions from recent frame to keyframe and
86+ // / Will perform all the transitions from recent scan to keyscan and
8787 // / marginalization checks.
8888 // /
89- // / @param idx Index of the new frame
90- // / @param size Size of the new frame (number of features)
91- // / @param connections Function that returns the number of connections a frame
92- // / has to recent frames
93- // / @return Vector of frame indices that need to be marginalized out
94- std::vector<FrameIndex>
95- step (FrameIndex idx, size_t size,
96- std::function<size_t (FrameIndex)> connections) noexcept ;
89+ // / @param idx Index of the new scan
90+ // / @param size Size of the new scan (number of features)
91+ // / @param connections Function that returns the number of connections a scan
92+ // / has to recent scans
93+ // / @return Vector of scan indices that need to be marginalized out
94+ std::vector<ScanIndex> step (ScanIndex idx, size_t size,
95+ std::function<size_t (ScanIndex)> connections) noexcept ;
9796
9897 // ------------------------- Getters ------------------------- //
99- // / @brief Get the number of frames being tracked
98+ // / @brief Get the number of scans being tracked
10099 const size_t size () const noexcept {
101- return m_keyframes .size () + m_recent_frames .size ();
100+ return m_keyscans .size () + m_recent_scans .size ();
102101 }
103- // / @brief Get newest recent frame index
104- const size_t newest_rf () const noexcept { return m_recent_frames .back ().idx ; }
102+ // / @brief Get newest recent scan index
103+ const size_t newest_rf () const noexcept { return m_recent_scans .back ().idx ; }
105104
106- // / @brief Get oldest recent frame index
107- const size_t oldest_rf () const noexcept { return m_recent_frames .front ().idx ; }
105+ // / @brief Get oldest recent scan index
106+ const size_t oldest_rf () const noexcept { return m_recent_scans .front ().idx ; }
108107
109- // / @brief Get newest keyframe index
110- const size_t newest_kf () const noexcept { return m_keyframes .back ().idx ; }
108+ // / @brief Get newest keyscan index
109+ const size_t newest_kf () const noexcept { return m_keyscans .back ().idx ; }
111110
112- // / @brief Get oldest keyframe index
113- const size_t oldest_kf () const noexcept { return m_keyframes .front ().idx ; }
111+ // / @brief Get oldest keyscan index
112+ const size_t oldest_kf () const noexcept { return m_keyscans .front ().idx ; }
114113};
115114
116115} // namespace form
0 commit comments