Paparazzi UAS
v5.14.0_stable-0-g3f680d1
Paparazzi is a free software Unmanned Aircraft System.
|
Guidance for the obstacle avoidance methods. More...
#include "std.h"
#include "modules/computer_vision/lib/v4l/v4l2.h"
#include "math/pprz_algebra_int.h"
Go to the source code of this file.
Data Structures | |
struct | opticflow_stab_t |
Enumerations | |
enum | oa_method { NO_OBSTACLE_AVOIDANCE, PINGPONG, POT_HEADING, POT_VEL, VECTOR, SAFETYZONE, LOGICBASED } |
Functions | |
void | guidance_h_module_init (void) |
Initialization of horizontal guidance module. More... | |
void | guidance_h_module_enter (void) |
Entering the horizontal module (user switched to module) More... | |
void | guidance_h_module_read_rc (void) |
Read the RC commands. More... | |
void | guidance_h_module_run (bool in_flight) |
Main guidance loop. More... | |
void | OA_update (void) |
Update the controls based on a vision result. More... | |
Variables | |
struct opticflow_stab_t | opticflow_stab |
int8_t | filter_flag |
int8_t | repulsionforce_filter_flag |
oa_method | OA_method_flag |
int8_t | opti_speed_flag |
float | vref_max |
float | ref_pitch |
float | ref_roll |
float | r_dot_new |
float | speed_pot |
Guidance for the obstacle avoidance methods.
Definition in file guidance_OA.h.
struct opticflow_stab_t |
Definition at line 37 of file guidance_opticflow_hover.h.
Data Fields | ||
---|---|---|
struct Int32Eulers | cmd | The commands that are send to the hover loop. |
float | desired_vx | The desired velocity in the x direction (cm/s) |
float | desired_vy | The desired velocity in the y direction (cm/s) |
float | err_vx_int | The integrated velocity error in x direction (m/s) |
float | err_vy_int | The integrated velocity error in y direction (m/s) |
int32_t | phi_igain | The roll I gain on the err_vx_int. |
int32_t | phi_pgain | The roll P gain on the err_vx. |
int32_t | theta_igain | The pitch I gain on the err_vy_int. |
int32_t | theta_pgain | The pitch P gain on the err_vy. |
enum oa_method |
Enumerator | |
---|---|
NO_OBSTACLE_AVOIDANCE | |
PINGPONG | |
POT_HEADING | |
POT_VEL | |
VECTOR | |
SAFETYZONE | |
LOGICBASED |
Definition at line 52 of file guidance_OA.h.
void guidance_h_module_enter | ( | void | ) |
Entering the horizontal module (user switched to module)
Entering the horizontal module (user switched to module)
Definition at line 85 of file ctrl_module_innerloop_demo.c.
References autopilot, opticflow_stab_t::cmd, ctrl_module_demo_struct::cmd, ctrl, ctrl_module_init(), opticflow_stab_t::err_vx_int, opticflow_stab_t::err_vy_int, pprz_autopilot::in_flight, of_hover_ref_pos, ofh_sp_eu, Int32Eulers::phi, Int32Eulers::psi, ctrl_module_demo_struct::rc_sp, reset_horizontal_vars(), stabilization_attitude_read_rc_setpoint_eulers(), stateGetNedToBodyEulers_i(), stateGetPositionNed_i(), Int32Eulers::theta, and VECT2_COPY.
Referenced by guidance_h_mode_changed().
void guidance_h_module_init | ( | void | ) |
Initialization of horizontal guidance module.
Definition at line 80 of file ctrl_module_innerloop_demo.c.
References ctrl_module_init(), horizontal_ctrl_module_init(), stabilization_opticflow_vel_cb(), and VISION_VELOCITY_ESTIMATE_ID.
Referenced by guidance_h_init().
void guidance_h_module_read_rc | ( | void | ) |
Read the RC commands.
Definition at line 90 of file ctrl_module_innerloop_demo.c.
References autopilot, ctrl, ctrl_module_demo, pprz_autopilot::in_flight, radio_control, RADIO_PITCH, RADIO_ROLL, RADIO_THROTTLE, RADIO_YAW, ctrl_module_demo_struct::rc_sp, ctrl_module_demo_struct::rc_t, ctrl_module_demo_struct::rc_x, ctrl_module_demo_struct::rc_y, ctrl_module_demo_struct::rc_z, stabilization_attitude_read_rc_setpoint_eulers(), and RadioControl::values.
Referenced by guidance_h_read_rc().
void guidance_h_module_run | ( | bool | in_flight | ) |
Main guidance loop.
[in] | in_flight | Whether we are in flight or not |
Definition at line 99 of file ctrl_module_innerloop_demo.c.
References ANGLE_BFP_OF_REAL, AP_MODE_NAV, autopilot_static_set_mode(), Electrical::bat_low, opticflow_stab_t::cmd, ctrl_module_demo_struct::cmd, ctrl, ctrl_module_run(), electrical, horizontal_ctrl_module_run(), OA_update(), Int32Eulers::phi, stabilization_attitude_run(), stabilization_attitude_set_rpy_setpoint_i(), and Int32Eulers::theta.
Referenced by guidance_h_run().
void OA_update | ( | void | ) |
Update the controls based on a vision result.
[in] | *result | The opticflow calculation result used for control |
Definition at line 189 of file guidance_OA.c.
References ANGLE_BFP_OF_REAL, opticflow_stab_t::cmd, CMD_OF_SAT, opticflow_stab_t::desired_vx, opticflow_stab_t::desired_vy, opticflow_stab_t::err_vx_int, opticflow_stab_t::err_vy_int, INT32_ANGLE_NORMALIZE, LOGICBASED, NO_OBSTACLE_AVOIDANCE, opti_speed_read, Int32Eulers::phi, opticflow_stab_t::phi_igain, opticflow_stab_t::phi_pgain, PINGPONG, POT_HEADING, FloatEulers::psi, Int32Eulers::psi, r_dot_new, ref_pitch, ref_roll, SAFETYZONE, speed_pot, stateGetNedToBodyEulers_f(), stateGetNedToBodyEulers_i(), stateGetSpeedNed_f(), Int32Eulers::theta, opticflow_stab_t::theta_igain, opticflow_stab_t::theta_pgain, Total_Kan_x, Total_Kan_y, FloatVect2::x, NedCoor_f::x, FloatVect2::y, NedCoor_f::y, and yaw_rate.
Referenced by guidance_h_module_run().
int8_t filter_flag |
Definition at line 93 of file guidance_OA.c.
oa_method OA_method_flag |
Definition at line 96 of file guidance_OA.c.
Referenced by CN_calculate_target(), and serial_update().
int8_t opti_speed_flag |
Definition at line 98 of file guidance_OA.c.
struct opticflow_stab_t opticflow_stab |
Definition at line 90 of file guidance_opticflow_hover.c.
float r_dot_new |
Definition at line 107 of file guidance_OA.c.
Referenced by CN_potential_heading(), CN_potential_velocity(), and OA_update().
float ref_pitch |
Definition at line 103 of file guidance_OA.c.
float ref_roll |
Definition at line 104 of file guidance_OA.c.
int8_t repulsionforce_filter_flag |
Definition at line 94 of file guidance_OA.c.
Referenced by CN_vector_escape_velocity(), and CN_vector_velocity().
float speed_pot |
Definition at line 110 of file guidance_OA.c.
Referenced by CN_escape_velocity(), CN_potential_heading(), CN_potential_velocity(), CN_vector_escape_velocity(), and OA_update().
float vref_max |
Definition at line 99 of file guidance_OA.c.
Referenced by CN_escape_velocity(), CN_potential_heading(), CN_potential_velocity(), and CN_vector_escape_velocity().