Paparazzi UAS  v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
Generic Orientation Representations

This generic orientation representation consists of a struct, containing the 6 orientation representations, and a status variable. More...

+ Collaboration diagram for Generic Orientation Representations:

Data Structures

struct  OrientationReps
 

Macros

#define ORREP_QUAT_I   0
 Quaternion (BFP int) More...
 
#define ORREP_EULER_I   1
 zyx Euler (BFP int) More...
 
#define ORREP_RMAT_I   2
 Rotation Matrix (BFP int) More...
 
#define ORREP_QUAT_F   3
 Quaternion (float) More...
 
#define ORREP_EULER_F   4
 zyx Euler (float) More...
 
#define ORREP_RMAT_F   5
 Rotation Matrix (float) More...
 

Functions

void orientationCalcQuat_i (struct OrientationReps *orientation)
 
void orientationCalcRMat_i (struct OrientationReps *orientation)
 
void orientationCalcEulers_i (struct OrientationReps *orientation)
 
void orientationCalcQuat_f (struct OrientationReps *orientation)
 
void orientationCalcRMat_f (struct OrientationReps *orientation)
 
void orientationCalcEulers_f (struct OrientationReps *orientation)
 
static bool orienationCheckValid (struct OrientationReps *orientation)
 Test if orientations are valid. More...
 
static void orientationSetIdentity (struct OrientationReps *orientation)
 Set to identity orientation. More...
 
static void orientationSetQuat_i (struct OrientationReps *orientation, struct Int32Quat *quat)
 Set vehicle body attitude from quaternion (int). More...
 
static void orientationSetRMat_i (struct OrientationReps *orientation, struct Int32RMat *rmat)
 Set vehicle body attitude from rotation matrix (int). More...
 
static void orientationSetEulers_i (struct OrientationReps *orientation, struct Int32Eulers *eulers)
 Set vehicle body attitude from euler angles (int). More...
 
static void orientationSetQuat_f (struct OrientationReps *orientation, struct FloatQuat *quat)
 Set vehicle body attitude from quaternion (float). More...
 
static void orientationSetRMat_f (struct OrientationReps *orientation, struct FloatRMat *rmat)
 Set vehicle body attitude from rotation matrix (float). More...
 
static void orientationSetEulers_f (struct OrientationReps *orientation, struct FloatEulers *eulers)
 Set vehicle body attitude from euler angles (float). More...
 
static struct Int32QuatorientationGetQuat_i (struct OrientationReps *orientation)
 Get vehicle body attitude quaternion (int). More...
 
static struct Int32RMatorientationGetRMat_i (struct OrientationReps *orientation)
 Get vehicle body attitude rotation matrix (int). More...
 
static struct Int32EulersorientationGetEulers_i (struct OrientationReps *orientation)
 Get vehicle body attitude euler angles (int). More...
 
static struct FloatQuatorientationGetQuat_f (struct OrientationReps *orientation)
 Get vehicle body attitude quaternion (float). More...
 
static struct FloatRMatorientationGetRMat_f (struct OrientationReps *orientation)
 Get vehicle body attitude rotation matrix (float). More...
 
static struct FloatEulersorientationGetEulers_f (struct OrientationReps *orientation)
 Get vehicle body attitude euler angles (float). More...
 

Detailed Description

This generic orientation representation consists of a struct, containing the 6 orientation representations, and a status variable.

The bits in the status variable indicate which representations of the orientation are up-to-date.

When a getter is used to get a certain representation, the status bit is checked to see if the current value is already available in the desired orientation representation. If the desired representation is not available, it will be calculated.

When a setter is used to set a representation, all status bits are cleared, and only the status bit for the set representation is set to one.


Data Structure Documentation

◆ OrientationReps

struct OrientationReps

Definition at line 79 of file pprz_orientation_conversion.h.

+ Collaboration diagram for OrientationReps:
Data Fields
struct FloatEulers eulers_f Orienation in zyx euler angles.

Units: rad

struct Int32Eulers eulers_i Orientation in zyx euler angles.

Units: rad in BFP with INT32_ANGLE_FRAC

struct FloatQuat quat_f Orientation as quaternion.

Units: unit length quaternion

struct Int32Quat quat_i Orientation quaternion.

