#include <Rotation.h>
Inheritance diagram for O_SESSAME::ModifiedRodriguezParameters:
Another method of specifying a rigid body attitude is through the use of Modified Rodriguez Parameters (MRP). The 3-element set is defined as follows:
Like the quaternions, the MRP is not a unique solution to the transformation, but also has a shadow set, :
This can be evaluated whenever since the shadow set will be a shorter rotational distance back to the original frame.
Definition at line 225 of file Rotation.h.
Public Member Functions | |
ModifiedRodriguezParameters () | |
Default Constructor. Create an MRP set with intial value of [0,0,0]^T. | |
ModifiedRodriguezParameters (const ModifiedRodriguezParameters &_MRP) | |
Copy Constructor. Create a copy of an MRP set. | |
ModifiedRodriguezParameters (const double &_s1, const double &_s2, const double &_s3) | |
Create an MRP set based on 3 values. | |
ModifiedRodriguezParameters (const Vector &_sVector) | |
Create an MRP set from a vector 3 values. | |
ModifiedRodriguezParameters (const DirectionCosineMatrix &_DCM) | |
Create an MRP set converted from a Direction Cosine Matrix (DCM). | |
ModifiedRodriguezParameters (const Vector &_Angles, const int &_Sequence) | |
Create an MRP set from an Euler Angle sequence. | |
ModifiedRodriguezParameters (const Vector &_EulerAxis, const Angle &_EulerAngle) | |
Create the MRP from an Euler Axis and Angle. | |
ModifiedRodriguezParameters (const Quaternion &_qIN) | |
Create an MRP set converted from a quaternion. | |
void | Set (const ModifiedRodriguezParameters &_MRP) |
Set the MRP to the copy of an existing MRP vector. | |
void | Set (const double &_s1, const double &_s2, const double &_s3) |
Set the MRP vector based on 3 values. | |
void | Set (const Vector &_sVector) |
Set the MRP set from a vector 3 values. | |
void | Set (const DirectionCosineMatrix &_DCM) |
Set the MRP from a converted Direction Cosine Matrix (DCM). | |
void | Set (const Vector &_EulerAngles, const int &_Sequence) |
Set the MRP from the transformation of set of Euler Angles. | |
void | Set (const Angle &_Angle1, const Angle &_Angle2, const Angle &_Angle3, const int &_Sequence) |
Set the MRP from the transformation of set of Euler Angles. | |
void | Set (const Vector &_EulerAxis, const Angle &_EulerAngle) |
Set the MRP from the transformation of an Euler Axis and Angle. | |
void | Set (const Quaternion &_qIN) |
Set the MRPs from a converted quaternion. | |
DirectionCosineMatrix | GetDCM () const |
Convert the MRP vector to a Direction Cosine Matrix (DCM). | |
Vector | GetEulerAngles (int _Sequence) const |
Convert the MRP vector to a set of Euler Angles. | |
void | GetEulerAxisAngle (Vector &_EulerAxis, Angle &_EulerAngle) const |
Convert the MRP vector to the Euler Axis and Angle set. | |
Quaternion | GetQuaternion () const |
Convert the MRP vector to a quaternion. | |
void | Switch (int _SwitchThreshold=1) |
Switches the MRP vector to the shortest rotational distance back to the origin using the shadow set if the magnitude of the vector is greater than the input value S. | |
void | AutoSwitch (bool _SwitchBoolean=false) |
Sets the MRP set to automatically switch between the normal set and the shadow set based on the shortest rotational distance to the origin. | |
ModifiedRodriguezParameters | ShadowSet () const |
Calculates and returns the MRP shadow set. | |
ModifiedRodriguezParameters | operator+ (const ModifiedRodriguezParameters &_MRP2) const |
Determine the successive rotation from the summation of two MRP vectors. | |
ModifiedRodriguezParameters | operator- (const ModifiedRodriguezParameters &_MRP2) const |
Determine the relative rotation from the difference of two MRP vectors. | |
void | initialize () |
void | initialize (const CAMdoubleVector &A) |
void | initialize (const CAMvectorBase &A) |
void | initialize (long n) |
void | initialize (const CAMrange &R1) |
void | initialize (int d_type) |
void | initialize (int d_type, const CAMrange &R1) |
double & | operator() (long i1) |
const double & | operator() (long i1) const |
CAMdoubleVector | operator() (const CAMrange &R1) |
const CAMdoubleVector | operator() (const CAMrange &R1) const |
double * | getDataPointer () const |
void * | getDataPointer (long i1, long i2) const |
CAMvectorBase | operator- () const |
CAMvectorBase | operator- (const CAMvectorBase &A) const |
CAMmatrixBase | operator- (const CAMmatrixBase &A) const |
CAMvectorBase | operator- (const double value) const |
CAMvectorBase | operator+ (const CAMvectorBase &A) const |
CAMmatrixBase | operator+ (const CAMmatrixBase &A) const |
CAMvectorBase | operator+ (const double value) const |
CAMmatrixBase | operator * (const CAMvectorBase &A) const |
CAMvectorBase | operator * (const CAMmatrixBase &A) const |
CAMvectorBase | operator * (double value) const |
void | operator+= (const CAMvectorBase &A) |
void | operator+= (const CAMmatrixBase &A) |
void | operator+= (const double value) |
void | operator-= (const CAMvectorBase &A) |
void | operator-= (const CAMmatrixBase &A) |
void | operator-= (const double value) |
CAMvectorBase | operator~ () const |
CAMvectorBase | transpose () const |
long | CAMvectorBase::getIndexBase () const |
long | CAMvectorBase::getIndexBound () const |
long | CAMvectorBase::getIndexStride () const |
long | CAMvectorBase::getIndexCount () const |
void | CAMvectorBase::setIndexBase (long i) |
void | CAMvectorBase::setIndexStride (long i) |
CAMvectorBase | operator/ (double value) const |
void | operator *= (double value) |
void | operator/= (double value) |
void | setToValue (double value) |
CAMvectorBase | plusValue (double value) |
CAMvectorBase | minusValue (double value) |
void | setTemporaryFlag () |
void | initializeReturnArgument (const CAMstructureBase &S, int dataT) |
void | initializeReturnArgument (const CAMvectorBase &A) |
void | initializeMinDuplicate (const CAMvectorBase &A) |
CAMmatrixBase | asMatrix () const |
CAMarrayBase | asArray () const |
long | getDimension () const |
void | incrementReferenceCount () |
void | decrementReferenceCount () |
int | getReferenceCount () const |
void | setReferenceCount (int refValue) |
double | max () const |
double | min () const |
double | maxAbs () const |
double | minAbs () const |
double | infNorm () const |
double | pNorm (int p) const |
double | pNorm (long p) const |
double | pNorm (float p) const |
double | pNorm (double p) const |
double | dot (const CAMvectorBase &V) const |
void | exchangeContentsWith (CAMvectorBase &B) |
void | initializeReferenceDuplicate (const CAMvectorBase &B) |
Static Public Member Functions | |
void | referenceCountError () |
void | indexCheck (const CAMstructureBase &S, long i1, long i2) |
void | indexErrorMessage (long indexDimension, long base, long bound, long index) |
void | nonConformingMessage (const CAMstructureBase &A, const CAMstructureBase &B) |
void | doubleConversionError (const CAMstructureBase &A) |
void | objectConversionError (const CAMstructureBase &A) |
void | nullOperandError () |
void | nullOperandError (char *Operation) |
void | inputSizeError () |
Public Attributes | |
CAMstructureBase | Structure |
CAMdataHandler * | DataP |
int | typeValue |
int | referenceFlag |
long | vectorBaseReferenceCount |
Private Attributes | |
bool | m_AutoSwitch |
Configuration for auto-switching to shadow set. | |
Friends | |
class | CAMmatrixBase |
__IMPEXP__ friend ostream & | operator<< (ostream &out_stream, const CAMvectorBase &A) |
__IMPEXP__ friend istream & | operator>> (istream &in_stream, CAMvectorBase &A) |
__IMPEXP__ friend CAMvectorBase | operator- (const double value, const CAMvectorBase &A) |
__IMPEXP__ friend CAMvectorBase | operator+ (const double value, const CAMvectorBase &A) |
__IMPEXP__ friend CAMvectorBase | operator * (double value, const CAMvectorBase &A) |
__IMPEXP__ friend CAMvectorBase | operator/ (double value, const CAMvectorBase &A) |
|
Default Constructor. Create an MRP set with intial value of [0,0,0]^T.
Definition at line 752 of file Rotation.cpp. |
|
Copy Constructor. Create a copy of an MRP set.
Definition at line 760 of file Rotation.cpp. |
|
Create an MRP set based on 3 values.
Definition at line 771 of file Rotation.cpp. |
|
Create an MRP set from a vector 3 values.
Definition at line 780 of file Rotation.cpp. |
|
Create an MRP set converted from a Direction Cosine Matrix (DCM).
Definition at line 789 of file Rotation.cpp. |
|
Create an MRP set from an Euler Angle sequence.
Definition at line 799 of file Rotation.cpp. |
|
Create the MRP from an Euler Axis and Angle.
Definition at line 810 of file Rotation.cpp. |
|
Create an MRP set converted from a quaternion.
Definition at line 819 of file Rotation.cpp. |
|
Set the MRP to the copy of an existing MRP vector.
Definition at line 828 of file Rotation.cpp. |
|
Set the MRP vector based on 3 values.
Definition at line 840 of file Rotation.cpp. |
|
Set the MRP set from a vector 3 values.
Definition at line 851 of file Rotation.cpp. |
|
Set the MRP from a converted Direction Cosine Matrix (DCM).
Definition at line 861 of file Rotation.cpp. |
|
Set the MRP from the transformation of set of Euler Angles.
Definition at line 871 of file Rotation.cpp. |
|
Set the MRP from the transformation of set of Euler Angles.
Definition at line 884 of file Rotation.cpp. |
|
Set the MRP from the transformation of an Euler Axis and Angle.
Definition at line 899 of file Rotation.cpp. |
|
Set the MRPs from a converted quaternion.
Definition at line 912 of file Rotation.cpp. |
|
Convert the MRP vector to a Direction Cosine Matrix (DCM).
Definition at line 934 of file Rotation.cpp. |
|
Convert the MRP vector to a set of Euler Angles.
Definition at line 943 of file Rotation.cpp. |
|
Convert the MRP vector to the Euler Axis and Angle set.
Definition at line 953 of file Rotation.cpp. |
|
Convert the MRP vector to a quaternion.
Definition at line 964 of file Rotation.cpp. |
|
Switches the MRP vector to the shortest rotational distance back to the origin using the shadow set if the magnitude of the vector is greater than the input value S.
Definition at line 973 of file Rotation.cpp. |
|
Sets the MRP set to automatically switch between the normal set and the shadow set based on the shortest rotational distance to the origin.
Definition at line 984 of file Rotation.cpp. |
|
Calculates and returns the MRP shadow set.
Definition at line 998 of file Rotation.cpp. |
|
Determine the successive rotation from the summation of two MRP vectors.
Definition at line 1012 of file Rotation.cpp. |
|
Determine the relative rotation from the difference of two MRP vectors.
Definition at line 1032 of file Rotation.cpp. |
|
Reimplemented from CAMvectorBase. |
|
|
|
Reimplemented from CAMvectorBase. |
|
|
|
|
|
Definition at line 248 of file vecbse.cpp. |
|
Definition at line 292 of file vecbse.cpp. |
|
|
|
|
|
|
|
|
|
Reimplemented from CAMvectorBase. |
|
Definition at line 1132 of file vecbse.cpp. |
|
Definition at line 378 of file vecbse.cpp. |
|
Definition at line 424 of file vecbse.cpp. |
|
Definition at line 440 of file vecbse.cpp. |
|
Definition at line 867 of file vecbse.cpp. |
|
Definition at line 391 of file vecbse.cpp. |
|
Definition at line 408 of file vecbse.cpp. |
|
Definition at line 836 of file vecbse.cpp. |
|
Definition at line 457 of file vecbse.cpp. |
|
Definition at line 550 of file vecbse.cpp. |
|
Definition at line 923 of file vecbse.cpp. |
|
Definition at line 650 of file vecbse.cpp. |
|
Definition at line 666 of file vecbse.cpp. |
|
Definition at line 899 of file vecbse.cpp. |
|
Definition at line 676 of file vecbse.cpp. |
|
Definition at line 686 of file vecbse.cpp. |
|
Definition at line 911 of file vecbse.cpp. |
|
Definition at line 807 of file vecbse.cpp. |
|
Definition at line 697 of file vecbse.cpp. |
|
|
|
|
|
|
|
|
|
|
|
|
|
Definition at line 945 of file vecbse.cpp. |
|
Definition at line 967 of file vecbse.cpp. |
|
Definition at line 975 of file vecbse.cpp. |
|
Definition at line 982 of file vecbse.cpp. |
|
Definition at line 990 of file vecbse.cpp. |
|
Definition at line 1001 of file vecbse.cpp. |
|
|
|
Definition at line 322 of file vecbse.cpp. |
|
Definition at line 316 of file vecbse.cpp. |
|
Definition at line 328 of file vecbse.cpp. |
|
Definition at line 1080 of file vecbse.cpp. |
|
Definition at line 1106 of file vecbse.cpp. |
|
|
|
Definition at line 1154 of file vecbse.cpp. |
|
|
|
|
|
|
|
Definition at line 1160 of file vecbse.cpp. |
|
Definition at line 1172 of file vecbse.cpp. |
|
Definition at line 1197 of file vecbse.cpp. |
|
Definition at line 1205 of file vecbse.cpp. |
|
Definition at line 1222 of file vecbse.cpp. |
|
Definition at line 1235 of file vecbse.cpp. |
|
Definition at line 1247 of file vecbse.cpp. |
|
Definition at line 1253 of file vecbse.cpp. |
|
Definition at line 1259 of file vecbse.cpp. |
|
Definition at line 13 of file vecutl.cpp. |
|
Definition at line 39 of file vecutl.cpp. |
|
Definition at line 65 of file vecutl.cpp. |
|
Definition at line 91 of file vecutl.cpp. |
|
Definition at line 118 of file vecutl.cpp. |
|
Definition at line 170 of file vecutl.cpp. |
|
Definition at line 171 of file vecutl.cpp. |
|
Definition at line 172 of file vecutl.cpp. |
|
Definition at line 144 of file vecutl.cpp. |
|
Definition at line 173 of file vecutl.cpp. |
|
Definition at line 1017 of file vecbse.cpp. |
|
Definition at line 1048 of file vecbse.cpp. |
|
|
|
Definition at line 182 of file vecbse.cpp. |
|
Definition at line 210 of file vecbse.cpp. |
|
Definition at line 883 of file vecbse.cpp. |
|
Definition at line 851 of file vecbse.cpp. |
|
Definition at line 934 of file vecbse.cpp. |
|
Definition at line 956 of file vecbse.cpp. |
|
Configuration for auto-switching to shadow set.
Definition at line 284 of file Rotation.h. |
|
|
|
|
|
|
|
|
|
|