Paparazzi UAS
v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
|
#include "modules/rot_wing_drone/rotwing_state.h"
#include "firmwares/rotorcraft/stabilization/stabilization_indi.h"
#include "firmwares/rotorcraft/guidance/guidance_indi_hybrid.h"
#include "modules/nav/nav_rotorcraft_hybrid.h"
#include "firmwares/rotorcraft/autopilot_firmware.h"
#include "modules/actuators/actuators.h"
#include "modules/core/abi.h"
#include "modules/datalink/telemetry.h"
Go to the source code of this file.
Macros | |
#define | ROTWING_MIN_SKEW_ANGLE_DEG_QUAD 10.0 |
#define | ROTWING_MIN_SKEW_ANGLE_COUNTER 10 |
#define | ROTWING_SKEWING_COUNTER 10 |
#define | ROTWING_MAX_QUAD_AIRSPEED 20.0 |
#define | ROTWING_HALF_SKEW_ANGLE_DEG 55.0 |
#define | ROTWING_HALF_SKEW_ANGLE_HALF_RANGE 10.0 |
#define | ROTWING_HALF_SKEW_COUNTER 10 |
#define | ROTWING_MIN_FW_SKEW_ANGLE_DEG 80.0 |
#define | ROTWING_MIN_FW_COUNTER 10 |
#define | ROTWING_MIN_THRUST_IDLE 100 |
#define | ROTWING_MIN_THRUST_IDLE_COUNTER 10 |
#define | ROTWING_HOV_MOT_OFF_RPM_TH 50 |
#define | ROTWING_HOV_MOT_OFF_COUNTER 10 |
#define | ROTWING_STATE_USE_ROTATION_REF_MODEL FALSE |
#define | ROTWING_STATE_HOVER_PREF_PITCH 0.0 |
#define | ROTWING_STATE_TRANSITION_PREF_PITCH 3.0 |
#define | ROTWING_STATE_FW_PREF_PITCH 8.0 |
#define | ADC_WING_ROTATION FALSE |
#define | ROTWING_STATE_ACT_FEEDBACK_ID ABI_BROADCAST |
ABI binding feedback data. More... | |
#define | ROTWING_STATE_NUM_HOVER_RPM 4 |
#define | AIRSPEED_IMPORTANCE_IN_FORWARD_WEIGHT 16 |
Variables | |
abi_event | rotwing_state_feedback_ev |
int32_t | rotwing_state_hover_rpm [ROTWING_STATE_NUM_HOVER_RPM] = {0, 0, 0, 0} |
struct RotwingState | rotwing_state |
struct RotWingStateSettings | rotwing_state_settings |
struct RotWingStateSkewing | rotwing_state_skewing |
uint8_t | rotwing_state_hover_counter = 0 |
uint8_t | rotwing_state_skewing_counter = 0 |
uint8_t | rotwing_state_fw_counter = 0 |
uint8_t | rotwing_state_fw_idle_counter = 0 |
uint8_t | rotwing_state_fw_m_off_counter = 0 |
float | rotwing_state_max_hover_speed = 7 |
bool | hover_motors_active = true |
bool | bool_disable_hover_motors = false |
#define ADC_WING_ROTATION FALSE |
Definition at line 110 of file rotwing_state.c.
#define AIRSPEED_IMPORTANCE_IN_FORWARD_WEIGHT 16 |
#define ROTWING_HALF_SKEW_ANGLE_DEG 55.0 |
Definition at line 55 of file rotwing_state.c.
#define ROTWING_HALF_SKEW_ANGLE_HALF_RANGE 10.0 |
Definition at line 58 of file rotwing_state.c.
#define ROTWING_HALF_SKEW_COUNTER 10 |
Definition at line 61 of file rotwing_state.c.
#define ROTWING_HOV_MOT_OFF_COUNTER 10 |
Definition at line 85 of file rotwing_state.c.
#define ROTWING_HOV_MOT_OFF_RPM_TH 50 |
Definition at line 82 of file rotwing_state.c.
#define ROTWING_MAX_QUAD_AIRSPEED 20.0 |
Definition at line 50 of file rotwing_state.c.
#define ROTWING_MIN_FW_COUNTER 10 |
Definition at line 69 of file rotwing_state.c.
#define ROTWING_MIN_FW_SKEW_ANGLE_DEG 80.0 |
Definition at line 66 of file rotwing_state.c.
#define ROTWING_MIN_SKEW_ANGLE_COUNTER 10 |
Definition at line 40 of file rotwing_state.c.
#define ROTWING_MIN_SKEW_ANGLE_DEG_QUAD 10.0 |
Definition at line 37 of file rotwing_state.c.
#define ROTWING_MIN_THRUST_IDLE 100 |
Definition at line 74 of file rotwing_state.c.
#define ROTWING_MIN_THRUST_IDLE_COUNTER 10 |
Definition at line 77 of file rotwing_state.c.
#define ROTWING_SKEWING_COUNTER 10 |
Definition at line 45 of file rotwing_state.c.
#define ROTWING_STATE_ACT_FEEDBACK_ID ABI_BROADCAST |
ABI binding feedback data.
Definition at line 118 of file rotwing_state.c.
#define ROTWING_STATE_FW_PREF_PITCH 8.0 |
Definition at line 105 of file rotwing_state.c.
#define ROTWING_STATE_HOVER_PREF_PITCH 0.0 |
Definition at line 95 of file rotwing_state.c.
#define ROTWING_STATE_NUM_HOVER_RPM 4 |
Definition at line 122 of file rotwing_state.c.
#define ROTWING_STATE_TRANSITION_PREF_PITCH 3.0 |
Definition at line 100 of file rotwing_state.c.
#define ROTWING_STATE_USE_ROTATION_REF_MODEL FALSE |
Definition at line 89 of file rotwing_state.c.
|
inline |
Definition at line 639 of file rotwing_state.c.
References actuator_state_filt_vect, AIRSPEED_IMPORTANCE_IN_FORWARD_WEIGHT, bool_disable_hover_motors, eulers_zxy, float_eulers_of_quat_zxy(), g1g2, GUIDANCE_INDI_MAX_PITCH, GUIDANCE_INDI_MIN_PITCH, guidance_indi_pitch_pref_deg, hover_motors_active, MAX_PPRZ, rotwing_state_skewing, stateGetAirspeed_f(), stateGetNedToBodyQuat_f(), FloatEulers::theta, and RotWingStateSkewing::wing_angle_deg.
void init_rotwing_state | ( | void | ) |
Definition at line 170 of file rotwing_state.c.
References RotWingStateSkewing::airspeed_scheduling, RotwingState::current_state, DefaultPeriodic, RotwingState::desired_state, RotWingStateSkewing::force_rotation_angle, MAX_PPRZ, register_periodic_telemetry(), rotwing_state, ROTWING_STATE_ACT_FEEDBACK_ID, rotwing_state_feedback_cb(), rotwing_state_feedback_ev, ROTWING_STATE_HOVER, rotwing_state_skewing, send_rotating_wing_state(), RotWingStateSkewing::servo_pprz_cmd, RotWingStateSkewing::wing_angle_deg, and RotWingStateSkewing::wing_angle_deg_sp.
void periodic_rotwing_state | ( | void | ) |
Definition at line 190 of file rotwing_state.c.
References bool_disable_hover_motors, guidance_h, GUIDANCE_H_MODE_ATTITUDE, GUIDANCE_H_MODE_FORWARD, GUIDANCE_H_MODE_NAV, HorizontalGuidance::mode, rotwing_check_set_current_state(), rotwing_state_set_fw_settings(), rotwing_state_set_hover_settings(), rotwing_state_skewer(), and rotwing_switch_state().
void request_rotwing_state | ( | uint8_t | state | ) |
Definition at line 217 of file rotwing_state.c.
References RotwingState::desired_state, rotwing_state, ROTWING_STATE_FW_HOV_MOT_OFF, and state.
Referenced by rotwing_request_configuration().
|
inline |
Definition at line 240 of file rotwing_state.c.
References autopilot, RotwingState::current_state, RotwingState::desired_state, pprz_autopilot::in_flight, ROTWING_HOV_MOT_OFF_COUNTER, ROTWING_HOV_MOT_OFF_RPM_TH, ROTWING_MIN_FW_COUNTER, ROTWING_MIN_FW_SKEW_ANGLE_DEG, ROTWING_MIN_SKEW_ANGLE_COUNTER, ROTWING_MIN_SKEW_ANGLE_DEG_QUAD, ROTWING_MIN_THRUST_IDLE, ROTWING_MIN_THRUST_IDLE_COUNTER, rotwing_state, ROTWING_STATE_FW, rotwing_state_fw_counter, ROTWING_STATE_FW_HOV_MOT_IDLE, ROTWING_STATE_FW_HOV_MOT_OFF, rotwing_state_fw_idle_counter, rotwing_state_fw_m_off_counter, ROTWING_STATE_HOVER, rotwing_state_hover_counter, rotwing_state_hover_rpm, rotwing_state_skewing, ROTWING_STATE_SKEWING, rotwing_state_skewing_counter, stabilization_cmd, and RotWingStateSkewing::wing_angle_deg.
Referenced by periodic_rotwing_state().
void rotwing_request_configuration | ( | uint8_t | configuration | ) |
Definition at line 225 of file rotwing_state.c.
References request_rotwing_state(), ROTWING_CONFIGURATION_EFFICIENT, ROTWING_CONFIGURATION_HOVER, ROTWING_CONFIGURATION_HYBRID, ROTWING_STATE_FW_HOV_MOT_OFF, ROTWING_STATE_HOVER, and ROTWING_STATE_SKEWING.
|
static |
|
static |
Definition at line 606 of file rotwing_state.c.
References idx, rotwing_state_hover_rpm, rotwing_state_skewing, and RotWingStateSkewing::wing_angle_deg.
|
inline |
Definition at line 480 of file rotwing_state.c.
References RotWingStateSettings::force_forward, RotWingStateSettings::hover_motors_active, RotWingStateSettings::hover_motors_disable, RotWingStateSettings::max_v_climb, RotWingStateSettings::max_v_descend, RotWingStateSettings::nav_max_speed, RotWingStateSettings::preferred_pitch, ROTWING_STATE_PITCH_FW_SETTING, rotwing_state_set_state_settings(), rotwing_state_settings, ROTWING_STATE_WING_FW_SETTING, RotWingStateSettings::stall_protection, and RotWingStateSettings::wing_scheduler.
Referenced by rotwing_switch_state().
|
inline |
Definition at line 494 of file rotwing_state.c.
References RotWingStateSettings::force_forward, RotWingStateSettings::hover_motors_active, RotWingStateSettings::hover_motors_disable, RotWingStateSettings::max_v_climb, RotWingStateSettings::max_v_descend, RotWingStateSettings::nav_max_speed, RotWingStateSettings::preferred_pitch, ROTWING_STATE_PITCH_FW_SETTING, rotwing_state_set_state_settings(), rotwing_state_settings, ROTWING_STATE_WING_FW_SETTING, RotWingStateSettings::stall_protection, and RotWingStateSettings::wing_scheduler.
Referenced by rotwing_switch_state().
|
inline |
Definition at line 466 of file rotwing_state.c.
References RotWingStateSettings::force_forward, RotWingStateSettings::hover_motors_active, RotWingStateSettings::hover_motors_disable, RotWingStateSettings::max_v_climb, RotWingStateSettings::max_v_descend, RotWingStateSettings::nav_max_speed, RotWingStateSettings::preferred_pitch, ROTWING_STATE_PITCH_FW_SETTING, rotwing_state_set_state_settings(), rotwing_state_settings, ROTWING_STATE_WING_FW_SETTING, RotWingStateSettings::stall_protection, and RotWingStateSettings::wing_scheduler.
Referenced by periodic_rotwing_state(), and rotwing_switch_state().
|
inline |
Definition at line 433 of file rotwing_state.c.
References RotWingStateSettings::force_forward, RotWingStateSettings::hover_motors_active, RotWingStateSettings::hover_motors_disable, RotWingStateSettings::max_v_climb, RotWingStateSettings::max_v_descend, RotWingStateSettings::nav_max_speed, RotWingStateSettings::preferred_pitch, rotwing_state_max_hover_speed, ROTWING_STATE_PITCH_QUAD_SETTING, rotwing_state_set_state_settings(), rotwing_state_settings, ROTWING_STATE_WING_QUAD_SETTING, RotWingStateSettings::stall_protection, and RotWingStateSettings::wing_scheduler.
Referenced by periodic_rotwing_state(), and rotwing_switch_state().
|
inline |
Definition at line 447 of file rotwing_state.c.
References RotwingState::desired_state, RotWingStateSettings::force_forward, RotWingStateSettings::hover_motors_active, RotWingStateSettings::hover_motors_disable, RotWingStateSettings::max_v_climb, RotWingStateSettings::max_v_descend, RotWingStateSettings::nav_max_speed, RotWingStateSettings::preferred_pitch, rotwing_state, ROTWING_STATE_HOVER, ROTWING_STATE_PITCH_TRANSITION_SETTING, rotwing_state_set_state_settings(), rotwing_state_settings, ROTWING_STATE_WING_QUAD_SETTING, ROTWING_STATE_WING_SCHEDULING_SETTING, RotWingStateSettings::stall_protection, and RotWingStateSettings::wing_scheduler.
Referenced by rotwing_switch_state().
|
inline |
Definition at line 508 of file rotwing_state.c.
References RotWingStateSkewing::airspeed_scheduling, bool_disable_hover_motors, force_forward, RotWingStateSettings::force_forward, RotWingStateSkewing::force_rotation_angle, hover_motors_active, RotWingStateSettings::hover_motors_active, RotWingStateSettings::hover_motors_disable, nav_max_speed, RotWingStateSettings::nav_max_speed, rotwing_state_settings, rotwing_state_skewing, ROTWING_STATE_WING_FW_SETTING, ROTWING_STATE_WING_QUAD_SETTING, ROTWING_STATE_WING_SCHEDULING_SETTING, RotWingStateSkewing::wing_angle_deg_sp, and RotWingStateSettings::wing_scheduler.
Referenced by rotwing_state_set_fw_hov_mot_idle_settings(), rotwing_state_set_fw_hov_mot_off_settings(), rotwing_state_set_fw_settings(), rotwing_state_set_hover_settings(), and rotwing_state_set_skewing_settings().
void rotwing_state_skew_actuator_periodic | ( | void | ) |
Definition at line 563 of file rotwing_state.c.
References ACT_FEEDBACK_UAVCAN_ID, act_feedback_t::idx, MAX_PPRZ, rotwing_state_skewing, RotWingStateSkewing::servo_pprz_cmd, speed_sp, RotWingStateSkewing::wing_angle_deg, and RotWingStateSkewing::wing_angle_deg_sp.
|
inline |
Definition at line 543 of file rotwing_state.c.
References RotWingStateSkewing::airspeed_scheduling, RotwingState::desired_state, rotwing_state, ROTWING_STATE_HOVER, rotwing_state_skewing, stateGetAirspeed_f(), and RotWingStateSkewing::wing_angle_deg_sp.
Referenced by periodic_rotwing_state().
|
inline |
Definition at line 384 of file rotwing_state.c.
References RotwingState::current_state, RotwingState::desired_state, ROTWING_MAX_QUAD_AIRSPEED, rotwing_state, ROTWING_STATE_FW, ROTWING_STATE_FW_HOV_MOT_IDLE, ROTWING_STATE_FW_HOV_MOT_OFF, ROTWING_STATE_HOVER, rotwing_state_set_fw_hov_mot_idle_settings(), rotwing_state_set_fw_hov_mot_off_settings(), rotwing_state_set_fw_settings(), rotwing_state_set_hover_settings(), rotwing_state_set_skewing_settings(), ROTWING_STATE_SKEWING, and stateGetAirspeed_f().
Referenced by periodic_rotwing_state().
|
static |
Definition at line 157 of file rotwing_state.c.
References RotwingState::current_state, RotwingState::desired_state, dev, rotwing_state, rotwing_state_skewing, RotWingStateSkewing::servo_pprz_cmd, RotWingStateSkewing::wing_angle_deg, and RotWingStateSkewing::wing_angle_deg_sp.
Referenced by init_rotwing_state().
bool bool_disable_hover_motors = false |
Definition at line 138 of file rotwing_state.c.
Referenced by guidance_indi_hybrid_set_wls_settings(), periodic_rotwing_state(), and rotwing_state_set_state_settings().
bool hover_motors_active = true |
Definition at line 137 of file rotwing_state.c.
Referenced by guidance_indi_hybrid_set_wls_settings(), and rotwing_state_set_state_settings().
struct RotwingState rotwing_state |
Definition at line 123 of file rotwing_state.c.
Referenced by init_rotwing_state(), request_rotwing_state(), rotwing_check_set_current_state(), rotwing_state_set_skewing_settings(), rotwing_state_skewer(), rotwing_switch_state(), and send_rotating_wing_state().
abi_event rotwing_state_feedback_ev |
Definition at line 120 of file rotwing_state.c.
Referenced by init_rotwing_state().
uint8_t rotwing_state_fw_counter = 0 |
Definition at line 131 of file rotwing_state.c.
Referenced by rotwing_check_set_current_state().
uint8_t rotwing_state_fw_idle_counter = 0 |
Definition at line 132 of file rotwing_state.c.
Referenced by rotwing_check_set_current_state().
uint8_t rotwing_state_fw_m_off_counter = 0 |
Definition at line 133 of file rotwing_state.c.
Referenced by rotwing_check_set_current_state().
uint8_t rotwing_state_hover_counter = 0 |
Definition at line 129 of file rotwing_state.c.
Referenced by rotwing_check_set_current_state().
int32_t rotwing_state_hover_rpm[ROTWING_STATE_NUM_HOVER_RPM] = {0, 0, 0, 0} |
Definition at line 123 of file rotwing_state.c.
Referenced by rotwing_check_set_current_state(), and rotwing_state_feedback_cb().
float rotwing_state_max_hover_speed = 7 |
Definition at line 135 of file rotwing_state.c.
Referenced by rotwing_state_set_hover_settings().
struct RotWingStateSettings rotwing_state_settings |
struct RotWingStateSkewing rotwing_state_skewing |
Definition at line 123 of file rotwing_state.c.
Referenced by guidance_indi_hybrid_set_wls_settings(), init_rotwing_state(), rotwing_check_set_current_state(), rotwing_state_feedback_cb(), rotwing_state_set_state_settings(), rotwing_state_skew_actuator_periodic(), rotwing_state_skewer(), and send_rotating_wing_state().
uint8_t rotwing_state_skewing_counter = 0 |
Definition at line 130 of file rotwing_state.c.
Referenced by rotwing_check_set_current_state().