WOLF_WARN("SolverCeres::computeCovariances: last KF have null or unregistered state blocks P or V, returning...");
WOLF_WARN_COND(notlast_frame->getStateBlock('P'),"SolverCeres::computeCovariances: KF state block 'P' not found");
WOLF_WARN_COND(last_frame->getStateBlock('P')andnotisStateBlockRegisteredDerived(last_frame->getStateBlock('P')),"SolverCeres::computeCovariances: KF state block 'P' not registered ",last_frame->getStateBlock('P'));
WOLF_WARN_COND(notlast_frame->getStateBlock('V'),"SolverCeres::computeCovariances: KF state block 'V' not found");
WOLF_WARN_COND(last_frame->getStateBlock('V')andnotisStateBlockRegisteredDerived(last_frame->getStateBlock('V')),"SolverCeres::computeCovariances: KF state block 'V' not registered ",last_frame->getStateBlock('V'));
WOLF_DEBUG("SolverCeres::computeCovariances: Frame ",frame->id()," hasn't the state blocks or they are not registered. Trying with the previous one...");
frame=frame->getPreviousFrame();
}
if(notframe)
{
WOLF_WARN("SolverCeres::computeCovariances: Couldn't find a frame with valid and registered state blocks P and V, returning...");
WOLF_WARN("SolverCeres::computeCovariances: last KF have null or unregistered state blocks P, O, V or T, returning...");
WOLF_WARN_COND(notlast_frame->getStateBlock('P'),"SolverCeres::computeCovariances: KF state block 'P' not found");
WOLF_WARN_COND(last_frame->getStateBlock('P')andnotisStateBlockRegisteredDerived(last_frame->getStateBlock('P')),"SolverCeres::computeCovariances: KF state block 'P' not registered ",last_frame->getStateBlock('P'));
WOLF_WARN_COND(notlast_frame->getStateBlock('O'),"SolverCeres::computeCovariances: KF state block 'O' not found");
WOLF_WARN_COND(last_frame->getStateBlock('O')andnotisStateBlockRegisteredDerived(last_frame->getStateBlock('O')),"SolverCeres::computeCovariances: KF state block 'O' not registered ",last_frame->getStateBlock('O'));
WOLF_WARN_COND(notlast_frame->getStateBlock('V'),"SolverCeres::computeCovariances: KF state block 'V' not found");
WOLF_WARN_COND(last_frame->getStateBlock('V')andnotisStateBlockRegisteredDerived(last_frame->getStateBlock('V')),"SolverCeres::computeCovariances: KF state block 'V' not registered ",last_frame->getStateBlock('V'));
WOLF_WARN_COND(notlast_frame->getStateBlock('T'),"SolverCeres::computeCovariances: KF state block 'T' not found");
WOLF_WARN_COND(last_frame->getStateBlock('T')andnotisStateBlockRegisteredDerived(last_frame->getStateBlock('T')),"SolverCeres::computeCovariances: KF state block 'T' not registered ",last_frame->getStateBlock('T'));
WOLF_DEBUG("SolverCeres::computeCovariances: Frame ",frame->id()," hasn't the state blocks or they are not registered. Trying with the previous one...");
frame=frame->getPreviousFrame();
}
if(notframe)
{
WOLF_WARN("SolverCeres::computeCovariances: Couldn't find a frame with valid and registered state blocks P, O, V and CaptureGnss with T, returning...");
WOLF_DEBUG("SolverCeres::computeCovariances: Frame ",frame->id()," hasn't the state blocks or they are not registered. Trying with the previous one...");
frame=frame->getPreviousFrame();
}
if(notframe)
{
WOLF_WARN("SolverCeres::computeCovariances: Couldn't find a frame with valid and registered state blocks P and CaptureGnss with T, returning...");
returnfalse;
}
// only marginals of P and T
WOLF_DEBUG("SolverCeres::computeCovariances: storing pairs of frame ",frame->id()," with state blocks: "