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);