Factors in a non-key frame or null frame
In the context of a factor:
-
Linking means adding
shared_from_this
to the parent's list of children (Feature
) and keep its pointer. Also, for the other "constrained" wolf nodes (Landmark
,Frame
,...). -
Registering means notifying
Problem
about the existence ofthis
, to update the solver.
Then, in two cases the factor shouldn't be registered:
- It is not indirectly linked to
Problem
: this->feature->capture->frame->trajectory->problem any of these nodes isnullptr
. - The frame is not a key-frame, this frame is not estimated (not in the solver).
For solving 1, the related issue #233 (closed) would be enough.
For solving 2, some work has to be done in:
-
FactorBase::setProblem()
checking if the frame is key before callinggetProblem()->notifyFactor(shared_from_this(),ADD)
. -
FrameBase::setKey()/setAux()
notifying the addition of the factors of this frame. (Analogously,FrameBase::setNonEstimated()
should notify the removal of the factors).
Edited by Joan Vallvé Navarro