|  | Paparazzi UAS v7.0_unstable
    Paparazzi is a free software Unmanned Aircraft System. | 
General stabilization interface for rotorcrafts. More...
#include "std.h"#include "generated/airframe.h"#include "math/pprz_algebra_int.h"#include "math/pprz_algebra_float.h"#include "firmwares/rotorcraft/stabilization/stabilization_attitude_rc_setpoint.h" Include dependency graph for stabilization.h:
 Include dependency graph for stabilization.h: This graph shows which files directly or indirectly include this file:
 This graph shows which files directly or indirectly include this file:Go to the source code of this file.
| Data Structures | |
| struct | StabilizationSetpoint | 
| Stabilization setpoint.  More... | |
| struct | ThrustSetpoint | 
| Thrust setpoint // TODO to a setpoint header Structure to store the desired thrust vector with different format.  More... | |
| struct | Stabilization | 
| Stabilization structure.  More... | |
| union | StabilizationSetpoint.sp | 
| struct | StabilizationSetpoint.sp.ltp_i | 
| struct | StabilizationSetpoint.sp.ltp_f | 
| union | StabilizationSetpoint.r_sp | 
| union | ThrustSetpoint.sp | 
| Macros | |
| #define | STABILIZATION_MODE_NONE 0 | 
| Stabilization modes. | |
| #define | STABILIZATION_MODE_DIRECT 1 | 
| #define | STABILIZATION_MODE_RATE 2 | 
| #define | STABILIZATION_MODE_ATTITUDE 3 | 
| #define | STABILIZATION_ATT_SUBMODE_HEADING 0 | 
| Stabilization sub-modes for attitude. | |
| #define | STABILIZATION_ATT_SUBMODE_CARE_FREE 1 | 
| #define | STABILIZATION_ATT_SUBMODE_FORWARD 2 | 
| #define | THRUST_AXIS_X 0 | 
| #define | THRUST_AXIS_Y 1 | 
| #define | THRUST_AXIS_Z 2 | 
| #define | STAB_SP_SET_EULERS_ZERO(_sp) | 
| #define | THRUST_SP_SET_ZERO(_sp) | 
| Variables | |
| struct Stabilization | stabilization | 
General stabilization interface for rotorcrafts.
Definition in file stabilization.h.
| struct Stabilization | 
Stabilization structure.
Definition at line 102 of file stabilization.h.
 Collaboration diagram for Stabilization:
 Collaboration diagram for Stabilization:| Data Fields | ||
|---|---|---|
| uint8_t | att_submode | current attitude sub-mode | 
| int32_t | cmd[COMMANDS_NB] | output command vector, range from [-MAX_PPRZ:MAX_PPRZ] (store for messages) | 
| uint8_t | mode | current mode | 
| struct AttitudeRCInput | rc_in | RC input. | 
| struct StabilizationSetpoint | rc_sp | Keep it ? FIXME. | 
| struct StabilizationSetpoint | sp | current attitude setpoint (store for messages) | 
| float | transition_ratio | transition percentage for hybrids (0.: hover; 1.: forward) | 
| union StabilizationSetpoint.sp | 
Definition at line 65 of file stabilization.h.
| Data Fields | ||
|---|---|---|
| struct FloatEulers | eulers_f | |
| struct Int32Eulers | eulers_i | |
| struct StabilizationSetpoint.sp.ltp_f | ltp_f | |
| struct StabilizationSetpoint.sp.ltp_i | ltp_i | |
| struct FloatQuat | quat_f | |
| struct Int32Quat | quat_i | |
| struct StabilizationSetpoint.sp.ltp_i | 
Definition at line 70 of file stabilization.h.
| Data Fields | ||
|---|---|---|
| int32_t | heading | |
| struct Int32Vect2 | vect | |
| struct StabilizationSetpoint.sp.ltp_f | 
Definition at line 71 of file stabilization.h.
| Data Fields | ||
|---|---|---|
| float | heading | |
| struct FloatVect2 | vect | |
| union StabilizationSetpoint.r_sp | 
Definition at line 73 of file stabilization.h.
| Data Fields | ||
|---|---|---|
| struct FloatRates | rates_f | |
| struct Int32Rates | rates_i | |
| union ThrustSetpoint.sp | 
| #define STABILIZATION_ATT_SUBMODE_CARE_FREE 1 | 
Definition at line 46 of file stabilization.h.
| #define STABILIZATION_ATT_SUBMODE_FORWARD 2 | 
Definition at line 47 of file stabilization.h.
| #define STABILIZATION_ATT_SUBMODE_HEADING 0 | 
Stabilization sub-modes for attitude.
Definition at line 45 of file stabilization.h.
| #define STABILIZATION_MODE_ATTITUDE 3 | 
Definition at line 41 of file stabilization.h.
| #define STABILIZATION_MODE_DIRECT 1 | 
Definition at line 39 of file stabilization.h.
| #define STABILIZATION_MODE_NONE 0 | 
Stabilization modes.
Definition at line 38 of file stabilization.h.
| #define STABILIZATION_MODE_RATE 2 | 
Definition at line 40 of file stabilization.h.
| #define THRUST_AXIS_X 0 | 
Definition at line 172 of file stabilization.h.
| #define THRUST_AXIS_Y 1 | 
Definition at line 173 of file stabilization.h.
| #define THRUST_AXIS_Z 2 | 
Definition at line 174 of file stabilization.h.
| 
 | extern | 
Definition at line 638 of file stabilization.c.
References StabilizationSetpoint::format, StabilizationSetpoint::sp, StabilizationSetpoint::STAB_SP_EULERS, StabilizationSetpoint::STAB_SP_FLOAT, and StabilizationSetpoint::type.
Referenced by control_mixing_heewing_attitude_plane(), control_mixing_heewing_nav_run(), guidance_h_from_nav(), guidance_plane_attitude_from_nav(), and stabilization_get_failsafe_sp().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | extern | 
Definition at line 628 of file stabilization.c.
References StabilizationSetpoint::format, StabilizationSetpoint::sp, StabilizationSetpoint::STAB_SP_EULERS, StabilizationSetpoint::STAB_SP_INT, and StabilizationSetpoint::type.
Referenced by guidance_module_run(), and vertical_ctrl_module_run().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | extern | 
Definition at line 659 of file stabilization.c.
References StabilizationSetpoint::format, heading, StabilizationSetpoint::sp, StabilizationSetpoint::STAB_SP_FLOAT, StabilizationSetpoint::STAB_SP_LTP, and StabilizationSetpoint::type.
| 
 | extern | 
Definition at line 648 of file stabilization.c.
References StabilizationSetpoint::format, heading, StabilizationSetpoint::sp, StabilizationSetpoint::STAB_SP_INT, StabilizationSetpoint::STAB_SP_LTP, and StabilizationSetpoint::type.
Referenced by guidance_pid_h_run().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | extern | 
Definition at line 607 of file stabilization.c.
References StabilizationSetpoint::format, StabilizationSetpoint::sp, StabilizationSetpoint::STAB_SP_FLOAT, StabilizationSetpoint::STAB_SP_QUAT, and StabilizationSetpoint::type.
Referenced by guidance_h_from_nav(), guidance_indi_run(), stabilization_attitude_read_rc(), and stabilization_attitude_reset_rc().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | extern | 
Definition at line 617 of file stabilization.c.
References StabilizationSetpoint::format, StabilizationSetpoint::r_sp, StabilizationSetpoint::sp, StabilizationSetpoint::STAB_SP_FLOAT, StabilizationSetpoint::STAB_SP_QUAT_FF_RATE, and StabilizationSetpoint::type.
Referenced by guidance_indi_run().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | extern | 
Definition at line 597 of file stabilization.c.
References StabilizationSetpoint::format, StabilizationSetpoint::sp, StabilizationSetpoint::STAB_SP_INT, StabilizationSetpoint::STAB_SP_QUAT, and StabilizationSetpoint::type.
Referenced by guidance_hybrid_set_cmd_i().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | extern | 
Definition at line 680 of file stabilization.c.
References StabilizationSetpoint::format, StabilizationSetpoint::r_sp, StabilizationSetpoint::sp, StabilizationSetpoint::STAB_SP_FLOAT, StabilizationSetpoint::STAB_SP_RATES, and StabilizationSetpoint::type.
Referenced by stabilization_indi_attitude_run(), and stabilization_rate_read_rc().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | extern | 
Definition at line 670 of file stabilization.c.
References StabilizationSetpoint::format, StabilizationSetpoint::r_sp, StabilizationSetpoint::sp, StabilizationSetpoint::STAB_SP_INT, StabilizationSetpoint::STAB_SP_RATES, and StabilizationSetpoint::type.
| 
 | extern | 
