Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages | Examples

Rotation Library


Detailed Description

The Rotation Library is a collection of attitude representation class definitions that are meant to assist in the implementation of spacecraft analysis and operation code. Each attitude representation is implemented as a class with member functions that perform transformations and retrievals of the rotation information.

The Rotation class is the most general, and useful, of the Kinematics Toolbox classes. All attitudes can be stored as a Rotation, and then retrieved in any of the desired formats (MRP, DCM, Quaternion, Euler Axis & Angle, Euler Angle).

Here are some examples of using the kinematics toolbox in general. For more specific examples refer to the appropriate classes documentation.

Examples:
DirectionCosineMatrix dcm1(deg2rad(30),deg2rad(-10),deg2rad(5), 123); // create a DCM with successive rotations of [30,-10,5] degs in a 123 rotation order
Quaternion q1(dcm1); // create a quaternion that is the same attitude transformation as dcm1
Quaternion q2(~dcm1); // create a second quaternion that is the transpose of dcm1 (~dcm1)
Rotation rot1(q1 * q2); // create a rotation that is the successive rotation of q1 and q2
cout << rot1; // output rot1 to the standard stream (usually the screen)
Vector eulerAxis;
double eulerAngle;
rot1.GetEulerAxisAngle(eulerAxis, eulerAngle);
cout << eulerAxis << eulerAngle;

testRotation.cpp Demonstrates the use of the Rotation class and associated kinematic representations.


Classes

class  O_SESSAME::DirectionCosineMatrix
 3x3 direction cosine matrix attitude representation. More...
class  O_SESSAME::ModifiedRodriguezParameters
 3x1 Modified Rodriguez Parameters attitude representation. More...
class  O_SESSAME::Quaternion
 The non-singular, redundant Euler parameter (quaternion) vector. More...
class  O_SESSAME::Rotation
 A generalized rotation class to represent any attitude coordinate transformation. More...

Enumerations

enum  O_SESSAME::RotationType {
  O_SESSAME::DCM_Type, O_SESSAME::EulerAngle_Type, O_SESSAME::EulerAxisAngle_Type, O_SESSAME::MRP_Type,
  O_SESSAME::Quaternion_Type
}
 Various representations of a rotation. More...
enum  O_SESSAME::RotationSense { O_SESSAME::LEFT_HAND = -1, O_SESSAME::RIGHT_HAND = 1 }
 The Sense, or "handedness" of a rotation system. More...

Functions

DirectionCosineMatrix O_SESSAME::R1 (const Angle &_Angle)
 Calculates the principal rotation of the angle about the 1-axis. DirectionCosineMatrix.
DirectionCosineMatrix O_SESSAME::R2 (const Angle &_Angle)
 Calculates the principal rotation of the angle about the 2-axis. DirectionCosineMatrix.
DirectionCosineMatrix O_SESSAME::R3 (const Angle &_Angle)
 Calculates the principal rotation of the angle about the 3-axis. DirectionCosineMatrix.

Variables

const int O_SESSAME::QUATERNION_SIZE = 4
 Number of elements in a quaternion vector.
const int O_SESSAME::MRP_SIZE = 3
 Number of elements in a MRP vector.
const int O_SESSAME::DCM_SIZE = 3
 Number of elements in a DCM row or column.
const int O_SESSAME::EULERAXIS_SIZE = 3
 Number of elements in an euler axis.
const int O_SESSAME::EULERANGLES_SIZE = 3
 Number of elements in an euler angle sequence.


Enumeration Type Documentation

enum RotationSense
 

The Sense, or "handedness" of a rotation system.

Enumeration values:
LEFT_HAND 
RIGHT_HAND 

Definition at line 77 of file Rotation.h.

enum RotationType
 

Various representations of a rotation.

Enumeration values:
DCM_Type 
EulerAngle_Type 
EulerAxisAngle_Type 
MRP_Type 
Quaternion_Type 

Definition at line 74 of file Rotation.h.


Function Documentation

DirectionCosineMatrix O_SESSAME::R1 const Angle _Angle  ) 
 

Calculates the principal rotation of the angle about the 1-axis. DirectionCosineMatrix.

