1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2025-02-27 16:54:15 +01:00

Re-enabled yaw stabilization after SystemSettings changed. There might be a lingering issue when the

yaw angle crosses the zero-360 mark, beware.
You can disable yaw stabilization by setting all PID gains to zero for yaw.



git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@1828 ebee16cc-31ac-478f-84a7-5cbb03baadba
This commit is contained in:
edouard 2010-10-01 16:26:43 +00:00 committed by edouard
parent 8161d25774
commit d2c1014e29

View File

@ -108,6 +108,7 @@ static void stabilizationTask(void* parameters)
pitchErrorLast = 0.0;
rollErrorLast = 0.0;
yawErrorLast = 0.0;
yawPrevious = 0.0;
// Main task loop
lastSysTime = xTaskGetTickCount();
@ -149,7 +150,12 @@ static void stabilizationTask(void* parameters)
rollErrorLast = rollError;
// Yaw stabilization control loop (only enabled on VTOL airframes)
if (( systemSettings.AirframeType == SYSTEMSETTINGS_AIRFRAMETYPE_VTOL )||( systemSettings.AirframeType == SYSTEMSETTINGS_AIRFRAMETYPE_HELICP))
if (( systemSettings.AirframeType == SYSTEMSETTINGS_AIRFRAMETYPE_VTOL )||
( systemSettings.AirframeType == SYSTEMSETTINGS_AIRFRAMETYPE_QUADX)||
( systemSettings.AirframeType == SYSTEMSETTINGS_AIRFRAMETYPE_QUADP)||
( systemSettings.AirframeType == SYSTEMSETTINGS_AIRFRAMETYPE_HEXA) ||
( systemSettings.AirframeType == SYSTEMSETTINGS_AIRFRAMETYPE_OCTO) ||
( systemSettings.AirframeType == SYSTEMSETTINGS_AIRFRAMETYPE_HELICP))
{
if(stabSettings.YawMode == STABILIZATIONSETTINGS_YAWMODE_RATE) { // rate stabilization on yaw
yawChange = (attitudeActual.Yaw - yawPrevious) / dT;