Definition at line 454 of file stabilization.c.
References EULERS_FLOAT_OF_BFP, float_eulers_of_quat(), QUAT_FLOAT_OF_BFP, stab_sp_rotate_f(), and stab_sp_rotate_i().
Referenced by stabilization_attitude_plane_pid_run(), stabilization_attitude_run(), and stabilization_attitude_run().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | extern | 
Definition at line 415 of file stabilization.c.
References EULERS_BFP_OF_REAL, int32_eulers_of_quat(), QUAT_BFP_OF_REAL, stab_sp_rotate_f(), and stab_sp_rotate_i().
Referenced by reset_horizontal_vars(), stabilization_attitude_run(), stabilization_attitude_run(), and stabilization_indi_attitude_run().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | extern | 
Definition at line 373 of file stabilization.c.
References EULERS_FLOAT_OF_BFP, float_quat_identity(), float_quat_of_eulers(), QUAT_FLOAT_OF_BFP, quat_from_earth_cmd_f(), and quat_from_earth_cmd_i().
Referenced by stabilization_attitude_run(), and stabilization_indi_attitude_run().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | extern | 
Definition at line 331 of file stabilization.c.
References EULERS_BFP_OF_REAL, int32_quat_identity(), int32_quat_of_eulers(), QUAT_BFP_OF_REAL, quat_from_earth_cmd_f(), and quat_from_earth_cmd_i().
Referenced by stabilization_attitude_run(), stabilization_attitude_run(), and stabilization_indi_attitude_run().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | extern | 
Definition at line 510 of file stabilization.c.
References RATES_FLOAT_OF_BFP.
Referenced by stabilization_indi_attitude_run(), stabilization_indi_rate_run(), and stabilization_rate_run().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | extern | 
Definition at line 493 of file stabilization.c.
References RATES_BFP_OF_REAL.
Command filter for vibrating airframes.
Definition at line 314 of file stabilization.c.
References Stabilization::cmd, foo, MAX_PPRZ, stabilization, and update_second_order_low_pass_int().
Referenced by stabilization_run().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | extern | 
Get stabilization setpoint for failsafe.
Definition at line 275 of file stabilization.c.
References foo, FloatEulers::phi, FloatEulers::psi, stab_sp_from_eulers_f(), and stateGetNedToBodyEulers_f().
Referenced by autopilot_static_periodic().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:Init function.
Definition at line 94 of file stabilization.c.
References Stabilization::att_submode, Stabilization::cmd, DefaultPeriodic, foo, SecondOrderLowPass_int::i, init_second_order_low_pass_int(), Stabilization::mode, rc_cb(), rc_ev, Stabilization::rc_in, Stabilization::rc_sp, register_periodic_telemetry(), send_tune_hover(), STAB_SP_SET_EULERS_ZERO, stabilization, STABILIZATION_ATT_SUBMODE_HEADING, stabilization_attitude_rc_setpoint_init(), STABILIZATION_MODE_NONE, and STABILIZATION_RC_ID.
 Here is the call graph for this function:
 Here is the call graph for this function:Check mode change.
Definition at line 138 of file stabilization.c.
References Stabilization::att_submode, foo, Stabilization::mode, Stabilization::rc_in, stabilization, STABILIZATION_ATT_SUBMODE_CARE_FREE, stabilization_attitude_enter(), stabilization_attitude_reset_care_free_heading(), stabilization_attitude_reset_rc(), stabilization_direct_enter(), STABILIZATION_MODE_ATTITUDE, STABILIZATION_MODE_DIRECT, STABILIZATION_MODE_NONE, STABILIZATION_MODE_RATE, and stabilization_rate_enter().
Referenced by autopilot_static_set_mode(), control_mixing_heewing_attitude_direct_enter(), control_mixing_heewing_attitude_plane_enter(), and control_mixing_heewing_nav_enter().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | extern | 
Call default stabilization control.
| [in] | in_flight | true if rotorcraft is flying | 
| [in] | sp | pointer to the stabilization setpoint, computed in guidance or from RC | 
| [in] | thrust | pointer to thrust setpoint computed by vertical guidance | 
| [out] | cmd | pointer to the output command vector | 
Definition at line 242 of file stabilization.c.
References Stabilization::att_submode, Stabilization::mode, StabilizationSetpoint::sp, Stabilization::sp, stabilization, STABILIZATION_ATT_SUBMODE_FORWARD, stabilization_attitude_run(), stabilization_direct_run(), stabilization_filter_commands(), STABILIZATION_MODE_ATTITUDE, STABILIZATION_MODE_DIRECT, STABILIZATION_MODE_RATE, stabilization_rate_run(), transition_run(), TRANSITION_TO_FORWARD, and TRANSITION_TO_HOVER.
Referenced by autopilot_static_periodic(), control_mixing_heewing_attitude_direct(), control_mixing_heewing_attitude_plane(), control_mixing_heewing_nav_run(), and guidance_module_run().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | extern | 
Definition at line 720 of file stabilization.c.
References foo, ThrustSetpoint::format, ThrustSetpoint::sp, ThrustSetpoint::THRUST_INCR_SP, ThrustSetpoint::THRUST_SP_FLOAT, and ThrustSetpoint::type.
| 
 | extern | 
