|
| | Quaternion () |
| | Default constructor generates Quaternion sequence as zero rotation – 1 0 0 0.
|
| | Quaternion (const floating_point(&initial)[QUATERNION_NUM_ELEMENTS]) |
| | Quaternion (const Quaternion &initial) |
| | Quaternion (const std::array< floating_point, QUATERNION_NUM_ELEMENTS > &initial) |
| | ~Quaternion () |
| Quaternion & | operator= (const Quaternion &other) |
| | Equals operator overload for quaternion.
|
| Quaternion | operator* (const Quaternion &other) const |
| | Multiplication operator overload for quaternion to quaternion multiplication.
|
| CartesianVector< 3 > | operator* (const CartesianVector< 3 > &vec__f2) const |
| | Multiplication operator overload for rotating a vector in frame 2 by a quat_f1_f2.
|
| void | rate (const CartesianVector< 3 > &omega_f1_f2__f1, Matrix< QUATERNION_NUM_ELEMENTS, 1 > &quatdot_f1_f2) const |
| | Function to calculate the rate of change in the current representation based on the omega vector.
|
| void | rate (const Matrix< 3, 1 > &omega_f1_f2__f1, Matrix< QUATERNION_NUM_ELEMENTS, 1 > &quatdot_f1_f2) const |
| void | toDCM (DCM &dcm_f1_f2) const |
| | Function to convert current attitude to DCM.
|
| DCM | toDCM () const |
| void | toMRP (MRP &mrp_f1_f2) const |
| | Function to convert current attitude to MRP.
|
| MRP | toMRP () const |
| int16 | rotationAngle (floating_point &val) const |
| | Calculate the rotation angle represented by the quaternion.
|
| floating_point | rotationAngle () const |
| void | inverse (Quaternion &quat_f2_f1) const |
| | Function to convert quaternion rotation to inverse quaternion (assumes unit quaternion and outputs its conjugate).
|
| Quaternion | inverse () const |
| void | dRate_dOmega (Matrix< QUATERNION_NUM_ELEMENTS, 3 > &jacobian) const |
| | Function to compute the partial derivative of dq/dt (Quaternion::rate) with respect to omega_f1_f2__f1.
|
| Matrix< QUATERNION_NUM_ELEMENTS, 3 > | dRate_dOmega () const |
| void | dRate_dQuat (const CartesianVector< 3 > &omega_f1_f2__f1, Matrix< QUATERNION_NUM_ELEMENTS, QUATERNION_NUM_ELEMENTS > &jacobian) const |
| | Function to compute the partial derivative of dq/dt (Quaternion::rate) with respect to quat_f1_f2.
|
| Matrix< QUATERNION_NUM_ELEMENTS, QUATERNION_NUM_ELEMENTS > | dRate_dQuat (const CartesianVector< 3 > &omega_f1_f2__f1) const |
| void | dRotatedVec_dQuat (const CartesianVector< 3 > &vec__f2, Matrix< 3, QUATERNION_NUM_ELEMENTS > &jacobian) const |
| | Function to compute the partial derivative of quat_f1_f2*vec__f2 with respect to quat_f1_f2.
|
| Matrix< 3, QUATERNION_NUM_ELEMENTS > | dRotatedVec_dQuat (const CartesianVector< 3 > &vec__f2) const |
| void | dInvRotatedVec_dQuat (const CartesianVector< 3 > &vec__f1, Matrix< 3, QUATERNION_NUM_ELEMENTS > &jacobian) const |
| | Function to compute the partial derivative of quat_f2_f1*vec__f1 with respect to quat_f1_f2 (note the inverse quaternion).
|
| Matrix< 3, QUATERNION_NUM_ELEMENTS > | dInvRotatedVec_dQuat (const CartesianVector< 3 > &vec__f1) const |
| | CartesianVector () |
| | ~CartesianVector () |
| floating_point & | operator[] (uint32 idx) |
| | Function to return a vector value.
|
| int | set (uint32 idx, floating_point value) |
| | Setter specific to the vector class.
|
| int | get (uint32 idx, floating_point &result) const |
| | Getter specific to the vector class.
|
| int16 | norm (floating_point &result) const |
| | Function to take the norm of a vector.
|
| int16 | normSquared (floating_point &result) const |
| | Function to take the squared norm of a vector.
|
| int16 | unit (CartesianVector< L > &result) const |
| | Function to return the unitized version of the vector.
|
| int16 | unitize () |
| | Function to unitize the current vector.
|
| int16 | normalize () |
| | Function to unitize the current vector.
|
| | Matrix () |
| | Default constructor to initialize a matrix to all zeroes for ease of use.
|
| | ~Matrix () |
| int16 | str (char *output, size_t size) const |
| | Function to dump information on matrix.
|
| int16 | fromStr (const char *val) |
| | Set value of matrix from string in same format as str().
|
| int16 | set (uint32 row, uint32 col, const floating_point &value) |
| | Function to set a single value in the matrix.
|
| int16 | get (uint32 row, uint32 col, floating_point &result) const |
| | Function to get a single value in the matrix.
|
| void | setFromArray (const floating_point *start_ptr, bool column_major=false) |
| | Function to set the values of the matrix row-wise.
|
| void | getAsArray (floating_point *start_ptr, bool column_major=false) const |
| | Function to get the values of the matrix row-wise.
|
| void | getCopy (Matrix< R, C > &result) const |
| | Function to get a copy of the matrix.
|
| Matrix< R, C > & | operator= (const Matrix< R, C > &other) |
| | Equals operator overload for matrix.
|
| floating_point * | operator[] (uint32 idx) |
| | Function to return a matrix row or vector value.
|
| std::pair< uint32, uint32 > | size () const |
| | Function to get the size of the matrix.
|
| void | max (floating_point &result, std::pair< uint32, uint32 > &index) const |
| | Function to return the maximum value in the matrix.
|
| void | min (floating_point &result, std::pair< uint32, uint32 > &index) const |
| | Function to return the minimum value in the matrix.
|
| int16 | det (floating_point &result) const |
| | Function to return the determinant of the matrix.
|
| int16 | chol (Matrix< R, C > &retval) const |
| | Take the cholesky decomposition of this matrix.
|
| int16 | inverse (Matrix< R, C > &result) const |
| | Function to return the inverse of the matrix.
|
| int16 | pseudoinverse (Matrix< C, R > &result) const |
| void | transpose (Matrix< C, R > &result) const |
| | Function to return the transpose of the matrix.
|
| int16 | trace (floating_point &result) const |
| | Function to return the trace of the matrix.
|
| void | setToZeros () |
| | Function to set all elements of the matrix to zero.
|
| int16 | identity () |
| | Function to set matrix to identity, if it is a square matrix.
|
| int16 | eye () |
Quaternion class for attitude representation.
This file defines a simple Quaternion attitude representation for cartesian coordinate systems. It is largely the same as the base vector, with the following exceptions:
- Set to be 4 elements
- Functions defined to convert to other attitude representations
- Function defined to calculate rate of change as a function of omega
Naming conventions
- All naming conventions and equations are per Analytical Mechanics of Space Systems by Schaub and Junkins
- The omega vector is sometimes denoted by w and assumed frame consistent with the attitude representation. For example, if a DCM represents the relative orientation between two frames [BN] the omega vector is assumed to be w_(B/N)
- The naming convention for all vectors is: variablename_obj1_obj2__frameN (note the double underscore preceding frame) and reads back as: "variable variablename representing the relationship between obj1 and obj2
represented in frameN"
- Unless otherwise noted angles are in RADIANS
NOTE: All attitude representations, including DCMs, are assumed to represent a three dimensional, cartesian coordinate system because that is what they are used, and in many cases defined, for. NOTE: The math in this class assumes a unit quaternion.