aboutsummaryrefslogtreecommitdiff
path: root/src/modules/fw_att_control
diff options
context:
space:
mode:
authorMark Whitehorn <kd0aij@gmail.com>2014-12-24 13:45:04 -0700
committerThomas Gubler <thomasgubler@gmail.com>2014-12-29 16:49:42 +0100
commita0b767f4676a9204260442c56ab309108d47638d (patch)
tree9b4cd5ece8c5feaef17abbff97cc12f63f89a234 /src/modules/fw_att_control
parent22f744f0e17f83a706998381d1977c9cb24d457a (diff)
downloadpx4-firmware-a0b767f4676a9204260442c56ab309108d47638d.tar.gz
px4-firmware-a0b767f4676a9204260442c56ab309108d47638d.tar.bz2
px4-firmware-a0b767f4676a9204260442c56ab309108d47638d.zip
add yaw_manual override variable, effective only in ALTCTL and do not publish it in attitude rates
Diffstat (limited to 'src/modules/fw_att_control')
-rw-r--r--src/modules/fw_att_control/fw_att_control_main.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/modules/fw_att_control/fw_att_control_main.cpp b/src/modules/fw_att_control/fw_att_control_main.cpp
index 8d18ae68c..d8377899c 100644
--- a/src/modules/fw_att_control/fw_att_control_main.cpp
+++ b/src/modules/fw_att_control/fw_att_control_main.cpp
@@ -824,6 +824,7 @@ FixedwingAttitudeControl::task_main()
float roll_sp = _parameters.rollsp_offset_rad;
float pitch_sp = _parameters.pitchsp_offset_rad;
+ float yaw_manual = 0.0f;
float throttle_sp = 0.0f;
/* Read attitude setpoint from uorb if
@@ -884,6 +885,8 @@ FixedwingAttitudeControl::task_main()
+ _parameters.rollsp_offset_rad;
pitch_sp = -(_manual.x * _parameters.man_pitch_max - _parameters.trim_pitch)
+ _parameters.pitchsp_offset_rad;
+ // allow manual control of rudder deflection
+ yaw_manual = _manual.r;
throttle_sp = _manual.z;
_actuators.control[4] = _manual.flaps;
@@ -983,6 +986,8 @@ FixedwingAttitudeControl::task_main()
_pitch_ctrl.get_desired_rate(),
_parameters.airspeed_min, _parameters.airspeed_max, airspeed, airspeed_scaling, lock_integrator);
_actuators.control[2] = (isfinite(yaw_u)) ? yaw_u + _parameters.trim_yaw : _parameters.trim_yaw;
+ // add in manual rudder control
+ _actuators.control[2] += yaw_manual;
if (!isfinite(yaw_u)) {
_yaw_ctrl.reset_integrator();
perf_count(_nonfinite_output_perf);