Definition at line 710 of file stabilization.c.
References foo, ThrustSetpoint::format, ThrustSetpoint::sp, ThrustSetpoint::THRUST_INCR_SP, ThrustSetpoint::THRUST_SP_INT, and ThrustSetpoint::type.
| 
 | extern | 
Definition at line 766 of file stabilization.c.
References foo, ThrustSetpoint::format, ThrustSetpoint::sp, ThrustSetpoint::THRUST_INCR_SP, ThrustSetpoint::THRUST_SP_FLOAT, and ThrustSetpoint::type.
Referenced by guidance_indi_run().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | extern | 
Definition at line 754 of file stabilization.c.
References foo, ThrustSetpoint::format, ThrustSetpoint::sp, ThrustSetpoint::THRUST_INCR_SP, ThrustSetpoint::THRUST_SP_INT, and ThrustSetpoint::type.
| 
 | extern | 
Definition at line 700 of file stabilization.c.
References foo, ThrustSetpoint::format, ThrustSetpoint::sp, ThrustSetpoint::THRUST_SP, ThrustSetpoint::THRUST_SP_FLOAT, and ThrustSetpoint::type.
| 
 | extern | 
Definition at line 690 of file stabilization.c.
References foo, ThrustSetpoint::format, ThrustSetpoint::sp, ThrustSetpoint::THRUST_SP, ThrustSetpoint::THRUST_SP_INT, and ThrustSetpoint::type.
Referenced by autopilot_static_periodic(), control_mixing_heewing_attitude_plane(), guidance_hybrid_vertical(), guidance_indi_run(), guidance_module_run(), guidance_pid_v_run(), guidance_plane_thrust_from_nav(), guidance_v_from_nav(), guidance_v_guided_run(), guidance_v_run(), vertical_ctrl_module_run(), and vertical_ctrl_module_run().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | extern | 
Definition at line 742 of file stabilization.c.
References ThrustSetpoint::format, ThrustSetpoint::sp, ThrustSetpoint::THRUST_SP, ThrustSetpoint::THRUST_SP_FLOAT, and ThrustSetpoint::type.
| 
 | extern | 
Definition at line 730 of file stabilization.c.
References ThrustSetpoint::format, ThrustSetpoint::sp, ThrustSetpoint::THRUST_SP, ThrustSetpoint::THRUST_SP_INT, and ThrustSetpoint::type.
| 
 | extern | 
Definition at line 579 of file stabilization.c.
Referenced by stabilization_indi_rate_run().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | extern | 
Definition at line 562 of file stabilization.c.
| 
 | extern | 
Definition at line 544 of file stabilization.c.
| 
 | extern | 
Definition at line 527 of file stabilization.c.
Referenced by guidance_hybrid_vertical(), stabilization_attitude_plane_pid_run(), stabilization_attitude_run(), stabilization_attitude_run(), stabilization_direct_run(), stabilization_indi_rate_run(), and stabilization_rate_run().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | extern | 
Definition at line 41 of file stabilization.c.
Referenced by autopilot_check_in_flight(), autopilot_in_flight_end_detection(), autopilot_static_periodic(), autopilot_static_set_mode(), control_mixing_heewing_attitude_direct(), control_mixing_heewing_attitude_plane(), control_mixing_heewing_nav_run(), ctrl_module_run(), ctrl_module_run(), direct_memory_logger_periodic(), draw_osd(), eff_scheduling_generic_periodic(), eff_scheduling_periodic_a(), guidance_flip_run(), guidance_indi_enter(), guidance_indi_hybrid_set_wls_settings(), guidance_indi_run(), guidance_module_enter(), guidance_module_run(), guidance_pid_h_run(), guidance_v_thrust_adapt(), ins_flow_update(), logger_file_write_row(), nav_heli_spinup_run(), nav_heli_spinup_setup(), oneloop_andi_run(), rc_cb(), reset_horizontal_vars(), rotwing_state_hover_motors_idling(), rotwing_state_periodic(), send_att(), send_att(), send_att(), send_att(), send_att(), send_bebop_actuators(), send_rate(), send_rate(), send_tune_hover(), send_windtunnel_meas(), stabilization_attitude_read_rc(), stabilization_attitude_reset_rc(), stabilization_filter_commands(), stabilization_init(), stabilization_mode_changed(), stabilization_run(), transition_run(), and vertical_ctrl_module_run().