Paparazzi UAS  v5.12_stable-4-g9b43e9b
Paparazzi is a free software Unmanned Aircraft System.
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
guidance_h_ref.c File Reference

Reference generation for horizontal guidance. More...

#include "firmwares/rotorcraft/guidance/guidance_h_ref.h"
#include "generated/airframe.h"
+ Include dependency graph for guidance_h_ref.c:

Go to the source code of this file.

Macros

#define GH_MAX_SPEED_REF_FRAC   7
 
#define GUIDANCE_H_REF_OMEGA   RadOfDeg(67.)
 default second order model natural frequency More...
 
#define GUIDANCE_H_REF_ZETA   0.85
 default second order model damping More...
 
#define GH_ZETA_OMEGA_FRAC   10
 
#define GH_OMEGA_2_FRAC   7
 
#define GUIDANCE_H_REF_TAU   0.5
 first order time constant More...
 
#define GH_REF_INV_TAU_FRAC   16
 

Functions

static void gh_compute_route_ref (struct Int32Vect2 *ref_vector)
 
static void gh_compute_ref_max (struct Int32Vect2 *ref_vector)
 
static void gh_compute_ref_max_accel (struct Int32Vect2 *ref_vector)
 
static void gh_compute_ref_max_speed (struct Int32Vect2 *ref_vector)
 
static void gh_saturate_ref_accel (void)
 saturate reference accelerations More...
 
static void gh_saturate_ref_speed (void)
 Saturate ref speed and adjust acceleration accordingly. More...
 
void gh_ref_init (void)
 
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)
 
void gh_set_ref (struct Int32Vect2 pos, struct Int32Vect2 speed, struct Int32Vect2 accel)
 
void gh_update_ref_from_pos_sp (struct Int32Vect2 pos_sp)
 
void gh_update_ref_from_speed_sp (struct Int32Vect2 speed_sp)
 

Variables

struct GuidanceHRef gh_ref
 
static const int32_t gh_max_accel = BFP_OF_REAL(GUIDANCE_H_REF_MAX_ACCEL, GH_ACCEL_REF_FRAC)
 

Detailed Description

Reference generation for horizontal guidance.

Definition in file guidance_h_ref.c.

Macro Definition Documentation

#define GH_MAX_SPEED_REF_FRAC   7

Definition at line 34 of file guidance_h_ref.c.

Referenced by gh_compute_ref_max(), gh_compute_ref_max_speed(), and gh_set_max_speed().

#define GH_OMEGA_2_FRAC   7

Definition at line 46 of file guidance_h_ref.c.

Referenced by gh_ref_init(), gh_set_omega(), and gh_update_ref_from_pos_sp().

#define GH_REF_INV_TAU_FRAC   16

Definition at line 53 of file guidance_h_ref.c.

Referenced by gh_set_tau(), and gh_update_ref_from_speed_sp().

#define GH_ZETA_OMEGA_FRAC   10

Definition at line 45 of file guidance_h_ref.c.

Referenced by gh_ref_init(), gh_set_omega(), gh_set_zeta(), and gh_update_ref_from_pos_sp().

#define GUIDANCE_H_REF_OMEGA   RadOfDeg(67.)

default second order model natural frequency

Definition at line 38 of file guidance_h_ref.c.

Referenced by gh_ref_init().

#define GUIDANCE_H_REF_TAU   0.5

first order time constant

Definition at line 51 of file guidance_h_ref.c.

Referenced by gh_ref_init().

#define GUIDANCE_H_REF_ZETA   0.85

default second order model damping

Definition at line 42 of file guidance_h_ref.c.

Referenced by gh_ref_init().

Function Documentation

static void gh_compute_ref_max ( struct Int32Vect2 ref_vector)
static
static void gh_compute_ref_max_accel ( struct Int32Vect2 ref_vector)
static

Definition at line 204 of file guidance_h_ref.c.

References GuidanceHRef::c_route_ref, gh_compute_route_ref(), gh_max_accel, gh_ref, INT32_TRIG_FRAC, INT_MULT_RSHIFT, GuidanceHRef::max_accel, GuidanceHRef::s_route_ref, Int32Vect2::x, and Int32Vect2::y.

Referenced by gh_update_ref_from_speed_sp().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void gh_compute_ref_max_speed ( struct Int32Vect2 ref_vector)
static
static void gh_compute_route_ref ( struct Int32Vect2 ref_vector)
static
void gh_ref_init ( void  )
static void gh_saturate_ref_accel ( void  )
static

saturate reference accelerations

Definition at line 237 of file guidance_h_ref.c.

References GuidanceHRef::accel, gh_ref, GuidanceHRef::max_accel, Int32Vect2::x, and Int32Vect2::y.

Referenced by gh_update_ref_from_pos_sp(), and gh_update_ref_from_speed_sp().

+ Here is the caller graph for this function:

static void gh_saturate_ref_speed ( void  )
static

Saturate ref speed and adjust acceleration accordingly.

Definition at line 245 of file guidance_h_ref.c.

References GuidanceHRef::accel, gh_ref, GuidanceHRef::max_vel, GuidanceHRef::speed, Int32Vect2::x, and Int32Vect2::y.

Referenced by gh_update_ref_from_pos_sp(), and gh_update_ref_from_speed_sp().

+ Here is the caller graph for this function:

float gh_set_max_speed ( float  max_speed)

Set a new maximum speed for waypoint navigation.

Parameters
max_speedspeed saturation in m/s
Returns
new maximum speed

Definition at line 73 of file guidance_h_ref.c.

References BFP_OF_REAL, GH_MAX_SPEED_REF_FRAC, gh_ref, GuidanceHRef::max_speed, GuidanceHRef::max_speed_int, and Min.

Referenced by gh_ref_init(), and guidance_h_SetMaxSpeed().

+ Here is the caller graph for this function:

float gh_set_omega ( float  omega)

Definition at line 89 of file guidance_h_ref.c.

References BFP_OF_REAL, GH_OMEGA_2_FRAC, gh_ref, GH_ZETA_OMEGA_FRAC, GuidanceHRef::omega, GuidanceHRef::omega_2, GuidanceHRef::zeta, and GuidanceHRef::zeta_omega.

Referenced by guidance_h_SetOmega().

+ Here is the caller graph for this function:

float gh_set_tau ( float  tau)

Definition at line 81 of file guidance_h_ref.c.

References BFP_OF_REAL, gh_ref, GH_REF_INV_TAU_FRAC, GuidanceHRef::inv_tau, and GuidanceHRef::tau.

Referenced by gh_ref_init(), and guidance_h_SetTau().

+ Here is the caller graph for this function:

float gh_set_zeta ( float  zeta)

Definition at line 98 of file guidance_h_ref.c.

References BFP_OF_REAL, gh_ref, GH_ZETA_OMEGA_FRAC, GuidanceHRef::omega, GuidanceHRef::zeta, and GuidanceHRef::zeta_omega.

Referenced by guidance_h_SetZeta().

+ Here is the caller graph for this function:

void gh_update_ref_from_speed_sp ( struct Int32Vect2  speed_sp)

Variable Documentation

Definition at line 32 of file guidance_h_ref.c.

Referenced by gh_compute_ref_max(), and gh_compute_ref_max_accel().