predict derivative works !
parent
3a941a0ef4
commit
1ce6ab893d
|
|
@ -252,11 +252,19 @@ Vector9 PreintegrationBase::recombinedPrediction(const NavState& state_i,
|
||||||
NavState PreintegrationBase::predict(const NavState& state_i,
|
NavState PreintegrationBase::predict(const NavState& state_i,
|
||||||
const imuBias::ConstantBias& bias_i, OptionalJacobian<9, 9> H1,
|
const imuBias::ConstantBias& bias_i, OptionalJacobian<9, 9> H1,
|
||||||
OptionalJacobian<9, 6> H2) const {
|
OptionalJacobian<9, 6> H2) const {
|
||||||
Vector9 biasCorrected = biasCorrectedDelta(bias_i, H2);
|
Matrix96 D_biasCorrected_bias;
|
||||||
Matrix9 D_delta_biasCorrected;
|
Vector9 biasCorrected = biasCorrectedDelta(bias_i,
|
||||||
Vector9 delta = recombinedPrediction(state_i, biasCorrected, H1, H2 ? &D_delta_biasCorrected : 0);
|
H2 ? &D_biasCorrected_bias : 0);
|
||||||
if (H2) *H2 = D_delta_biasCorrected * (*H2);
|
Matrix9 D_delta_state, D_delta_biasCorrected;
|
||||||
return state_i.retract(delta);
|
Vector9 delta = recombinedPrediction(state_i, biasCorrected,
|
||||||
|
H1 ? &D_delta_state : 0, H2 ? &D_delta_biasCorrected : 0);
|
||||||
|
Matrix9 D_predict_state, D_predict_delta;
|
||||||
|
NavState state_j = state_i.retract(delta, D_predict_state, D_predict_delta);
|
||||||
|
if (H1)
|
||||||
|
*H1 = D_predict_state + D_predict_delta * D_delta_state;
|
||||||
|
if (H2)
|
||||||
|
*H2 = D_predict_delta * D_delta_biasCorrected * D_biasCorrected_bias;
|
||||||
|
return state_j;
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue