171 _motors_multi(motors),
200 if (apply_angle_boost) {
226 float throttle_out = throttle_in*inverted_factor*boost_factor;
270 if (_thr_mix_man < 0.1f || _thr_mix_man > 4.0
f) {
275 if (_thr_mix_min < 0.1f || _thr_mix_min > 0.25f) {
void set_throttle_filter_cutoff(float filt_hz)
#define AC_ATTITUDE_CONTROL_MAN_DEFAULT
#define AC_ATTITUDE_CONTROL_ANGLE_LIMIT_THROTTLE_MAX
void set_throttle_avg_max(float throttle_avg_max)
void set_yaw(float yaw_in)
#define AC_ATC_MULTI_RATE_RP_P
#define AP_GROUPINFO(name, idx, clazz, element, def)
float rate_target_to_motor_roll(float rate_actual_rads, float rate_target_rads)
Vector3f get_gyro_latest(void) const
AP_Int8 _angle_boost_enabled
#define AC_ATC_MULTI_RATE_RP_I
#define AC_ATC_MULTI_RATE_RP_FILT_HZ
AP_MotorsMulticopter & _motors_multi
static auto MAX(const A &one, const B &two) -> decltype(one > two ? one :two)
AP_MotorsMatrix motors(400)
float _throttle_rpy_mix_desired
#define AC_ATC_MULTI_RATE_YAW_D
void set_throttle_out(float throttle_in, bool apply_angle_boost, float filt_cutoff) override
bool is_zero(const T fVal1)
#define AC_ATC_MULTI_RATE_YAW_FILT_HZ
#define AC_ATTITUDE_CONTROL_MIN_DEFAULT
float get_throttle_thrust_max() const
void rate_controller_run()
#define AC_ATTITUDE_CONTROL_MAX
virtual float get_throttle_hover() const =0
void set_throttle(float throttle_in)
#define AC_ATC_MULTI_RATE_RP_IMAX
float _althold_lean_angle_max
AC_AttitudeControl_Multi(AP_AHRS_View &ahrs, const AP_Vehicle::MultiCopter &aparm, AP_MotorsMulticopter &motors, float dt)
Vector3f _rate_target_ang_vel
float constrain_float(const float amt, const float low, const float high)
float rate_target_to_motor_pitch(float rate_actual_rads, float rate_target_rads)
#define AC_ATC_MULTI_RATE_YAW_IMAX
#define AC_ATTITUDE_CONTROL_MAX_DEFAULT
#define AP_NESTEDGROUPINFO(clazz, idx)
ArduCopter attitude control library.
void update_throttle_rpy_mix()
static const struct AP_Param::GroupInfo var_info[]
void parameter_sanity_check()
void set_pitch(float pitch_in)
virtual float rate_target_to_motor_yaw(float rate_actual_rads, float rate_target_rads)
void control_monitor_update(void)
void set_roll(float roll_in)
float get_throttle_avg_max(float throttle_in)
Copter PID control class.
void update_althold_lean_angle_max(float throttle_in) override
float get_throttle_boosted(float throttle_in)
#define AC_ATC_MULTI_RATE_RP_D
#define AC_ATC_MULTI_RATE_YAW_I
#define AP_SUBGROUPINFO(element, name, idx, thisclazz, elclazz)
const AP_AHRS_View & _ahrs
static void setup_object_defaults(const void *object_pointer, const struct GroupInfo *group_info)
#define AC_ATC_MULTI_RATE_YAW_P