mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-23 04:23:35 +08:00
ekf2: use more efficient covariance update computation
KSK' is faster to compute than KHP and is mathematically equivalent
This commit is contained in:
@@ -109,15 +109,13 @@ void Ekf::fuseSideslip(estimator_aid_source1d_s &sideslip)
|
||||
|
||||
sym::ComputeSideslipHAndK(getStateAtFusionHorizonAsVector(), P, sideslip.innovation_variance, FLT_EPSILON, &H, &K);
|
||||
|
||||
SparseVector24f<0,1,2,3,4,5,6,22,23> H_sparse(H);
|
||||
|
||||
if (update_wind_only) {
|
||||
for (unsigned row = 0; row <= 21; row++) {
|
||||
K(row) = 0.f;
|
||||
}
|
||||
}
|
||||
|
||||
const bool is_fused = measurementUpdate(K, H_sparse, sideslip.innovation);
|
||||
const bool is_fused = measurementUpdate(K, sideslip.innovation_variance, sideslip.innovation);
|
||||
|
||||
sideslip.fused = is_fused;
|
||||
_fault_status.flags.bad_sideslip = !is_fused;
|
||||
|
||||
Reference in New Issue
Block a user