update ecl/EKF with improved covariance prediction stability and change default IMU integration period 4000 us -> 2500 us

- bring in PX4/ecl#795 "EKF: Improve covariance prediction stability"
    - the ecl/EKF filter update period has changed from 8 ms to 10 ms
 - change default integration period 4000 us -> 2500 us (aligns with new EKF filter update period)
This commit is contained in:
Daniel Agar
2020-04-23 13:55:34 -04:00
committed by GitHub
parent 5819c82678
commit 31f3a21849
25 changed files with 26 additions and 26 deletions
@@ -124,7 +124,7 @@ void PX4Accelerometer::set_update_rate(uint16_t rate)
const uint32_t update_interval = 1000000 / rate;
// TODO: set this intelligently
_integrator_reset_samples = 4000 / update_interval;
_integrator_reset_samples = 2500 / update_interval;
}
void PX4Accelerometer::update(hrt_abstime timestamp_sample, float x, float y, float z)
@@ -98,7 +98,7 @@ private:
hrt_abstime _status_last_publish{0};
Integrator _integrator{4000, false};
Integrator _integrator{2500, false};
matrix::Vector3f _calibration_scale{1.f, 1.f, 1.f};
matrix::Vector3f _calibration_offset{0.f, 0.f, 0.f};
+1 -1
View File
@@ -48,7 +48,7 @@
class Integrator
{
public:
Integrator(uint32_t auto_reset_interval = 4000 /* 250 Hz */, bool coning_compensation = false);
Integrator(uint32_t auto_reset_interval = 2500 /* 400 Hz */, bool coning_compensation = false);
~Integrator() = default;
/**
+1 -1
View File
@@ -126,7 +126,7 @@ void PX4Gyroscope::set_update_rate(uint16_t rate)
const uint32_t update_interval = 1000000 / rate;
// TODO: set this intelligently
_integrator_reset_samples = 4000 / update_interval;
_integrator_reset_samples = 2500 / update_interval;
}
void PX4Gyroscope::update(hrt_abstime timestamp_sample, float x, float y, float z)
+1 -1
View File
@@ -100,7 +100,7 @@ private:
hrt_abstime _status_last_publish{0};
Integrator _integrator{4000, true};
Integrator _integrator{2500, true};
matrix::Vector3f _calibration_offset{0.f, 0.f, 0.f};