Skip to content

Commit 36f361d

Browse files
CorvusCoraxf5soh
authored andcommitted
Merged in corvusvcorax/librepilot/LP-603_optional_quaternionstabi (pull request #520)
LP-603 Make QUATERNION_STABILIZATION optional. Approved-by: Lalanne Laurent <[email protected]>
2 parents 9653e7d + c933916 commit 36f361d

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed

flight/modules/Stabilization/outerloop.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -151,8 +151,8 @@ static void stabilizationOuterloopTask()
151151

152152

153153
float local_error[3];
154-
{
155154
#if defined(PIOS_QUATERNION_STABILIZATION)
155+
if (stabSettings.settings.ForceRollPitchDuringYawTransition == STABILIZATIONSETTINGS_FORCEROLLPITCHDURINGYAWTRANSITION_FALSE) {
156156
// Quaternion calculation of error in each axis. Uses more memory.
157157
float rpy_desired[3];
158158
float q_desired[4];
@@ -178,8 +178,10 @@ static void stabilizationOuterloopTask()
178178
quat_mult(q_desired, &attitudeState.q1, q_error);
179179
quat_inverse(q_error);
180180
Quaternion2RPY(q_error, local_error);
181-
181+
} else {
182182
#else /* if defined(PIOS_QUATERNION_STABILIZATION) */
183+
{
184+
#endif /* if defined(PIOS_QUATERNION_STABILIZATION) */
183185
// Simpler algorithm for CC, less memory
184186
local_error[0] = stabilizationDesiredAxis[0] - attitudeState.Roll;
185187
local_error[1] = stabilizationDesiredAxis[1] - attitudeState.Pitch;
@@ -192,7 +194,6 @@ static void stabilizationOuterloopTask()
192194
} else {
193195
local_error[2] = modulo - 180.0f;
194196
}
195-
#endif /* if defined(PIOS_QUATERNION_STABILIZATION) */
196197
}
197198

198199
// Feed forward: Assume things always get worse before they get better

shared/uavobjectdefinition/stabilizationsettings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
<field name="FlightModeAssistMap" units="" type="enum" options="None,GPSAssist" elements="6" defaultvalue="None,None,None,None,None,None" />
5050

5151
<field name="MeasureBasedDTerm" units="" type="enum" elements="1" options="False,True" defaultvalue="True"/>
52+
<field name="ForceRollPitchDuringYawTransition" units="" type="enum" elements="1" options="False,True" defaultvalue="True"/>
5253

5354
<access gcs="readwrite" flight="readwrite"/>
5455
<telemetrygcs acked="true" updatemode="onchange" period="0"/>

0 commit comments

Comments
 (0)