Browse Source

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.
sbg
Matthias Grob 5 years ago
parent
commit
d0349fcf07
  1. 8
      src/modules/mc_pos_control/mc_pos_control_main.cpp

8
src/modules/mc_pos_control/mc_pos_control_main.cpp

@ -612,6 +612,14 @@ MulticopterPositionControl::Run() @@ -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);

Loading…
Cancel
Save