EKF: update mag LPF immediately

This commit is contained in:
Daniel Agar 2020-12-08 16:49:52 -05:00 committed by Mathieu Bresciani
parent 398fe159ce
commit a8e0e82858
3 changed files with 2 additions and 9 deletions

View File

@ -97,6 +97,8 @@ void Ekf::controlFusionModes()
_mag_data_ready = _mag_buffer.pop_first_older_than(_imu_sample_delayed.time_us, &_mag_sample_delayed);
if (_mag_data_ready) {
_mag_lpf.update(_mag_sample_delayed.mag);
// if enabled, use knowledge of theoretical magnetic field vector to calculate a synthetic magnetomter Z component value.
// this is useful if there is a lot of interference on the sensor measurement.
if (_params.synthesize_mag_z && (_params.mag_declination_source & MASK_USE_GEO_DECL) && (_NED_origin_initialised || ISFINITE(_mag_declination_gps))) {

View File

@ -762,7 +762,6 @@ private:
// control fusion of magnetometer observations
void controlMagFusion();
void updateMagFilter();
bool noOtherYawAidingThanMag() const;

View File

@ -58,7 +58,6 @@ void Ekf::controlMagFusion()
return;
}
updateMagFilter();
checkMagFieldStrength();
// If we are on ground, reset the flight alignment flag so that the mag fields will be
@ -112,13 +111,6 @@ void Ekf::controlMagFusion()
}
}
void Ekf::updateMagFilter()
{
if (_mag_data_ready) {
_mag_lpf.update(_mag_sample_delayed.mag);
}
}
bool Ekf::noOtherYawAidingThanMag() const
{
// If we are using external vision data or GPS-heading for heading then no magnetometer fusion is used