33#include "generated/airframe.h"
39#define ANDI_NUM_ACT COMMANDS_NB_REAL
42#ifndef ANDI_NUM_VIRTUAL_ACT
43#define ANDI_NUM_VIRTUAL_ACT COMMANDS_NB_VIRTUAL
48#if ANDI_NUM_VIRTUAL_ACT < 2
49#error "You must specify the number of virtual actuators to be at least 2"
50#define ANDI_NUM_VIRTUAL_ACT 2
53#define ANDI_NUM_ACT_TOT (ANDI_NUM_ACT + ANDI_NUM_VIRTUAL_ACT)
56#error "You must specify the number of controlled axis (outputs)"
59#define ANDI_G_SCALING 1000.0f
Simple first order low pass filter with bilinear transform.
Fourth order Butterworth low pass filter.
First order low pass filter structure.
Second order low pass filter structure.
void oneloop_andi_read_rc(bool in_flight, bool in_carefree, bool coordinated_turn)
struct PolePlacement p_pos_e
struct PolePlacement p_head_rm
void oneloop_andi_RM(bool half_loop, struct FloatVect3 PSA_des, int rm_order_h, int rm_order_v, bool in_flight_oneloop)
Function to generate the reference signals for the oneloop controller.
void oneloop_andi_enter(bool half_loop_sp, int ctrl_type)
Function that resets important values upon engaging Oneloop ANDI.
struct Gains3rdOrder k_att_rm
struct guidance_indi_hybrid_params gih_params
struct FloatEulers eulers_zxy_des
struct PolePlacement p_att_rm
float g1g2_1l[ANDI_OUTPUTS][ANDI_NUM_ACT_TOT]
void guidance_set_max_bank_angle(float max_bank)
Guidance limit setters called by rotwing_state (also implemented by guidance_indi_hybrid).
struct Gains3rdOrder k_att_e
void guidance_set_max_climb_speed(float max_climb_speed_quad, float max_climb_speed_fwd)
struct Gains3rdOrder k_pos_e
struct Gains2ndOrder k_head_rm
void oneloop_from_nav(bool in_flight)
Function that maps navigation inputs to the oneloop controller for the generated autopilot.
struct PolePlacement p_alt_rm
struct Gains2ndOrder k_head_e
void oneloop_andi_set_failsafe_setpoint(void)
void guidance_set_min_max_airspeed(float min_airspeed, float max_airspeed)
float andi_u[ANDI_NUM_ACT_TOT]
void oneloop_andi_run(bool in_flight, bool half_loop, struct FloatVect3 PSA_des, int rm_order_h, int rm_order_v)
Main function that runs the controller and performs control allocation.
struct PolePlacement p_att_e
struct PolePlacement p_alt_e
struct PolePlacement p_head_e
float andi_du[ANDI_NUM_ACT_TOT]
struct OneloopGeneral oneloop_andi
struct Gains3rdOrder k_pos_rm
void guidance_set_max_descend_speed(float max_descend_speed_quad, float max_descend_speed_fwd)
void oneloop_andi_init(void)
Init function of Oneloop ANDI controller
float gi_unbounded_airspeed_sp
struct PolePlacement p_pos_rm
float actuator_state_1l[ANDI_NUM_ACT_TOT]
float act_state_filt_vect_1l[ANDI_NUM_ACT]
struct OneloopGuidanceState gui_state
struct OneloopStabilizationState sta_state
union LP_t::@275 meas_filt
struct OneloopGuidanceRef gui_ref
struct OneloopStabilizationRef sta_ref
enum FilterType filter_type
General stabilization interface for rotorcrafts.
Common data structures shared by euler and quaternion int implementations.
Rotorcraft attitude reference generation.
signed char int8_t
Typedef defining 8 bit char type.