Paparazzi UAS
v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
|
A guidance mode based on Incremental Nonlinear Dynamic Inversion Come to ICRA2016 to learn more! More...
#include "std.h"
#include "math/pprz_algebra_int.h"
#include "math/pprz_algebra_float.h"
#include "filters/high_pass_filter.h"
#include "firmwares/rotorcraft/guidance.h"
#include "firmwares/rotorcraft/stabilization.h"
Go to the source code of this file.
Data Structures | |
struct | guidance_indi_hybrid_params |
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 |
A guidance mode based on Incremental Nonlinear Dynamic Inversion Come to ICRA2016 to learn more!
Definition in file guidance_indi_hybrid.h.
struct guidance_indi_hybrid_params |
Definition at line 75 of file guidance_indi_hybrid.h.
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.
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.
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.
Gmat | Dynamics matrix |
a_diff | acceleration errors in earth frame |
body_v | 3D 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
Gmat | Dynamics matrix |
a_diff | acceleration errors in earth frame |
body_v | 3D 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.
void guidance_indi_enter | ( | void | ) |
Call upon entering indi guidance.
Definition at line 168 of file guidance_indi.c.
References accely_filt, Stabilization::cmd, eulers_zxy, filt_accel_ned, filter_cutoff, float_eulers_of_quat_zxy(), guidance_indi_airspeed_filt, guidance_indi_airspeed_filt_cutoff, guidance_indi_hybrid_heading_sp, RotorcraftNavigation::heading, init_butterworth_2_low_pass(), nav, FloatEulers::phi, pitch_filt, FloatEulers::psi, roll_filt, stabilization, stateGetNedToBodyEulers_f(), stateGetNedToBodyQuat_f(), FloatEulers::theta, thrust_act, thrust_dyn, thrust_filt, and thrust_in.
|
inline |
Definition at line 468 of file eff_scheduling_rotwing.c.
References eff_scheduling_rotwing_lift_d.
void guidance_indi_init | ( | void | ) |
Init function.
Definition at line 153 of file guidance_indi.c.
References accel_sp_cb(), accel_sp_ev, accely_filt, DefaultPeriodic, filt_accel_ned, filter_cutoff, FLOAT_EULERS_ZERO, Ga, guidance_euler_cmd, GUIDANCE_INDI_ACCEL_SP_ID, guidance_indi_airspeed_filt, guidance_indi_airspeed_filt_cutoff, GUIDANCE_INDI_VEL_SP_ID, init_butterworth_2_low_pass(), pitch_filt, register_periodic_telemetry(), roll_filt, send_eff_mat_guid_indi_hybrid(), send_guidance_indi_hybrid(), send_indi_guidance(), thrust_dyn, thrust_filt, thrust_sp, THRUST_SP_SET_ZERO, vel_sp_cb(), and vel_sp_ev.
struct StabilizationSetpoint guidance_indi_run | ( | struct FloatVect3 * | accel_sp, |
float | heading_sp | ||
) |
accel_sp | accel setpoint in NED frame [m/s^2] |
heading_sp | the desired heading [rad] |
main indi guidance function
Definition at line 168 of file guidance_indi.c.
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.
void guidance_set_min_max_airspeed | ( | float | min_airspeed, |
float | max_airspeed | ||
) |
Definition at line 414 of file guidance_indi_hybrid.c.
|
extern |
Definition at line 229 of file guidance_indi_hybrid.c.
|
extern |
forward flight for hybrid nav
Definition at line 160 of file guidance_indi_hybrid.c.
|
extern |
Definition at line 287 of file guidance_indi_hybrid.c.
Referenced by send_guidance_indi_hybrid().
|
extern |
Definition at line 244 of file guidance_indi_hybrid.c.
|
extern |
Definition at line 1 of file guidance_indi_hybrid.c.
|
extern |
Definition at line 162 of file guidance_indi_hybrid.c.
|
extern |
Definition at line 117 of file guidance_indi.c.
Referenced by guidance_indi_hybrid_set_wls_settings().
|
extern |
Definition at line 219 of file guidance_indi_hybrid.c.
|
extern |
Definition at line 131 of file guidance_indi_hybrid.c.
Referenced by guidance_indi_hybrid_set_wls_settings().
|
extern |
|
extern |
Referenced by guidance_indi_hybrid_set_wls_settings().
|
extern |
Definition at line 70 of file guidance_indi.c.
Referenced by send_guidance_indi_hybrid(), and send_indi_guidance().
|
extern |
Definition at line 158 of file guidance_indi_hybrid.c.