mc_pos_control: allow zero thrust during takeoff and landing

Otherwise the takeoff ramp doesn't start with zero thrust and
the land thrust cut cannot cut to zero.
This commit is contained in:
Matthias Grob 2020-03-09 11:23:30 +01:00
parent 5027c68c0a
commit d0349fcf07
1 changed files with 8 additions and 0 deletions

View File

@ -612,6 +612,14 @@ MulticopterPositionControl::Run()
const bool flying = _takeoff.getTakeoffState() >= TakeoffState::flight;
const bool flying_but_ground_contact = flying && _vehicle_land_detected.ground_contact;
if (flying) {
_control.setThrustLimits(_param_mpc_thr_min.get(), _param_mpc_thr_max.get());
} else {
// allow zero thrust when taking off and landing
_control.setThrustLimits(0.f, _param_mpc_thr_max.get());
}
if (not_taken_off || flying_but_ground_contact) {
// we are not flying yet and need to avoid any corrections
reset_setpoint_to_nan(setpoint);