forked from Archive/PX4-Autopilot
EKF: Retain minimum Kalman update rate
This commit is contained in:
parent
c599cf1256
commit
4d7cc41921
|
@ -177,6 +177,7 @@ private:
|
|||
hrt_abstime _last_accel;
|
||||
hrt_abstime _last_mag;
|
||||
unsigned _prediction_steps;
|
||||
uint64_t _prediction_last;
|
||||
|
||||
struct sensor_combined_s _sensor_combined;
|
||||
|
||||
|
|
|
@ -157,6 +157,7 @@ AttitudePositionEstimatorEKF::AttitudePositionEstimatorEKF() :
|
|||
_last_accel(0),
|
||||
_last_mag(0),
|
||||
_prediction_steps(0),
|
||||
_prediction_last(0),
|
||||
|
||||
_sensor_combined{},
|
||||
|
||||
|
@ -997,11 +998,12 @@ void AttitudePositionEstimatorEKF::updateSensorFusion(const bool fuseGPS, const
|
|||
_covariancePredictionDt += _ekf->dtIMU;
|
||||
|
||||
// only fuse every few steps
|
||||
if (_prediction_steps < MAX_PREDICITION_STEPS) {
|
||||
if (_prediction_steps < MAX_PREDICITION_STEPS && ((hrt_absolute_time() - _prediction_last) < 20 * 1000)) {
|
||||
_prediction_steps++;
|
||||
return;
|
||||
} else {
|
||||
_prediction_steps = 0;
|
||||
_prediction_last = hrt_absolute_time();
|
||||
}
|
||||
|
||||
// perform a covariance prediction if the total delta angle has exceeded the limit
|
||||
|
|
Loading…
Reference in New Issue