diff --git a/src/modules/fw_pos_control_l1/FixedwingPositionControl.cpp b/src/modules/fw_pos_control_l1/FixedwingPositionControl.cpp index 846e630d38..c695871184 100644 --- a/src/modules/fw_pos_control_l1/FixedwingPositionControl.cpp +++ b/src/modules/fw_pos_control_l1/FixedwingPositionControl.cpp @@ -1631,6 +1631,12 @@ FixedwingPositionControl::control_auto_landing(const hrt_abstime &now, const flo const Vector2f landing_approach_vector = calculateLandingApproachVector(); const float airspeed_land = _param_fw_lnd_airspd_sc.get() * _param_fw_airspd_min.get(); + + if (airspeed_land < _param_fw_airspd_min.get()) { + // adjust underspeed detection bounds for landing airspeed + _tecs.set_equivalent_airspeed_min(airspeed_land); + } + float target_airspeed = get_auto_airspeed_setpoint(control_interval, airspeed_land, ground_speed); // calculate the altitude setpoint based on the landing glide slope @@ -1788,6 +1794,8 @@ FixedwingPositionControl::control_auto_landing(const hrt_abstime &now, const flo _att_sp.thrust_body[0] = (_landed) ? 0.0f : get_tecs_thrust(); } + _tecs.set_equivalent_airspeed_min(_param_fw_airspd_min.get()); // reset after TECS calculation + _att_sp.roll_body = constrainRollNearGround(_att_sp.roll_body, _current_altitude, terrain_alt); // Apply flaps and spoilers for landing. Amount of deflection is handled in the FW attitdue controller