33#include "generated/modules.h"
37#ifndef GUIDANCE_INDI_MAX_H_THRUST
38#define GUIDANCE_INDI_MAX_H_THRUST 1.f
41#ifndef GUIDANCE_INDI_MAX_V_THRUST
42#define GUIDANCE_INDI_MAX_V_THRUST 15.f
71 Gmat[0][0] =
Tx * (-spsi * cphi * stheta) +
Ty * (spsi * sphi) +
Tz * (spsi * cphi * ctheta);
72 Gmat[1][0] =
Tx * (cpsi * cphi * stheta) +
Ty * (-cpsi * sphi) +
Tz * (-cpsi * cphi * ctheta);
73 Gmat[2][0] =
Tx * (sphi * stheta) +
Ty * (cphi) +
Tz * (-sphi * ctheta);
76 Gmat[0][1] =
Tx * (-cpsi * stheta - spsi * sphi * ctheta) +
Tz * (cpsi * ctheta - spsi * sphi * stheta);
77 Gmat[1][1] =
Tx * (-spsi * stheta + cpsi * sphi * ctheta) +
Tz * (spsi * ctheta + cpsi * sphi * stheta);
78 Gmat[2][1] =
Tx * (-cphi * ctheta) +
Tz * (-cphi * stheta);
86 Gmat[0][3] = cpsi * ctheta - spsi * sphi * stheta;
87 Gmat[1][3] = spsi * ctheta + cpsi * sphi * stheta;
88 Gmat[2][3] = -stheta * cphi;
91 Gmat[0][4] = -spsi * cphi;
92 Gmat[1][4] = cpsi * cphi;
96 Gmat[0][5] = cpsi * stheta + spsi * sphi * ctheta;
97 Gmat[1][5] = spsi * stheta - cpsi * sphi * ctheta;
98 Gmat[2][5] = cphi * ctheta;
112#if GUIDANCE_INDI_RC_SWITCH_EULER
float guidance_indi_max_bank
static float Gmat[GUIDANCE_INDI_NV][GUIDANCE_INDI_NU]
A guidance mode based on Incremental Nonlinear Dynamic Inversion.
#define GUIDANCE_INDI_MAX_H_THRUST
static void guidance_indi_calcG_yxz(float Gmat[3][6], struct FloatEulers euler_yxz)
void guidance_indi_set_wls_settings(struct WLS_t *wls, struct FloatEulers *euler_yxz, float heading_sp UNUSED)
#define GUIDANCE_INDI_MAX_V_THRUST
void guidance_indi_calcG(float Gmat[3][6], struct FloatEulers euler)
Compute effectiveness matrix for guidance.
float guidance_indi_max_v_thrust
float guidance_indi_max_h_thrust
static pprz_t radio_control_get(uint8_t idx)
Get a radio control channel value.
#define RADIO_ROLL
Redefining RADIO_* Do not use with radio.h (ppm rc)
struct FloatVect3 stab_thrust_filt
API to get/set the generic vehicle states.