sensors: wait for real sample rate to initialize LowPassFilter2p

This commit is contained in:
Daniel Agar
2021-06-01 08:58:10 -04:00
parent 438b0abc7a
commit d430e13401
3 changed files with 5 additions and 6 deletions
@@ -49,6 +49,8 @@ template<typename T>
class LowPassFilter2p
{
public:
LowPassFilter2p() = default;
LowPassFilter2p(float sample_freq, float cutoff_freq)
{
// set initial parameters
@@ -93,10 +93,9 @@ private:
matrix::Vector3f _acceleration_prev{};
static constexpr const float kInitialRateHz{1000.f}; /**< sensor update rate used for initialization */
float _filter_sample_rate{NAN};
math::LowPassFilter2p<matrix::Vector3f> _lp_filter{kInitialRateHz, 30.f};
math::LowPassFilter2p<matrix::Vector3f> _lp_filter{};
DEFINE_PARAMETERS(
(ParamFloat<px4::params::IMU_ACCEL_CUTOFF>) _param_imu_accel_cutoff,
@@ -130,10 +130,8 @@ private:
float _filter_sample_rate_hz{NAN};
static constexpr const float kInitialRateHz{1000.f}; /**< sensor update rate used for initialization */
// angular velocity filters
math::LowPassFilter2p<float> _lp_filter_velocity[3] {{kInitialRateHz, 30.f}, {kInitialRateHz, 30.f}, {kInitialRateHz, 30.f}};
math::LowPassFilter2p<float> _lp_filter_velocity[3] {};
math::NotchFilter<float> _notch_filter_velocity[3] {};
#if !defined(CONSTRAINED_FLASH)
@@ -167,7 +165,7 @@ private:
#endif // !CONSTRAINED_FLASH
// angular acceleration filter
math::LowPassFilter2p<float> _lp_filter_acceleration[3] {{kInitialRateHz, 30.f}, {kInitialRateHz, 30.f}, {kInitialRateHz, 30.f}};
math::LowPassFilter2p<float> _lp_filter_acceleration[3] {};
uint32_t _selected_sensor_device_id{0};