Paparazzi UAS
v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
|
Guidance algorithm based on vector fields. More...
#include "std.h"
Go to the source code of this file.
Data Structures | |
struct | gvf_con |
struct | gvf_st |
struct | gvf_tra |
struct | gvf_seg |
struct | gvf_grad |
struct | gvf_Hess |
Macros | |
#define | GVF_GRAVITY 9.806 |
#define | GVF_OCAML_GCS true |
Enumerations | |
enum | trajectories { LINE = 0 , ELLIPSE , SIN , NONE = 255 } |
Functions | |
void | gvf_init (void) |
void | gvf_control_2D (float ke, float kn, float e, struct gvf_grad *, struct gvf_Hess *) |
void | gvf_set_speed (float speed) |
void | gvf_set_align (bool align) |
void | gvf_set_direction (int8_t s) |
bool | gvf_line_XY_heading (float x, float y, float heading) |
bool | gvf_line_XY1_XY2 (float x1, float y1, float x2, float y2) |
bool | gvf_line_wp1_wp2 (uint8_t wp1, uint8_t wp2) |
bool | gvf_segment_loop_XY1_XY2 (float x1, float y1, float x2, float y2, float d1, float d2) |
bool | gvf_segment_loop_wp1_wp2 (uint8_t wp1, uint8_t wp2, float d1, float d2) |
bool | gvf_segment_XY1_XY2 (float x1, float y1, float x2, float y2) |
bool | gvf_segment_wp1_wp2 (uint8_t wp1, uint8_t wp2) |
bool | gvf_line_wp_heading (uint8_t wp, float heading) |
bool | gvf_ellipse_wp (uint8_t wp, float a, float b, float alpha) |
bool | gvf_ellipse_XY (float x, float y, float a, float b, float alpha) |
bool | gvf_sin_XY_alpha (float x, float y, float alpha, float w, float off, float A) |
bool | gvf_sin_wp1_wp2 (uint8_t wp1, uint8_t wp2, float w, float off, float A) |
bool | gvf_sin_wp_alpha (uint8_t wp, float alpha, float w, float off, float A) |
Variables | |
gvf_con | gvf_control |
gvf_st | gvf_state |
gvf_tra | gvf_trajectory |
Guidance algorithm based on vector fields.
Definition in file gvf.h.
struct gvf_con |
struct gvf_st |
struct gvf_tra |
Data Fields | ||
---|---|---|
float | p[16] | |
enum trajectories | type |
struct gvf_seg |
struct gvf_Hess |
enum trajectories |
Definition at line 131 of file gvf.c.
References RotorcraftNavigation::accel, gvf_con::align, gvf_st::course, course, get_sys_time_msec(), gvf_c_info, gvf_c_omega, gvf_control, gvf_low_level_control_2D(), gvf_low_level_getState(), gvf_state, gvf_t0, gvf_Hess::H11, gvf_Hess::H12, gvf_Hess::H21, gvf_Hess::H22, RotorcraftNavigation::heading, gvf_common_params::kappa, nav, NAV_SETPOINT_MODE_SPEED, gvf_grad::nx, gvf_grad::ny, gvf_con::omega, gvf_common_omega::omega, gvf_common_params::ori_err, gvf_st::px_dot, gvf_st::py_dot, gvf_con::s, s, RotorcraftNavigation::setpoint_mode, RotorcraftNavigation::speed, gvf_con::speed, EnuCoor_f::x, and EnuCoor_f::y.
Referenced by gvf_ellipse_XY(), gvf_line(), and gvf_sin_XY_alpha().
bool gvf_ellipse_wp | ( | uint8_t | wp, |
float | a, | ||
float | b, | ||
float | alpha | ||
) |
Definition at line 472 of file gvf.c.
References alpha, b, gvf_ellipse_XY(), gvf_plen_wps, gvf_trajectory, gvf_tra::p, WaypointX, and WaypointY.
bool gvf_ellipse_XY | ( | float | x, |
float | y, | ||
float | a, | ||
float | b, | ||
float | alpha | ||
) |
Definition at line 433 of file gvf.c.
References alpha, b, gvf_con::error, gvf_control, gvf_control_2D(), gvf_ellipse_info(), gvf_ellipse_par, gvf_plen, gvf_plen_wps, gvf_trajectory, gvf_con::ke, gvf_ell_par::ke, gvf_ell_par::kn, gvf_tra::p, and gvf_tra::type.
Referenced by distributed_circular(), gvf_ellipse_wp(), and gvf_nav_survey_polygon_run().
void gvf_init | ( | void | ) |
Definition at line 116 of file gvf.c.
References gvf_con::align, DefaultPeriodic, gvf_control, gvf_trajectory, gvf_con::ke, gvf_con::kn, NONE, register_periodic_telemetry(), gvf_con::s, send_gvf(), gvf_con::speed, and gvf_tra::type.
Definition at line 328 of file gvf.c.
References gvf_line_XY1_XY2(), gvf_plen_wps, gvf_trajectory, gvf_tra::p, WaypointX, and WaypointY.
bool gvf_line_wp_heading | ( | uint8_t | wp, |
float | heading | ||
) |
Definition at line 418 of file gvf.c.
References b, gvf_line_XY_heading(), gvf_plen_wps, gvf_trajectory, heading, gvf_tra::p, WaypointX, and WaypointY.
bool gvf_line_XY1_XY2 | ( | float | x1, |
float | y1, | ||
float | x2, | ||
float | y2 | ||
) |
Definition at line 304 of file gvf.c.
References gvf_line_XY_heading(), gvf_plen_wps, gvf_segment, gvf_trajectory, gvf_tra::p, gvf_seg::seg, gvf_seg::x1, gvf_seg::x2, gvf_seg::y1, and gvf_seg::y2.
Referenced by gvf_line_wp1_wp2(), and gvf_segment_XY1_XY2().
bool gvf_line_XY_heading | ( | float | x, |
float | y, | ||
float | heading | ||
) |
Definition at line 297 of file gvf.c.
References b, gvf_line(), gvf_set_direction(), and heading.
Referenced by gvf_line_wp_heading(), and gvf_line_XY1_XY2().
Definition at line 366 of file gvf.c.
References d1, d2, gvf_plen_wps, gvf_segment_loop_XY1_XY2(), gvf_trajectory, gvf_tra::p, WaypointX, and WaypointY.
bool gvf_segment_loop_XY1_XY2 | ( | float | x1, |
float | y1, | ||
float | x2, | ||
float | y2, | ||
float | d1, | ||
float | d2 | ||
) |
Definition at line 342 of file gvf.c.
References alpha, d1, d2, gvf_line(), gvf_segment, gvf_set_direction(), out_of_segment_area(), s, gvf_seg::seg, gvf_seg::x1, gvf_seg::x2, gvf_seg::y1, and gvf_seg::y2.
Referenced by gvf_segment_loop_wp1_wp2().
Definition at line 404 of file gvf.c.
References gvf_plen_wps, gvf_segment_XY1_XY2(), gvf_trajectory, gvf_tra::p, WaypointX, and WaypointY.
bool gvf_segment_XY1_XY2 | ( | float | x1, |
float | y1, | ||
float | x2, | ||
float | y2 | ||
) |
Definition at line 382 of file gvf.c.
References gvf_line_XY1_XY2(), p, and stateGetPositionEnu_f().
Referenced by gvf_nav_points(), and gvf_segment_wp1_wp2().
void gvf_set_align | ( | bool | align | ) |
Definition at line 259 of file gvf.c.
References gvf_con::align, and gvf_control.
void gvf_set_direction | ( | int8_t | s | ) |
Definition at line 266 of file gvf.c.
References gvf_control, gvf_con::s, and s.
Referenced by gvf_line_XY_heading(), gvf_nav_direction_circle(), and gvf_segment_loop_XY1_XY2().
void gvf_set_speed | ( | float | speed | ) |
Definition at line 253 of file gvf.c.
References gvf_control, and gvf_con::speed.
Definition at line 508 of file gvf.c.
References A, alpha, gvf_plen_wps, gvf_sin_XY_alpha(), gvf_trajectory, gvf_tra::p, WaypointX, and WaypointY.
bool gvf_sin_wp_alpha | ( | uint8_t | wp, |
float | alpha, | ||
float | w, | ||
float | off, | ||
float | A | ||
) |
Definition at line 531 of file gvf.c.
References A, alpha, gvf_plen_wps, gvf_sin_XY_alpha(), gvf_trajectory, gvf_tra::p, WaypointX, and WaypointY.
bool gvf_sin_XY_alpha | ( | float | x, |
float | y, | ||
float | alpha, | ||
float | w, | ||
float | off, | ||
float | A | ||
) |
Definition at line 483 of file gvf.c.
References A, alpha, b, gvf_con::error, gvf_control, gvf_control_2D(), gvf_plen, gvf_plen_wps, gvf_sin_info(), gvf_sin_par, gvf_trajectory, gvf_con::ke, gvf_s_par::ke, gvf_s_par::kn, gvf_tra::p, and gvf_tra::type.
Referenced by gvf_sin_wp1_wp2(), and gvf_sin_wp_alpha().
|
extern |
Definition at line 36 of file gvf.c.
Referenced by distributed_circular(), gvf_control_2D(), gvf_ellipse_XY(), gvf_init(), gvf_line(), gvf_set_align(), gvf_set_direction(), gvf_set_speed(), gvf_sin_XY_alpha(), and send_gvf().
|
extern |
Definition at line 39 of file gvf.c.
Referenced by gvf_control_2D(), and gvf_low_level_getState().
|
extern |
Definition at line 42 of file gvf.c.
Referenced by gvf_ellipse_info(), gvf_ellipse_wp(), gvf_ellipse_XY(), gvf_init(), gvf_line(), gvf_line_info(), gvf_line_wp1_wp2(), gvf_line_wp_heading(), gvf_line_XY1_XY2(), gvf_segment_loop_wp1_wp2(), gvf_segment_wp1_wp2(), gvf_sin_info(), gvf_sin_wp1_wp2(), gvf_sin_wp_alpha(), gvf_sin_XY_alpha(), and send_gvf().