Parameters:
_Angle Angle of Rotation [rad].
Equation:

\[ R_1\left(\theta\right) = \begin{bmatrix} 1 & 0 & 0\\ 0 & \cos{\theta} & \sin{\theta}\\ 0 & -\sin{\theta} & \cos{\theta} \end{bmatrix} \]

Definition at line 703 of file Rotation.cpp.

References O_SESSAME::MatrixIndexBase.

Referenced by CAMmatrixBase::asArray(), O_SESSAME::Keplerian::GetPositionVelocity(), O_SESSAME::AttitudeState::GetRotation2Orbital(), main(), CAMvectorBase::operator *(), CAMmatrixBase::operator *(), CAMmatrixBase::operator/(), OrbitFrameNTW::OrbitFrameNTW(), OrbitFramePQW::OrbitFramePQW(), and O_SESSAME::DirectionCosineMatrix::Set().

DirectionCosineMatrix O_SESSAME::R2 const Angle _Angle  ) 
 

Calculates the principal rotation of the angle about the 2-axis. DirectionCosineMatrix.

Parameters:
_Angle Angle of Rotation [rad].
Equation:

\[ R_2\left(\theta\right) = \begin{bmatrix} \cos{\theta} & 0 & -\sin{\theta}\\ 0 & 1 & 0\\ \sin{\theta} & 0 & \cos{\theta} \end{bmatrix} \]

Definition at line 727 of file Rotation.cpp.

References O_SESSAME::MatrixIndexBase.

Referenced by CAMmatrixBase::asArray(), main(), CAMvectorBase::operator *(), CAMmatrixBase::operator *(), CAMmatrixBase::operator/(), and O_SESSAME::DirectionCosineMatrix::Set().

DirectionCosineMatrix O_SESSAME::R3 const Angle _Angle  ) 
 

Calculates the principal rotation of the angle about the 3-axis. DirectionCosineMatrix.

Parameters:
_Angle Angle of Rotation [rad].
Equation:

\[ R_3\left(\theta\right) = \begin{bmatrix} \cos{\theta} & \sin{\theta} & 0\\ -\sin{\theta} & \cos{\theta} & 0\\ 0 & 0 & 1 \end{bmatrix} \]

Definition at line 751 of file Rotation.cpp.

References O_SESSAME::MatrixIndexBase.

Referenced by O_SESSAME::Keplerian::GetPositionVelocity(), O_SESSAME::AttitudeState::GetRotation2Orbital(), main(), OrbitFrameNTW::OrbitFrameNTW(), OrbitFramePQW::OrbitFramePQW(), and O_SESSAME::DirectionCosineMatrix::Set().


Variable Documentation

const int O_SESSAME::DCM_SIZE = 3
 

Number of elements in a DCM row or column.

Definition at line 67 of file Rotation.h.

Referenced by O_SESSAME::DirectionCosineMatrix::DirectionCosineMatrix(), O_SESSAME::Rotation::GetRotation(), and O_SESSAME::DirectionCosineMatrix::Set().

const int O_SESSAME::EULERANGLES_SIZE = 3
 

Number of elements in an euler angle sequence.

Definition at line 71 of file Rotation.h.

Referenced by O_SESSAME::Quaternion::GetEulerAngles().

const int O_SESSAME::EULERAXIS_SIZE = 3
 

Number of elements in an euler axis.

Definition at line 69 of file Rotation.h.

Referenced by O_SESSAME::Quaternion::GetEulerAxisAngle().

const int O_SESSAME::MRP_SIZE = 3
 

Number of elements in a MRP vector.

Definition at line 65 of file Rotation.h.

Referenced by O_SESSAME::ModifiedRodriguezParameters::GetEulerAngles(), and O_SESSAME::ModifiedRodriguezParameters::ModifiedRodriguezParameters().

const int O_SESSAME::QUATERNION_SIZE = 4
 

Number of elements in a quaternion vector.

Definition at line 63 of file Rotation.h.

Referenced by O_SESSAME::Quaternion::Quaternion(), and QuaternionKinematics().


Generated on Wed Sep 5 12:54:46 2007 for DSACSS Operational Code by  doxygen 1.3.9.1