From 3c4b0c1b8c2ca2e96f5c6ad6ca639d4e611dee43 Mon Sep 17 00:00:00 2001 From: Silvan Fuhrer Date: Fri, 23 Apr 2021 09:35:12 +0200 Subject: [PATCH] tiltrotor: only allow increasing tilt during first part of transition Signed-off-by: Silvan Fuhrer --- src/modules/vtol_att_control/tiltrotor.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/modules/vtol_att_control/tiltrotor.cpp b/src/modules/vtol_att_control/tiltrotor.cpp index b34a8e70f3..b5794c6a8f 100644 --- a/src/modules/vtol_att_control/tiltrotor.cpp +++ b/src/modules/vtol_att_control/tiltrotor.cpp @@ -299,11 +299,13 @@ void Tiltrotor::update_transition_state() // tilt rotors forward up to certain angle if (_tilt_control <= _params_tiltrotor.tilt_transition) { - _tilt_control = _params_tiltrotor.tilt_mc + - fabsf(_params_tiltrotor.tilt_transition - _params_tiltrotor.tilt_mc) * time_since_trans_start / - _params->front_trans_duration; - } + const float ramped_up_tilt = _params_tiltrotor.tilt_mc + + fabsf(_params_tiltrotor.tilt_transition - _params_tiltrotor.tilt_mc) * + time_since_trans_start / _params->front_trans_duration; + // only allow increasing tilt (tilt in hover can already be non-zero) + _tilt_control = math::max(_tilt_control, ramped_up_tilt); + } // at low speeds give full weight to MC _mc_roll_weight = 1.0f;