Skyward boardcore
Loading...
Searching...
No Matches
Boardcore::SkyQuaternion Namespace Reference

Functions for managing quaternions. More...

Functions

Vector4f eul2quat (const Vector3f &euler)
 
Vector3f quat2eul (const Vector4f &quat)
 
Vector3f quat2stepperAngles (const Vector4f &q)
 
Vector4f rotationMatrix2quat (const Matrix3f &rtm)
 
Matrix3f quat2rotationMatrix (const Vector4f &q)
 
bool quatNormalize (Vector4f &quat)
 
Vector4f quatProd (const Vector4f &q1, const Vector4f &q2)
 
Eigen::Vector4f eul2quat (const Eigen::Vector3f &euler)
 Transform a vector of euler angles (ZYX) to quaternion.
 
Eigen::Vector3f quat2eul (const Eigen::Vector4f &quat)
 Transform a quaternion into a vector of euler angles (ZYX).
 
Eigen::Vector3f quat2stepperAngles (const Eigen::Vector4f &quat)
 Translates quaternions to yaw and pitch angles assuming roll stays close to 0.
 
Eigen::Vector4f rotationMatrix2quat (const Eigen::Matrix3f &rtm)
 Transform a rotation matrix into a quaternion.
 
Eigen::Matrix3f quat2rotationMatrix (const Eigen::Vector4f &quat)
 Transform a quaternion into a rotation matrix.
 
bool quatNormalize (Eigen::Vector4f &quat)
 Normalize a quaternion.
 
Eigen::Vector4f quatProd (const Eigen::Vector4f &q1, const Eigen::Vector4f &q2)
 Compute the product of two quaternions.
 

Detailed Description

Functions for managing quaternions.

Convention used: [x, y, z, w] (scalar element as last element).

Function Documentation

◆ eul2quat() [1/2]

Eigen::Vector4f Boardcore::SkyQuaternion::eul2quat ( const Eigen::Vector3f & euler)

Transform a vector of euler angles (ZYX) to quaternion.

Parameters
eulerThe vector of euler angles to be transformed [deg].
Returns
Transformed quaternion [x, y, z, w].

◆ eul2quat() [2/2]

Vector4f Boardcore::SkyQuaternion::eul2quat ( const Vector3f & euler)

Definition at line 40 of file SkyQuaternion.cpp.

◆ quat2eul() [1/2]

Eigen::Vector3f Boardcore::SkyQuaternion::quat2eul ( const Eigen::Vector4f & quat)

Transform a quaternion into a vector of euler angles (ZYX).

Parameters
quatThe quaternion to be transformed [x, y, z, w].
Returns
Transformed vector of euler angles [deg].

◆ quat2eul() [2/2]

Vector3f Boardcore::SkyQuaternion::quat2eul ( const Vector4f & quat)

Definition at line 62 of file SkyQuaternion.cpp.

◆ quat2rotationMatrix() [1/2]

Eigen::Matrix3f Boardcore::SkyQuaternion::quat2rotationMatrix ( const Eigen::Vector4f & quat)

Transform a quaternion into a rotation matrix.

Parameters
quatThe quaternion to be transformed [x, y, z, w].
Returns
Transformed rotation matrix.

◆ quat2rotationMatrix() [2/2]

Matrix3f Boardcore::SkyQuaternion::quat2rotationMatrix ( const Vector4f & q)

Definition at line 196 of file SkyQuaternion.cpp.

◆ quat2stepperAngles() [1/2]

Eigen::Vector3f Boardcore::SkyQuaternion::quat2stepperAngles ( const Eigen::Vector4f & quat)

Translates quaternions to yaw and pitch angles assuming roll stays close to 0.

This applies to systems with 2 degrees of freedom, used to get the absolute yaw and pitch angles wrt the north.

Parameters
quatThe quaternion to be transformed (scalar last: [x, y, z, w]).
Returns
Yaw, Pitch and Roll angles, with Roll set to 0. [deg]

◆ quat2stepperAngles() [2/2]

Vector3f Boardcore::SkyQuaternion::quat2stepperAngles ( const Vector4f & q)

Definition at line 87 of file SkyQuaternion.cpp.

◆ quatNormalize() [1/2]

bool Boardcore::SkyQuaternion::quatNormalize ( Eigen::Vector4f & quat)

Normalize a quaternion.

Parameters
quatThe quaternion to be normalized [x, y, z, w].
Returns
True if the operation succeeded or not.

◆ quatNormalize() [2/2]

bool Boardcore::SkyQuaternion::quatNormalize ( Vector4f & quat)

Definition at line 219 of file SkyQuaternion.cpp.

◆ quatProd() [1/2]

Eigen::Vector4f Boardcore::SkyQuaternion::quatProd ( const Eigen::Vector4f & q1,
const Eigen::Vector4f & q2 )

Compute the product of two quaternions.

Parameters
q1First factor [x, y, z, w].
q2Second factor [x, y, z, w].
Returns
The resulting quaternions product [x, y, z, w].

◆ quatProd() [2/2]

Vector4f Boardcore::SkyQuaternion::quatProd ( const Vector4f & q1,
const Vector4f & q2 )

Definition at line 231 of file SkyQuaternion.cpp.

◆ rotationMatrix2quat() [1/2]

Eigen::Vector4f Boardcore::SkyQuaternion::rotationMatrix2quat ( const Eigen::Matrix3f & rtm)

Transform a rotation matrix into a quaternion.

Parameters
rtmThe rotation matrix to be transformed (3x3).
Returns
Transformed quaternion [x, y, z, w].

◆ rotationMatrix2quat() [2/2]

Vector4f Boardcore::SkyQuaternion::rotationMatrix2quat ( const Matrix3f & rtm)

Definition at line 125 of file SkyQuaternion.cpp.