diff --git a/src/drivers/rpm_capture/RPMCapture.cpp b/src/drivers/rpm_capture/RPMCapture.cpp index 4783e5b7ea..432bb21d4b 100644 --- a/src/drivers/rpm_capture/RPMCapture.cpp +++ b/src/drivers/rpm_capture/RPMCapture.cpp @@ -138,7 +138,7 @@ void RPMCapture::Run() const float dt = math::constrain((now - _timestamp_last_update) * 1e-6f, 0.01f, 1.f); _timestamp_last_update = now; _rpm_filter.setParameters(dt, 0.5f); - _rpm_filter.update(rpm_raw); + _rpm_filter.update(_rpm_median_filter.apply(rpm_raw)); rpm_s rpm{}; rpm.timestamp = now; diff --git a/src/drivers/rpm_capture/RPMCapture.hpp b/src/drivers/rpm_capture/RPMCapture.hpp index a2156437a4..a986fc9ceb 100644 --- a/src/drivers/rpm_capture/RPMCapture.hpp +++ b/src/drivers/rpm_capture/RPMCapture.hpp @@ -35,6 +35,7 @@ #include #include +#include #include #include #include @@ -85,4 +86,5 @@ private: hrt_abstime _timestamp_last_update{0}; ///< to caluclate dt AlphaFilter _rpm_filter; + MedianFilter _rpm_median_filter; };