123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- #pragma once
- #include "AC_AttitudeControl.h"
- #include <AP_Motors/AP_MotorsMulticopter.h>
- #define AC_ATC_SUB_ANGLE_P 6.0f
- #define AC_ATC_SUB_ACCEL_Y_MAX 110000.0f
- #define AC_ATC_SUB_RATE_RP_P 0.135f
- #define AC_ATC_SUB_RATE_RP_I 0.090f
- #define AC_ATC_SUB_RATE_RP_D 0.0036f
- #define AC_ATC_SUB_RATE_RP_IMAX 0.444f
- #define AC_ATC_SUB_RATE_RP_FILT_HZ 30.0f
- #define AC_ATC_SUB_RATE_YAW_P 0.180f
- #define AC_ATC_SUB_RATE_YAW_I 0.018f
- #define AC_ATC_SUB_RATE_YAW_D 0.0f
- #define AC_ATC_SUB_RATE_YAW_IMAX 0.222f
- #define AC_ATC_SUB_RATE_YAW_FILT_HZ 5.0f
- class AC_AttitudeControl_Sub : public AC_AttitudeControl {
- public:
- AC_AttitudeControl_Sub(AP_AHRS_View &ahrs, const AP_Vehicle::MultiCopter &aparm, AP_MotorsMulticopter& motors, float dt);
-
- virtual ~AC_AttitudeControl_Sub() {}
-
- AC_PID& get_rate_roll_pid() override { return _pid_rate_roll; }
- AC_PID& get_rate_pitch_pid() override { return _pid_rate_pitch; }
- AC_PID& get_rate_yaw_pid() override { return _pid_rate_yaw; }
-
- void update_althold_lean_angle_max(float throttle_in) override;
-
- void set_throttle_out(float throttle_in, bool apply_angle_boost, float filt_cutoff) override;
-
- float get_throttle_boosted(float throttle_in);
-
-
-
- void set_throttle_mix_min() override { _throttle_rpy_mix_desired = _thr_mix_min; }
- void set_throttle_mix_man() override { _throttle_rpy_mix_desired = _thr_mix_man; }
- void set_throttle_mix_max() override { _throttle_rpy_mix_desired = _thr_mix_max; }
-
- bool is_throttle_mix_min() const override { return (_throttle_rpy_mix < 1.25f*_thr_mix_min); }
-
- void rate_controller_run() override;
-
- void parameter_sanity_check() override;
-
- AP_Float _thr_mix_man;
- AP_Float _thr_mix_min;
- AP_Float _thr_mix_max;
-
- static const struct AP_Param::GroupInfo var_info[];
- protected:
-
- void update_throttle_rpy_mix();
-
- float get_throttle_avg_max(float throttle_in);
- AP_MotorsMulticopter& _motors_multi;
- AC_PID _pid_rate_roll;
- AC_PID _pid_rate_pitch;
- AC_PID _pid_rate_yaw;
-
- };
|