Browse Source

AHRS: check for bad values in the error before they can affect DCM

this should fix the DCM renorm errors in autotest, probably caused by
bad climb rates
master
Andrew Tridgell 13 years ago
parent
commit
14cdbd36cb
  1. 6
      libraries/AP_AHRS/AP_AHRS_DCM.cpp

6
libraries/AP_AHRS/AP_AHRS_DCM.cpp

@ -553,6 +553,12 @@ AP_AHRS_DCM::drift_correction(float deltat) @@ -553,6 +553,12 @@ AP_AHRS_DCM::drift_correction(float deltat)
// convert the error term to body frame
error = _dcm_matrix.mul_transpose(error);
if (error.is_nan() || error.is_inf()) {
// don't allow bad values
check_matrix();
return;
}
_error_rp_sum += error.length();
_error_rp_count++;

Loading…
Cancel
Save