From f7e4a4852d3df293cbb98da1a0a377d39ca9c0d9 Mon Sep 17 00:00:00 2001 From: Simon Wilks Date: Fri, 21 Aug 2015 16:51:11 +0200 Subject: [PATCH] Reset the altitude setpoint. --- src/modules/fw_pos_control_l1/fw_pos_control_l1_main.cpp | 6 +++++- src/modules/mc_pos_control/mc_pos_control_main.cpp | 9 ++++++--- 2 files changed, 11 insertions(+), 4 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 e6ed69d455..73c2bb07ac 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 @@ -1027,7 +1027,11 @@ bool FixedwingPositionControl::update_desired_altitude(float dt) _althold_epv = _global_pos.epv; _was_in_deadband = true; } - + if (_vehicle_status.is_vtol) { + if (_vehicle_status.is_rotary_wing || _vehicle_status.in_transition_mode) { + _hold_alt = _global_pos.alt; + } + } return climbout_mode; } 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 84f7439a58..e4874ff75f 100644 --- a/src/modules/mc_pos_control/mc_pos_control_main.cpp +++ b/src/modules/mc_pos_control/mc_pos_control_main.cpp @@ -993,9 +993,12 @@ MulticopterPositionControl::task_main() reset_yaw_sp = true; } - // XXX Temporary: for vtol use we need to reset the yaw setpoint when we are doing a transition - if (_vehicle_status.in_transition_mode) { - reset_yaw_sp = true; + /* reset yaw and altitude setpoint for VTOL which are in fw mode */ + if (_vehicle_status.is_vtol) { + if (!_vehicle_status.is_rotary_wing && !_vehicle_status.in_transition_mode) { + reset_yaw_sp = true; + _reset_alt_sp = true; + } } //Update previous arming state