Skip to content

Commit

Permalink
ekf2: only set fault status bad_acc_clipping if clipping frequently
Browse files Browse the repository at this point in the history
  • Loading branch information
dagar committed Jan 27, 2022
1 parent f499749 commit 49d9d1c
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 5 deletions.
2 changes: 2 additions & 0 deletions src/modules/ekf2/EKF/control.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -812,6 +812,8 @@ void Ekf::checkVerticalAccelerationHealth()
_clip_counter--;
}

_fault_status.flags.bad_acc_clipping = _clip_counter > clip_count_limit / 2;

const bool is_clipping_frequently = _clip_counter > 0;

// if vertical velocity and position are independent and agree, then do not require evidence of clipping if
Expand Down
5 changes: 0 additions & 5 deletions src/modules/ekf2/EKF/covariance.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -237,24 +237,19 @@ void Ekf::predictCovariance()
dvxVar = dvyVar = dvzVar = sq(dt * accel_noise);

// Accelerometer Clipping
_fault_status.flags.bad_acc_clipping = false; // reset flag

// delta velocity X: increase process noise if sample contained any X axis clipping
if (_imu_sample_delayed.delta_vel_clipping[0]) {
dvxVar = sq(dt * BADACC_BIAS_PNOISE);
_fault_status.flags.bad_acc_clipping = true;
}

// delta velocity Y: increase process noise if sample contained any Y axis clipping
if (_imu_sample_delayed.delta_vel_clipping[1]) {
dvyVar = sq(dt * BADACC_BIAS_PNOISE);
_fault_status.flags.bad_acc_clipping = true;
}

// delta velocity Z: increase process noise if sample contained any Z axis clipping
if (_imu_sample_delayed.delta_vel_clipping[2]) {
dvzVar = sq(dt * BADACC_BIAS_PNOISE);
_fault_status.flags.bad_acc_clipping = true;
}

// predict the covariance
Expand Down

0 comments on commit 49d9d1c

Please sign in to comment.