aboutsummaryrefslogtreecommitdiff
path: root/src/modules/mc_pos_control/mc_pos_control_main.cpp
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2014-12-28 21:09:58 +0100
committerLorenz Meier <lm@inf.ethz.ch>2014-12-28 21:09:58 +0100
commit6b2f3f9b07cdf01ad6b11c8bab9723bfbac97c92 (patch)
tree9503a0a82e1f7ca09dbfac9f4cc81f695e28637b /src/modules/mc_pos_control/mc_pos_control_main.cpp
parent784888e1757661a267978c25a00d03c1a348db21 (diff)
parentc29972424f6d7b99633c8497f0c25ab7cda4d2ca (diff)
downloadpx4-firmware-6b2f3f9b07cdf01ad6b11c8bab9723bfbac97c92.tar.gz
px4-firmware-6b2f3f9b07cdf01ad6b11c8bab9723bfbac97c92.tar.bz2
px4-firmware-6b2f3f9b07cdf01ad6b11c8bab9723bfbac97c92.zip
Merged master into nuttx_bringup / nuttx_noappconfig
Diffstat (limited to 'src/modules/mc_pos_control/mc_pos_control_main.cpp')
-rw-r--r--src/modules/mc_pos_control/mc_pos_control_main.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/modules/mc_pos_control/mc_pos_control_main.cpp b/src/modules/mc_pos_control/mc_pos_control_main.cpp
index 5918d6bc5..3b631e2ce 100644
--- a/src/modules/mc_pos_control/mc_pos_control_main.cpp
+++ b/src/modules/mc_pos_control/mc_pos_control_main.cpp
@@ -652,8 +652,6 @@ MulticopterPositionControl::control_offboard(float dt)
/* control position */
_pos_sp(0) = _pos_sp_triplet.current.x;
_pos_sp(1) = _pos_sp_triplet.current.y;
- _pos_sp(2) = _pos_sp_triplet.current.z;
-
} else if (_control_mode.flag_control_velocity_enabled && _pos_sp_triplet.current.velocity_valid) {
/* control velocity */
/* reset position setpoint to current position if needed */
@@ -670,7 +668,10 @@ MulticopterPositionControl::control_offboard(float dt)
_att_sp.yaw_body = _att_sp.yaw_body + _pos_sp_triplet.current.yawspeed * dt;
}
- if (_control_mode.flag_control_altitude_enabled) {
+ if (_control_mode.flag_control_altitude_enabled && _pos_sp_triplet.current.position_valid) {
+ /* Control altitude */
+ _pos_sp(2) = _pos_sp_triplet.current.z;
+ } else if (_control_mode.flag_control_climb_rate_enabled && _pos_sp_triplet.current.velocity_valid) {
/* reset alt setpoint to current altitude if needed */
reset_alt_sp();