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

OrbitPropObserver Class Reference

#include <OrbitPropObserver.h>

Inheritance diagram for OrbitPropObserver:

Inheritance graph
[legend]
Collaboration diagram for OrbitPropObserver:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 OrbitPropObserver ()
 Default Constructor.
 OrbitPropObserver (TiXmlHandle handle, Whorl *ptr_whorl)
 Create a GPS observer from XML handle and whorl object.
virtual ~OrbitPropObserver ()
 DeConstructor for OrbitPropObserver object.
int Initialize ()
 Initialize GPS observer.
int Run ()
 Take measurements and update state vector in whorl object.
void Parse (TiXmlHandle handle)
 Parse inertial measurement vectors from configuration file.
Vector ParseState (string _reply)
Vector GetState (ClientSocket *_clientSocket, int _vehicleID, double _currentTime, CAMdoubleVector _acceleration, double _newMass)
Matrix DirectionCosMatrix1Axis (double _angle)
 Direction Cosine Matrix about the 1 axis.
Matrix DirectionCosMatrix2Axis (double _angle)
 Direction Cosine Matrix about the 2 axis.
Matrix DirectionCosMatrix3Axis (double _angle)
 Direction Cosine Matrix about the 3 axis.
Vector WGS2ECEFPosition (double _latitude, double _longitude, double _altitude)
 Convert from WGS84 ( latitude (rad), longitude (rad), altitude (m) ) to ECEF poisiton (m) ).
Vector NED2ECEFVelocity (double _latitude, double _longitude, double _altitude, double _velocityNorth, double _velocityEast, double _velocityDown)
 Convert from NED velocity (m/s) to ECEF velocity (m/s).
Vector WGS842ECEF (double _latitude, double _longitude, double _altitude, double _velocityNorth, double _velocityEast, double _velocityDown)
 Convert from WGS84 ( latitude (rad), longitude (rad), altitude (m) ) to ECEF poisiton (m) and velocity (m/s).
Vector ECEFPosition2WGS84 (double _x, double _y, double _z)
 Convert from ECEF position (m) to WGS84 ( latitude (rad), longitude (rad), altitude (m) ).
Vector ECEF2NEDVelocity (double _latitude, double _longitude, double _altitude, double _Vx, double _Vy, double _Vz)
 Convert from ECEF velocity (m/s) to NED velocity (m/s).
Vector ECEF2WGS84 (double _x, double _y, double _z, double _Vx, double _Vy, double _Vz)
 Convert from ECEF position (m) and velocity (m/s) to WGS84 ( latitude (rad), longitude (rad), altitude (m) ).
Vector ECEF2ECI (CAMdoubleVector _ECEFVector, double _jDay)
Vector ECI2ECEF (CAMdoubleVector _ECIVector, double _jDay)
double lat_lon (double latlon, char sector)
 Convert Latitude and Longitude in the form of DEG 'N/S' 'E/W' to +/-RAD.
void TangentPlaneState (AshtechG12_GPS_PhysicalDevice::Position recPos, CAMdoubleVector &_WGS84Vector)
void ECI2COE (Vector ECI, Vector VECI, Keplerian &myCOE, double &a, double &e, double &i, double &Lon, double &Arg, double &tru)

Private Attributes

Whorlm_whorl
ClientSocketm_clientSocket
Vector m_ECIVector
OsculatingOrbitalElements m_SpaceVehicleOsculatingCOE
Keplerian m_SpaceVehicleMeanCOE
ssfTime m_InitialTime
int m_vehicleID
ssfTime m_currentTime
Vector m_acceleration
double m_mass

Constructor & Destructor Documentation

OrbitPropObserver::OrbitPropObserver  ) 
 

Default Constructor.

Definition at line 18 of file OrbitPropObserver.cpp.

References Initialize().

OrbitPropObserver::OrbitPropObserver TiXmlHandle  handle,
Whorl ptr_whorl
 

Create a GPS 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 OrbitPropObserver.cpp.

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

OrbitPropObserver::~OrbitPropObserver  )  [virtual]
 

