|
|
|
@ -97,6 +97,7 @@ extern "C" __EXPORT int mc_att_control_main(int argc, char *argv[]);
@@ -97,6 +97,7 @@ extern "C" __EXPORT int mc_att_control_main(int argc, char *argv[]);
|
|
|
|
|
#define YAW_DEADZONE 0.05f |
|
|
|
|
#define MIN_TAKEOFF_THRUST 0.2f |
|
|
|
|
#define RATES_I_LIMIT 0.3f |
|
|
|
|
#define MANUAL_THROTTLE_MAX_MULTICOPTER 0.9f |
|
|
|
|
|
|
|
|
|
class MulticopterAttitudeControl |
|
|
|
|
{ |
|
|
|
@ -831,7 +832,7 @@ MulticopterAttitudeControl::task_main()
@@ -831,7 +832,7 @@ MulticopterAttitudeControl::task_main()
|
|
|
|
|
if (_v_control_mode.flag_control_manual_enabled) { |
|
|
|
|
/* manual rates control - ACRO mode */ |
|
|
|
|
_rates_sp = math::Vector<3>(_manual_control_sp.y, -_manual_control_sp.x, _manual_control_sp.r).emult(_params.acro_rate_max); |
|
|
|
|
_thrust_sp = _manual_control_sp.z; |
|
|
|
|
_thrust_sp = math::min(_manual_control_sp.z, MANUAL_THROTTLE_MAX_MULTICOPTER); |
|
|
|
|
|
|
|
|
|
/* publish attitude rates setpoint */ |
|
|
|
|
_v_rates_sp.roll = _rates_sp(0); |
|
|
|
|