Paparazzi UAS
v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
|
Reference generation for horizontal guidance. More...
#include "inttypes.h"
#include "math/pprz_algebra.h"
#include "math/pprz_algebra_int.h"
#include "math/pprz_algebra_float.h"
#include "generated/airframe.h"
Go to the source code of this file.
Data Structures | |
struct | GuidanceHRef |
Macros | |
#define | GUIDANCE_H_REF_MAX_SPEED 5. |
Default speed saturation. More... | |
#define | GUIDANCE_H_REF_MAX_ACCEL 5.66 |
Accel saturation. More... | |
#define | GH_POS_REF_FRAC 37 |
fixedpoint representation: Q26.37 will give a range of 67e3 km and a resolution of 1.5e-11 m. More... | |
Functions | |
void | gh_ref_init (void) |
void | gh_set_ref (struct Int32Vect2 pos, struct FloatVect2 speed, struct FloatVect2 accel) |
void | gh_update_ref_from_pos_sp (struct Int32Vect2 pos_sp) |
void | gh_update_ref_from_speed_sp (struct FloatVect2 speed_sp) |
void | gh_update_ref_from_accel_sp (struct FloatVect2 accel_sp) |
float | gh_set_max_speed (float max_speed) |
Set a new maximum speed for waypoint navigation. More... | |
float | gh_set_tau (float tau) |
float | gh_set_omega (float omega) |
float | gh_set_zeta (float zeta) |
Variables | |
float | gh_max_speed |
Current maximum speed for waypoint navigation. More... | |
struct GuidanceHRef | gh_ref |
Reference generation for horizontal guidance.
Definition in file guidance_h_ref.h.
struct GuidanceHRef |
Definition at line 60 of file guidance_h_ref.h.
Data Fields | ||
---|---|---|
struct FloatVect2 | accel |
Reference model acceleration. in meters/sec2 (output) |
float | dt | Integration timestep. |
float | inv_tau | |
float | max_speed |
Current maximum speed for waypoint navigation. Defaults to GUIDANCE_H_REF_MAX_SPEED |
float | omega | second order model natural frequency |
float | omega_2 | |
struct Int64Vect2 | pos |
Reference model position. in meters with fixedpoint representation: Q37.26 |
struct FloatVect2 | speed |
Reference model speed. in meters/sec accuracy 0.0000076 , range 16384m/s |
float | tau | first order time constant |
float | zeta | second order model damping |
float | zeta_omega |
#define GH_POS_REF_FRAC 37 |
fixedpoint representation: Q26.37 will give a range of 67e3 km and a resolution of 1.5e-11 m.
At a rate of 500Hz, a ref speed of 7.3e-9 m/s could still update the position.
Definition at line 58 of file guidance_h_ref.h.
#define GUIDANCE_H_REF_MAX_ACCEL 5.66 |
#define GUIDANCE_H_REF_MAX_SPEED 5. |
Default speed saturation.
Definition at line 39 of file guidance_h_ref.h.
void gh_ref_init | ( | void | ) |
Definition at line 51 of file guidance_h_ref.c.
References GuidanceHRef::dt, gh_ref, gh_set_max_speed(), gh_set_tau(), GUIDANCE_H_REF_MAX_SPEED, GUIDANCE_H_REF_OMEGA, GUIDANCE_H_REF_TAU, GUIDANCE_H_REF_ZETA, GuidanceHRef::omega, GuidanceHRef::omega_2, GuidanceHRef::zeta, and GuidanceHRef::zeta_omega.
Referenced by guidance_h_init().
float gh_set_max_speed | ( | float | max_speed | ) |
Set a new maximum speed for waypoint navigation.
max_speed | speed saturation in m/s |
Definition at line 63 of file guidance_h_ref.c.
References gh_ref, GuidanceHRef::max_speed, and Min.
Referenced by gh_ref_init(), and guidance_h_SetMaxSpeed().
float gh_set_omega | ( | float | omega | ) |
Definition at line 78 of file guidance_h_ref.c.
References gh_ref, GuidanceHRef::omega, GuidanceHRef::omega_2, GuidanceHRef::zeta, and GuidanceHRef::zeta_omega.
Referenced by guidance_h_SetOmega().
void gh_set_ref | ( | struct Int32Vect2 | pos, |
struct FloatVect2 | speed, | ||
struct FloatVect2 | accel | ||
) |
Definition at line 95 of file guidance_h_ref.c.
References GuidanceHRef::accel, GH_POS_REF_FRAC, gh_ref, INT32_POS_FRAC, GuidanceHRef::pos, GuidanceHRef::speed, VECT2_COPY, Int32Vect2::x, Int64Vect2::x, Int32Vect2::y, and Int64Vect2::y.
Referenced by reset_guidance_reference_from_current_position().
float gh_set_tau | ( | float | tau | ) |
Definition at line 70 of file guidance_h_ref.c.
References gh_ref, GuidanceHRef::inv_tau, and GuidanceHRef::tau.
Referenced by gh_ref_init().
float gh_set_zeta | ( | float | zeta | ) |
Definition at line 87 of file guidance_h_ref.c.
References gh_ref, GuidanceHRef::omega, GuidanceHRef::zeta, and GuidanceHRef::zeta_omega.
Referenced by guidance_h_SetZeta().
void gh_update_ref_from_accel_sp | ( | struct FloatVect2 | accel_sp | ) |
Definition at line 170 of file guidance_h_ref.c.
References GuidanceHRef::accel, GuidanceHRef::dt, GH_POS_REF_FRAC, gh_ref, gh_saturate_accel(), LBFP_OF_REAL, GuidanceHRef::pos, GuidanceHRef::speed, VECT2_ADD, VECT2_COPY, VECT2_SMUL, FloatVect2::x, Int64Vect2::x, FloatVect2::y, and Int64Vect2::y.
Referenced by guidance_h_update_reference().
void gh_update_ref_from_pos_sp | ( | struct Int32Vect2 | pos_sp | ) |
Definition at line 105 of file guidance_h_ref.c.
References GuidanceHRef::accel, GuidanceHRef::dt, GH_POS_REF_FRAC, gh_ref, gh_saturate_accel(), gh_saturate_speed(), INT32_POS_FRAC, LBFP_OF_REAL, GuidanceHRef::omega, GuidanceHRef::pos, POS_FLOAT_OF_BFP, GuidanceHRef::speed, VECT2_ADD, VECT2_COPY, VECT2_DIFF, VECT2_SMUL, FloatVect2::x, Int32Vect2::x, Int64Vect2::x, FloatVect2::y, Int32Vect2::y, Int64Vect2::y, GuidanceHRef::zeta, and GuidanceHRef::zeta_omega.
Referenced by guidance_h_update_reference().
void gh_update_ref_from_speed_sp | ( | struct FloatVect2 | speed_sp | ) |
Definition at line 143 of file guidance_h_ref.c.
References GuidanceHRef::accel, GuidanceHRef::dt, GH_POS_REF_FRAC, gh_ref, gh_saturate_accel(), GuidanceHRef::inv_tau, LBFP_OF_REAL, GuidanceHRef::pos, GuidanceHRef::speed, speed_sp, VECT2_ADD, VECT2_COPY, VECT2_DIFF, VECT2_SMUL, FloatVect2::x, Int64Vect2::x, FloatVect2::y, and Int64Vect2::y.
Referenced by guidance_h_update_reference().
|
extern |
Current maximum speed for waypoint navigation.
Defaults to GUIDANCE_H_REF_MAX_SPEED
|
extern |
Definition at line 1 of file guidance_h_ref.c.
Referenced by gh_ref_init(), gh_saturate_speed(), gh_set_max_speed(), gh_set_omega(), gh_set_ref(), gh_set_tau(), gh_set_zeta(), gh_update_ref_from_accel_sp(), gh_update_ref_from_pos_sp(), gh_update_ref_from_speed_sp(), and guidance_h_update_reference().