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

GPSObserver Class Reference

#include <GPSObserver.h>

Inheritance diagram for GPSObserver:

Inheritance graph
[legend]
Collaboration diagram for GPSObserver:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 GPSObserver ()
 Default Constructor.
 GPSObserver (TiXmlHandle handle, Whorl *ptr_whorl)
 Create a GPS observer from XML handle and whorl object.
virtual ~GPSObserver ()
 DeConstructor for GPSObserver 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.
void GPS2Screen (AshtechG12_GPS_PhysicalDevice::Position _spaceVehicle)
Vector GetWGS84 ()
Vector GetECEF ()
Vector GetECI ()
Keplerian GetOsculatingOrbitalElements ()
Keplerian GetMeanOrbitalElements ()
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
AshtechG12_GPS_PhysicalDevice m_SpaceVehicle
AshtechG12_GPS_PhysicalDevice::Position m_SpaceVehiclePosition
Vector m_WGS84Vector
Vector m_ECEFVector
Vector m_ECIVector
OsculatingOrbitalElements m_SpaceVehicleOsculatingCOE
Keplerian m_SpaceVehicleMeanCOE
ssfTime m_InitialTime

Constructor & Destructor Documentation

GPSObserver::GPSObserver  ) 
 

Default Constructor.

Definition at line 18 of file GPSObserver.cpp.

References Initialize().

GPSObserver::GPSObserver 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 GPSObserver.cpp.

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

GPSObserver::~GPSObserver  )  [virtual]
 

DeConstructor for GPSObserver object.

Definition at line 38 of file GPSObserver.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 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 GPSObserver::GetECEF  ) 
 

Definition at line 175 of file GPSObserver.cpp.

References O_SESSAME::Vector.

Vector GPSObserver::GetECI  ) 
 

Definition at line 180 of file GPSObserver.cpp.

References O_SESSAME::Vector.

Keplerian GPSObserver::GetMeanOrbitalElements  ) 
 

Definition at line 190 of file GPSObserver.cpp.

Keplerian GPSObserver::GetOsculatingOrbitalElements  ) 
 

Definition at line 185 of file GPSObserver.cpp.

References O_SESSAME::OsculatingOrbitalElements::GetOsculatingOrbitalElements(), and m_SpaceVehicleOsculatingCOE.

Vector GPSObserver::GetWGS84  ) 
 

Definition at line 170 of file GPSObserver.cpp.

References O_SESSAME::Vector.

void GPSObserver::GPS2Screen AshtechG12_GPS_PhysicalDevice::Position  _spaceVehicle  ) 
 

Definition at line 196 of file GPSObserver.cpp.

References AshtechG12_GPS_PhysicalDevice::Position::m_altitude, AshtechG12_GPS_PhysicalDevice::Position::m_groundSpeed, AshtechG12_GPS_PhysicalDevice::Position::m_groundTrack, AshtechG12_GPS_PhysicalDevice::Position::m_HDOP, AshtechG12_GPS_PhysicalDevice::Position::m_latitude, AshtechG12_GPS_PhysicalDevice::Position::m_latitudeSector, AshtechG12_GPS_PhysicalDevice::Position::m_longitude, AshtechG12_GPS_PhysicalDevice::Position::m_longitudeSector, AshtechG12_GPS_PhysicalDevice::Position::m_numSatellites, AshtechG12_GPS_PhysicalDevice::Position::m_PDOP, AshtechG12_GPS_PhysicalDevice::Position::m_RTCM, AshtechG12_GPS_PhysicalDevice::Position::m_TDOP, AshtechG12_GPS_PhysicalDevice::Position::m_UTC_Timetag, AshtechG12_GPS_PhysicalDevice::Position::m_VDOP, and AshtechG12_GPS_PhysicalDevice::Position::m_verticalVelocity.

int GPSObserver::Initialize  )  [virtual]
 

Initialize GPS observer.

Implements OrbitObserver.

Definition at line 43 of file GPSObserver.cpp.

References AshtechG12_GPS_PhysicalDevice::Connect(), CAMdoubleVector::initialize(), m_ECEFVector, m_ECIVector, m_InitialTime, m_SpaceVehicle, and m_WGS84Vector.

Referenced by GPSObserver().

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 GPSObserver::Parse TiXmlHandle  handle  ) 
 

Parse inertial measurement vectors from configuration file.

Parameters:
handle XML handle with current whorl as starting node

Definition at line 64 of file GPSObserver.cpp.

Referenced by GPSObserver().

int GPSObserver::Run  )  [virtual]
 

Take measurements and update state vector in whorl object.

Implements OrbitObserver.

Definition at line 95 of file GPSObserver.cpp.

References OrbitObserver::ECEF2ECI(), O_SESSAME::Keplerian::GetArgPerigee(), AshtechG12_GPS_PhysicalDevice::GetCurrentPosition(), O_SESSAME::ssfTime::GetDateTime(), O_SESSAME::Keplerian::GetEccentricAnomaly(), O_SESSAME::Keplerian::GetEccentricity(), O_SESSAME::Keplerian::GetInclination(), O_SESSAME::Keplerian::GetLongAscNode(), O_SESSAME::Keplerian::GetMeanAnomaly(), O_SESSAME::Keplerian::GetMeanMotion(), O_SESSAME::OsculatingOrbitalElements::GetMeanOrbitalElements(), O_SESSAME::OsculatingOrbitalElements::GetOsculatingOrbitalElements(), O_SESSAME::ssfTime::GetSeconds(), O_SESSAME::Keplerian::GetSemimajorAxis(), O_SESSAME::Keplerian::GetTrueAnomaly(), m_ECEFVector, m_ECIVector, m_InitialTime, AshtechG12_GPS_PhysicalDevice::Position::m_numSatellites, m_SpaceVehicle, m_SpaceVehicleMeanCOE, m_SpaceVehicleOsculatingCOE, m_SpaceVehiclePosition, AshtechG12_GPS_PhysicalDevice::Position::m_UTC_Timetag, m_WGS84Vector, m_whorl, Whorl::SetCOE(), Whorl::SetECI(), Whorl::SetOscCOE(), O_SESSAME::OsculatingOrbitalElements::SetOsculatingOrbitalElements(), OrbitObserver::TangentPlaneState(), and OrbitObserver::WGS842ECEF().

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

Referenced by 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 Run().


Member Data Documentation

Vector GPSObserver::m_ECEFVector [private]
 

Definition at line 66 of file GPSObserver.h.

Referenced by Initialize(), and Run().

Vector GPSObserver::m_ECIVector [private]
 

Definition at line 68 of file GPSObserver.h.

Referenced by Initialize(), and Run().

ssfTime GPSObserver::m_InitialTime [private]
 

Definition at line 74 of file GPSObserver.h.

Referenced by Initialize(), and Run().

AshtechG12_GPS_PhysicalDevice GPSObserver::m_SpaceVehicle [private]
 

Definition at line 58 of file GPSObserver.h.

Referenced by Initialize(), and Run().

Keplerian GPSObserver::m_SpaceVehicleMeanCOE [private]
 

Definition at line 72 of file GPSObserver.h.

Referenced by Run().

OsculatingOrbitalElements GPSObserver::m_SpaceVehicleOsculatingCOE [private]
 

Definition at line 70 of file GPSObserver.h.

Referenced by GetOsculatingOrbitalElements(), and Run().

AshtechG12_GPS_PhysicalDevice::Position GPSObserver::m_SpaceVehiclePosition [private]
 

Definition at line 61 of file GPSObserver.h.

Referenced by Run().

Vector GPSObserver::m_WGS84Vector [private]
 

Definition at line 64 of file GPSObserver.h.

Referenced by Initialize(), and Run().

Whorl* GPSObserver::m_whorl [private]
 

Definition at line 55 of file GPSObserver.h.

Referenced by GPSObserver(), and Run().


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