Paparazzi UAS
v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
|
#include "firmwares/rotorcraft/stabilization.h"
#include "firmwares/rotorcraft/stabilization/stabilization_attitude.h"
#include "firmwares/rotorcraft/stabilization/stabilization_attitude_common_int.h"
#include "firmwares/rotorcraft/stabilization/stabilization_attitude_ref_quat_int.h"
#include "math/wls/wls_alloc.h"
Go to the source code of this file.
Data Structures | |
struct | Indi_gains |
Macros | |
#define | INDI_G_SCALING 1000.0 |
Functions | |
void | stabilization_indi_init (void) |
Function that initializes important values upon engaging INDI. More... | |
void | stabilization_indi_enter (void) |
Function that resets important values upon engaging INDI. More... | |
void | stabilization_indi_rate_run (bool in_flight, struct StabilizationSetpoint *rate_sp, struct ThrustSetpoint *thrust, int32_t *cmd) |
Does the INDI calculations. More... | |
void | stabilization_indi_attitude_run (bool in_flight, struct StabilizationSetpoint *att_sp, struct ThrustSetpoint *thrust, int32_t *cmd) |
runs stabilization indi More... | |
void | stabilization_indi_set_wls_settings (void) |
Function that sets the u_min, u_max and u_pref if function not elsewhere defined. More... | |
void | stabilization_indi_update_filt_freq (float freq) |
Variables | |
float | g1g2 [INDI_OUTPUTS][INDI_NUM_ACT] |
float | actuator_state_filt_vect [INDI_NUM_ACT] |
bool | act_is_servo [INDI_NUM_ACT] |
bool | indi_use_adaptive |
float * | Bwls [INDI_OUTPUTS] |
float | thrust_bx_eff |
float | thrust_bx_act_dyn |
float | actuator_thrust_bx_pprz |
float | thrust_bx_state_filt |
float | act_pref [INDI_NUM_ACT] |
float | stablization_indi_yaw_dist_limit |
Limit the maximum specific moment that can be compensated (units rad/s^2) More... | |
struct Indi_gains | indi_gains |
float | stabilization_indi_filter_freq |
struct WLS_t | wls_stab_p |
struct Indi_gains |
Definition at line 49 of file stabilization_indi.h.
Data Fields | ||
---|---|---|
struct FloatRates | att | |
struct FloatRates | rate |
#define INDI_G_SCALING 1000.0 |
Definition at line 32 of file stabilization_indi.h.
void stabilization_indi_attitude_run | ( | bool | in_flight, |
struct StabilizationSetpoint * | att_sp, | ||
struct ThrustSetpoint * | thrust, | ||
int32_t * | cmd | ||
) |
runs stabilization indi
in_flight | enable integrator only in flight | |
att_sp | attitude stabilization setpoint | |
thrust | thrust setpoint | |
[out] | output | command vector |
Function that should be called to run the INDI controller
in_flight | not used |
rate_control | rate control enabled, otherwise attitude control |
Definition at line 765 of file stabilization_indi.c.
void stabilization_indi_enter | ( | void | ) |
Function that resets important values upon engaging INDI.
Don't reset inputs and filters, because it is unlikely to switch stabilization in flight, and there are multiple modes that use (the same) stabilization. Resetting the controller is not so nice when you are flying. FIXME: Ideally we should detect when coming from something that is not INDI
Definition at line 445 of file stabilization_indi.c.
void stabilization_indi_init | ( | void | ) |
Function that initializes important values upon engaging INDI.
Definition at line 369 of file stabilization_indi.c.
void stabilization_indi_rate_run | ( | bool | in_flight, |
struct StabilizationSetpoint * | sp, | ||
struct ThrustSetpoint * | thrust, | ||
int32_t * | cmd | ||
) |
Does the INDI calculations.
in_flight | boolean that states if the UAV is in flight or not |
sp | rate setpoint |
thrust | thrust setpoint |
cmd | output command array |
Function that calculates the INDI commands
in_flight | true aircraft is flying |
sp | rate setpoint |
thrust | thrust setpoint |
cmd | output command array |
Definition at line 520 of file stabilization_indi.c.
void stabilization_indi_set_wls_settings | ( | void | ) |
Function that sets the u_min, u_max and u_pref if function not elsewhere defined.
Definition at line 732 of file stabilization_indi.c.
References act_is_servo, act_pref, actuator_state_filt_vect, eff_sched_pusher_time, guidance_h, GUIDANCE_H_MODE_HOVER, GUIDANCE_H_MODE_NAV, MAX_PPRZ, HorizontalGuidance::mode, rw_flap_offset, STABILIZATION_INDI_THROTTLE_LIMIT_AIRSPEED_FWD, stateGetAirspeed_f(), WLS_t::u_max, WLS_t::u_min, WLS_t::u_pref, and wls_stab_p.
void stabilization_indi_update_filt_freq | ( | float | freq | ) |
Definition at line 451 of file stabilization_indi.c.
References init_butterworth_2_low_pass(), init_first_order_low_pass(), p, rates_filt_fo, stabilization_indi_filter_freq, and stateGetBodyRates_f().
|
extern |
Definition at line 171 of file stabilization_indi.c.
Referenced by ground_detect_periodic(), stabilization_indi_init(), and stabilization_indi_set_wls_settings().
|
extern |
Definition at line 187 of file stabilization_indi.c.
Referenced by ctrl_eff_scheduling_periodic(), and stabilization_indi_set_wls_settings().
|
extern |
Definition at line 210 of file stabilization_indi.c.
Referenced by eff_scheduling_cyfoam_periodic(), eff_scheduling_periodic_b(), eff_scheduling_rotwing_update_cmd(), eff_scheduling_rotwing_update_hover_motor_effectiveness(), ground_detect_periodic(), guidance_indi_hybrid_set_wls_settings(), stabilization_indi_init(), stabilization_indi_rate_run(), and stabilization_indi_set_wls_settings().
|
extern |
|
extern |
Definition at line 133 of file stabilization_indi.c.
Referenced by eff_scheduling_cyfoam_periodic(), stabilization_indi_init(), and stabilization_indi_rate_run().
|
extern |
Definition at line 276 of file stabilization_indi.c.
Referenced by eff_scheduling_falcon_init(), eff_scheduling_falcon_periodic(), eff_scheduling_falcon_report(), eff_scheduling_generic_periodic(), eff_scheduling_periodic_a(), eff_scheduling_periodic_b(), eff_scheduling_rotwing_update_aileron_effectiveness(), eff_scheduling_rotwing_update_elevator_effectiveness(), eff_scheduling_rotwing_update_flaperon_effectiveness(), eff_scheduling_rotwing_update_hover_motor_effectiveness(), eff_scheduling_rotwing_update_pusher_effectiveness(), eff_scheduling_rotwing_update_rudder_effectiveness(), ground_detect_periodic(), guidance_indi_hybrid_set_wls_settings(), schdule_control_effectiveness(), send_eff_mat_g_indi(), stabilization_indi_init(), and sum_g1_g2().
|
extern |
Definition at line 144 of file stabilization_indi.c.
Referenced by eff_scheduling_periodic_b(), stabilization_indi_attitude_run(), and stabilization_indi_rate_run().
|
extern |
Definition at line 161 of file stabilization_indi.c.
|
extern |
Definition at line 220 of file stabilization_indi.c.
Referenced by stabilization_indi_update_filt_freq().
|
extern |
Limit the maximum specific moment that can be compensated (units rad/s^2)
Definition at line 206 of file stabilization_indi.c.
Referenced by stabilization_indi_rate_run().
|
extern |
|
extern |
|
extern |
|
extern |
Definition at line 1 of file stabilization_indi.c.
Referenced by schdule_control_effectiveness(), send_wls_u_stab(), send_wls_v_stab(), and stabilization_indi_set_wls_settings().