Paparazzi UAS  v5.8.2_stable-0-g6260b7c
Paparazzi is a free software Unmanned Aircraft System.
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
guidance_h.h File Reference

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
 

Detailed Description

Horizontal guidance for rotorcrafts.

Definition in file guidance_h.h.


Data Structure Documentation

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

Definition at line 81 of file guidance_h.h.

Data Fields
int32_t a
int32_t d
int32_t i
int32_t p
int32_t v
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

Macro Definition Documentation

#define GUIDANCE_H_MODE_ATTITUDE   2
#define GUIDANCE_H_MODE_CARE_FREE   6
#define GUIDANCE_H_MODE_FLIP   9
#define GUIDANCE_H_MODE_FORWARD   7
#define GUIDANCE_H_MODE_GUIDED   10
#define GUIDANCE_H_MODE_HOVER   3
#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
#define GUIDANCE_H_MODE_RATE   1
#define GUIDANCE_H_MODE_RC_DIRECT   5
#define guidance_h_SetUseRef (   _val)
Value:
{ \
}
struct HorizontalGuidance guidance_h
Definition: guidance_h.c:79
#define GUIDANCE_H_USE_REF
Use horizontal guidance reference trajectory.
Definition: guidance_h.h:41

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.

Function Documentation

bool_t guidance_h_set_guided_heading ( float  heading)

Set heading setpoint in GUIDED mode.

Parameters
headingSetpoint in radians.
Returns
TRUE if setpoint was set (currently in GUIDANCE_H_MODE_GUIDED)

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.

Parameters
xNorth position (local NED frame) in meters.
yEast position (local NED frame) in meters.
Returns
TRUE if setpoints were set (currently in GUIDANCE_H_MODE_GUIDED)

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)
static void guidance_h_SetMaxSpeed ( float  speed)
inlinestatic

Definition at line 135 of file guidance_h.h.

References gh_set_max_speed().

+ Here is the call graph for this function:

static void guidance_h_SetOmega ( float  omega)
inlinestatic

Definition at line 140 of file guidance_h.h.

References gh_set_omega().

+ Here is the call graph for this function:

static void guidance_h_SetTau ( float  tau)
inlinestatic

Definition at line 150 of file guidance_h.h.

References gh_set_tau().

+ Here is the call graph for this function:

static void guidance_h_SetZeta ( float  zeta)
inlinestatic

Definition at line 145 of file guidance_h.h.

References gh_set_zeta().

+ Here is the call graph for this function:

Variable Documentation

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().