diff --git a/src/modules/mc_att_control/mc_att_control.hpp b/src/modules/mc_att_control/mc_att_control.hpp index c3dad3c7ab56..db644c1f897b 100644 --- a/src/modules/mc_att_control/mc_att_control.hpp +++ b/src/modules/mc_att_control/mc_att_control.hpp @@ -264,7 +264,9 @@ class MulticopterAttitudeControl : public ModuleBase (ParamFloat) _man_throttle_min, /**< minimum throttle for stabilized */ (ParamFloat) _throttle_max, /**< maximum throttle for stabilized */ (ParamFloat) _throttle_hover, /**< throttle at which vehicle is at hover equilibrium */ - (ParamInt) _throttle_curve /**< throttle curve behavior */ + (ParamInt) _throttle_curve, /**< throttle curve behavior */ + + (ParamInt) _vtol_type ) matrix::Vector3f _attitude_p; /**< P gain for attitude control */ 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 020096ac63c1..050cbf977db1 100644 --- a/src/modules/mc_att_control/mc_att_control_main.cpp +++ b/src/modules/mc_att_control/mc_att_control_main.cpp @@ -51,6 +51,7 @@ #include #include #include +#include #define TPA_RATE_LOWER_LIMIT 0.05f @@ -891,10 +892,12 @@ MulticopterAttitudeControl::run() if (_v_control_mode.flag_control_attitude_enabled && _vehicle_status.is_rotary_wing) { if (attitude_updated) { // Generate the attitude setpoint from stick inputs if we are in Manual/Stabilized mode + // For Tailsitters doing transitions the attitude setpoint is generated in tailsitter.cpp if (_v_control_mode.flag_control_manual_enabled && !_v_control_mode.flag_control_altitude_enabled && !_v_control_mode.flag_control_velocity_enabled && - !_v_control_mode.flag_control_position_enabled) { + !_v_control_mode.flag_control_position_enabled && + !(_vtol_type.get() == vtol_type::TAILSITTER && _vehicle_status.in_transition_mode)) { generate_attitude_setpoint(attitude_dt, reset_yaw_sp); attitude_setpoint_generated = true; }