Paparazzi UAS
v5.12_stable-4-g9b43e9b
Paparazzi is a free software Unmanned Aircraft System.
|
This generic orientation representation consists of a struct, containing the 6 orientation representations, and a status variable. More...
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 Int32Quat * | orientationGetQuat_i (struct OrientationReps *orientation) |
Get vehicle body attitude quaternion (int). More... | |
static struct Int32RMat * | orientationGetRMat_i (struct OrientationReps *orientation) |
Get vehicle body attitude rotation matrix (int). More... | |
static struct Int32Eulers * | orientationGetEulers_i (struct OrientationReps *orientation) |
Get vehicle body attitude euler angles (int). More... | |
static struct FloatQuat * | orientationGetQuat_f (struct OrientationReps *orientation) |
Get vehicle body attitude quaternion (float). More... | |
static struct FloatRMat * | orientationGetRMat_f (struct OrientationReps *orientation) |
Get vehicle body attitude rotation matrix (float). More... | |
static struct FloatEulers * | orientationGetEulers_f (struct OrientationReps *orientation) |
Get vehicle body attitude euler angles (float). More... | |
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.
struct OrientationReps |
Definition at line 79 of file pprz_orientation_conversion.h.
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. |
#define ORREP_EULER_F 4 |
zyx Euler (float)
Definition at line 73 of file pprz_orientation_conversion.h.
Referenced by orientationCalcEulers_f(), orientationCalcEulers_i(), orientationCalcQuat_f(), orientationCalcQuat_i(), orientationCalcRMat_f(), orientationCalcRMat_i(), orientationGetEulers_f(), and orientationSetEulers_f().
#define ORREP_EULER_I 1 |
zyx Euler (BFP int)
Definition at line 70 of file pprz_orientation_conversion.h.
Referenced by orientationCalcEulers_f(), orientationCalcEulers_i(), orientationCalcQuat_f(), orientationCalcQuat_i(), orientationCalcRMat_f(), orientationCalcRMat_i(), orientationGetEulers_i(), and orientationSetEulers_i().
#define ORREP_QUAT_F 3 |
Quaternion (float)
Definition at line 72 of file pprz_orientation_conversion.h.
Referenced by orientationCalcEulers_f(), orientationCalcEulers_i(), orientationCalcQuat_f(), orientationCalcQuat_i(), orientationCalcRMat_f(), orientationCalcRMat_i(), orientationGetQuat_f(), and orientationSetQuat_f().
#define ORREP_QUAT_I 0 |
Quaternion (BFP int)
Definition at line 69 of file pprz_orientation_conversion.h.
Referenced by orientationCalcEulers_f(), orientationCalcEulers_i(), orientationCalcQuat_f(), orientationCalcQuat_i(), orientationCalcRMat_f(), orientationCalcRMat_i(), orientationGetQuat_i(), orientationSetIdentity(), and orientationSetQuat_i().
#define ORREP_RMAT_F 5 |
Rotation Matrix (float)
Definition at line 74 of file pprz_orientation_conversion.h.
Referenced by orientationCalcEulers_f(), orientationCalcEulers_i(), orientationCalcQuat_f(), orientationCalcQuat_i(), orientationCalcRMat_f(), orientationCalcRMat_i(), orientationGetRMat_f(), and orientationSetRMat_f().
#define ORREP_RMAT_I 2 |
Rotation Matrix (BFP int)
Definition at line 71 of file pprz_orientation_conversion.h.
Referenced by orientationCalcEulers_f(), orientationCalcEulers_i(), orientationCalcQuat_f(), orientationCalcQuat_i(), orientationCalcRMat_f(), orientationCalcRMat_i(), orientationGetRMat_i(), and orientationSetRMat_i().
|
inlinestatic |
Test if orientations are valid.
Definition at line 135 of file pprz_orientation_conversion.h.
References OrientationReps::status.
Referenced by stateIsAttitudeValid().
void orientationCalcEulers_f | ( | struct OrientationReps * | orientation | ) |
Definition at line 173 of file pprz_orientation_conversion.c.
References OrientationReps::eulers_f, EULERS_FLOAT_OF_BFP, OrientationReps::eulers_i, float_eulers_of_quat(), float_eulers_of_rmat(), ORREP_EULER_F, ORREP_EULER_I, ORREP_QUAT_F, ORREP_QUAT_I, ORREP_RMAT_F, ORREP_RMAT_I, OrientationReps::quat_f, QUAT_FLOAT_OF_BFP, OrientationReps::quat_i, OrientationReps::rmat_f, RMAT_FLOAT_OF_BFP, OrientationReps::rmat_i, and OrientationReps::status.
Referenced by orientationGetEulers_f().
void orientationCalcEulers_i | ( | struct OrientationReps * | orientation | ) |
Definition at line 98 of file pprz_orientation_conversion.c.
References EULERS_BFP_OF_REAL, OrientationReps::eulers_f, OrientationReps::eulers_i, int32_eulers_of_quat(), int32_eulers_of_rmat(), ORREP_EULER_F, ORREP_EULER_I, ORREP_QUAT_F, ORREP_QUAT_I, ORREP_RMAT_F, ORREP_RMAT_I, QUAT_BFP_OF_REAL, OrientationReps::quat_f, OrientationReps::quat_i, RMAT_BFP_OF_REAL, OrientationReps::rmat_f, OrientationReps::rmat_i, and OrientationReps::status.
Referenced by orientationGetEulers_i().
void orientationCalcQuat_f | ( | struct OrientationReps * | orientation | ) |
Definition at line 123 of file pprz_orientation_conversion.c.
References OrientationReps::eulers_f, EULERS_FLOAT_OF_BFP, OrientationReps::eulers_i, float_quat_of_eulers(), float_quat_of_rmat(), ORREP_EULER_F, ORREP_EULER_I, ORREP_QUAT_F, ORREP_QUAT_I, ORREP_RMAT_F, ORREP_RMAT_I, OrientationReps::quat_f, QUAT_FLOAT_OF_BFP, OrientationReps::quat_i, OrientationReps::rmat_f, RMAT_FLOAT_OF_BFP, OrientationReps::rmat_i, and OrientationReps::status.
Referenced by orientationGetQuat_f().
void orientationCalcQuat_i | ( | struct OrientationReps * | orientation | ) |
Definition at line 48 of file pprz_orientation_conversion.c.
References EULERS_BFP_OF_REAL, OrientationReps::eulers_f, OrientationReps::eulers_i, int32_quat_of_eulers(), int32_quat_of_rmat(), ORREP_EULER_F, ORREP_EULER_I, ORREP_QUAT_F, ORREP_QUAT_I, ORREP_RMAT_F, ORREP_RMAT_I, QUAT_BFP_OF_REAL, OrientationReps::quat_f, OrientationReps::quat_i, RMAT_BFP_OF_REAL, OrientationReps::rmat_f, OrientationReps::rmat_i, and OrientationReps::status.
Referenced by orientationGetQuat_i().
void orientationCalcRMat_f | ( | struct OrientationReps * | orientation | ) |
Definition at line 148 of file pprz_orientation_conversion.c.
References OrientationReps::eulers_f, EULERS_FLOAT_OF_BFP, OrientationReps::eulers_i, float_rmat_of_eulers, float_rmat_of_quat(), ORREP_EULER_F, ORREP_EULER_I, ORREP_QUAT_F, ORREP_QUAT_I, ORREP_RMAT_F, ORREP_RMAT_I, OrientationReps::quat_f, QUAT_FLOAT_OF_BFP, OrientationReps::quat_i, OrientationReps::rmat_f, RMAT_FLOAT_OF_BFP, OrientationReps::rmat_i, and OrientationReps::status.
Referenced by orientationGetRMat_f().
void orientationCalcRMat_i | ( | struct OrientationReps * | orientation | ) |
Definition at line 73 of file pprz_orientation_conversion.c.
References EULERS_BFP_OF_REAL, OrientationReps::eulers_f, OrientationReps::eulers_i, int32_rmat_of_eulers, int32_rmat_of_quat(), ORREP_EULER_F, ORREP_EULER_I, ORREP_QUAT_F, ORREP_QUAT_I, ORREP_RMAT_F, ORREP_RMAT_I, QUAT_BFP_OF_REAL, OrientationReps::quat_f, OrientationReps::quat_i, RMAT_BFP_OF_REAL, OrientationReps::rmat_f, OrientationReps::rmat_i, and OrientationReps::status.
Referenced by orientationGetRMat_i().
|
static |
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 ahrs_dcm_set_body_to_imu_quat(), imu_SetBodyToImuCurrent(), imu_SetBodyToImuPhi(), imu_SetBodyToImuPsi(), imu_SetBodyToImuTheta(), and stateGetNedToBodyEulers_f().
|
static |
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 ahrs_ice_set_body_to_imu_quat(), send_euler_int(), and stateGetNedToBodyEulers_i().
|
static |
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 ahrs_dcm_set_body_to_imu(), ahrs_fc_realign_heading(), ahrs_fc_recompute_ltp_to_body(), ahrs_fc_set_body_to_imu(), ahrs_fc_set_body_to_imu_quat(), ahrs_gx3_init(), ahrs_ice_set_body_to_imu(), ahrs_icq_set_body_to_imu(), ahrs_mlkf_set_body_to_imu(), ahrs_mlkf_set_body_to_imu_quat(), compute_body_orientation_and_rates(), imu_SetBodyToImuCurrent(), imu_SetBodyToImuPhi(), imu_SetBodyToImuPsi(), imu_SetBodyToImuTheta(), init_ap(), main_init(), send_att(), set_body_state_from_quat(), and stateGetNedToBodyQuat_f().
|
static |
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 ahrs_icq_realign_heading(), ahrs_icq_set_body_to_imu_quat(), ahrs_icq_update_heading(), set_body_state_from_quat(), and stateGetNedToBodyQuat_i().
|
static |
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_dcm_init(), ahrs_fc_set_body_to_imu_quat(), ahrs_fc_update_accel(), ahrs_fc_update_heading(), ahrs_float_invariant_propagate(), ahrs_float_invariant_update_mag(), ahrs_vectornav_propagate(), compute_body_orientation_and_rates(), gx3_packet_read_message(), ins_float_invariant_propagate(), ins_float_invariant_update_mag(), ins_vectornav_propagate(), Normalize(), set_body_orientation_and_rates(), set_body_state_from_quat(), and stateGetNedToBodyRMat_f().
|
static |
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 accel_cb(), ahrs_icq_update_accel(), b2_hff_propagate(), imu_bebop_event(), ins_int_propagate(), ins_module_propagate(), mag_pitot_parse_msg(), set_body_state_from_euler(), set_body_state_from_quat(), and stateGetNedToBodyRMat_i().
|
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 imu_bebop_init(), imu_init(), imu_SetBodyToImuCurrent(), imu_SetBodyToImuPhi(), imu_SetBodyToImuPsi(), imu_SetBodyToImuTheta(), ins_vectornav_init(), mag_pitot_init(), and stateSetNedToBodyEulers_f().
|
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 ins_alt_float_init(), and stateSetNedToBodyEulers_i().
|
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.
Referenced by ahrs_fc_init().
|
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 ahrs_dcm_set_body_to_imu_quat(), ahrs_fc_recompute_ltp_to_body(), ahrs_fc_set_body_to_imu_quat(), ahrs_float_inv_set_body_to_imu_quat(), ahrs_ice_set_body_to_imu_quat(), ahrs_icq_set_body_to_imu_quat(), ahrs_mlkf_set_body_to_imu_quat(), body_to_imu_cb(), ins_float_inv_set_body_to_imu_quat(), and stateSetNedToBodyQuat_f().
|
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().
|
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().
|
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().