Paparazzi UAS  v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
guidance_indi_hybrid.h File Reference

A guidance mode based on Incremental Nonlinear Dynamic Inversion Come to ICRA2016 to learn more! More...

+ Include dependency graph for guidance_indi_hybrid.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  guidance_indi_hybrid_params
 

Enumerations

enum  GuidanceIndiHybrid_HMode { GUIDANCE_INDI_HYBRID_H_POS , GUIDANCE_INDI_HYBRID_H_SPEED , GUIDANCE_INDI_HYBRID_H_ACCEL }
 
enum  GuidanceIndiHybrid_VMode { GUIDANCE_INDI_HYBRID_V_POS , GUIDANCE_INDI_HYBRID_V_SPEED , GUIDANCE_INDI_HYBRID_V_ACCEL }
 

Functions

void guidance_indi_init (void)
 Init function. More...
 
void guidance_indi_enter (void)
 Call upon entering indi guidance. More...
 
float guidance_indi_get_liftd (float pitch, float theta)
 
void guidance_indi_calcg_wing (float Gmat[GUIDANCE_INDI_HYBRID_V][GUIDANCE_INDI_HYBRID_U], struct FloatVect3 a_diff, float v_body[GUIDANCE_INDI_HYBRID_V])
 Perform WLS. More...
 
struct StabilizationSetpoint guidance_indi_run (struct FloatVect3 *accep_sp, float heading_sp)
 
struct StabilizationSetpoint guidance_indi_run_mode (bool in_flight, struct HorizontalGuidance *gh, struct VerticalGuidance *gv, enum GuidanceIndiHybrid_HMode h_mode, enum GuidanceIndiHybrid_VMode v_mode)
 
void guidance_set_min_max_airspeed (float min_airspeed, float max_airspeed)
 

Variables

struct FloatVect3 sp_accel
 
struct FloatVect3 gi_speed_sp
 
struct guidance_indi_hybrid_params gih_params
 
float guidance_indi_pitch_pref_deg
 
float gi_unbounded_airspeed_sp
 
float guidance_indi_thrust_z_eff
 
float guidance_indi_specific_force_gain
 
bool take_heading_control
 
float guidance_indi_max_bank
 
float guidance_indi_min_pitch
 
bool force_forward
 forward flight for hybrid nav More...
 
bool guidance_indi_airspeed_filtering
 
bool coordinated_turn_use_accel
 

Detailed Description

A guidance mode based on Incremental Nonlinear Dynamic Inversion Come to ICRA2016 to learn more!

Definition in file guidance_indi_hybrid.h.


Data Structure Documentation

◆ guidance_indi_hybrid_params

struct guidance_indi_hybrid_params

Definition at line 75 of file guidance_indi_hybrid.h.

Data Fields
float climb_vspeed_fwd
float climb_vspeed_quad
float descend_vspeed_fwd
float descend_vspeed_quad
float heading_bank_gain
float liftd_asq
float liftd_p50
float liftd_p80
float max_airspeed
float min_airspeed
float pos_gain
float pos_gainz
float speed_gain
float speed_gainz
float stall_protect_gain

Enumeration Type Documentation

◆ GuidanceIndiHybrid_HMode

Enumerator
GUIDANCE_INDI_HYBRID_H_POS 
GUIDANCE_INDI_HYBRID_H_SPEED 
GUIDANCE_INDI_HYBRID_H_ACCEL 

Definition at line 59 of file guidance_indi_hybrid.h.

◆ GuidanceIndiHybrid_VMode

Enumerator
GUIDANCE_INDI_HYBRID_V_POS 
GUIDANCE_INDI_HYBRID_V_SPEED 
GUIDANCE_INDI_HYBRID_V_ACCEL 

Definition at line 65 of file guidance_indi_hybrid.h.

Function Documentation

◆ guidance_indi_calcg_wing()

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

Perform WLS.

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

Perform WLS.

the NED accelerations, taking into account the lift of a wing that is horizontal at -90 degrees pitch

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.