DeConstructor for OrbitPropObserver object.

Definition at line 38 of file OrbitPropObserver.cpp.


Member Function Documentation

Matrix OrbitObserver::DirectionCosMatrix1Axis double  _angle  )  [inherited]
 

Direction Cosine Matrix about the 1 axis.

Parameters:
_angle the single axis rotation angle
Returns:
_DCM 3x3 matrix

Definition at line 28 of file OrbitObserver.cpp.

References O_SESSAME::Matrix.

Referenced by OrbitObserver::ECEF2NEDVelocity(), and OrbitObserver::NED2ECEFVelocity().

Matrix OrbitObserver::DirectionCosMatrix2Axis double  _angle  )  [inherited]
 

Direction Cosine Matrix about the 2 axis.

Parameters:
_angle the single axis rotation angle
Returns:
_DCM 3x3 matrix

Definition at line 44 of file OrbitObserver.cpp.

References O_SESSAME::Matrix.

Referenced by OrbitObserver::ECEF2NEDVelocity(), and OrbitObserver::NED2ECEFVelocity().

Matrix OrbitObserver::DirectionCosMatrix3Axis double  _angle  )  [inherited]
 

Direction Cosine Matrix about the 3 axis.

Parameters:
_angle the single axis rotation angle
Returns:
_DCM 3x3 matrix

Definition at line 60 of file OrbitObserver.cpp.

References O_SESSAME::Matrix.

Referenced by OrbitObserver::ECEF2NEDVelocity(), and OrbitObserver::NED2ECEFVelocity().

Vector OrbitObserver::ECEF2ECI CAMdoubleVector  _ECEFVector,
double  _jDay
[inherited]
 

Referenced by GPSObserver::Run().

Vector OrbitObserver::ECEF2NEDVelocity double  _latitude,
double  _longitude,
double  _altitude,
double  _Vx,
double  _Vy,
double  _Vz
[inherited]
 

Convert from ECEF velocity (m/s) to NED velocity (m/s).

Equation:

\[ V_{NED} = DCM_{321}(\phi, \phi+\frac{\pi}{2}, 0 )V_{ECEF} \]

Parameters:
_latitude (rad)
_longitude (rad)
_altitude (m)
_Vx (m/s)
_Vy (m/s)
_Vz (m/s)
Returns:
_NEDVector (3x1) [ Vx, Vy, Vz ] (m/s)

Definition at line 217 of file OrbitObserver.cpp.

References _, OrbitObserver::DirectionCosMatrix1Axis(), OrbitObserver::DirectionCosMatrix2Axis(), OrbitObserver::DirectionCosMatrix3Axis(), O_SESSAME::Matrix, PI, and O_SESSAME::Vector.

Referenced by OrbitObserver::ECEF2WGS84().

Vector OrbitObserver::ECEF2WGS84 double  _x,
double  _y,
double  _z,
double  _Vx,
double  _Vy,
double  _Vz
[inherited]
 

Convert from ECEF position (m) and velocity (m/s) to WGS84 ( latitude (rad), longitude (rad), altitude (m) ).

Parameters:
_x (m)
_y (m)
_z (m)
_Vx (m/s)
_Vy (m/s)
_Vz (m/s)
Returns:
_WGS84Vector (6x1) [ latitude, longitude, altitude, velocity North, velocity East, velocity Down ] (rad, rad, m, m/s, m/s, m/s)

Definition at line 243 of file OrbitObserver.cpp.

References _, OrbitObserver::ECEF2NEDVelocity(), OrbitObserver::ECEFPosition2WGS84(), and O_SESSAME::Vector.

Vector OrbitObserver::ECEFPosition2WGS84 double  _x,
double  _y,
double  _z
[inherited]
 

Convert from ECEF position (m) to WGS84 ( latitude (rad), longitude (rad), altitude (m) ).

Equation: ( www.colorado.edu/geographyy/gcraft/notes/datum/datum_f.html )

