Browse Source

EKF: Reset the vertical position states if height fusion times out

master
Paul Riseborough 9 years ago committed by Roman
parent
commit
d8627c6aaf
  1. 8
      EKF/control.cpp

8
EKF/control.cpp

@ -96,6 +96,14 @@ void Ekf::controlFusionModes() @@ -96,6 +96,14 @@ void Ekf::controlFusionModes()
}
}
// Handle the case where we have rejected height measurements for an extended period
// This excessive vibration levels can cause this so a reset gives the filter a chance to recover
// After 10 seconds without aiding we reset to the height measurement provided the data is fresh
if ((_time_last_imu - _time_last_hgt_fuse > 10e6) && (_time_last_imu - _time_last_baro < 5e5)) {
// Reset vertical position and velocity states to the last measurement
resetHeight();
}
// handle the case when we are relying on optical flow fusion and lose it
if (_control_status.flags.opt_flow && !_control_status.flags.gps) {
// TODO

Loading…
Cancel
Save