aboutsummaryrefslogtreecommitdiff
path: root/src/modules/mc_att_control
diff options
context:
space:
mode:
authorAnton Babushkin <anton.babushkin@me.com>2014-02-01 11:27:41 +0100
committerAnton Babushkin <anton.babushkin@me.com>2014-02-01 11:27:41 +0100
commit77c6231c8e323d2f7628ee432c9a4e37aa3e6815 (patch)
tree6a6b6aec36cf852e6dd17b2c9676d9666f0c21b9 /src/modules/mc_att_control
parent2923bdf39fd6e424523f0b6b47bef3cabcdc0645 (diff)
parent8897894b19e8de4ad7960a0fa552ed12fc2f0200 (diff)
downloadpx4-firmware-77c6231c8e323d2f7628ee432c9a4e37aa3e6815.tar.gz
px4-firmware-77c6231c8e323d2f7628ee432c9a4e37aa3e6815.tar.bz2
px4-firmware-77c6231c8e323d2f7628ee432c9a4e37aa3e6815.zip
Merge branch 'beta' into acro2
Diffstat (limited to 'src/modules/mc_att_control')
-rw-r--r--src/modules/mc_att_control/mc_att_control_main.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/modules/mc_att_control/mc_att_control_main.cpp b/src/modules/mc_att_control/mc_att_control_main.cpp
index 5f862652a..21e101662 100644
--- a/src/modules/mc_att_control/mc_att_control_main.cpp
+++ b/src/modules/mc_att_control/mc_att_control_main.cpp
@@ -512,14 +512,18 @@ MulticopterAttitudeControl::control_attitude(float dt)
//}
} else {
float yaw_dz_scaled = YAW_DEADZONE * _params.rc_scale(2);
+
if (_params.rc_scale(2) > 0.001f && fabs(_manual_control_sp.yaw) > yaw_dz_scaled) {
/* move yaw setpoint */
yaw_sp_move_rate = _manual_control_sp.yaw / _params.rc_scale(2);
+
if (_manual_control_sp.yaw > 0.0f) {
yaw_sp_move_rate -= YAW_DEADZONE;
+
} else {
yaw_sp_move_rate += YAW_DEADZONE;
}
+
yaw_sp_move_rate *= _params.rc_scale(2);
_v_att_sp.yaw_body = _wrap_pi(_v_att_sp.yaw_body + yaw_sp_move_rate * dt);
_v_att_sp.R_valid = false;
@@ -683,7 +687,7 @@ MulticopterAttitudeControl::control_attitude_rates(float dt)
float rate_i = _rates_int(i) + _params.rate_i(i) * rates_err(i) * dt;
if (isfinite(rate_i) && rate_i > -RATES_I_LIMIT && rate_i < RATES_I_LIMIT &&
- _att_control(i) > -RATES_I_LIMIT && _att_control(i) < RATES_I_LIMIT) {
+ _att_control(i) > -RATES_I_LIMIT && _att_control(i) < RATES_I_LIMIT) {
_rates_int(i) = rate_i;
}
}