Remove PackKeyFrame
The only thing PackKeyFrame
adds to a Frame
is a time_tolerance
.
Just by this, WOLF now has a complication which is a class PackKeyFrame
which is only used to pass information of created keyframe to other processors to join depending on time_tolerance
.
By adding time_tolerance
to Frame
, we can completely eliminate this class and work simply with Frame
.
EDIT: Decided to remove time tolerance from frames
TODO:
- Remove BufferPackKeyFrame, substitute by plain BufferFrame
- Remove time_tol from kfCallback() API
- Remove time_tol from setPrior() and similar API
-
Move all
checkTimeTolerance()
methods toProcessorBase
- Follow on IMU
- Follow on GNSS
- Follow on laser
- Follow on bodydynamics
Activity
-
Newest first Oldest first
-
Show all activity Show comments only Show history only
- Joan Solà Ortega assigned to @jsola
assigned to @jsola
- Author Owner
@joanvallve I need your approval on this issue to start working on it.
- Author Owner
While writing the documentation, I find useless complications that it's good to remove. This one seems pretty straightforward.
- Owner
Ok for me!
By the way, we still have a pending discussion about the time tolerances. Maybe it is the good moment to have it!
- Author Owner
Yes, let us have this discussion about time tolerances here.
Can you remind me what was your point? You said we only need to check one tolerance. Which one?
Edited by Joan Solà Ortega - Joan Solà Ortega created merge request !431 (merged) to address this issue
created merge request !431 (merged) to address this issue
- Joan Solà Ortega mentioned in merge request !431 (merged)
mentioned in merge request !431 (merged)
- Author Owner
I made almost all changes and it's working.
Need to polish a bit the remaining API to make it nicer and easier.
- Joan Solà Ortega marked the checklist item Add TT to frame as completed
marked the checklist item Add TT to frame as completed
- Joan Solà Ortega marked the checklist item Remove BufferPackKeyFrame, substitute by plain BufferFrame as completed
marked the checklist item Remove BufferPackKeyFrame, substitute by plain BufferFrame as completed
- Joan Solà Ortega changed the description
changed the description
- Joan Solà Ortega changed the description
changed the description
- Joan Solà Ortega marked the checklist item Follow on IMU as completed
marked the checklist item Follow on IMU as completed
- Joan Solà Ortega marked the checklist item Follow on GNSS as completed
marked the checklist item Follow on GNSS as completed
- Joan Solà Ortega marked the checklist item Follow on laser as completed
marked the checklist item Follow on laser as completed
- Joan Solà Ortega marked the checklist item Follow on bodydynamics as completed
marked the checklist item Follow on bodydynamics as completed
- Author Owner
@joanvallve the key point of discussion now is the following:
-
We have
KF.ts
andKF.tt
(timestamp and time tolerance) -
We have
C.ts
andP.tt
(capture timestamp and processor tolerance)
To join a
Capture
with aKeyframe
, the double test now is as follows:// 1. test for KF.tt and P.tt double dt = abs(KF.ts - C.ts); if (dt < KF.tt and dt < P.tt) join(C, KF);
Now if you only want to make one test, then we have two options:
// 2. test only for KF.tt double dt = abs(KF.ts - C.ts); if (dt < KF.tt) join(C, KF); // 3. test only for P.tt double dt = abs(KF.ts - C.ts); if (dt < P.tt) join(C, KF);
If we want option 2, then we need
KF.tt
and so addtime_tolerance
to classFrame
. Work to do:- Modify constructors of
Frame
with atime_tolerance
- Fix all calls to frame constructors
If we want option 3, then it's much easier. Work to do:
- Remove
time_tolerance
from the API ofkeyframeCallback(KF, tt)
.
Edited by Joan Solà Ortega -
- Joan Solà Ortega added Doing label and removed Agreement required label
added Doing label and removed Agreement required label
- Joan Solà Ortega removed Idea label
removed Idea label
- Joan Solà Ortega removed Optimization label
removed Optimization label
- Author Owner
It is also necessary to agree on a unique place to have the functions:
checkTimeTolerance(...) singleCheckTimeTolerance(...) doubleCheckTimeTolerance(...)
Now they are in
Buffer
and also inProcessorTtracker
. - Joan Vallvé Navarro mentioned in issue #430
mentioned in issue #430
- Owner
Agreements:
- Option 3.
- New issue for new functionality: request KF #430
- Joan Solà Ortega marked the checklist item Remove time_tol from kfCallback() API as completed
marked the checklist item Remove time_tol from kfCallback() API as completed
- Joan Solà Ortega changed the description
changed the description
- Joan Solà Ortega changed title from Add time_tolerance field in Frame and remove PackKeyFrame to Remove PackKeyFrame
changed title from Add time_tolerance field in Frame and remove PackKeyFrame to Remove PackKeyFrame
- Joan Solà Ortega changed the description
changed the description
- Joan Solà Ortega closed with merge request !431 (merged)
closed with merge request !431 (merged)
- Joan Solà Ortega mentioned in commit 8a21a73f
mentioned in commit 8a21a73f