Skip to content

Commit

Permalink
[VTOL] impose minimum transition duration
Browse files Browse the repository at this point in the history
* VT_F_TR_OL_TM would silently reduce VT_TRANS_MIN_TM when VT_F_TR_OL_TM was smaller
  • Loading branch information
ThomasRigi authored Jul 3, 2020
1 parent 400c44b commit 3702c8b
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions src/modules/vtol_att_control/vtol_att_control_main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down

0 comments on commit 3702c8b

Please sign in to comment.