12 #define AC_ATC_HELI_RATE_RP_P 0.024f 13 #define AC_ATC_HELI_RATE_RP_I 0.6f 14 #define AC_ATC_HELI_RATE_RP_D 0.001f 15 #define AC_ATC_HELI_RATE_RP_IMAX 1.0f 16 #define AC_ATC_HELI_RATE_RP_FF 0.060f 17 #define AC_ATC_HELI_RATE_RP_FILT_HZ 20.0f 18 #define AC_ATC_HELI_RATE_YAW_P 0.18f 19 #define AC_ATC_HELI_RATE_YAW_I 0.12f 20 #define AC_ATC_HELI_RATE_YAW_D 0.003f 21 #define AC_ATC_HELI_RATE_YAW_IMAX 1.0f 22 #define AC_ATC_HELI_RATE_YAW_FF 0.024f 23 #define AC_ATC_HELI_RATE_YAW_FILT_HZ 20.0f 25 #define AC_ATTITUDE_HELI_ANGLE_LIMIT_THROTTLE_MAX 0.95f // Heli's use 95% of max collective before limiting frame angle 26 #define AC_ATTITUDE_HELI_RATE_INTEGRATOR_LEAK_RATE 0.02f 27 #define AC_ATTITUDE_HELI_RATE_RP_FF_FILTER 10.0f 28 #define AC_ATTITUDE_HELI_RATE_Y_VFF_FILTER 10.0f 29 #define AC_ATTITUDE_HELI_HOVER_ROLL_TRIM_DEFAULT 300 30 #define AC_ATTITUDE_HELI_ACRO_OVERSHOOT_ANGLE_RAD ToRad(30.0f) 97 void set_throttle_out(
float throttle_in,
bool apply_angle_boost,
float filt_cutoff)
override;
AC_PID & get_rate_pitch_pid()
#define AC_ATC_HELI_RATE_RP_FF
virtual void rate_controller_run()
#define AC_ATC_HELI_RATE_RP_P
struct AC_AttitudeControl_Heli::AttControlHeliFlags _flags_heli
AC_PID & get_rate_yaw_pid()
float rate_target_to_motor_yaw(float rate_yaw_actual_rads, float rate_yaw_rads) override
AC_AttitudeControl_Heli(AP_AHRS_View &ahrs, const AP_Vehicle::MultiCopter &aparm, AP_MotorsHeli &motors, float dt)
void set_inverted_flight(bool inverted) override
void input_euler_angle_roll_pitch_euler_rate_yaw(float euler_roll_angle_cd, float euler_pitch_angle_cd, float euler_yaw_rate_cds) override
AC_HELI_PID _pid_rate_roll
uint8_t flybar_passthrough
void update_althold_lean_angle_max(float throttle_in) override
#define AC_ATC_HELI_RATE_YAW_FILT_HZ
void input_euler_angle_roll_pitch_yaw(float euler_roll_angle_cd, float euler_pitch_angle_cd, float euler_yaw_angle_cd, bool slew_yaw) override
static const struct AP_Param::GroupInfo var_info[]
AC_HELI_PID _pid_rate_yaw
AP_MotorsMatrix motors(400)
#define AC_ATC_HELI_RATE_YAW_D
#define AC_ATC_HELI_RATE_RP_IMAX
#define AC_ATC_HELI_RATE_RP_I
LowPassFilterFloat yaw_velocity_feedforward_filter
ArduCopter attitude control library.
Helicopter Specific Rate PID algorithm, with EEPROM-backed storage of constants.
#define AC_ATTITUDE_HELI_RATE_Y_VFF_FILTER
float _hover_roll_trim_scalar
#define AC_ATC_HELI_RATE_YAW_I
AP_Int16 _hover_roll_trim
int16_t _passthrough_roll
void use_leaky_i(bool leaky_i) override
#define AC_ATC_HELI_RATE_RP_D
void rate_bf_to_motor_roll_pitch(const Vector3f &rate_rads, float rate_roll_target_rads, float rate_pitch_target_rads)
#define AC_ATC_HELI_RATE_RP_FILT_HZ
void set_throttle_out(float throttle_in, bool apply_angle_boost, float filt_cutoff) override
void set_hover_roll_trim_scalar(float scalar) override
void passthrough_bf_roll_pitch_rate_yaw(float roll_passthrough, float pitch_passthrough, float yaw_rate_bf_cds) override
float constrain_float(const float amt, const float low, const float high)
AP_Int8 _piro_comp_enabled
static constexpr float radians(float deg)
void use_flybar_passthrough(bool passthrough, bool tail_passthrough) override
void do_piro_comp(bool piro_comp)
AC_PID & get_rate_roll_pid()
#define AC_ATC_HELI_RATE_YAW_P
int16_t _passthrough_pitch
void integrate_bf_rate_error_to_angle_errors()
Motor control class for Traditional Heli.
void input_rate_bf_roll_pitch_yaw(float roll_rate_bf_cds, float pitch_rate_bf_cds, float yaw_rate_bf_cds) override
LowPassFilterFloat pitch_feedforward_filter
float get_roll_trim_rad()
Copter PID control class.
LowPassFilterFloat roll_feedforward_filter
#define AC_ATC_HELI_RATE_YAW_FF
#define AC_ATTITUDE_HELI_RATE_RP_FF_FILTER
LowPassFilterFloat yaw_acceleration_feedforward_filter
#define AC_ATC_HELI_RATE_YAW_IMAX
AC_HELI_PID _pid_rate_pitch
Vector3f _att_error_rot_vec_rad
static void setup_object_defaults(const void *object_pointer, const struct GroupInfo *group_info)