multicopter land detector: make threshold for _has_low_thrust

configurable

Signed-off-by: Roman <bapstroman@gmail.com>
This commit is contained in:
Roman
2019-01-15 17:34:56 +01:00
committed by Lorenz Meier
parent ec3bc4ee5b
commit 6c1399b328
3 changed files with 25 additions and 1 deletions
@@ -82,6 +82,7 @@ MulticopterLandDetector::MulticopterLandDetector()
_paramHandle.freefall_trigger_time = param_find("LNDMC_FFALL_TTRI");
_paramHandle.altitude_max = param_find("LNDMC_ALT_MAX");
_paramHandle.landSpeed = param_find("MPC_LAND_SPEED");
_paramHandle.low_thrust_threshold = param_find("LNDMC_LOW_T_THR");
// Use Trigger time when transitioning from in-air (false) to landed (true) / ground contact (true).
_landed_hysteresis.set_hysteresis_time_from(false, LAND_DETECTOR_TRIGGER_TIME_US);
@@ -126,6 +127,8 @@ void MulticopterLandDetector::_update_params()
_freefall_hysteresis.set_hysteresis_time_from(false, (hrt_abstime)(1e6f * _params.freefall_trigger_time));
param_get(_paramHandle.altitude_max, &_params.altitude_max);
param_get(_paramHandle.landSpeed, &_params.landSpeed);
param_get(_paramHandle.low_thrust_threshold, &_params.low_thrust_threshold);
}
@@ -314,7 +317,8 @@ bool MulticopterLandDetector::_is_climb_rate_enabled()
bool MulticopterLandDetector::_has_low_thrust()
{
// 30% of throttle range between min and hover
float sys_min_throttle = _params.minThrottle + (_params.hoverThrottle - _params.minThrottle) * 0.3f;
float sys_min_throttle = _params.minThrottle + (_params.hoverThrottle - _params.minThrottle) *
_params.low_thrust_threshold;
// Check if thrust output is less than the minimum auto throttle param.
return _actuators.control[actuator_controls_s::INDEX_THROTTLE] <= sys_min_throttle;