aboutsummaryrefslogtreecommitdiff
path: root/src/modules
diff options
context:
space:
mode:
authorThomas Gubler <thomasgubler@gmail.com>2014-12-13 00:48:27 +0100
committerThomas Gubler <thomasgubler@gmail.com>2014-12-13 00:48:27 +0100
commit59ec2401b6f8e6714d515d3d0f1cf2e0ee14b8bc (patch)
tree143d3d2cb44380628391adf49e4740d07d2af4a5 /src/modules
parent4bb07514c86d020bc2b16058e75de3074f89aa4b (diff)
downloadpx4-firmware-59ec2401b6f8e6714d515d3d0f1cf2e0ee14b8bc.tar.gz
px4-firmware-59ec2401b6f8e6714d515d3d0f1cf2e0ee14b8bc.tar.bz2
px4-firmware-59ec2401b6f8e6714d515d3d0f1cf2e0ee14b8bc.zip
fw pos control: better check for control mode
Diffstat (limited to 'src/modules')
-rw-r--r--src/modules/fw_pos_control_l1/fw_pos_control_l1_main.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/modules/fw_pos_control_l1/fw_pos_control_l1_main.cpp b/src/modules/fw_pos_control_l1/fw_pos_control_l1_main.cpp
index e7c95cc86..1bb27168e 100644
--- a/src/modules/fw_pos_control_l1/fw_pos_control_l1_main.cpp
+++ b/src/modules/fw_pos_control_l1/fw_pos_control_l1_main.cpp
@@ -909,10 +909,8 @@ FixedwingPositionControl::control_position(const math::Vector<2> &current_positi
float throttle_max = 1.0f;
/* AUTONOMOUS FLIGHT */
-
- // XXX this should only execute if auto AND safety off (actuators active),
- // else integrators should be constantly reset.
- if (pos_sp_triplet.current.valid) {
+ if (_control_mode.flag_control_auto_enabled &&
+ pos_sp_triplet.current.valid) {
if (!_was_pos_control_mode) {
/* reset integrators */
@@ -1248,7 +1246,8 @@ FixedwingPositionControl::control_position(const math::Vector<2> &current_positi
_att_sp.roll_reset_integral = true;
}
- } else if (_control_mode.flag_control_velocity_enabled) {
+ } else if (_control_mode.flag_control_velocity_enabled &&
+ _control_mode.flag_control_altitude_enabled) {
const float deadBand = (60.0f/1000.0f);
const float factor = 1.0f - deadBand;
if (!_was_velocity_control_mode) {