diff --git a/src/modules/mc_att_control/mc_att_control.hpp b/src/modules/mc_att_control/mc_att_control.hpp index bd860ad793..c5c660c85d 100644 --- a/src/modules/mc_att_control/mc_att_control.hpp +++ b/src/modules/mc_att_control/mc_att_control.hpp @@ -269,7 +269,9 @@ private: (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) _airmode ) 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 27c2df2b94..464e96ff81 100644 --- a/src/modules/mc_att_control/mc_att_control_main.cpp +++ b/src/modules/mc_att_control/mc_att_control_main.cpp @@ -438,7 +438,7 @@ MulticopterAttitudeControl::generate_attitude_setpoint(float dt, bool reset_yaw_ if (reset_yaw_sp) { _man_yaw_sp = yaw; - } else if (_manual_control_sp.z > 0.05f) { + } else if (_manual_control_sp.z > 0.05f || _airmode.get() == (int32_t)Mixer::Airmode::roll_pitch_yaw) { const float yaw_rate = math::radians(_yaw_rate_scaling.get()); attitude_setpoint.yaw_sp_move_rate = _manual_control_sp.r * yaw_rate;