Units: INT32_QUAT_FRAC

struct FloatRMat rmat_f Orientation rotation matrix.

Units: rad

struct Int32RMat rmat_i Orientation rotation matrix.

Units: rad in BFP with INT32_TRIG_FRAC

uint8_t status Holds the status bits for all orientation representations.

When the corresponding bit is set, the representation is already computed.

Macro Definition Documentation

◆ ORREP_EULER_F

#define ORREP_EULER_F   4

zyx Euler (float)

Definition at line 73 of file pprz_orientation_conversion.h.

◆ ORREP_EULER_I

#define ORREP_EULER_I   1

zyx Euler (BFP int)

Definition at line 70 of file pprz_orientation_conversion.h.

◆ ORREP_QUAT_F

#define ORREP_QUAT_F   3

Quaternion (float)

Definition at line 72 of file pprz_orientation_conversion.h.

◆ ORREP_QUAT_I

#define ORREP_QUAT_I   0

Quaternion (BFP int)

Definition at line 69 of file pprz_orientation_conversion.h.

◆ ORREP_RMAT_F

#define ORREP_RMAT_F   5

Rotation Matrix (float)

Definition at line 74 of file pprz_orientation_conversion.h.

◆ ORREP_RMAT_I

#define ORREP_RMAT_I   2

Rotation Matrix (BFP int)

Definition at line 71 of file pprz_orientation_conversion.h.

Function Documentation

◆ orienationCheckValid()

static bool orienationCheckValid ( struct OrientationReps orientation)
inlinestatic

Test if orientations are valid.

Definition at line 135 of file pprz_orientation_conversion.h.

References OrientationReps::status.

Referenced by stateIsAttitudeValid().

+ Here is the caller graph for this function:

◆ orientationCalcEulers_f()

◆ orientationCalcEulers_i()

◆ orientationCalcQuat_f()

◆ orientationCalcQuat_i()

◆ orientationCalcRMat_f()

◆ orientationCalcRMat_i()

◆ orientationGetEulers_f()

static struct FloatEulers* orientationGetEulers_f ( struct OrientationReps orientation)
inlinestatic

Get vehicle body attitude euler angles (float).

Definition at line 243 of file pprz_orientation_conversion.h.

References OrientationReps::eulers_f, orientationCalcEulers_f(), ORREP_EULER_F, and OrientationReps::status.

Referenced by imu_SetBodyToImuCurrent(), imu_SetBodyToImuPhi(), imu_SetBodyToImuPsi(), imu_SetBodyToImuTheta(), set_body_state_from_quat(), and stateGetNedToBodyEulers_f().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ orientationGetEulers_i()

static struct Int32Eulers* orientationGetEulers_i ( struct OrientationReps orientation)
inlinestatic

Get vehicle body attitude euler angles (int).

Definition at line 216 of file pprz_orientation_conversion.h.

References OrientationReps::eulers_i, orientationCalcEulers_i(), ORREP_EULER_I, and OrientationReps::status.

Referenced by stateGetNedToBodyEulers_i().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ orientationGetQuat_f()

static struct FloatQuat* orientationGetQuat_f ( struct OrientationReps orientation)
inlinestatic

Get vehicle body attitude quaternion (float).

Definition at line 225 of file pprz_orientation_conversion.h.

References orientationCalcQuat_f(), ORREP_QUAT_F, OrientationReps::quat_f, and OrientationReps::status.

Referenced by send_windtunnel_meas(), and stateGetNedToBodyQuat_f().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ orientationGetQuat_i()

static struct Int32Quat* orientationGetQuat_i ( struct OrientationReps orientation)
inlinestatic

Get vehicle body attitude quaternion (int).

Definition at line 198 of file pprz_orientation_conversion.h.

References orientationCalcQuat_i(), ORREP_QUAT_I, OrientationReps::quat_i, and OrientationReps::status.

Referenced by set_body_state_from_quat(), and stateGetNedToBodyQuat_i().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ orientationGetRMat_f()

static struct FloatRMat* orientationGetRMat_f ( struct OrientationReps orientation)
inlinestatic

Get vehicle body attitude rotation matrix (float).

Definition at line 234 of file pprz_orientation_conversion.h.

References orientationCalcRMat_f(), ORREP_RMAT_F, OrientationReps::rmat_f, and OrientationReps::status.

