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

triadObserver Class Reference

#include <triadObserver.h>

Inheritance diagram for triadObserver:

Inheritance graph
[legend]
Collaboration diagram for triadObserver:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 triadObserver ()
 Default Constructor.
 triadObserver (TiXmlHandle handle, Whorl *ptr_whorl)
 Create a triad observer from XML handle and whorl object.
virtual ~triadObserver ()
 DeConstructor for triadObserver object.
int Initialize ()
 Initialize triad observer.
int Run ()
 Take measurements and update state vector in whorl object.
void Parse (TiXmlHandle handle)
 Parse inertial measurement vectors from configuration file.
Matrix GetAttitude ()
 Triad algorithm implementation (called from run function).
void SetMagnetometerBodyVector (Vector _magnetometer)
void SetMagnetometerInertialVector (Vector _magnetometer)
void SetAccelerometerBodyVector (Vector _accelerometer)
void SetAccelerometerInertialVector (Vector _accelerometer)
Vector AccelerationCorrection (Vector _angularAcceleration, Vector _angularRates, Vector _accelerationMeasurement, Vector _vectorCM)
 Correction of the accelerometer reading, so that it reads acceleration due to gravity only. In order to do this we calculate the acceleration due to rotation from the rate gyros adn subtract from the acceleration measurement.

Private Attributes

Vector m_magBody
Vector m_2magBodyPrevious
Vector m_accelBody
Vector m_ratesBody
Whorlm_whorl
Vector m_magInertial
Vector m_accelInertial
Vector m_AngularAccel
Vector m_rsensor

Constructor & Destructor Documentation

triadObserver::triadObserver  ) 
 

Default Constructor.

Definition at line 18 of file triadObserver.cpp.

References Initialize().

triadObserver::triadObserver TiXmlHandle  handle,
Whorl ptr_whorl
 

Create a triad observer from XML handle and whorl object.

Parameters:
handle XML handle with current whorl as starting node
ptr_whorl Pointer to a whorl object

Definition at line 27 of file triadObserver.cpp.

References Initialize(), m_whorl, and Parse().

triadObserver::~triadObserver  )  [virtual]
 

DeConstructor for triadObserver object.

Definition at line 38 of file triadObserver.cpp.


Member Function Documentation

Vector Observer::AccelerationCorrection Vector  _angularAcceleration,
Vector  _angularRates,
Vector  _accelerationMeasurement,
Vector  _vectorCM
[inherited]
 

Correction of the accelerometer reading, so that it reads acceleration due to gravity only. In order to do this we calculate the acceleration due to rotation from the rate gyros adn subtract from the acceleration measurement.

\[\ddot{ \vec{r}}_{\text{Gravity Vector}} = \ddot{\vec{r}}_{\text{Measurement}} - \ddot{\vec{r}}_{\text{offset}} \]

\[\ddot{\vec{r}}_{\text{offset}} = \dot{\vec{\omega}}^x \vec{r} + 2 \vec{\omega}^x \vec{\omega}^x \vec{r} \]

Parameters:
_angularAcceleration is the angular acceleration in the body frame of the simulator with units of rad/s^2.
_angularRates is the angular rates in the body frame of the simulator with units of rad/s.
_accelerationMeasurement is the measurement of the acceleration from the MotionPak before being corrected due to offset with units of m/s^2.
_vectorCM is the position of the sensor with respect to teh center of rotation of the air-bearing platform with units of m.

Definition at line 34 of file Observer.cpp.

References O_SESSAME::skew(), and O_SESSAME::Vector.

Referenced by Run().

Matrix triadObserver::GetAttitude  ) 
 

Triad algorithm implementation (called from run function).

Returns:
Rbi 3x3 Attitude matrix

Definition at line 166 of file triadObserver.cpp.

References _, O_SESSAME::crossP(), m_accelBody, m_magBody, m_magInertial, O_SESSAME::Matrix, O_SESSAME::normalize(), and O_SESSAME::Vector.

Referenced by QuaternionEKFObserver::GetInitialGuessTriad(), and Run().

int triadObserver::Initialize  )  [virtual]
 

Initialize triad observer.

Implements Observer.

Definition at line 43 of file triadObserver.cpp.

References CAMdoubleVector::initialize(), m_2magBodyPrevious, m_accelBody, m_accelInertial, m_AngularAccel, m_magBody, m_magInertial, m_ratesBody, and m_rsensor.

Referenced by triadObserver().

void triadObserver::Parse TiXmlHandle  handle  ) 
 

Parse inertial measurement vectors from configuration file.

Parameters:
handle XML handle with current whorl as starting node

Definition at line 63 of file triadObserver.cpp.

References checkResponse(), TiXmlHandle::Child(), TiXmlHandle::Element(), TiXmlHandle::FirstChild(), Whorl::GetSimulatorName(), m_accelInertial, m_magInertial, m_rsensor, m_whorl, and O_SESSAME::normalize().

Referenced by triadObserver().

int triadObserver::Run  )  [virtual]
 

Take measurements and update state vector in whorl object.

Implements Observer.

Definition at line 104 of file triadObserver.cpp.

References _, Observer::AccelerationCorrection(), Whorl::GetAccelerometer(), Measurement::GetAsDouble(), GetAttitude(), Whorl::GetMagnetometer(), Sensor::GetMeasurement(), O_SESSAME::DirectionCosineMatrix::GetQuaternion(), Whorl::GetRateGyro(), Magnetometer::GetVectorMeasurement(), m_2magBodyPrevious, m_accelBody, m_magBody, m_ratesBody, m_rsensor, m_whorl, O_SESSAME::norm2(), Whorl::SetState(), and O_SESSAME::Vector.

void triadObserver::SetAccelerometerBodyVector Vector  _accelerometer  ) 
 

Definition at line 219 of file triadObserver.cpp.

References m_accelBody, and O_SESSAME::Vector.

Referenced by QuaternionEKFObserver::GetInitialGuessTriad().

void triadObserver::SetAccelerometerInertialVector Vector  _accelerometer  ) 
 

Definition at line 224 of file triadObserver.cpp.

References m_accelInertial, and O_SESSAME::Vector.

Referenced by QuaternionEKFObserver::GetInitialGuessTriad().

void triadObserver::SetMagnetometerBodyVector Vector  _magnetometer  ) 
 

Definition at line 209 of file triadObserver.cpp.

References m_magBody, and O_SESSAME::Vector.

Referenced by QuaternionEKFObserver::GetInitialGuessTriad().

void triadObserver::SetMagnetometerInertialVector Vector  _magnetometer  ) 
 

Definition at line 214 of file triadObserver.cpp.

References m_magInertial, and O_SESSAME::Vector.

Referenced by QuaternionEKFObserver::GetInitialGuessTriad().


Member Data Documentation

Vector triadObserver::m_2magBodyPrevious [private]
 

Definition at line 66 of file triadObserver.h.

Referenced by Initialize(), and Run().

Vector triadObserver::m_accelBody [private]
 

Definition at line 68 of file triadObserver.h.

Referenced by GetAttitude(), Initialize(), Run(), and SetAccelerometerBodyVector().

Vector triadObserver::m_accelInertial [private]
 

Definition at line 76 of file triadObserver.h.

Referenced by Initialize(), Parse(), and SetAccelerometerInertialVector().

Vector triadObserver::m_AngularAccel [private]
 

Definition at line 78 of file triadObserver.h.

Referenced by Initialize().

Vector triadObserver::m_magBody [private]
 

Definition at line 64 of file triadObserver.h.

Referenced by GetAttitude(), Initialize(), Run(), and SetMagnetometerBodyVector().

Vector triadObserver::m_magInertial [private]
 

Definition at line 75 of file triadObserver.h.

Referenced by GetAttitude(), Initialize(), Parse(), and SetMagnetometerInertialVector().

Vector triadObserver::m_ratesBody [private]
 

Definition at line 69 of file triadObserver.h.

Referenced by Initialize(), and Run().

Vector triadObserver::m_rsensor [private]
 

Definition at line 80 of file triadObserver.h.

Referenced by Initialize(), Parse(), and Run().

Whorl* triadObserver::m_whorl [private]
 

Definition at line 72 of file triadObserver.h.

Referenced by Parse(), Run(), and triadObserver().


The documentation for this class was generated from the following files:
Generated on Wed Sep 5 12:54:45 2007 for DSACSS Operational Code by  doxygen 1.3.9.1