mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2024-12-01 09:24:10 +01:00
LP-549 Disable Iterm zeroing at low throttle when ASWA is enabled.
LP-549 Enable ASWA only after initial throttle threshold has been reached to allow Iterm to be zeroed with zero throttle while on ground.
This commit is contained in:
parent
e3a658d153
commit
28ad66502a
@ -66,6 +66,7 @@
|
||||
#define ASSISTEDCONTROL_BRAKETHRUST_DEADBAND_FACTOR_HI 1.04f
|
||||
|
||||
#define ALWAYSTABILIZEACCESSORY_THRESHOLD 0.05f
|
||||
#define ALWAYSTABILIZETHROTTLE_THRESHOLD 0.2f
|
||||
|
||||
// defined handlers
|
||||
|
||||
@ -499,7 +500,7 @@ static void manualControlTask(void)
|
||||
if (alwaysStabilizedSwitch) {
|
||||
if (acc.AccessoryVal <= -ALWAYSTABILIZEACCESSORY_THRESHOLD) {
|
||||
newAlwaysStabilized = FLIGHTSTATUS_ALWAYSSTABILIZEWHENARMED_FALSE;
|
||||
} else if (acc.AccessoryVal >= ALWAYSTABILIZEACCESSORY_THRESHOLD) {
|
||||
} else if ((acc.AccessoryVal >= ALWAYSTABILIZEACCESSORY_THRESHOLD) && (cmd.Thrust >= ALWAYSTABILIZETHROTTLE_THRESHOLD)) { // && Thrust (or Throttle?) above threshold
|
||||
newAlwaysStabilized = FLIGHTSTATUS_ALWAYSSTABILIZEWHENARMED_TRUE;
|
||||
}
|
||||
} else {
|
||||
|
@ -449,10 +449,15 @@ static void stabilizationInnerloopTask()
|
||||
{
|
||||
FlightStatusArmedOptions armed;
|
||||
FlightStatusArmedGet(&armed);
|
||||
FlightStatusAlwaysStabilizeWhenArmedOptions alwaysStabilizeWhenArmed;
|
||||
FlightStatusAlwaysStabilizeWhenArmedGet(&alwaysStabilizeWhenArmed);
|
||||
|
||||
float throttleDesired;
|
||||
ManualControlCommandThrottleGet(&throttleDesired);
|
||||
if (armed != FLIGHTSTATUS_ARMED_ARMED ||
|
||||
((stabSettings.settings.LowThrottleZeroIntegral == STABILIZATIONSETTINGS_LOWTHROTTLEZEROINTEGRAL_TRUE) && throttleDesired < 0)) {
|
||||
((stabSettings.settings.LowThrottleZeroIntegral == STABILIZATIONSETTINGS_LOWTHROTTLEZEROINTEGRAL_TRUE) &&
|
||||
(throttleDesired < 0) &&
|
||||
(alwaysStabilizeWhenArmed != FLIGHTSTATUS_ALWAYSSTABILIZEWHENARMED_TRUE))) {
|
||||
// Force all axes to reinitialize when engaged
|
||||
for (t = 0; t < AXES; t++) {
|
||||
previous_mode[t] = 255;
|
||||
|
@ -82,7 +82,7 @@
|
||||
options="Disabled,Accessory 0,Accessory 1,Accessory 2,Accessory 3"
|
||||
defaultvalue="Disabled"
|
||||
description="For Multirotors. Always stabilize no matter the throttle setting when vehicle is armed. Does not work when vehicle is set to Always Armed."/>
|
||||
|
||||
|
||||
<field name="ArmedTimeout" units="ms" type="uint16" elements="1" defaultvalue="30000"/>
|
||||
<field name="ArmingSequenceTime" units="ms" type="uint16" elements="1" defaultvalue="1000"/>
|
||||
<field name="DisarmingSequenceTime" units="ms" type="uint16" elements="1" defaultvalue="1000"/>
|
||||
|
Loading…
Reference in New Issue
Block a user