diff --git a/src/modules/mc_att_control/mc_att_control.hpp b/src/modules/mc_att_control/mc_att_control.hpp index bd860ad7932dd8cbdc0081c0480c35c21012f411..c5c660c85dfb0996733abd11cc5382c6c62dad35 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<px4::params::MPC_MANTHR_MIN>) _man_throttle_min, /**< minimum throttle for stabilized */ (ParamFloat<px4::params::MPC_THR_MAX>) _throttle_max, /**< maximum throttle for stabilized */ (ParamFloat<px4::params::MPC_THR_HOVER>) _throttle_hover, /**< throttle at which vehicle is at hover equilibrium */ - (ParamInt<px4::params::MPC_THR_CURVE>) _throttle_curve /**< throttle curve behavior */ + (ParamInt<px4::params::MPC_THR_CURVE>) _throttle_curve, /**< throttle curve behavior */ + + (ParamInt<px4::params::MC_AIRMODE>) _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 27c2df2b9439330fb9d559cd85aaf1a4911af33a..464e96ff81b8781857b7a2418a06a13876016492 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;