171 _motors_multi(motors),
207 if (apply_angle_boost) {
233 float throttle_out = throttle_in*inverted_factor*boost_factor;
277 if (_thr_mix_man < 0.1f || _thr_mix_man > 4.0
f) {
282 if (_thr_mix_min < 0.1f || _thr_mix_min > 0.25f) {
#define AC_ATC_SUB_RATE_YAW_IMAX
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_SUB_ACCEL_Y_MAX
#define AC_ATC_SUB_RATE_YAW_I
#define AC_ATC_SUB_RATE_RP_FILT_HZ
void parameter_sanity_check()
#define AP_GROUPINFO(name, idx, clazz, element, def)
void rate_controller_run()
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
void set_throttle_out(float throttle_in, bool apply_angle_boost, float filt_cutoff) override
#define AC_ATC_SUB_RATE_RP_P
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_SUB_RATE_RP_IMAX
#define AC_ATC_SUB_ANGLE_P
float get_throttle_avg_max(float throttle_in)
ArduSub attitude control library.
static const struct AP_Param::GroupInfo var_info[]
bool is_zero(const T fVal1)
#define AC_ATTITUDE_CONTROL_MIN_DEFAULT
float get_throttle_thrust_max() const
#define AC_ATC_SUB_RATE_YAW_D
#define AC_ATC_SUB_RATE_RP_D
#define AC_ATTITUDE_CONTROL_MAX
virtual float get_throttle_hover() const =0
void set_throttle(float throttle_in)
float get_throttle_boosted(float throttle_in)
#define AC_ATC_SUB_RATE_YAW_FILT_HZ
AP_MotorsMulticopter & _motors_multi
float _althold_lean_angle_max
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_ATTITUDE_CONTROL_MAX_DEFAULT
#define AP_NESTEDGROUPINFO(clazz, idx)
#define AC_ATC_SUB_RATE_RP_I
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)
void update_throttle_rpy_mix()
#define AC_ATC_SUB_RATE_YAW_P
Copter PID control class.
void update_althold_lean_angle_max(float throttle_in) override
#define AP_SUBGROUPINFO(element, name, idx, thisclazz, elclazz)
AC_AttitudeControl_Sub(AP_AHRS_View &ahrs, const AP_Vehicle::MultiCopter &aparm, AP_MotorsMulticopter &motors, float dt)
const AP_AHRS_View & _ahrs
static void setup_object_defaults(const void *object_pointer, const struct GroupInfo *group_info)