References accel_bodyz_filt, eulers_zxy, float_eulers_of_quat_zxy(), guidance_indi_get_liftd(), GUIDANCE_INDI_PITCH_EFF_SCALING, SecondOrderLowPass::o, FloatEulers::phi, FloatEulers::psi, stateGetAirspeed_f(), stateGetNedToBodyQuat_f(), mesonh.mesonh_atmosphere::T, FloatEulers::theta, v_gih, FloatVect3::x, FloatVect3::y, and FloatVect3::z.

+ Here is the call graph for this function:

◆ guidance_indi_enter()

◆ guidance_indi_get_liftd()

float guidance_indi_get_liftd ( float pitch  UNUSED,
float theta  UNUSED 
)
inline

Definition at line 468 of file eff_scheduling_rotwing.c.

References eff_scheduling_rotwing_lift_d.

◆ guidance_indi_init()

◆ guidance_indi_run()

struct StabilizationSetpoint guidance_indi_run ( struct FloatVect3 accel_sp,
float  heading_sp 
)
Parameters
accel_spaccel setpoint in NED frame [m/s^2]
heading_spthe desired heading [rad]
Returns
stabilization setpoint structure

main indi guidance function

Definition at line 168 of file guidance_indi.c.

◆ guidance_indi_run_mode()

struct StabilizationSetpoint guidance_indi_run_mode ( bool  in_flight,
struct HorizontalGuidance gh,
struct VerticalGuidance gv,
enum GuidanceIndiHybrid_HMode  h_mode,
enum GuidanceIndiHybrid_VMode  v_mode 
)

Definition at line 749 of file guidance_indi_hybrid.c.

◆ guidance_set_min_max_airspeed()

void guidance_set_min_max_airspeed ( float  min_airspeed,
float  max_airspeed 
)

Definition at line 414 of file guidance_indi_hybrid.c.

Variable Documentation

◆ coordinated_turn_use_accel

bool coordinated_turn_use_accel
extern

Definition at line 229 of file guidance_indi_hybrid.c.

◆ force_forward

bool force_forward
extern

forward flight for hybrid nav

Definition at line 160 of file guidance_indi_hybrid.c.

◆ gi_speed_sp

struct FloatVect3 gi_speed_sp
extern

Definition at line 287 of file guidance_indi_hybrid.c.

Referenced by send_guidance_indi_hybrid().

◆ gi_unbounded_airspeed_sp

float gi_unbounded_airspeed_sp
extern

Definition at line 244 of file guidance_indi_hybrid.c.

◆ gih_params

struct guidance_indi_hybrid_params gih_params
extern

Definition at line 1 of file guidance_indi_hybrid.c.

◆ guidance_indi_airspeed_filtering

bool guidance_indi_airspeed_filtering
extern

Definition at line 162 of file guidance_indi_hybrid.c.

◆ guidance_indi_max_bank

float guidance_indi_max_bank
extern

Definition at line 117 of file guidance_indi.c.

Referenced by guidance_indi_hybrid_set_wls_settings().

◆ guidance_indi_min_pitch

float guidance_indi_min_pitch
extern

Definition at line 219 of file guidance_indi_hybrid.c.

◆ guidance_indi_pitch_pref_deg

float guidance_indi_pitch_pref_deg
extern

Definition at line 131 of file guidance_indi_hybrid.c.

Referenced by guidance_indi_hybrid_set_wls_settings().

◆ guidance_indi_specific_force_gain

float guidance_indi_specific_force_gain
extern

◆ guidance_indi_thrust_z_eff

float guidance_indi_thrust_z_eff
extern

◆ sp_accel

struct FloatVect3 sp_accel
extern

Definition at line 70 of file guidance_indi.c.

Referenced by send_guidance_indi_hybrid(), and send_indi_guidance().

◆ take_heading_control

bool take_heading_control
extern

Definition at line 158 of file guidance_indi_hybrid.c.