Earth Observation Mission CFI Software Lib Software User Manual |
Base class for LibFunc objects. More...
Public Member Functions | |
LibFunc () | |
Class constructor (using satellite enumeration value). | |
virtual | ~LibFunc () NOEXCEPT |
Class destructor. | |
Static Public Member Functions | |
static void | eulerToMatrix (double eulerAngles[3], double matrix[3][3]) |
Get rotation matrix from Euler angles. | |
static void | matrixToEuler (double matrix[3][3], double eulerAngles[3]) |
Get Euler angles from rotation matrix. | |
static void | getRotationAngles (double xsInit[3], double ysInit[3], double zsInit[3], double xsFin[3], double ysFin[3], double zsFin[3], double angle[3]) |
Get rotation angles between two sets of orthonormal right-handed unit vectors. | |
static void | getRotatedVectors (double xsInit[3], double ysInit[3], double zsInit[3], double angle[3], double xsFin[3], double ysFin[3], double zsFin[3]) |
Rotate a set of unit angle vectors. | |
static void | quaternionsToVectors (double quaternions[4], double uxVec[3], double uyVec[3], double uzVec[3]) |
Change from quaternions to vectors. | |
static void | vectorsToQuaternions (double uxVec[3], double uyVec[3], double uzVec[3], double quaternions[4]) |
Change form vectors to quaternions. | |
static void | quaternionsInterpol (const QuaternionsInterpolationCfg &cfg, double time_1, double q1[4], double time_2, double q2[4], double time_out, double q_out[4]) |
The method performs, given 2 input quaternions q1 and q2, an interpolation for the requested time, obtaining the interpolated quaternion as output. |
Base class for LibFunc objects.
EECFI::LibFunc::LibFunc | ( | ) | [inline] |
Class constructor (using satellite enumeration value).
virtual EECFI::LibFunc::~LibFunc | ( | ) | [inline, virtual] |
Class destructor.
void EECFI::LibFunc::eulerToMatrix | ( | double | eulerAngles[3], | |
double | matrix[3][3] | |||
) | [static] |
Get rotation matrix from Euler angles.
Class constructor (Empty constructor). Class destructor.
eulerAngles | Euler angles. | |
matrix | [OUTPUT] Rotation matrix. |
void EECFI::LibFunc::getRotatedVectors | ( | double | xsInit[3], | |
double | ysInit[3], | |||
double | zsInit[3], | |||
double | angle[3], | |||
double | xsFin[3], | |||
double | ysFin[3], | |||
double | zsFin[3] | |||
) | [static] |
Rotate a set of unit angle vectors.
xsInit | Unitary direction vector along the X-axes of the initial attitude frame. | |
ysInit | Unitary direction vector along the Y-axes of the initial attitude frame. | |
zsInit | Unitary direction vector along the Z-axes of the initial attitude frame. | |
angle | Angles (pitch, roll and yaw) between initial and final Attitude Frames (deg [-180,180)). | |
xsFin | [OUTPUT] Unitary direction vector along the X-axes of the final attitude frame. | |
ysFin | [OUTPUT] Unitary direction vector along the Y-axes of the final attitude frame. | |
zsFin | [OUTPUT] Unitary direction vector along the Z-axes of the final attitude frame. |
void EECFI::LibFunc::getRotationAngles | ( | double | xsInit[3], | |
double | ysInit[3], | |||
double | zsInit[3], | |||
double | xsFin[3], | |||
double | ysFin[3], | |||
double | zsFin[3], | |||
double | angle[3] | |||
) | [static] |
Get rotation angles between two sets of orthonormal right-handed unit vectors.
xsInit | Unitary direction vector along the X-axes of the initial attitude frame. | |
ysInit | Unitary direction vector along the Y-axes of the initial attitude frame. | |
zsInit | Unitary direction vector along the Z-axes of the initial attitude frame. | |
xsFin | Unitary direction vector along the X-axes of the final attitude frame. | |
ysFin | Unitary direction vector along the Y-axes of the final attitude frame. | |
zsFin | Unitary direction vector along the Z-axes of the final attitude frame. | |
angle | [OUTPUT] Angles (pitch, roll and yaw) between initial and final Attitude Frames (deg [-180,180)). |
void EECFI::LibFunc::matrixToEuler | ( | double | matrix[3][3], | |
double | eulerAngles[3] | |||
) | [static] |
Get Euler angles from rotation matrix.
matrix | Rotation matrix. | |
eulerAngles | [OUTPUT] Euler angles. |
void EECFI::LibFunc::quaternionsInterpol | ( | const QuaternionsInterpolationCfg & | cfg, | |
double | time_1, | |||
double | q1[4], | |||
double | time_2, | |||
double | q2[4], | |||
double | time_out, | |||
double | q_out[4] | |||
) | [static] |
The method performs, given 2 input quaternions q1 and q2, an interpolation for the requested time, obtaining the interpolated quaternion as output.
Notes:Time out of interval [seconds] | Error in rotation angles [deg] (Quaternions time step 1 second) |
Error in rotation angles [deg] (Quaternions time step 10 seconds) |
---|---|---|
1 | 0.000005 | 0.00005 |
10 | 0.0003 | 0.0005 |
100 | 0.06 | 0.07 |
500 | 0.96 | 0.95 |
1000 | 2.3 | 2.3 |
cfg | Configuration parameters used by interpolation. | |
t1 | Time for quaternion q1. | |
q1 | First quaternion (for time t1). | |
t2 | Time for quaternion q2. | |
q2 | Second quaternion (for time t2). | |
t | Time interpolation parameter. | |
q | [OUTPUT] Result of quaternion interpolation. |
References EECFI::QuaternionsInterpolationCfg::algo.
void EECFI::LibFunc::quaternionsToVectors | ( | double | quaternions[4], | |
double | uxVec[3], | |||
double | uyVec[3], | |||
double | uzVec[3] | |||
) | [static] |
Change from quaternions to vectors.
quaternions | Input quaternion vector. | |
uxVec | [OUTPUT] Unitary direction vector along the X-axes. | |
uyVec | [OUTPUT] Unitary direction vector along the Y-axes. | |
uzVec | [OUTPUT] Unitary direction vector along the Z-axes. |
void EECFI::LibFunc::vectorsToQuaternions | ( | double | uxVec[3], | |
double | uyVec[3], | |||
double | uzVec[3], | |||
double | quaternions[4] | |||
) | [static] |
Change form vectors to quaternions.
uxVec | Unitary direction vector along the X-axes. | |
uyVec | Unitary direction vector along the Y-axes. | |
uzVec | Unitary direction vector along the Z-axes. | |
quaternions | [OUTPUT] Input quaternion vector. |