mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-19 23:23:34 +08:00
EKF: Only reset necessary terms when mag fusion covariance reset required
Only the quaternion and mag fusion state covariances are used in the mag fusion calculations.
This commit is contained in:
+6
-6
@@ -156,8 +156,8 @@ void Ekf::fuseMag()
|
||||
// the innovation variance contribution from the state covariances is negative which means the covariance matrix is badly conditioned
|
||||
_fault_status.flags.bad_mag_x = true;
|
||||
|
||||
// we need to reinitialise the covariance matrix and abort this fusion step
|
||||
initialiseCovariance();
|
||||
// we need to re-initialise covariances and abort this fusion step
|
||||
resetMagCovariance();
|
||||
ECL_ERR("EKF magX fusion numerical error - covariance reset");
|
||||
return;
|
||||
}
|
||||
@@ -208,8 +208,8 @@ void Ekf::fuseMag()
|
||||
// the innovation variance contribution from the state covariances is negtive which means the covariance matrix is badly conditioned
|
||||
_fault_status.flags.bad_mag_y = true;
|
||||
|
||||
// we need to reinitialise the covariance matrix and abort this fusion step
|
||||
initialiseCovariance();
|
||||
// we need to re-initialise covariances and abort this fusion step
|
||||
resetMagCovariance();
|
||||
ECL_ERR("EKF magY fusion numerical error - covariance reset");
|
||||
return;
|
||||
}
|
||||
@@ -260,8 +260,8 @@ void Ekf::fuseMag()
|
||||
// the innovation variance contribution from the state covariances is negtive which means the covariance matrix is badly conditioned
|
||||
_fault_status.flags.bad_mag_z = true;
|
||||
|
||||
// we need to reinitialise the covariance matrix and abort this fusion step
|
||||
initialiseCovariance();
|
||||
// we need to re-initialise covariances and abort this fusion step
|
||||
resetMagCovariance();
|
||||
ECL_ERR("EKF magZ fusion numerical error - covariance reset");
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user