Apply measurementUpdate function

This commit is contained in:
kamilritz
2020-08-24 18:04:57 +10:00
committed by Paul Riseborough
parent 404edde7f3
commit 644e903552
6 changed files with 22 additions and 121 deletions
+3 -16
View File
@@ -203,24 +203,11 @@ void Ekf::fuseSideslip()
Kfusion(22) = HK45*HK52;
Kfusion(23) = HK42*HK52;
// apply covariance correction via P_new = (I -K*H)*P
// first calculate expression for KHP
// then calculate P - KHP
const SquareMatrix24f KHP = computeKHP(Kfusion, Hfusion);
const bool is_fused = measurementUpdate(Kfusion, Hfusion, _beta_innov);
const bool healthy = checkAndFixCovarianceUpdate(KHP);
_fault_status.flags.bad_sideslip = !healthy;
if (healthy) {
// apply the covariance corrections
P -= KHP;
fixCovarianceErrors(true);
// apply the state corrections
fuse(Kfusion, _beta_innov);
_fault_status.flags.bad_sideslip = !is_fused;
if (is_fused) {
_time_last_beta_fuse = _time_last_imu;
}
}