Referenced by ahrs_vectornav_propagate(), ins_vectornav_propagate(), and stateGetNedToBodyRMat_f().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ orientationGetRMat_i()

static struct Int32RMat* orientationGetRMat_i ( struct OrientationReps orientation)
inlinestatic

Get vehicle body attitude rotation matrix (int).

Definition at line 207 of file pprz_orientation_conversion.h.

References orientationCalcRMat_i(), ORREP_RMAT_I, OrientationReps::rmat_i, and OrientationReps::status.

Referenced by imu_bebop_event(), imu_init(), imu_set_body_to_imu_eulers(), imu_set_defaults_accel(), imu_set_defaults_gyro(), imu_set_defaults_mag(), mag_pitot_parse_msg(), and stateGetNedToBodyRMat_i().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ orientationSetEulers_f()

static void orientationSetEulers_f ( struct OrientationReps orientation,
struct FloatEulers eulers 
)
inlinestatic

Set vehicle body attitude from euler angles (float).

Definition at line 189 of file pprz_orientation_conversion.h.

References EULERS_COPY, OrientationReps::eulers_f, ORREP_EULER_F, and OrientationReps::status.

Referenced by ctrl_windtunnel_init(), imu_bebop_init(), imu_init(), imu_set_body_to_imu_eulers(), ins_vectornav_init(), mag_pitot_init(), and stateSetNedToBodyEulers_f().

+ Here is the caller graph for this function:

◆ orientationSetEulers_i()

static void orientationSetEulers_i ( struct OrientationReps orientation,
struct Int32Eulers eulers 
)
inlinestatic

Set vehicle body attitude from euler angles (int).

Definition at line 165 of file pprz_orientation_conversion.h.

References EULERS_COPY, OrientationReps::eulers_i, ORREP_EULER_I, and OrientationReps::status.

Referenced by stateSetNedToBodyEulers_i().

+ Here is the caller graph for this function:

◆ orientationSetIdentity()

static void orientationSetIdentity ( struct OrientationReps orientation)
inlinestatic

Set to identity orientation.

Definition at line 141 of file pprz_orientation_conversion.h.

References int32_quat_identity(), ORREP_QUAT_I, OrientationReps::quat_i, and OrientationReps::status.

+ Here is the call graph for this function:

◆ orientationSetQuat_f()

static void orientationSetQuat_f ( struct OrientationReps orientation,
struct FloatQuat quat 
)
inlinestatic

Set vehicle body attitude from quaternion (float).

Definition at line 173 of file pprz_orientation_conversion.h.

References ORREP_QUAT_F, QUAT_COPY, OrientationReps::quat_f, and OrientationReps::status.

Referenced by stateSetNedToBodyQuat_f().

+ Here is the caller graph for this function:

◆ orientationSetQuat_i()

static void orientationSetQuat_i ( struct OrientationReps orientation,
struct Int32Quat quat 
)
inlinestatic

Set vehicle body attitude from quaternion (int).

Definition at line 149 of file pprz_orientation_conversion.h.

References ORREP_QUAT_I, QUAT_COPY, OrientationReps::quat_i, and OrientationReps::status.

Referenced by stateSetNedToBodyQuat_i().

+ Here is the caller graph for this function:

◆ orientationSetRMat_f()

static void orientationSetRMat_f ( struct OrientationReps orientation,
struct FloatRMat rmat 
)
inlinestatic

Set vehicle body attitude from rotation matrix (float).

Definition at line 181 of file pprz_orientation_conversion.h.

References ORREP_RMAT_F, RMAT_COPY, OrientationReps::rmat_f, and OrientationReps::status.

Referenced by stateSetNedToBodyRMat_f().

+ Here is the caller graph for this function:

◆ orientationSetRMat_i()

static void orientationSetRMat_i ( struct OrientationReps orientation,
struct Int32RMat rmat 
)
inlinestatic

Set vehicle body attitude from rotation matrix (int).

Definition at line 157 of file pprz_orientation_conversion.h.

References ORREP_RMAT_I, RMAT_COPY, OrientationReps::rmat_i, and OrientationReps::status.

Referenced by stateSetNedToBodyRMat_i().

+ Here is the caller graph for this function: