diff --git a/libraries/AP_AHRS/AP_AHRS_DCM.cpp b/libraries/AP_AHRS/AP_AHRS_DCM.cpp index 20daebbf6b..83f26d456f 100644 --- a/libraries/AP_AHRS/AP_AHRS_DCM.cpp +++ b/libraries/AP_AHRS/AP_AHRS_DCM.cpp @@ -624,7 +624,9 @@ void AP_AHRS_DCM::estimate_wind(Vector3f &velocity) wind.z = velocitySum.z - V * fuselageDirectionSum.z; wind *= 0.5; - _wind = _wind * 0.95 + wind * 0.05; + if (wind.length() < _wind.length() + 20) { + _wind = _wind * 0.95 + wind * 0.05; + } _last_wind_time = now; } else if (now - _last_wind_time > 2000 && _airspeed && _airspeed->use()) {