From e260a92ccbbc7d19ea1763b80121d52c6ef6856d Mon Sep 17 00:00:00 2001 From: Silvan Fuhrer Date: Mon, 4 Dec 2023 14:13:50 +0100 Subject: [PATCH] MC att control: do not update the attitude setpoint directly in transition mode That enables us to update the pitch setpoint in Stabilized mode in the VTOL controller (pitch ramp for transition). Signed-off-by: Silvan Fuhrer --- src/modules/mc_att_control/mc_att_control_main.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 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 35c65d5911..6565d4248c 100644 --- a/src/modules/mc_att_control/mc_att_control_main.cpp +++ b/src/modules/mc_att_control/mc_att_control_main.cpp @@ -193,9 +193,12 @@ MulticopterAttitudeControl::generate_attitude_setpoint(const Quatf &q, float dt, attitude_setpoint.timestamp = hrt_absolute_time(); _vehicle_attitude_setpoint_pub.publish(attitude_setpoint); - // update attitude controller setpoint immediately - _attitude_control.setAttitudeSetpoint(q_sp, attitude_setpoint.yaw_sp_move_rate); - _thrust_setpoint_body = Vector3f(attitude_setpoint.thrust_body); + // update attitude controller setpoint immediately (don't do it in vtol transition, then the VTOL module generates the attitude setpoint) + if (!_vtol_in_transition_mode) { + _attitude_control.setAttitudeSetpoint(q_sp, attitude_setpoint.yaw_sp_move_rate); + _thrust_setpoint_body = Vector3f(attitude_setpoint.thrust_body); + } + _last_attitude_setpoint = attitude_setpoint.timestamp; }