74#include "generated/airframe.h"
116#define H_CTL_REF_W_P 5.
118#ifndef H_CTL_REF_XI_P
119#define H_CTL_REF_XI_P 0.85
122#define H_CTL_REF_W_Q 5.
124#ifndef H_CTL_REF_XI_Q
125#define H_CTL_REF_XI_Q 0.85
128#define H_CTL_REF_W_R 5.
130#ifndef H_CTL_REF_XI_R
131#define H_CTL_REF_XI_R 0.85
133#ifndef H_CTL_REF_MAX_P
134#define H_CTL_REF_MAX_P RadOfDeg(150.)
136#ifndef H_CTL_REF_MAX_P_DOT
137#define H_CTL_REF_MAX_P_DOT RadOfDeg(500.)
139#ifndef H_CTL_REF_MAX_Q
140#define H_CTL_REF_MAX_Q RadOfDeg(150.)
142#ifndef H_CTL_REF_MAX_Q_DOT
143#define H_CTL_REF_MAX_Q_DOT RadOfDeg(500.)
201#define AIRSPEED_RATIO_MIN 0.5
202#define AIRSPEED_RATIO_MAX 2.
208#ifndef PITCH_TRIM_RATE_LIMITER
209#define PITCH_TRIM_RATE_LIMITER 3.
222#ifndef H_CTL_COURSE_PRE_BANK_CORRECTION
223#define H_CTL_COURSE_PRE_BANK_CORRECTION 1.
225#ifndef H_CTL_COURSE_DGAIN
226#define H_CTL_COURSE_DGAIN 0.
231#ifndef H_CTL_ROLL_RATE_GAIN
232#define H_CTL_ROLL_RATE_GAIN 0.
234#ifndef H_CTL_ROLL_IGAIN
235#define H_CTL_ROLL_IGAIN 0.
237#ifndef H_CTL_ROLL_KFFA
238#define H_CTL_ROLL_KFFA 0.
240#ifndef H_CTL_ROLL_KFFD
241#define H_CTL_ROLL_KFFD 0.
246#ifndef H_CTL_PITCH_DGAIN
247#define H_CTL_PITCH_DGAIN 0.
249#ifndef H_CTL_PITCH_IGAIN
250#define H_CTL_PITCH_IGAIN 0.
252#ifndef H_CTL_PITCH_KFFA
253#define H_CTL_PITCH_KFFA 0.
255#ifndef H_CTL_PITCH_KFFD
256#define H_CTL_PITCH_KFFD 0.
260#ifndef H_CTL_YAW_KFFD
261#define H_CTL_YAW_KFFD 0.
264#ifndef USE_GYRO_PITCH_RATE
265#define USE_GYRO_PITCH_RATE TRUE
268#if PERIODIC_TELEMETRY
322#ifdef H_CTL_AILERON_OF_THROTTLE
348#ifdef H_CTL_PITCH_OF_ROLL
363#if PERIODIC_TELEMETRY
401 static float airspeed = 0.;
434#ifdef AHRS_TRIGGERED_ATTITUDE_LOOP
435#define H_CTL_REF_DT (1./AHRS_PROPAGATE_FREQUENCY)
437#define H_CTL_REF_DT (1./CONTROL_FREQUENCY)
445#define KFFA_UPDATE 0.1
446#define KFFD_UPDATE 0.05
474#ifdef USE_KFF_UPDATE_ROLL
517inline static void loiter(
void)
552#if !USE_GYRO_PITCH_RATE
587#ifdef USE_KFF_UPDATE_PITCH
600#if USE_GYRO_PITCH_RATE
637#if (!defined SITL || defined USE_NPS)
691#if H_CTL_CL_LOOP_INCREASE_FLAPS_WITH_LOADFACTOR
692#if (!defined SITL || defined USE_NPS)
712#if H_CTL_CL_LOOP_USE_AIRSPEED_SETPOINT
717#if H_CTL_CL_LOOP_INCREASE_FLAPS_WITH_LOADFACTOR
uint8_t autopilot_get_mode(void)
get autopilot mode
struct pprz_autopilot autopilot
Global autopilot structure.
Core autopilot interface common to all firmwares.
bool launch
request launch
pprz_t v_ctl_throttle_setpoint
uint8_t v_ctl_auto_throttle_submode
float v_ctl_auto_throttle_sum_err
float v_ctl_auto_throttle_nominal_cruise_throttle
float v_ctl_auto_throttle_cruise_throttle
float v_ctl_auto_airspeed_setpoint
in meters per second
#define AP_MODE_MANUAL
AP modes.
float v_ctl_auto_throttle_min_cruise_throttle
float v_ctl_auto_throttle_max_cruise_throttle
Fixed wing horizontal control.
#define VECT3_COPY(_a, _b)
#define ACCEL_BFP_OF_REAL(_af)
void int32_rmat_vmult(struct Int32Vect3 *vb, struct Int32RMat *m_a2b, struct Int32Vect3 *va)
rotate 3D vector by rotation matrix.
#define ACCEL_FLOAT_OF_BFP(_ai)
vector in North East Down coordinates
static struct NedCoor_i * stateGetAccelNed_i(void)
Get acceleration in NED coordinates (int).
static struct Int32RMat * stateGetNedToBodyRMat_i(void)
Get vehicle body attitude rotation matrix (int).
static struct FloatEulers * stateGetNedToBodyEulers_f(void)
Get vehicle body attitude euler angles (float).
static struct FloatRates * stateGetBodyRates_f(void)
Get vehicle body angular rate (float).
static float stateGetHorizontalSpeedNorm_f(void)
Get norm of horizontal ground speed (float).
static float stateGetHorizontalSpeedDir_f(void)
Get dir of horizontal ground speed (float).
static float stateGetAirspeed_f(void)
Get airspeed (float).
PRINT_CONFIG_MSG("USE_INS_NAV_INIT defaulting to TRUE")
arch independent LED (Light Emitting Diodes) API
Fixedwing Navigation library.
PRINT_CONFIG_VAR(ONELOOP_ANDI_FILT_CUTOFF)
#define AIRSPEED_RATIO_MIN
void h_ctl_course_loop(void)
#define H_CTL_PITCH_IGAIN
static void send_tune_roll(struct transport_tx *trans, struct link_device *dev)
static void h_ctl_pitch_loop(void)
float h_ctl_pitch_setpoint
static void send_calibration(struct transport_tx *trans, struct link_device *dev)
pprz_t h_ctl_elevator_setpoint
float h_ctl_pitch_sum_err
#define AIRSPEED_RATIO_MAX
#define H_CTL_COURSE_PRE_BANK_CORRECTION
float h_ctl_roll_max_setpoint
float h_ctl_elevator_of_roll
float h_ctl_roll_setpoint
static void send_ctl_a(struct transport_tx *trans, struct link_device *dev)
#define H_CTL_PITCH_DGAIN
#define PITCH_TRIM_RATE_LIMITER
struct HCtlAdaptRef h_ctl_ref
static void h_ctl_roll_loop(void)
float v_ctl_pitch_loiter_trim
pprz_t h_ctl_aileron_setpoint
float v_ctl_pitch_dash_trim
float h_ctl_roll_rate_gain
#define H_CTL_REF_MAX_P_DOT
void h_ctl_attitude_loop(void)
float h_ctl_roll_attitude_gain
#define H_CTL_REF_MAX_Q_DOT
#define KFFA_UPDATE
Adaptive control tuning parameters activate with USE_KFF_UPDATE.
float h_ctl_aileron_of_throttle
float h_ctl_pitch_loop_setpoint
#define H_CTL_COURSE_DGAIN
float h_ctl_pitch_of_roll
float h_ctl_course_pre_bank_correction
#define H_CTL_REF_DT
Define reference generator time step default to control frequency and ahrs propagation freq if contro...
float h_ctl_course_pre_bank
float h_ctl_course_setpoint
#define H_CTL_ROLL_RATE_GAIN
Fixed wing horizontal adaptive control.
#define H_CTL_ROLL_SUM_ERR_MAX
#define H_CTL_PITCH_SUM_ERR_MAX
API to get/set the generic vehicle states.
static const struct usb_device_descriptor dev
int8_t register_periodic_telemetry(struct periodic_telemetry *_pt, uint8_t _id, telemetry_cb _cb)
Register a telemetry callback function.
Periodic telemetry system header (includes downlink utility and generated code).
#define DefaultPeriodic
Set default periodic telemetry.