![]() |
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. | |
void | guidance_indi_enter (void) |
Call upon entering indi guidance. | |
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. | |
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) |
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.
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 |
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.
|
extern |
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(), foo, guidance_indi_get_liftd(), GUIDANCE_INDI_PITCH_EFF_SCALING, SecondOrderLowPass::o, FloatEulers::phi, FloatEulers::psi, stateGetAirspeed_f(), stateGetNedToBodyQuat_f(), FloatEulers::theta, and v_gih.
Referenced by guidance_indi_run().
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(), foo, 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.
Definition at line 468 of file eff_scheduling_rotwing.c.
References eff_scheduling_rotwing_lift_d.
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, foo, 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.
|
extern |
accel_sp | accel setpoint in NED frame [m/s^2] |
heading_sp | the desired heading [rad] |
main indi guidance function
Definition at line 201 of file guidance_indi.c.
References accely_filt, control_increment, du_gih, euler_cmd, eulers_zxy, filt_accel_ned, FLOAT_ANGLE_NORMALIZE, float_eulers_of_quat_yxz(), float_eulers_of_quat_zxy(), float_mat3_mult(), float_mat_inv_3d(), float_quat_normalize(), float_quat_of_eulers_yxz(), float_quat_of_eulers_zxy(), foo, g1g2, Ga, Ga_inv, get_sys_time_float(), gih_coordinated_turn_max_airspeed, gih_coordinated_turn_min_airspeed, guidance_euler_cmd, guidance_indi_calcg_wing(), guidance_indi_calcG_yxz(), guidance_indi_hybrid_heading_sp, guidance_indi_hybrid_set_wls_settings(), guidance_indi_max_bank, GUIDANCE_INDI_MAX_PITCH, GUIDANCE_INDI_MAX_PUSHER_INCREMENT, guidance_indi_min_pitch, guidance_indi_propagate_filters(), guidance_indi_specific_force_gain, guidance_indi_speed_gain, heading, indi_accel_sp, indi_accel_sp_set_2d, indi_accel_sp_set_3d, MAT33_INV, MAT33_VECT3_MUL, SecondOrderLowPass::o, FloatRates::p, FloatEulers::phi, pitch_filt, FloatEulers::psi, radio_control, RADIO_PITCH, RADIO_ROLL, RADIO_THROTTLE, roll_filt, sp_accel, speed_sp, stab_sp_from_quat_f(), stab_sp_from_quat_ff_rates_f(), stabilization, stabilization_attitude_get_heading_f(), stateGetAirspeed_f(), stateGetNedToBodyEulers_f(), stateGetNedToBodyQuat_f(), stateGetSpeedNed_f(), take_heading_control, th_sp_from_incr_vect_f(), th_sp_from_thrust_i(), FloatEulers::theta, THRUST_AXIS_Z, thrust_filt, thrust_in, thrust_sp, time_of_accel_sp_2d, time_of_accel_sp_3d, Stabilization::transition_ratio, v_gih, RadioControl::values, VECT3_DIFF, wls_alloc(), FloatVect3::x, FloatVect3::y, FloatVect3::z, and NedCoor_f::z.
Referenced by guidance_indi_run_mode(), and guidance_indi_run_mode().
|
extern |
Definition at line 760 of file guidance_indi_hybrid.c.
References ACCEL_FLOAT_OF_BFP, bound_vz_sp(), compute_accel_from_speed_sp(), foo, get_sys_time_float(), gi_speed_sp, gih_params, GUIDANCE_INDI_HYBRID_H_POS, GUIDANCE_INDI_HYBRID_H_SPEED, GUIDANCE_INDI_HYBRID_V_ACCEL, GUIDANCE_INDI_HYBRID_V_POS, GUIDANCE_INDI_HYBRID_V_SPEED, guidance_indi_run(), indi_vel_sp, POS_FLOAT_OF_BFP, guidance_indi_hybrid_params::pos_gain, guidance_indi_hybrid_params::pos_gainz, SPEED_FLOAT_OF_BFP, guidance_indi_hybrid_params::speed_gain, guidance_indi_hybrid_params::speed_gainz, stateGetPositionNed_f(), stateGetSpeedNed_f(), time_of_vel_sp, FloatVect3::x, NedCoor_f::x, FloatVect3::y, NedCoor_f::y, FloatVect3::z, and NedCoor_f::z.
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 289 of file guidance_indi_hybrid.c.
Referenced by compute_accel_from_speed_sp(), guidance_indi_run_mode(), and send_guidance_indi_hybrid().
|
extern |
Definition at line 244 of file guidance_indi_hybrid.c.
|
extern |
Definition at line 110 of file guidance_indi_hybrid.c.
|
extern |
Definition at line 162 of file guidance_indi_hybrid.c.
Referenced by compute_accel_from_speed_sp().
|
extern |
Definition at line 117 of file guidance_indi.c.
Referenced by guidance_indi_hybrid_set_wls_settings(), and guidance_indi_run().
|
extern |
Definition at line 219 of file guidance_indi_hybrid.c.
Referenced by guidance_indi_run().
|
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 74 of file guidance_indi.c.
Referenced by guidance_indi_run(), send_guidance_indi_hybrid(), and send_indi_guidance().
|
extern |
Definition at line 158 of file guidance_indi_hybrid.c.
Referenced by guidance_indi_run().