15 #define AP_MOTORS_HELI_SPEED_DEFAULT 125 // default servo update rate for helicopters 18 #define AP_MOTORS_HELI_SWASH_CYCLIC_MAX 2500 19 #define AP_MOTORS_HELI_COLLECTIVE_MIN 1250 20 #define AP_MOTORS_HELI_COLLECTIVE_MAX 1750 21 #define AP_MOTORS_HELI_COLLECTIVE_MID 1500 24 #define AP_MOTORS_HELI_LAND_COLLECTIVE_MIN 0 27 #define AP_MOTORS_HELI_RSC_SETPOINT 700 30 #define AP_MOTORS_HELI_RSC_CRITICAL 500 33 #define AP_MOTORS_HELI_RSC_IDLE_DEFAULT 0 34 #define AP_MOTORS_HELI_RSC_THRCRV_0_DEFAULT 250 35 #define AP_MOTORS_HELI_RSC_THRCRV_25_DEFAULT 320 36 #define AP_MOTORS_HELI_RSC_THRCRV_50_DEFAULT 380 37 #define AP_MOTORS_HELI_RSC_THRCRV_75_DEFAULT 500 38 #define AP_MOTORS_HELI_RSC_THRCRV_100_DEFAULT 1000 41 #define AP_MOTORS_HELI_RSC_RAMP_TIME 1 // 1 second to ramp output to main rotor ESC to setpoint 42 #define AP_MOTORS_HELI_RSC_RUNUP_TIME 10 // 10 seconds for rotor to reach full speed 45 #define AP_MOTORS_HELI_NOFLYBAR 0 47 class AP_HeliControls;
166 virtual void move_actuators(
float roll_out,
float pitch_out,
float coll_in,
float yaw_out) = 0;
virtual void move_actuators(float roll_out, float pitch_out, float coll_in, float yaw_out)=0
#define AP_MOTORS_HELI_NOFLYBAR
virtual float get_main_rotor_speed() const =0
float get_throttle_hover() const
float get_rsc_setpoint() const
virtual void calculate_roll_pitch_collective_factors()=0
virtual bool supports_yaw_passthrough() const
motor_frame_type _frame_type
float _collective_mid_pct
void set_inverted_flight(bool inverted)
int16_t calc_pwm_output_1to1_swash_servo(float input, const SRV_Channel *servo)
virtual void calculate_scalars()=0
struct AP_MotorsHeli::heliflags_type _heliflags
virtual void servo_test()=0
virtual uint16_t get_motor_mask()=0
uint8_t _servo_test_cycle_counter
virtual float get_desired_rotor_speed() const =0
virtual void set_desired_rotor_speed(float desired_speed)=0
void init(motor_frame_class frame_class, motor_frame_type frame_type)
AP_Int16 _rsc_idle_output
virtual bool parameter_check(bool display_msg) const
AP_MotorsHeli(uint16_t loop_rate, uint16_t speed_hz=AP_MOTORS_HELI_SPEED_DEFAULT)
Constructor.
void reset_flight_controls()
RC_Channel manager, with EEPROM-backed storage of constants.
virtual bool rotor_speed_above_critical() const =0
bool rotor_runup_complete() const
virtual void calculate_armed_scalars()=0
void set_collective_for_landing(bool landing)
void reset_swash_servo(SRV_Channel *servo)
virtual void update_motor_control(RotorControlState state)=0
#define AP_MOTORS_HELI_SPEED_DEFAULT
virtual void ext_gyro_gain(float gain)
uint8_t get_rsc_mode() const
void output_armed_zero_throttle()
Common definitions and utility routines for the ArduPilot libraries.
void set_frame_class_and_type(motor_frame_class frame_class, motor_frame_type frame_type)
static const struct AP_Param::GroupInfo var_info[]
uint8_t landing_collective
void update_throttle_filter()
AP_Int16 _land_collective_min
virtual void set_acro_tail(bool set)
virtual void output_test(uint8_t motor_seq, int16_t pwm)=0
uint8_t rotor_runup_complete
virtual bool has_flybar() const
virtual bool init_outputs()=0
void output_armed_stabilizing()
virtual void set_update_rate(uint16_t speed_hz)=0
static void setup_object_defaults(const void *object_pointer, const struct GroupInfo *group_info)