34 #ifndef EFF_SCHEDULING_FALCON_LOW_AIRSPEED
35 #define EFF_SCHEDULING_FALCON_LOW_AIRSPEED 8.0f
38 #ifdef STABILIZATION_INDI_G1
39 static float g1g2_hover[INDI_OUTPUTS][INDI_NUM_ACT] = STABILIZATION_INDI_G1;
42 STABILIZATION_INDI_G1_ROLL,
43 STABILIZATION_INDI_G1_PITCH,
44 STABILIZATION_INDI_G1_YAW,
45 STABILIZATION_INDI_G1_THRUST
51 for (
int8_t i = 0; i < INDI_OUTPUTS; i++) {
52 for (
int8_t j = 0; j < INDI_NUM_ACT; j++) {
68 float pitch_ratio = 0.0f;
75 Bound(pitch_ratio, 0.0f, 1.0f);
78 Bound(airspeed, 0.0f, 30.0f);
79 float airspeed2 = airspeed*airspeed;
85 float pitch_eff = pitch_ratio * EFF_PITCH_A * airspeed2;
86 g1g2[1][4] = pitch_eff / 1000;
87 g1g2[1][5] = -pitch_eff / 1000;
89 float yaw_eff = pitch_ratio * EFF_YAW_A * airspeed2;
Common code for AP and FBW telemetry.
#define EFF_SCHEDULING_FALCON_LOW_AIRSPEED
void eff_scheduling_falcon_periodic(void)
void eff_scheduling_falcon_report(void)
static float g1g2_hover[INDI_OUTPUTS][INDI_NUM_ACT]
void eff_scheduling_falcon_init(void)
Interpolation of control effectivenss matrix of the Falcon hybrid plane.
void float_eulers_of_quat_zxy(struct FloatEulers *e, struct FloatQuat *q)
euler rotation 'ZXY' This rotation order is useful if you need 90 deg pitch
static struct FloatQuat * stateGetNedToBodyQuat_f(void)
Get vehicle body attitude quaternion (float).
static float stateGetAirspeed_f(void)
Get airspeed (float).
struct FloatEulers eulers_zxy
state eulers in zxy order
Horizontal guidance for rotorcrafts.
float g1g2[INDI_OUTPUTS][INDI_NUM_ACT]
API to get/set the generic vehicle states.
signed char int8_t
Typedef defining 8 bit char type.
uint16_t f
Camera baseline, in meters (i.e. horizontal distance between the two cameras of the stereo setup)