mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-04-14 10:07:39 +08:00
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…
x
Reference in New Issue
Block a user