mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2024-12-01 09:24:10 +01:00
Merge branch 'next' of ssh://git.openpilot.org/OpenPilot into abeck/OP-1848r-altvario
Conflicts: flight/modules/Stabilization/outerloop.c
This commit is contained in:
commit
5bffc73b17
@ -294,6 +294,14 @@ void plan_run_AutoTakeoff()
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case STATUSVTOLAUTOTAKEOFF_CONTROLSTATE_ABORT:
|
case STATUSVTOLAUTOTAKEOFF_CONTROLSTATE_ABORT:
|
||||||
|
{
|
||||||
|
FlightStatusData flightStatus;
|
||||||
|
FlightStatusGet(&flightStatus);
|
||||||
|
if (!flightStatus.Armed) {
|
||||||
|
autotakeoffState = STATUSVTOLAUTOTAKEOFF_CONTROLSTATE_WAITFORARMED;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
case STATUSVTOLAUTOTAKEOFF_CONTROLSTATE_POSITIONHOLD:
|
case STATUSVTOLAUTOTAKEOFF_CONTROLSTATE_POSITIONHOLD:
|
||||||
// nothing to do. land has been requested. stay here for forever until mode change.
|
// nothing to do. land has been requested. stay here for forever until mode change.
|
||||||
default:
|
default:
|
||||||
|
@ -123,6 +123,7 @@ void stabilizedHandler(bool newinit)
|
|||||||
stabilization.Roll =
|
stabilization.Roll =
|
||||||
(stab_settings[0] == STABILIZATIONDESIRED_STABILIZATIONMODE_MANUAL) ? cmd.Roll :
|
(stab_settings[0] == STABILIZATIONDESIRED_STABILIZATIONMODE_MANUAL) ? cmd.Roll :
|
||||||
(stab_settings[0] == STABILIZATIONDESIRED_STABILIZATIONMODE_RATE) ? cmd.Roll * stabSettings.ManualRate.Roll :
|
(stab_settings[0] == STABILIZATIONDESIRED_STABILIZATIONMODE_RATE) ? cmd.Roll * stabSettings.ManualRate.Roll :
|
||||||
|
(stab_settings[0] == STABILIZATIONDESIRED_STABILIZATIONMODE_RATETRAINER) ? cmd.Roll * stabSettings.ManualRate.Roll :
|
||||||
(stab_settings[0] == STABILIZATIONDESIRED_STABILIZATIONMODE_WEAKLEVELING) ? cmd.Roll * stabSettings.RollMax :
|
(stab_settings[0] == STABILIZATIONDESIRED_STABILIZATIONMODE_WEAKLEVELING) ? cmd.Roll * stabSettings.RollMax :
|
||||||
(stab_settings[0] == STABILIZATIONDESIRED_STABILIZATIONMODE_ATTITUDE) ? cmd.Roll * stabSettings.RollMax :
|
(stab_settings[0] == STABILIZATIONDESIRED_STABILIZATIONMODE_ATTITUDE) ? cmd.Roll * stabSettings.RollMax :
|
||||||
(stab_settings[0] == STABILIZATIONDESIRED_STABILIZATIONMODE_AXISLOCK) ? cmd.Roll * stabSettings.ManualRate.Roll :
|
(stab_settings[0] == STABILIZATIONDESIRED_STABILIZATIONMODE_AXISLOCK) ? cmd.Roll * stabSettings.ManualRate.Roll :
|
||||||
@ -134,6 +135,7 @@ void stabilizedHandler(bool newinit)
|
|||||||
stabilization.Pitch =
|
stabilization.Pitch =
|
||||||
(stab_settings[1] == STABILIZATIONDESIRED_STABILIZATIONMODE_MANUAL) ? cmd.Pitch :
|
(stab_settings[1] == STABILIZATIONDESIRED_STABILIZATIONMODE_MANUAL) ? cmd.Pitch :
|
||||||
(stab_settings[1] == STABILIZATIONDESIRED_STABILIZATIONMODE_RATE) ? cmd.Pitch * stabSettings.ManualRate.Pitch :
|
(stab_settings[1] == STABILIZATIONDESIRED_STABILIZATIONMODE_RATE) ? cmd.Pitch * stabSettings.ManualRate.Pitch :
|
||||||
|
(stab_settings[1] == STABILIZATIONDESIRED_STABILIZATIONMODE_RATETRAINER) ? cmd.Pitch * stabSettings.ManualRate.Pitch :
|
||||||
(stab_settings[1] == STABILIZATIONDESIRED_STABILIZATIONMODE_WEAKLEVELING) ? cmd.Pitch * stabSettings.PitchMax :
|
(stab_settings[1] == STABILIZATIONDESIRED_STABILIZATIONMODE_WEAKLEVELING) ? cmd.Pitch * stabSettings.PitchMax :
|
||||||
(stab_settings[1] == STABILIZATIONDESIRED_STABILIZATIONMODE_ATTITUDE) ? cmd.Pitch * stabSettings.PitchMax :
|
(stab_settings[1] == STABILIZATIONDESIRED_STABILIZATIONMODE_ATTITUDE) ? cmd.Pitch * stabSettings.PitchMax :
|
||||||
(stab_settings[1] == STABILIZATIONDESIRED_STABILIZATIONMODE_AXISLOCK) ? cmd.Pitch * stabSettings.ManualRate.Pitch :
|
(stab_settings[1] == STABILIZATIONDESIRED_STABILIZATIONMODE_AXISLOCK) ? cmd.Pitch * stabSettings.ManualRate.Pitch :
|
||||||
@ -155,6 +157,7 @@ void stabilizedHandler(bool newinit)
|
|||||||
stabilization.Yaw =
|
stabilization.Yaw =
|
||||||
(stab_settings[2] == STABILIZATIONDESIRED_STABILIZATIONMODE_MANUAL) ? cmd.Yaw :
|
(stab_settings[2] == STABILIZATIONDESIRED_STABILIZATIONMODE_MANUAL) ? cmd.Yaw :
|
||||||
(stab_settings[2] == STABILIZATIONDESIRED_STABILIZATIONMODE_RATE) ? cmd.Yaw * stabSettings.ManualRate.Yaw :
|
(stab_settings[2] == STABILIZATIONDESIRED_STABILIZATIONMODE_RATE) ? cmd.Yaw * stabSettings.ManualRate.Yaw :
|
||||||
|
(stab_settings[2] == STABILIZATIONDESIRED_STABILIZATIONMODE_RATETRAINER) ? cmd.Yaw * stabSettings.ManualRate.Yaw :
|
||||||
(stab_settings[2] == STABILIZATIONDESIRED_STABILIZATIONMODE_WEAKLEVELING) ? cmd.Yaw * stabSettings.YawMax :
|
(stab_settings[2] == STABILIZATIONDESIRED_STABILIZATIONMODE_WEAKLEVELING) ? cmd.Yaw * stabSettings.YawMax :
|
||||||
(stab_settings[2] == STABILIZATIONDESIRED_STABILIZATIONMODE_ATTITUDE) ? cmd.Yaw * stabSettings.YawMax :
|
(stab_settings[2] == STABILIZATIONDESIRED_STABILIZATIONMODE_ATTITUDE) ? cmd.Yaw * stabSettings.YawMax :
|
||||||
(stab_settings[2] == STABILIZATIONDESIRED_STABILIZATIONMODE_AXISLOCK) ? cmd.Yaw * stabSettings.ManualRate.Yaw :
|
(stab_settings[2] == STABILIZATIONDESIRED_STABILIZATIONMODE_AXISLOCK) ? cmd.Yaw * stabSettings.ManualRate.Yaw :
|
||||||
|
@ -138,6 +138,7 @@ static void stabilizationOuterloopTask()
|
|||||||
case STABILIZATIONSTATUS_OUTERLOOP_WEAKLEVELING:
|
case STABILIZATIONSTATUS_OUTERLOOP_WEAKLEVELING:
|
||||||
rpy_desired[t] = stabilizationDesiredAxis[t];
|
rpy_desired[t] = stabilizationDesiredAxis[t];
|
||||||
break;
|
break;
|
||||||
|
case STABILIZATIONSTATUS_OUTERLOOP_DIRECTWITHLIMITS:
|
||||||
case STABILIZATIONSTATUS_OUTERLOOP_DIRECT:
|
case STABILIZATIONSTATUS_OUTERLOOP_DIRECT:
|
||||||
default:
|
default:
|
||||||
rpy_desired[t] = ((float *)&attitudeState.Roll)[t];
|
rpy_desired[t] = ((float *)&attitudeState.Roll)[t];
|
||||||
@ -262,6 +263,60 @@ static void stabilizationOuterloopTask()
|
|||||||
default:
|
default:
|
||||||
rateDesiredAxis[t] = stabilizationDesiredAxis[t];
|
rateDesiredAxis[t] = stabilizationDesiredAxis[t];
|
||||||
break;
|
break;
|
||||||
|
case STABILIZATIONSTATUS_OUTERLOOP_DIRECTWITHLIMITS:
|
||||||
|
rateDesiredAxis[t] = stabilizationDesiredAxis[t]; // default for all axes
|
||||||
|
// now test limits for pitch and/or roll
|
||||||
|
if (t == 1) { // pitch
|
||||||
|
if (attitudeState.Pitch < -stabSettings.stabBank.PitchMax) {
|
||||||
|
// attitude exceeds pitch max.
|
||||||
|
// zero rate desired if also -ve
|
||||||
|
if (rateDesiredAxis[t] < 0.0f) {
|
||||||
|
rateDesiredAxis[t] = 0.0f;
|
||||||
|
}
|
||||||
|
} else if (attitudeState.Pitch > stabSettings.stabBank.PitchMax) {
|
||||||
|
// attitude exceeds pitch max
|
||||||
|
// zero rate desired if also +ve
|
||||||
|
if (rateDesiredAxis[t] > 0.0f) {
|
||||||
|
rateDesiredAxis[t] = 0.0f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (t == 0) { // roll
|
||||||
|
if (attitudeState.Roll < -stabSettings.stabBank.RollMax) {
|
||||||
|
// attitude exceeds roll max.
|
||||||
|
// zero rate desired if also -ve
|
||||||
|
if (rateDesiredAxis[t] < 0.0f) {
|
||||||
|
rateDesiredAxis[t] = 0.0f;
|
||||||
|
}
|
||||||
|
} else if (attitudeState.Roll > stabSettings.stabBank.RollMax) {
|
||||||
|
// attitude exceeds roll max
|
||||||
|
// zero rate desired if also +ve
|
||||||
|
if (rateDesiredAxis[t] > 0.0f) {
|
||||||
|
rateDesiredAxis[t] = 0.0f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case STABILIZATIONSTATUS_OUTERLOOP_DIRECT:
|
||||||
|
default:
|
||||||
|
rateDesiredAxis[t] = stabilizationDesiredAxis[t];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
switch (StabilizationStatusOuterLoopToArray(enabled)[t]) {
|
||||||
|
#ifdef REVOLUTION
|
||||||
|
case STABILIZATIONSTATUS_OUTERLOOP_ALTITUDE:
|
||||||
|
rateDesiredAxis[t] = stabilizationAltitudeHold(stabilizationDesiredAxis[t], ALTITUDEHOLD, reinit);
|
||||||
|
break;
|
||||||
|
case STABILIZATIONSTATUS_OUTERLOOP_ALTITUDEVARIO:
|
||||||
|
rateDesiredAxis[t] = stabilizationAltitudeHold(stabilizationDesiredAxis[t], ALTITUDEVARIO, reinit);
|
||||||
|
break;
|
||||||
|
#endif /* REVOLUTION */
|
||||||
|
case STABILIZATIONSTATUS_OUTERLOOP_DIRECT:
|
||||||
|
default:
|
||||||
|
rateDesiredAxis[t] = stabilizationDesiredAxis[t];
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -137,6 +137,10 @@ static void StabilizationDesiredUpdatedCb(__attribute__((unused)) UAVObjEvent *e
|
|||||||
StabilizationStatusOuterLoopToArray(status.OuterLoop)[t] = STABILIZATIONSTATUS_OUTERLOOP_DIRECT;
|
StabilizationStatusOuterLoopToArray(status.OuterLoop)[t] = STABILIZATIONSTATUS_OUTERLOOP_DIRECT;
|
||||||
StabilizationStatusInnerLoopToArray(status.InnerLoop)[t] = STABILIZATIONSTATUS_INNERLOOP_RATE;
|
StabilizationStatusInnerLoopToArray(status.InnerLoop)[t] = STABILIZATIONSTATUS_INNERLOOP_RATE;
|
||||||
break;
|
break;
|
||||||
|
case STABILIZATIONDESIRED_STABILIZATIONMODE_RATETRAINER:
|
||||||
|
StabilizationStatusOuterLoopToArray(status.OuterLoop)[t] = STABILIZATIONSTATUS_OUTERLOOP_DIRECTWITHLIMITS;
|
||||||
|
StabilizationStatusInnerLoopToArray(status.InnerLoop)[t] = STABILIZATIONSTATUS_INNERLOOP_RATE;
|
||||||
|
break;
|
||||||
case STABILIZATIONDESIRED_STABILIZATIONMODE_ATTITUDE:
|
case STABILIZATIONDESIRED_STABILIZATIONMODE_ATTITUDE:
|
||||||
StabilizationStatusOuterLoopToArray(status.OuterLoop)[t] = STABILIZATIONSTATUS_OUTERLOOP_ATTITUDE;
|
StabilizationStatusOuterLoopToArray(status.OuterLoop)[t] = STABILIZATIONSTATUS_OUTERLOOP_ATTITUDE;
|
||||||
StabilizationStatusInnerLoopToArray(status.InnerLoop)[t] = STABILIZATIONSTATUS_INNERLOOP_RATE;
|
StabilizationStatusInnerLoopToArray(status.InnerLoop)[t] = STABILIZATIONSTATUS_INNERLOOP_RATE;
|
||||||
|
@ -7,69 +7,69 @@
|
|||||||
<!-- Note these options should be identical to those in StabilizationDesired.StabilizationMode -->
|
<!-- Note these options should be identical to those in StabilizationDesired.StabilizationMode -->
|
||||||
<field name="Stabilization1Settings" units="" type="enum"
|
<field name="Stabilization1Settings" units="" type="enum"
|
||||||
elementnames="Roll,Pitch,Yaw,Thrust"
|
elementnames="Roll,Pitch,Yaw,Thrust"
|
||||||
options="Manual,Rate,Attitude,AxisLock,WeakLeveling,VirtualBar,Acro+,Rattitude,AltitudeHold,AltitudeVario,CruiseControl"
|
options="Manual,Rate,RateTrainer,Attitude,AxisLock,WeakLeveling,VirtualBar,Acro+,Rattitude,AltitudeHold,AltitudeVario,CruiseControl"
|
||||||
defaultvalue="Attitude,Attitude,AxisLock,Manual"
|
defaultvalue="Attitude,Attitude,AxisLock,Manual"
|
||||||
limits="%NE:AltitudeHold:AltitudeVario:CruiseControl; \
|
limits="%NE:AltitudeHold:AltitudeVario:CruiseControl; \
|
||||||
%NE:AltitudeHold:AltitudeVario:CruiseControl; \
|
%NE:AltitudeHold:AltitudeVario:CruiseControl; \
|
||||||
%NE:AltitudeHold:AltitudeVario:CruiseControl:Attitude:Rattitude:Acro+:WeakLeveling:VirtualBar; \
|
%NE:AltitudeHold:AltitudeVario:CruiseControl:Attitude:Rattitude:Acro+:WeakLeveling:VirtualBar; \
|
||||||
%NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude,\
|
%NE:Rate::RateTrainer:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude,\
|
||||||
%0401NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude:AltitudeHold:AltitudeVario,\
|
%0401NE:Rate:RateTrainer:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude:AltitudeHold:AltitudeVario,\
|
||||||
%0402NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude:AltitudeHold:AltitudeVario;"
|
%0402NE:Rate:RateTrainer:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude:AltitudeHold:AltitudeVario;"
|
||||||
/>
|
/>
|
||||||
<field name="Stabilization2Settings" units="" type="enum"
|
<field name="Stabilization2Settings" units="" type="enum"
|
||||||
elementnames="Roll,Pitch,Yaw,Thrust"
|
elementnames="Roll,Pitch,Yaw,Thrust"
|
||||||
options="Manual,Rate,Attitude,AxisLock,WeakLeveling,VirtualBar,Acro+,Rattitude,AltitudeHold,AltitudeVario,CruiseControl"
|
options="Manual,Rate,RateTrainer,Attitude,AxisLock,WeakLeveling,VirtualBar,Acro+,Rattitude,AltitudeHold,AltitudeVario,CruiseControl"
|
||||||
defaultvalue="Attitude,Attitude,Rate,Manual"
|
defaultvalue="Attitude,Attitude,Rate,Manual"
|
||||||
limits="%NE:AltitudeHold:AltitudeVario:CruiseControl; \
|
limits="%NE:AltitudeHold:AltitudeVario:CruiseControl; \
|
||||||
%NE:AltitudeHold:AltitudeVario:CruiseControl; \
|
%NE:AltitudeHold:AltitudeVario:CruiseControl; \
|
||||||
%NE:AltitudeHold:AltitudeVario:CruiseControl:Attitude:Rattitude:Acro+:WeakLeveling:VirtualBar; \
|
%NE:AltitudeHold:AltitudeVario:CruiseControl:Attitude:Rattitude:Acro+:WeakLeveling:VirtualBar; \
|
||||||
%NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude,\
|
%NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude,\
|
||||||
%0401NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude:AltitudeHold:AltitudeVario,\
|
%0401NE:Rate:RateTrainer:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude:AltitudeHold:AltitudeVario,\
|
||||||
%0402NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude:AltitudeHold:AltitudeVario;"
|
%0402NE:Rate:RateTrainer:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude:AltitudeHold:AltitudeVario;"
|
||||||
/>
|
/>
|
||||||
<field name="Stabilization3Settings" units="" type="enum"
|
<field name="Stabilization3Settings" units="" type="enum"
|
||||||
elementnames="Roll,Pitch,Yaw,Thrust"
|
elementnames="Roll,Pitch,Yaw,Thrust"
|
||||||
options="Manual,Rate,Attitude,AxisLock,WeakLeveling,VirtualBar,Acro+,Rattitude,AltitudeHold,AltitudeVario,CruiseControl"
|
options="Manual,Rate,RateTrainer,Attitude,AxisLock,WeakLeveling,VirtualBar,Acro+,Rattitude,AltitudeHold,AltitudeVario,CruiseControl"
|
||||||
defaultvalue="Rate,Rate,Rate,Manual"
|
defaultvalue="Rate,Rate,Rate,Manual"
|
||||||
limits="%NE:AltitudeHold:AltitudeVario:CruiseControl; \
|
limits="%NE:AltitudeHold:AltitudeVario:CruiseControl; \
|
||||||
%NE:AltitudeHold:AltitudeVario:CruiseControl; \
|
%NE:AltitudeHold:AltitudeVario:CruiseControl; \
|
||||||
%NE:AltitudeHold:AltitudeVario:CruiseControl:Attitude:Rattitude:Acro+:WeakLeveling:VirtualBar; \
|
%NE:AltitudeHold:AltitudeVario:CruiseControl:Attitude:Rattitude:Acro+:WeakLeveling:VirtualBar; \
|
||||||
%NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude,\
|
%NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude,\
|
||||||
%0401NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude:AltitudeHold:AltitudeVario,\
|
%0401NE:Rate:RateTrainer:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude:AltitudeHold:AltitudeVario,\
|
||||||
%0402NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude:AltitudeHold:AltitudeVario;"
|
%0402NE:Rate:RateTrainer:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude:AltitudeHold:AltitudeVario;"
|
||||||
/>
|
/>
|
||||||
<field name="Stabilization4Settings" units="" type="enum"
|
<field name="Stabilization4Settings" units="" type="enum"
|
||||||
elementnames="Roll,Pitch,Yaw,Thrust"
|
elementnames="Roll,Pitch,Yaw,Thrust"
|
||||||
options="Manual,Rate,Attitude,AxisLock,WeakLeveling,VirtualBar,Acro+,Rattitude,AltitudeHold,AltitudeVario,CruiseControl"
|
options="Manual,Rate,RateTrainer,Attitude,AxisLock,WeakLeveling,VirtualBar,Acro+,Rattitude,AltitudeHold,AltitudeVario,CruiseControl"
|
||||||
defaultvalue="Attitude,Attitude,AxisLock,CruiseControl"
|
defaultvalue="Attitude,Attitude,AxisLock,CruiseControl"
|
||||||
limits="%NE:AltitudeHold:AltitudeVario:CruiseControl; \
|
limits="%NE:AltitudeHold:AltitudeVario:CruiseControl; \
|
||||||
%NE:AltitudeHold:AltitudeVario:CruiseControl; \
|
%NE:AltitudeHold:AltitudeVario:CruiseControl; \
|
||||||
%NE:AltitudeHold:AltitudeVario:CruiseControl:Attitude:Rattitude:Acro+:WeakLeveling:VirtualBar; \
|
%NE:AltitudeHold:AltitudeVario:CruiseControl:Attitude:Rattitude:Acro+:WeakLeveling:VirtualBar; \
|
||||||
%NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude,\
|
%NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude,\
|
||||||
%0401NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude:AltitudeHold:AltitudeVario,\
|
%0401NE:Rate:RateTrainer:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude:AltitudeHold:AltitudeVario,\
|
||||||
%0402NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude:AltitudeHold:AltitudeVario;"
|
%0402NE:Rate:RateTrainer:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude:AltitudeHold:AltitudeVario;"
|
||||||
/>
|
/>
|
||||||
<field name="Stabilization5Settings" units="" type="enum"
|
<field name="Stabilization5Settings" units="" type="enum"
|
||||||
elementnames="Roll,Pitch,Yaw,Thrust"
|
elementnames="Roll,Pitch,Yaw,Thrust"
|
||||||
options="Manual,Rate,Attitude,AxisLock,WeakLeveling,VirtualBar,Acro+,Rattitude,AltitudeHold,AltitudeVario,CruiseControl"
|
options="Manual,Rate,RateTrainer,Attitude,AxisLock,WeakLeveling,VirtualBar,Acro+,Rattitude,AltitudeHold,AltitudeVario,CruiseControl"
|
||||||
defaultvalue="Attitude,Attitude,Rate,CruiseControl"
|
defaultvalue="Attitude,Attitude,Rate,CruiseControl"
|
||||||
limits="%NE:AltitudeHold:AltitudeVario:CruiseControl; \
|
limits="%NE:AltitudeHold:AltitudeVario:CruiseControl; \
|
||||||
%NE:AltitudeHold:AltitudeVario:CruiseControl; \
|
%NE:AltitudeHold:AltitudeVario:CruiseControl; \
|
||||||
%NE:AltitudeHold:AltitudeVario:CruiseControl:Attitude:Rattitude:Acro+:WeakLeveling:VirtualBar; \
|
%NE:AltitudeHold:AltitudeVario:CruiseControl:Attitude:Rattitude:Acro+:WeakLeveling:VirtualBar; \
|
||||||
%NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude,\
|
%NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude,\
|
||||||
%0401NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude:AltitudeHold:AltitudeVario,\
|
%0401NE:Rate:RateTrainer:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude:AltitudeHold:AltitudeVario,\
|
||||||
%0402NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude:AltitudeHold:AltitudeVario;"
|
%0402NE:Rate:RateTrainer:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude:AltitudeHold:AltitudeVario;"
|
||||||
/>
|
/>
|
||||||
<field name="Stabilization6Settings" units="" type="enum"
|
<field name="Stabilization6Settings" units="" type="enum"
|
||||||
elementnames="Roll,Pitch,Yaw,Thrust"
|
elementnames="Roll,Pitch,Yaw,Thrust"
|
||||||
options="Manual,Rate,Attitude,AxisLock,WeakLeveling,VirtualBar,Acro+,Rattitude,AltitudeHold,AltitudeVario,CruiseControl"
|
options="Manual,Rate,RateTrainer,Attitude,AxisLock,WeakLeveling,VirtualBar,Acro+,Rattitude,AltitudeHold,AltitudeVario,CruiseControl"
|
||||||
defaultvalue="Rate,Rate,Rate,Manual"
|
defaultvalue="Rate,Rate,Rate,Manual"
|
||||||
limits="%NE:AltitudeHold:AltitudeVario:CruiseControl; \
|
limits="%NE:AltitudeHold:AltitudeVario:CruiseControl; \
|
||||||
%NE:AltitudeHold:AltitudeVario:CruiseControl; \
|
%NE:AltitudeHold:AltitudeVario:CruiseControl; \
|
||||||
%NE:AltitudeHold:AltitudeVario:CruiseControl:Attitude:Rattitude:Acro+:WeakLeveling:VirtualBar; \
|
%NE:AltitudeHold:AltitudeVario:CruiseControl:Attitude:Rattitude:Acro+:WeakLeveling:VirtualBar; \
|
||||||
%NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude,\
|
%NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude,\
|
||||||
%0401NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude:AltitudeHold:AltitudeVario,\
|
%0401NE:Rate:RateTrainer:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude:AltitudeHold:AltitudeVario,\
|
||||||
%0402NE:Rate:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude:AltitudeHold:AltitudeVario;"
|
%0402NE:Rate:RateTrainer:Attitude:AxisLock:WeakLeveling:VirtualBar:Acro+:Rattitude:AltitudeHold:AltitudeVario;"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<!-- Note these options values should be identical to those defined in FlightMode -->
|
<!-- Note these options values should be identical to those defined in FlightMode -->
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
<field name="Yaw" units="degrees" type="float" elements="1"/>
|
<field name="Yaw" units="degrees" type="float" elements="1"/>
|
||||||
<field name="Thrust" units="%" type="float" elements="1"/>
|
<field name="Thrust" units="%" type="float" elements="1"/>
|
||||||
<!-- These values should match those in FlightModeSettings.Stabilization{1,2,3}Settings -->
|
<!-- These values should match those in FlightModeSettings.Stabilization{1,2,3}Settings -->
|
||||||
<field name="StabilizationMode" units="" type="enum" elementnames="Roll,Pitch,Yaw,Thrust" options="Manual,Rate,Attitude,AxisLock,WeakLeveling,VirtualBar,Acro+,Rattitude,AltitudeHold,AltitudeVario,CruiseControl"/>
|
<field name="StabilizationMode" units="" type="enum" elementnames="Roll,Pitch,Yaw,Thrust" options="Manual,Rate,RateTrainer,Attitude,AxisLock,WeakLeveling,VirtualBar,Acro+,Rattitude,AltitudeHold,AltitudeVario,CruiseControl"/>
|
||||||
<access gcs="readwrite" flight="readwrite"/>
|
<access gcs="readwrite" flight="readwrite"/>
|
||||||
<telemetrygcs acked="false" updatemode="manual" period="0"/>
|
<telemetrygcs acked="false" updatemode="manual" period="0"/>
|
||||||
<telemetryflight acked="false" updatemode="periodic" period="1000"/>
|
<telemetryflight acked="false" updatemode="periodic" period="1000"/>
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
<description>Contains status information to control submodules for stabilization.</description>
|
<description>Contains status information to control submodules for stabilization.</description>
|
||||||
|
|
||||||
|
|
||||||
<field name="OuterLoop" units="" type="enum" options="Direct,Attitude,Rattitude,Weakleveling,Altitude,AltitudeVario">
|
<field name="OuterLoop" units="" type="enum" options="Direct,DirectWithLimits,Attitude,Rattitude,Weakleveling,Altitude,AltitudeVario">
|
||||||
<elementnames>
|
<elementnames>
|
||||||
<elementname>Roll</elementname>
|
<elementname>Roll</elementname>
|
||||||
<elementname>Pitch</elementname>
|
<elementname>Pitch</elementname>
|
||||||
|
Loading…
Reference in New Issue
Block a user