\[ \phi = atan{ \left( \frac{ z+e^{'2}b\sin^2{\theta} }{ p-e^2 acos^2{\theta} } \right) } \]

\[ \lambda = atan{ \frac{y}{x} } \]

\[ h = \frac{p}{\cos{\phi}} - N(\phi) \]

where: $\phi, \lambda, h $ are the geodetic latitude, longitude, and height above ellipsoid

\[ p = \sqrt{x^2+y^2} \]

\[ \theta = atan \frac{ za }{ pb } \]

\[ e^{'2} = \frac{a^2-b^2}{b^2} \]

\[ N = \frac{a}{ \sqrt{ 1-e^2\sin^2{ \phi } } } \]

\[ e^2 = 2f-f^2 \]

Parameters:
_x (m)
_y (m)
_z (m)
Returns:
_WGS84Vector (3x1) [ latitude, longitude, altitude ] (rad, rad, m)

Definition at line 165 of file OrbitObserver.cpp.

References f(), and O_SESSAME::Vector.

Referenced by OrbitObserver::ECEF2WGS84().

void OrbitObserver::ECI2COE Vector  ECI,
Vector  VECI,
Keplerian myCOE,
double &  a,
double &  e,
double &  i,
double &  Lon,
double &  Arg,
double &  tru
[inherited]
 

Vector OrbitObserver::ECI2ECEF CAMdoubleVector  _ECIVector,
double  _jDay
[inherited]
 

Vector OrbitPropObserver::GetState ClientSocket _clientSocket,
int  _vehicleID,
double  _currentTime,
CAMdoubleVector  _acceleration,
double  _newMass
 

Definition at line 119 of file OrbitPropObserver.cpp.

References ParseState(), and O_SESSAME::Vector.

Referenced by Run().

int OrbitPropObserver::Initialize  )  [virtual]
 

Initialize GPS observer.

Implements OrbitObserver.

Definition at line 43 of file OrbitPropObserver.cpp.

References CAMdoubleVector::initialize(), m_acceleration, m_clientSocket, m_currentTime, m_ECIVector, m_mass, and m_vehicleID.

Referenced by OrbitPropObserver().

double OrbitObserver::lat_lon double  latlon,
char  sector
[inherited]
 

Convert Latitude and Longitude in the form of DEG 'N/S' 'E/W' to +/-RAD.

Parameters:
latlon 
sector return value (+/-rad) of conversion.

Definition at line 322 of file OrbitObserver.cpp.

References O_SESSAME::Deg2Rad().

Vector OrbitObserver::NED2ECEFVelocity double  _latitude,
double  _longitude,
double  _altitude,
double  _velocityNorth,
double  _velocityEast,
double  _velocityDown
[inherited]
 

Convert from NED velocity (m/s) to ECEF velocity (m/s).

Equation:

\[ V_{ECEF} = DCM_{321}(\phi, -\phi-\frac{\pi}{2}, 0 )^{-1}V_{NED} \]

Parameters:
_latitude (rad)
_longitude (rad)
_altitude (m)
_velocityNorth (m/s)
_velocityEast (m/s)
_velocityDown (m/s)
Returns:
_ECEFVector (3x1) [ Vx, Vy, Vz ] (m/s)

Definition at line 109 of file OrbitObserver.cpp.

References _, OrbitObserver::DirectionCosMatrix1Axis(), OrbitObserver::DirectionCosMatrix2Axis(), OrbitObserver::DirectionCosMatrix3Axis(), O_SESSAME::Matrix, PI, and O_SESSAME::Vector.

Referenced by OrbitObserver::WGS842ECEF().

void OrbitPropObserver::Parse TiXmlHandle  handle  ) 
 

Parse inertial measurement vectors from configuration file.

Parameters:
handle XML handle with current whorl as starting node

Definition at line 88 of file OrbitPropObserver.cpp.

Referenced by OrbitPropObserver().

Vector OrbitPropObserver::ParseState string  _reply  ) 
 

Definition at line 143 of file OrbitPropObserver.cpp.

References O_SESSAME::Vector.

Referenced by GetState().

int OrbitPropObserver::Run  )  [virtual]
 

Take measurements and update state vector in whorl object.

Implements OrbitObserver.

Definition at line 94 of file OrbitPropObserver.cpp.

References O_SESSAME::OsculatingOrbitalElements::GetMeanOrbitalElements(), O_SESSAME::OsculatingOrbitalElements::GetOsculatingOrbitalElements(), O_SESSAME::ssfTime::GetSeconds(), GetState(), m_clientSocket, m_currentTime, m_ECIVector, m_SpaceVehicleMeanCOE, m_SpaceVehicleOsculatingCOE, m_vehicleID, m_whorl, Whorl::SetCOE(), Whorl::SetECI(), Whorl::SetOscCOE(), and O_SESSAME::OsculatingOrbitalElements::SetOsculatingOrbitalElements().

void OrbitObserver::TangentPlaneState AshtechG12_GPS_PhysicalDevice::Position  recPos,
CAMdoubleVector _WGS84Vector
[inherited]
 

Referenced by GPSObserver::Run().

Vector OrbitObserver::WGS2ECEFPosition double  _latitude,
double  _longitude,
double  _altitude
[inherited]
 

Convert from WGS84 ( latitude (rad), longitude (rad), altitude (m) ) to ECEF poisiton (m) ).

Parameters:
_latitude (rad)
_longitude (rad)
_altitude (m)

Definition at line 78 of file OrbitObserver.cpp.

References f(), and O_SESSAME::Vector.

Referenced by OrbitObserver::WGS842ECEF().

Vector OrbitObserver::WGS842ECEF double  _latitude,
double  _longitude,
double  _altitude,
double  _velocityNorth,
double  _velocityEast,
double  _velocityDown
[inherited]
 

Convert from WGS84 ( latitude (rad), longitude (rad), altitude (m) ) to ECEF poisiton (m) and velocity (m/s).

Parameters:
_latitude (rad)
_longitude (rad)
_altitude (m)
_velocityNorth (m/s)
_velocityEast (m/s)
_velocityDown (m/s)
Returns:
_ECEFVector (6x1) [ x, y, z, Vx, Vy, Vz ] (m & m/s)

Definition at line 134 of file OrbitObserver.cpp.

References _, OrbitObserver::NED2ECEFVelocity(), O_SESSAME::Vector, and OrbitObserver::WGS2ECEFPosition().

Referenced by GPSObserver::Run().


Member Data Documentation

Vector OrbitPropObserver::m_acceleration [private]
 

Definition at line 66 of file OrbitPropObserver.h.

Referenced by Initialize().

ClientSocket* OrbitPropObserver::m_clientSocket [private]
 

Definition at line 48 of file OrbitPropObserver.h.

Referenced by Initialize(), and Run().

ssfTime OrbitPropObserver::m_currentTime [private]
 

Definition at line 63 of file OrbitPropObserver.h.

Referenced by Initialize(), and Run().

Vector OrbitPropObserver::m_ECIVector [private]
 

Definition at line 51 of file OrbitPropObserver.h.

Referenced by Initialize(), and Run().

ssfTime OrbitPropObserver::m_InitialTime [private]
 

Definition at line 57 of file OrbitPropObserver.h.

double OrbitPropObserver::m_mass [private]
 

Definition at line 69 of file OrbitPropObserver.h.

Referenced by Initialize().

Keplerian OrbitPropObserver::m_SpaceVehicleMeanCOE [private]
 

Definition at line 55 of file OrbitPropObserver.h.

Referenced by Run().

OsculatingOrbitalElements OrbitPropObserver::m_SpaceVehicleOsculatingCOE [private]
 

Definition at line 53 of file OrbitPropObserver.h.

Referenced by Run().

int OrbitPropObserver::m_vehicleID [private]
 

Definition at line 60 of file OrbitPropObserver.h.

Referenced by Initialize(), and Run().

Whorl* OrbitPropObserver::m_whorl [private]
 

Definition at line 46 of file OrbitPropObserver.h.

Referenced by OrbitPropObserver(), and Run().


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