From 3702c8b48106c1a9ad5e40fe904f604776398346 Mon Sep 17 00:00:00 2001 From: Thomas Stauber <48206725+ThomasRigi@users.noreply.github.com> Date: Fri, 3 Jul 2020 19:19:02 +0200 Subject: [PATCH] [VTOL] impose minimum transition duration * VT_F_TR_OL_TM would silently reduce VT_TRANS_MIN_TM when VT_F_TR_OL_TM was smaller --- src/modules/vtol_att_control/vtol_att_control_main.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/modules/vtol_att_control/vtol_att_control_main.cpp b/src/modules/vtol_att_control/vtol_att_control_main.cpp index a4aa01a26d..6617b715a6 100644 --- a/src/modules/vtol_att_control/vtol_att_control_main.cpp +++ b/src/modules/vtol_att_control/vtol_att_control_main.cpp @@ -274,12 +274,14 @@ VtolAttitudeControl::parameters_update() param_get(_params_handles.front_trans_time_min, &_params.front_trans_time_min); /* - * Minimum transition time can be maximum 90 percent of the open loop transition time, + * Open loop transition time needs to be larger than minimum transition time, * anything else makes no sense and can potentially lead to numerical problems. */ - _params.front_trans_time_min = math::min(_params.front_trans_time_openloop * 0.9f, - _params.front_trans_time_min); - + if (_params.front_trans_time_openloop < _params.front_trans_time_min * 1.1f) { + _params.front_trans_time_openloop = _params.front_trans_time_min * 1.1f; + param_set_no_notification(_params_handles.front_trans_time_openloop, &_params.front_trans_time_openloop); + mavlink_log_critical(&_mavlink_log_pub, "OL transition time set larger than min transition time"); + } param_get(_params_handles.front_trans_duration, &_params.front_trans_duration); param_get(_params_handles.back_trans_duration, &_params.back_trans_duration);