WarpTwin
Documentation for WarpTwin models and classes.
Loading...
Searching...
No Matches
clockwerk::Euler321 Class Reference

Class defining a 3-2-1 Euler angle sequence. More...

#include <Euler321.h>

Inheritance diagram for clockwerk::Euler321:

Public Member Functions

 Euler321 ()
 Default constructor generates Euler 321 sequence as all zeroes.
 Euler321 (const floating_point(&initial)[3])
 Euler321 (const Euler321 &initial)
 Euler321 (const std::array< floating_point, 3 > &initial)
 ~Euler321 ()
int16 rate (const CartesianVector< 3 > &omega_f1_f2__f1, Matrix< 3, 1 > &eulerdot_f1_f2) const
 Function to calculate the rate of change in the current representation based on the omega vector.
void toDCM (DCM &dcm_f1_f2) const
 Function to convert current attitude to DCM.
DCM toDCM () const
Public Member Functions inherited from clockwerk::CartesianVector< 3 >
 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.
Public Member Functions inherited from clockwerk::Matrix< L, 1 >
 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 ()

Additional Inherited Members

Public Attributes inherited from clockwerk::Matrix< L, 1 >
std::array< std::array< floating_point, C >, R > values
Protected Member Functions inherited from clockwerk::Matrix< L, 1 >
int16 _checkLookupBoundaries (uint32 start_r, uint32 end_r, uint32 start_c, uint32 end_c) const
int16 _LUPDecompose (floating_point *A[R], uint32 P[R+1]) const
 Function to take a 2-d matrix represented by A and decompose it into LU form.

Detailed Description

Class defining a 3-2-1 Euler angle sequence.

This file defines a simple 321 Euler angle attitude representation for cartesian coordinate systems. It is largely the same as the base vector, with the following exceptions:

  • Set to be 3 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.

Constructor & Destructor Documentation

◆ Euler321() [1/4]

clockwerk::Euler321::Euler321 ( )

Default constructor generates Euler 321 sequence as all zeroes.

◆ Euler321() [2/4]

clockwerk::Euler321::Euler321 ( const floating_point(&) initial[3])

Constructor for Matrix class with initialization. Initializes matrix to values passed in via array

◆ Euler321() [3/4]

clockwerk::Euler321::Euler321 ( const Euler321 & initial)

Copy constructor for Matrix class. Copies data from matrix object to the current instance

◆ Euler321() [4/4]

clockwerk::Euler321::Euler321 ( const std::array< floating_point, 3 > & initial)

Constructor for Matrix class with initialization. Initializes matrix to values passed in via array

◆ ~Euler321()

clockwerk::Euler321::~Euler321 ( )
inline

Destructor – doesn't do anything because we don't dynamically allocate

Member Function Documentation

◆ rate()

int16 clockwerk::Euler321::rate ( const CartesianVector< 3 > & omega_f1_f2__f1,
Matrix< 3, 1 > & eulerdot_f1_f2 ) const

Function to calculate the rate of change in the current representation based on the omega vector.


Dynamics and kinematics functions

Parameters
omega_f1_f2__f1Angular velocity vector for the attitude representation - omega of frame 1 wrt frame 2 expressed in frame 1
eulerdot_f1_f2Rate of change in the current Euler angles
Returns
Integer error code corresponding to errors in clockwerkerrors.h

◆ toDCM() [1/2]

DCM clockwerk::Euler321::toDCM ( ) const

◆ toDCM() [2/2]

void clockwerk::Euler321::toDCM ( DCM & dcm_f1_f2) const

Function to convert current attitude to DCM.


Conversions to other attitude representations

Parameters
PBRreturn of DCM in PBR case
Returns
Integer error code corresponding to errors in clockwerkerrors.h

The documentation for this class was generated from the following files:
  • /Users/mickey/Documents/Projects/warptwin/warpos/clockwerk/src/dynamics/Euler321.h
  • /Users/mickey/Documents/Projects/warptwin/warpos/clockwerk/src/dynamics/Euler321.cpp