mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-06-01 12:57:27 +08:00
[math][dox] add some dox about euler convention
This commit is contained in:
@@ -136,6 +136,18 @@ static inline void double_quat_normalize(struct DoubleQuat* q)
|
||||
}
|
||||
}
|
||||
|
||||
/** Rotation matrix from 321 Euler angles (double).
|
||||
* The Euler angles are interpreted as zy'x'' (intrinsic) rotation.
|
||||
* First rotate around z with psi, then around the new y' with theta,
|
||||
* then around new x'' with phi.
|
||||
* This is the same as a xyz (extrinsic) rotation,
|
||||
* rotating around the fixed x, then y then z axis.
|
||||
* - psi range: -pi < psi <= pi
|
||||
* - theta range: -pi/2 <= theta <= pi/2
|
||||
* - phi range: -pi < phi <= pi
|
||||
* @param[out] rm pointer to rotation matrix
|
||||
* @param[in] e pointer to Euler angles
|
||||
*/
|
||||
extern void double_rmat_of_eulers_321(struct DoubleRMat* rm, struct DoubleEulers* e);
|
||||
extern void double_quat_of_eulers(struct DoubleQuat* q, struct DoubleEulers* e);
|
||||
extern void double_eulers_of_quat(struct DoubleEulers* e, struct DoubleQuat* q);
|
||||
|
||||
@@ -285,6 +285,18 @@ extern void float_rmat_transp_ratemult(struct FloatRates* rb, struct FloatRMat*
|
||||
/** initialises a rotation matrix from unit vector axis and angle */
|
||||
extern void float_rmat_of_axis_angle(struct FloatRMat* rm, struct FloatVect3* uv, float angle);
|
||||
|
||||
/** Rotation matrix from 321 Euler angles (float).
|
||||
* The Euler angles are interpreted as zy'x'' (intrinsic) rotation.
|
||||
* First rotate around z with psi, then around the new y' with theta,
|
||||
* then around new x'' with phi.
|
||||
* This is the same as a xyz (extrinsic) rotation,
|
||||
* rotating around the fixed x, then y then z axis.
|
||||
* - psi range: -pi < psi <= pi
|
||||
* - theta range: -pi/2 <= theta <= pi/2
|
||||
* - phi range: -pi < phi <= pi
|
||||
* @param[out] rm pointer to rotation matrix
|
||||
* @param[in] e pointer to Euler angles
|
||||
*/
|
||||
extern void float_rmat_of_eulers_321(struct FloatRMat* rm, struct FloatEulers* e);
|
||||
extern void float_rmat_of_eulers_312(struct FloatRMat* rm, struct FloatEulers* e);
|
||||
#define float_rmat_of_eulers float_rmat_of_eulers_321
|
||||
|
||||
@@ -382,7 +382,18 @@ extern void int32_rmat_transp_ratemult(struct Int32Rates* rb, struct Int32RMat*
|
||||
/// Convert unit quaternion to rotation matrix.
|
||||
extern void int32_rmat_of_quat(struct Int32RMat* rm, struct Int32Quat* q);
|
||||
|
||||
/// Rotation matrix from 321 Euler angles.
|
||||
/** Rotation matrix from 321 Euler angles (int).
|
||||
* The Euler angles are interpreted as zy'x'' (intrinsic) rotation.
|
||||
* First rotate around z with psi, then around the new y' with theta,
|
||||
* then around new x'' with phi.
|
||||
* This is the same as a xyz (extrinsic) rotation,
|
||||
* rotating around the fixed x, then y then z axis.
|
||||
* - psi range: -pi < psi <= pi
|
||||
* - theta range: -pi/2 <= theta <= pi/2
|
||||
* - phi range: -pi < phi <= pi
|
||||
* @param[out] rm pointer to rotation matrix
|
||||
* @param[in] e pointer to Euler angles
|
||||
*/
|
||||
extern void int32_rmat_of_eulers_321(struct Int32RMat* rm, struct Int32Eulers* e);
|
||||
|
||||
/// Rotation matrix from 312 Euler angles.
|
||||
|
||||
Reference in New Issue
Block a user