|
Paparazzi UAS
v5.8.2_stable-0-g6260b7c
Paparazzi is a free software Unmanned Aircraft System.
|
Horizontal guidance for rotorcrafts. More...
#include "math/pprz_algebra_int.h"#include "firmwares/rotorcraft/guidance/guidance_h_ref.h"#include "generated/airframe.h"#include "std.h"
Include dependency graph for guidance_h.h:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Data Structures | |
| struct | HorizontalGuidanceSetpoint |
| struct | HorizontalGuidanceReference |
| struct | HorizontalGuidanceGains |
| struct | HorizontalGuidance |
Macros | |
| #define | GUIDANCE_H_USE_REF TRUE |
| Use horizontal guidance reference trajectory. More... | |
| #define | GUIDANCE_H_USE_SPEED_REF TRUE |
| Use horizontal guidance speed reference. More... | |
| #define | GUIDANCE_H_MODE_KILL 0 |
| #define | GUIDANCE_H_MODE_RATE 1 |
| #define | GUIDANCE_H_MODE_ATTITUDE 2 |
| #define | GUIDANCE_H_MODE_HOVER 3 |
| #define | GUIDANCE_H_MODE_NAV 4 |
| #define | GUIDANCE_H_MODE_RC_DIRECT 5 |
| #define | GUIDANCE_H_MODE_CARE_FREE 6 |
| #define | GUIDANCE_H_MODE_FORWARD 7 |
| #define | GUIDANCE_H_MODE_MODULE 8 |
| #define | GUIDANCE_H_MODE_FLIP 9 |
| #define | GUIDANCE_H_MODE_GUIDED 10 |
| #define | guidance_h_SetUseRef(_val) |
Functions | |
| void | guidance_h_init (void) |
| void | guidance_h_mode_changed (uint8_t new_mode) |
| void | guidance_h_read_rc (bool_t in_flight) |
| void | guidance_h_run (bool_t in_flight) |
| void | guidance_h_set_igain (uint32_t igain) |
| bool_t | guidance_h_set_guided_pos (float x, float y) |
| Set horizontal position setpoint in GUIDED mode. More... | |
| bool_t | guidance_h_set_guided_heading (float heading) |
| Set heading setpoint in GUIDED mode. More... | |
| static void | guidance_h_SetMaxSpeed (float speed) |
| static void | guidance_h_SetOmega (float omega) |
| static void | guidance_h_SetZeta (float zeta) |
| static void | guidance_h_SetTau (float tau) |
Variables | |
| struct HorizontalGuidance | guidance_h |
| int32_t | transition_percentage |
| int32_t | transition_theta_offset |
Horizontal guidance for rotorcrafts.
Definition in file guidance_h.h.
| struct HorizontalGuidanceSetpoint |
Definition at line 65 of file guidance_h.h.
Collaboration diagram for HorizontalGuidanceSetpoint:| Data Fields | ||
|---|---|---|
| int32_t | heading | with INT32_ANGLE_FRAC |
| struct Int32Vect2 | pos |
horizontal position setpoint in NED. fixed point representation: Q23.8 accuracy 0.0039, range 8388km |
| struct Int32Vect2 | speed | only used if GUIDANCE_H_USE_SPEED_REF |
| struct HorizontalGuidanceReference |
Definition at line 75 of file guidance_h.h.
Collaboration diagram for HorizontalGuidanceReference:| Data Fields | ||
|---|---|---|
| struct Int32Vect2 | accel | with INT32_ACCEL_FRAC |
| struct Int32Vect2 | pos | with INT32_POS_FRAC |
| struct Int32Vect2 | speed | with INT32_SPEED_FRAC |
| struct HorizontalGuidanceGains |
| struct HorizontalGuidance |
Definition at line 89 of file guidance_h.h.
Collaboration diagram for HorizontalGuidance:| Data Fields | ||
|---|---|---|
| bool_t | approx_force_by_thrust | |
| struct HorizontalGuidanceGains | gains | |
| uint8_t | mode | |
| struct Int32Eulers | rc_sp | with INT32_ANGLE_FRAC |
| struct HorizontalGuidanceReference | ref | reference calculated from setpoints |
| struct HorizontalGuidanceSetpoint | sp | setpoints |
| bool_t | use_ref | |
| #define GUIDANCE_H_MODE_ATTITUDE 2 |
Definition at line 54 of file guidance_h.h.
Referenced by autopilot_set_mode(), booz_fms_impl_init(), guidance_h_mode_changed(), guidance_h_read_rc(), guidance_h_run(), vi_init(), and vi_periodic().
| #define GUIDANCE_H_MODE_CARE_FREE 6 |
Definition at line 58 of file guidance_h.h.
Referenced by autopilot_set_mode(), guidance_h_mode_changed(), guidance_h_read_rc(), and guidance_h_run().
| #define GUIDANCE_H_MODE_FLIP 9 |
Definition at line 61 of file guidance_h.h.
Referenced by autopilot_set_mode(), guidance_h_mode_changed(), guidance_h_read_rc(), and guidance_h_run().
| #define GUIDANCE_H_MODE_FORWARD 7 |
Definition at line 59 of file guidance_h.h.
Referenced by autopilot_set_mode(), guidance_h_mode_changed(), guidance_h_read_rc(), and guidance_h_run().
| #define GUIDANCE_H_MODE_GUIDED 10 |
Definition at line 62 of file guidance_h.h.
Referenced by autopilot_set_mode(), guidance_h_run(), guidance_h_set_guided_heading(), and guidance_h_set_guided_pos().
| #define GUIDANCE_H_MODE_HOVER 3 |
Definition at line 55 of file guidance_h.h.
Referenced by autopilot_set_mode(), guidance_h_mode_changed(), guidance_h_read_rc(), guidance_h_run(), and guidance_h_update_reference().
| #define GUIDANCE_H_MODE_KILL 0 |
Definition at line 52 of file guidance_h.h.
Referenced by autopilot_set_mode(), guidance_h_init(), and guidance_h_mode_changed().
| #define GUIDANCE_H_MODE_MODULE 8 |
Definition at line 60 of file guidance_h.h.
Referenced by guidance_h_mode_changed(), guidance_h_read_rc(), and guidance_h_run().
| #define GUIDANCE_H_MODE_NAV 4 |
Definition at line 56 of file guidance_h.h.
Referenced by autopilot_set_mode(), guidance_h_mode_changed(), guidance_h_read_rc(), and guidance_h_run().
| #define GUIDANCE_H_MODE_RATE 1 |
Definition at line 53 of file guidance_h.h.
Referenced by autopilot_set_mode(), guidance_h_mode_changed(), guidance_h_read_rc(), and guidance_h_run().
| #define GUIDANCE_H_MODE_RC_DIRECT 5 |
Definition at line 57 of file guidance_h.h.
Referenced by autopilot_set_mode(), guidance_h_mode_changed(), guidance_h_read_rc(), and guidance_h_run().
| #define guidance_h_SetUseRef | ( | _val | ) |
Definition at line 131 of file guidance_h.h.
| #define GUIDANCE_H_USE_REF TRUE |
Use horizontal guidance reference trajectory.
Default is TRUE, define to FALSE to always disable it.
Definition at line 41 of file guidance_h.h.
Referenced by guidance_h_init().
| #define GUIDANCE_H_USE_SPEED_REF TRUE |
Use horizontal guidance speed reference.
This also allows to give velocity commands via RC in GUIDANCE_H_MODE_HOVER. Default is TRUE, define to FALSE to always disable it.
Definition at line 49 of file guidance_h.h.
| void guidance_h_init | ( | void | ) |
Definition at line 168 of file guidance_h.c.
References HorizontalGuidanceGains::a, HorizontalGuidance::approx_force_by_thrust, HorizontalGuidanceGains::d, DefaultPeriodic, HorizontalGuidance::gains, gh_ref_init(), guidance_h, GUIDANCE_H_AGAIN, GUIDANCE_H_APPROX_FORCE_BY_THRUST, GUIDANCE_H_MODE_KILL, guidance_h_module_init(), guidance_h_trim_att_integrator, GUIDANCE_H_USE_REF, GUIDANCE_H_VGAIN, guidance_indi_enter(), HorizontalGuidanceSetpoint::heading, HorizontalGuidanceGains::i, INT_EULERS_ZERO, INT_VECT2_ZERO, HorizontalGuidance::mode, HorizontalGuidanceGains::p, HorizontalGuidanceSetpoint::pos, HorizontalGuidance::rc_sp, register_periodic_telemetry(), HorizontalGuidance::sp, HorizontalGuidance::use_ref, and HorizontalGuidanceGains::v.
Referenced by autopilot_init().
Here is the call graph for this function:
Here is the caller graph for this function:| void guidance_h_mode_changed | ( | uint8_t | new_mode | ) |
Definition at line 216 of file guidance_h.c.
References guidance_flip_enter(), guidance_h, guidance_h_hover_enter(), GUIDANCE_H_MODE_ATTITUDE, GUIDANCE_H_MODE_CARE_FREE, GUIDANCE_H_MODE_FLIP, GUIDANCE_H_MODE_FORWARD, GUIDANCE_H_MODE_HOVER, GUIDANCE_H_MODE_KILL, GUIDANCE_H_MODE_MODULE, GUIDANCE_H_MODE_NAV, GUIDANCE_H_MODE_RATE, GUIDANCE_H_MODE_RC_DIRECT, guidance_h_module_enter(), guidance_h_nav_enter(), guidance_indi_enter(), HorizontalGuidance::mode, stabilization_attitude_enter(), stabilization_attitude_reset_care_free_heading(), stabilization_none_enter(), and stabilization_rate_enter().
Referenced by autopilot_set_mode().
Here is the call graph for this function:
Here is the caller graph for this function:| void guidance_h_read_rc | ( | bool_t | in_flight | ) |
Definition at line 293 of file guidance_h.c.
References FALSE, guidance_h, GUIDANCE_H_MODE_ATTITUDE, GUIDANCE_H_MODE_CARE_FREE, GUIDANCE_H_MODE_FLIP, GUIDANCE_H_MODE_FORWARD, GUIDANCE_H_MODE_HOVER, GUIDANCE_H_MODE_MODULE, GUIDANCE_H_MODE_NAV, GUIDANCE_H_MODE_RATE, GUIDANCE_H_MODE_RC_DIRECT, guidance_h_module_read_rc(), INT_EULERS_ZERO, HorizontalGuidance::mode, radio_control, RC_OK, HorizontalGuidance::rc_sp, read_rc_setpoint_speed_i(), HorizontalGuidance::sp, HorizontalGuidanceSetpoint::speed, stabilization_attitude_read_rc(), stabilization_attitude_read_rc_setpoint_eulers(), stabilization_none_read_rc(), stabilization_rate_read_rc(), stabilization_rate_read_rc_switched_sticks(), RadioControl::status, and TRUE.
Referenced by autopilot_on_rc_frame().
Here is the call graph for this function:
Here is the caller graph for this function:| void guidance_h_run | ( | bool_t | in_flight | ) |
Definition at line 347 of file guidance_h.c.
References guidance_flip_run(), guidance_h, guidance_h_cmd_earth, guidance_h_hover_enter(), GUIDANCE_H_MODE_ATTITUDE, GUIDANCE_H_MODE_CARE_FREE, GUIDANCE_H_MODE_FLIP, GUIDANCE_H_MODE_FORWARD, GUIDANCE_H_MODE_GUIDED, GUIDANCE_H_MODE_HOVER, GUIDANCE_H_MODE_MODULE, GUIDANCE_H_MODE_NAV, GUIDANCE_H_MODE_RATE, GUIDANCE_H_MODE_RC_DIRECT, guidance_h_module_run(), guidance_h_nav_enter(), guidance_h_traj_run(), guidance_h_update_reference(), guidance_indi_run(), HorizontalGuidanceSetpoint::heading, horizontal_mode, HORIZONTAL_MODE_ATTITUDE, INT32_ANGLE_NORMALIZE, INT32_PERCENTAGE_FRAC, INT32_VECT2_NED_OF_ENU, HorizontalGuidance::mode, nav_heading, nav_pitch, nav_roll, navigation_carrot, Int32Eulers::phi, HorizontalGuidanceSetpoint::pos, Int32Eulers::psi, HorizontalGuidance::rc_sp, HorizontalGuidance::sp, stabilization_attitude_run(), stabilization_attitude_set_earth_cmd_i(), stabilization_attitude_set_rpy_setpoint_i(), stabilization_none_run(), stabilization_rate_run(), Int32Eulers::theta, and transition_run().
Referenced by autopilot_periodic().
Here is the call graph for this function:
Here is the caller graph for this function:| bool_t guidance_h_set_guided_heading | ( | float | heading | ) |
Set heading setpoint in GUIDED mode.
| heading | Setpoint in radians. |
Definition at line 631 of file guidance_h.c.
References ANGLE_BFP_OF_REAL, FALSE, guidance_h, GUIDANCE_H_MODE_GUIDED, HorizontalGuidanceSetpoint::heading, INT32_ANGLE_NORMALIZE, HorizontalGuidance::mode, HorizontalGuidance::sp, and TRUE.
Referenced by autopilot_guided_goto_ned().
Here is the caller graph for this function:| bool_t guidance_h_set_guided_pos | ( | float | x, |
| float | y | ||
| ) |
Set horizontal position setpoint in GUIDED mode.
| x | North position (local NED frame) in meters. |
| y | East position (local NED frame) in meters. |
Definition at line 621 of file guidance_h.c.
References FALSE, guidance_h, GUIDANCE_H_MODE_GUIDED, HorizontalGuidance::mode, HorizontalGuidanceSetpoint::pos, POS_BFP_OF_REAL, HorizontalGuidance::sp, TRUE, Int32Vect2::x, and Int32Vect2::y.
Referenced by autopilot_guided_goto_ned().
Here is the caller graph for this function:| void guidance_h_set_igain | ( | uint32_t | igain | ) |
Definition at line 615 of file guidance_h.c.
References HorizontalGuidance::gains, guidance_h, guidance_h_trim_att_integrator, HorizontalGuidanceGains::i, and INT_VECT2_ZERO.
|
inlinestatic |
Definition at line 135 of file guidance_h.h.
References gh_set_max_speed().
Here is the call graph for this function:
|
inlinestatic |
Definition at line 140 of file guidance_h.h.
References gh_set_omega().
Here is the call graph for this function:
|
inlinestatic |
Definition at line 150 of file guidance_h.h.
References gh_set_tau().
Here is the call graph for this function:
|
inlinestatic |
Definition at line 145 of file guidance_h.h.
References gh_set_zeta().
Here is the call graph for this function:| struct HorizontalGuidance guidance_h |
Definition at line 79 of file guidance_h.c.
Referenced by guidance_h_hover_enter(), guidance_h_init(), guidance_h_mode_changed(), guidance_h_nav_enter(), guidance_h_read_rc(), guidance_h_run(), guidance_h_set_guided_heading(), guidance_h_set_guided_pos(), guidance_h_set_igain(), guidance_h_traj_run(), guidance_h_update_reference(), guidance_indi_run(), reset_guidance_reference_from_current_position(), send_fp(), and send_status().
| int32_t transition_percentage |
Definition at line 81 of file guidance_h.c.
| int32_t transition_theta_offset |
Definition at line 82 of file guidance_h.c.
Referenced by stabilization_attitude_read_rc_roll_pitch_earth_quat_f().