Paparazzi UAS
v5.14.0_stable-0-g3f680d1
Paparazzi is a free software Unmanned Aircraft System.
|
#include "firmwares/rotorcraft/stabilization/stabilization_attitude_common_int.h"
#include "firmwares/rotorcraft/stabilization/stabilization_attitude_ref_quat_int.h"
Go to the source code of this file.
Data Structures | |
struct | ReferenceSystem |
Macros | |
#define | INDI_NUM_ACT 4 |
#define | INDI_OUTPUTS 4 |
#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_set_failsafe_setpoint (void) |
Function that calculates the failsafe setpoint. More... | |
void | stabilization_indi_set_rpy_setpoint_i (struct Int32Eulers *rpy) |
Set attitude quaternion setpoint from rpy. More... | |
void | stabilization_indi_set_earth_cmd_i (struct Int32Vect2 *cmd, int32_t heading) |
Set attitude setpoint from command in earth axes. More... | |
void | stabilization_indi_run (bool in_flight, bool rate_control) |
runs stabilization indi More... | |
void | stabilization_indi_read_rc (bool in_flight, bool in_carefree, bool coordinated_turn) |
This function reads rc commands. More... | |
Variables | |
struct Int32Quat | stab_att_sp_quat |
with INT32_QUAT_FRAC More... | |
struct Int32Eulers | stab_att_sp_euler |
with INT32_ANGLE_FRAC More... | |
float | g1g2 [INDI_OUTPUTS][INDI_NUM_ACT] |
bool | indi_use_adaptive |
struct ReferenceSystem | reference_acceleration |
struct ReferenceSystem |
Definition at line 42 of file stabilization_indi.h.
Data Fields | ||
---|---|---|
float | err_p | |
float | err_q | |
float | err_r | |
float | rate_p | |
float | rate_q | |
float | rate_r |
#define INDI_G_SCALING 1000.0 |
Definition at line 34 of file stabilization_indi.h.
Referenced by calc_g1g2_pseudo_inv(), ctrl_eff_scheduling_init(), and stabilization_indi_calc_cmd().
#define INDI_NUM_ACT 4 |
Definition at line 30 of file stabilization_indi.h.
Referenced by bound_g_mat(), calc_g1g2_pseudo_inv(), ctrl_eff_scheduling_init(), ctrl_eff_scheduling_periodic(), get_actuator_state(), init_filters(), lms_estimation(), send_indi_g(), stabilization_indi_calc_cmd(), stabilization_indi_enter(), and stabilization_indi_init().
#define INDI_OUTPUTS 4 |
Definition at line 32 of file stabilization_indi.h.
Referenced by bound_g_mat(), calc_g1g2_pseudo_inv(), ctrl_eff_scheduling_init(), ctrl_eff_scheduling_periodic(), lms_estimation(), stabilization_indi_calc_cmd(), and stabilization_indi_init().
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 254 of file stabilization_indi.c.
void stabilization_indi_init | ( | void | ) |
Function that initializes important values upon engaging INDI.
Definition at line 204 of file stabilization_indi.c.
void stabilization_indi_read_rc | ( | bool | in_flight, |
bool | in_carefree, | ||
bool | coordinated_turn | ||
) |
This function reads rc commands.
in_flight | boolean that states if the UAV is in flight or not |
Definition at line 517 of file stabilization_indi.c.
void stabilization_indi_run | ( | bool | in_flight, |
bool | rate_control | ||
) |
runs stabilization indi
enable_integrator | |
rate_control | boolean that determines if we are in rate control or attitude control |
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 475 of file stabilization_indi.c.
void stabilization_indi_set_earth_cmd_i | ( | struct Int32Vect2 * | cmd, |
int32_t | heading | ||
) |
Set attitude setpoint from command in earth axes.
cmd | 2D command in North East axes |
heading | Heading of the setpoint |
Function that calculates the setpoint quaternion from a command in earth axes
cmd | The command in earth axes (North East) |
heading | The desired heading |
Definition at line 321 of file stabilization_indi.c.
void stabilization_indi_set_failsafe_setpoint | ( | void | ) |
Function that calculates the failsafe setpoint.
Definition at line 292 of file stabilization_indi.c.
void stabilization_indi_set_rpy_setpoint_i | ( | struct Int32Eulers * | rpy | ) |
Set attitude quaternion setpoint from rpy.
rpy | rpy from which to calculate quaternion setpoint |
Function that calculates the setpoint quaternion from rpy
rpy | roll pitch yaw input |
Definition at line 307 of file stabilization_indi.c.
float g1g2[INDI_OUTPUTS][INDI_NUM_ACT] |
Definition at line 159 of file stabilization_indi.c.
Referenced by calc_g1g2_pseudo_inv(), ctrl_eff_scheduling_periodic(), and stabilization_indi_init().
bool indi_use_adaptive |
Definition at line 78 of file stabilization_indi.c.
Referenced by stabilization_indi_calc_cmd().
struct ReferenceSystem reference_acceleration |
Definition at line 66 of file stabilization_indi.c.
struct Int32Eulers stab_att_sp_euler |
with INT32_ANGLE_FRAC
Definition at line 45 of file stabilization_attitude_euler_float.c.
struct Int32Quat stab_att_sp_quat |
with INT32_QUAT_FRAC
Definition at line 127 of file stabilization_attitude_heli_indi.c.