Paparazzi UAS  v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
guidance_indi_hybrid_quadplane.c File Reference
#include "firmwares/rotorcraft/guidance/guidance_indi_hybrid.h"
#include "filters/low_pass_filter.h"
#include "state.h"
#include "autopilot.h"
#include "generated/modules.h"
+ Include dependency graph for guidance_indi_hybrid_quadplane.c:

Go to the source code of this file.

Macros

#define GUIDANCE_INDI_PITCH_EFF_SCALING   1.0
 

Functions

void guidance_indi_quadplane_init (void)
 Call upon entering indi guidance. More...
 
void guidance_indi_quadplane_propagate_filters (void)
 Low pass the accelerometer measurements to remove noise from vibrations. More...
 
void guidance_indi_calcg_wing (float Gmat[GUIDANCE_INDI_HYBRID_V][GUIDANCE_INDI_HYBRID_U], struct FloatVect3 a_diff, float body_v[GUIDANCE_INDI_HYBRID_V])
 Perform WLS. More...
 
void WEAK guidance_indi_hybrid_set_wls_settings (float body_v[3], float roll_angle, float pitch_angle)
 
bool autopilot_in_flight_end_detection (bool motors_on UNUSED)
 Quadplanes can still be in-flight with COMMAND_THRUST==0 and can even soar not descending in updrafts with all thrust off. More...
 

Variables

float bodyz_filter_cutoff = 0.2
 
Butterworth2LowPass accel_bodyz_filt
 

Macro Definition Documentation

◆ GUIDANCE_INDI_PITCH_EFF_SCALING

#define GUIDANCE_INDI_PITCH_EFF_SCALING   1.0

Function Documentation

◆ autopilot_in_flight_end_detection()

bool autopilot_in_flight_end_detection ( bool motors_on  UNUSED)

Quadplanes can still be in-flight with COMMAND_THRUST==0 and can even soar not descending in updrafts with all thrust off.

Definition at line 156 of file guidance_indi_hybrid_quadplane.c.

◆ guidance_indi_calcg_wing()

void guidance_indi_calcg_wing ( float  Gmat[GUIDANCE_INDI_HYBRID_V][GUIDANCE_INDI_HYBRID_U],
struct FloatVect3  a_diff,
float  body_v[GUIDANCE_INDI_HYBRID_V] 
)

Perform WLS.

Parameters
GmatDynamics matrix
a_diffacceleration errors in earth frame
body_v3D vector to write the control objective v

Definition at line 80 of file guidance_indi_hybrid_quadplane.c.

◆ guidance_indi_hybrid_set_wls_settings()

void guidance_indi_hybrid_set_wls_settings ( float  body_v[3],
float  roll_angle,
float  pitch_angle 
)

◆ guidance_indi_quadplane_init()

void guidance_indi_quadplane_init ( void  )

Call upon entering indi guidance.

Definition at line 55 of file guidance_indi_hybrid_quadplane.c.

References accel_bodyz_filt, bodyz_filter_cutoff, and init_butterworth_2_low_pass().

+ Here is the call graph for this function:

◆ guidance_indi_quadplane_propagate_filters()

void guidance_indi_quadplane_propagate_filters ( void  )

Low pass the accelerometer measurements to remove noise from vibrations.

The roll and pitch also need to be filtered to synchronize them with the acceleration Called as a periodic function with PERIODIC_FREQ

Definition at line 67 of file guidance_indi_hybrid_quadplane.c.

References accel_bodyz_filt, ACCEL_FLOAT_OF_BFP, stateGetAccelBody_i(), and update_butterworth_2_low_pass().

+ Here is the call graph for this function:

Variable Documentation

◆ accel_bodyz_filt

◆ bodyz_filter_cutoff

float bodyz_filter_cutoff = 0.2

Definition at line 47 of file guidance_indi_hybrid_quadplane.c.

Referenced by guidance_indi_quadplane_init().