From c665c34d2aefa4a7df5408ce287c19fd03405044 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beat=20K=C3=BCng?= <beat-kueng@gmx.net> Date: Thu, 29 Nov 2018 22:04:27 +0100 Subject: [PATCH] MC stabilized: allow yaw control at 0 throttle if yaw-airmode is selected --- src/modules/mc_att_control/mc_att_control.hpp | 4 +++- src/modules/mc_att_control/mc_att_control_main.cpp | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) 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<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 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; -- GitLab