#include <GNSS_Estimator.h>
Definition at line 63 of file GNSS_Estimator.h.
Public Member Functions | |
GNSS_Estimator () | |
The default constructor (no data allocated yet). | |
virtual | ~GNSS_Estimator () |
The destructor. | |
bool | DetermineSatellitePVT_GPSL1 (GNSS_RxData *rxData, GNSS_RxData *rxBaseData, unsigned &nrValidEph) |
Determine the satellite clock corrections, positions, and velocities for the rover receiver and the reference receiver if aviailable (!NULL). Also determine if the ephemeris is valid (not too old). If differential, rxBaseData != NULL, the reference station receiver ephemeris data is used. | |
bool | DetermineAtmosphericCorrections_GPSL1 (GNSS_RxData &rxData) |
Determine the tropospheric and ionospheric delay for each GPS L1 channel in rxData. | |
bool | DetermineUsablePseudorangeMeasurementsForThePositionSolution_GPSL1 (GNSS_RxData &rxData, unsigned &nrUsablePseudoranges) |
Determine the usable GPS L1 pseudroange measurements. | |
bool | DetermineUsableAdrMeasurements_GPSL1 (GNSS_RxData &rxData, unsigned &nrUsableAdr) |
Determine the usable GPS L1 ADR measurements. | |
bool | DetermineBetweenReceiverDifferentialIndex (GNSS_RxData *rxData, GNSS_RxData *rxBaseData, const bool setToUseOnlyDifferential) |
Determine the corresponding indices for between receiver differencing. | |
bool | DetermineDesignMatrixForThePositionSolution_GPSL1 (GNSS_RxData &rxData, const unsigned nrRowsInH, Matrix &H) |
Determine the design matrix for the GPS L1 position solution based on pseudroange measurements. | |
bool | DetermineMeasurementWeightMatrixForThePositionSolution_GPSL1 (GNSS_RxData &rxData, const unsigned nrUsablePseudoranges, Matrix &W) |
Determine the measurement weight matrix for the GPS L1 position solution based on pseudroange measurement standard deviation values specified in rxData.m_ObsArray[i].stdev_psr. | |
bool | DetermineMeasurementVarianceCovarianceMatrixForThePositionSolution_GPSL1 (GNSS_RxData &rxData, const unsigned n, Matrix &R) |
Determine the measurement variance-coariance matrix for the GPS L1 position solution based on pseudroange measurement standard deviation values specified in rxData.m_ObsArray[i].stdev_psr. | |
bool | DeterminePseudorangeMisclosures_GPSL1 (GNSS_RxData *rxData, GNSS_RxData *rxBaseData, const unsigned nrPsr, Matrix &w) |
Compute the GPS L1 pseudroange misclosures. | |
bool | DetermineSingleDifferenceADR_Misclosures_GPSL1 (GNSS_RxData *rxData, GNSS_RxData *rxBaseData, const unsigned n, Matrix &w) |
Compute the differntial GPS L1 ADR misclosures. | |
bool | GNSS_Estimator::DetermineDoubleDifferenceADR_Misclosures_GPSL1 (GNSS_RxData *rxData, GNSS_RxData *rxBaseData, Matrix &subB, const unsigned n, Matrix &w) |
Compute the double differntial GPS L1 ADR misclosures. | |
bool | DetermineUsableDopplerMeasurementsForTheVelocitySolution_GPSL1 (GNSS_RxData &rxData, unsigned &nrUsableDopplers) |
Determine the usable GPS L1 Doppler measurements. | |
bool | DetermineDopplerMisclosures_GPSL1 (GNSS_RxData *rxData, GNSS_RxData *rxBaseData, const unsigned n, Matrix &w) |
Compute the GPS L1 Doppler misclosures. | |
bool | DetermineDesignMatrixForTheVelocitySolution_GPSL1 (GNSS_RxData &rxData, const unsigned nrUsableDopplers, Matrix &H) |
Determine the design matrix for the GPS L1 velocity solution based on Doppler measurements. | |
bool | DetermineMeasurementWeightMatrixForTheVelocitySolution_GPSL1 (GNSS_RxData &rxData, const unsigned n, Matrix &W) |
Determine the measurement weight matrix for the GPS L1 velocity solution based on Doppler measurement standard deviation values specified in rxData.m_ObsArray[i].stdev_doppler. | |
bool | DetermineMeasurementVarianceCovarianceMatrixForTheVelocitySolution_GPSL1 (GNSS_RxData &rxData, const unsigned n, Matrix &R) |
Determine the measurement variance-covariance matrix for the GPS L1 velocity solution based on Doppler measurement standard deviation values specified in rxData.m_ObsArray[i].stdev_doppler. | |
bool | PerformGlobalTestAndTestForMeasurementFaults (GNSS_RxData &rxData, bool testPsrOrDoppler, Matrix &H, Matrix &Ht, Matrix &W, Matrix &R, Matrix &r, Matrix &P, const unsigned char n, const unsigned char u, double &avf, bool &isGlobalTestPassed, bool &hasRejectionOccurred, unsigned char &indexOfRejected) |
Perform the Global Internal Reliability Test, followed by a search using local testing for a single measurement fault if the global test fails. | |
bool | ComputeTransitionMatrix_8StatePVGM (const double dT, Matrix &T) |
bool | ComputeTransitionMatrix_8StatePVGM_Float (const double dT, Matrix &T) |
bool | ComputeTransitionMatrix_6StatePVGM_Float (const double dT, Matrix &T) |
bool | ComputeProcessNoiseMatrix_8StatePVGM (const double dT, Matrix &Q) |
bool | ComputeProcessNoiseMatrix_8StatePVGM_Float (const double dT, Matrix &Q) |
bool | ComputeProcessNoiseMatrix_6StatePVGM_Float (const double dT, Matrix &Q) |
bool | InitializeStateVarianceCovariance_8StatePVGM (const double std_lat, const double std_lon, const double std_hgt, const double std_vn, const double std_ve, const double std_vup, const double std_clk, const double std_clkdrift, Matrix &P) |
Initialize the state variance-covariance matrix for the 8 state PV Gauss Markov model. | |
bool | InitializeStateVarianceCovariance_6StatePVGM (const double std_lat, const double std_lon, const double std_hgt, const double std_vn, const double std_ve, const double std_vup, Matrix &P) |
Initialize the state variance-covariance matrix for the 6 state PV Gauss Markov model. | |
bool | PredictAhead_8StatePVGM (GNSS_RxData &rxData, const double dT, Matrix &T, Matrix &Q, Matrix &P) |
bool | PredictAhead_8StatePVGM_Float (GNSS_RxData &rxData, const double dT, Matrix &T, Matrix &Q, Matrix &P) |
bool | PredictAhead_6StatePVGM_Float (GNSS_RxData &rxData, const double dT, Matrix &T, Matrix &Q, Matrix &P) |
bool | Kalman_Update_8StatePVGM (GNSS_RxData *rxData, GNSS_RxData *rxBaseData, Matrix &P) |
bool | Kalman_Update_8StatePVGM_SequentialMode (GNSS_RxData *rxData, GNSS_RxData *rxBaseData, Matrix &P) |
bool | Kalman_Update_8StatePVGM_SequentialMode_FloatSolution (GNSS_RxData *rxData, GNSS_RxData *rxBaseData, Matrix &P) |
bool | Kalman_Update_6StatePVGM_FloatSolution (GNSS_RxData *rxData, GNSS_RxData *rxBaseData, Matrix &P) |
bool | FixAmbiguities () |
Fix ambiguities, right now does nothing. | |
bool | UpdateTime (GNSS_RxData &rxData) |
Update the rest of m_pvt.time struct based on the gps week and time of week only. | |
bool | PerformLeastSquares_8StatePVT (GNSS_RxData *rxData, GNSS_RxData *rxBaseData, bool &wasPositionComputed, bool &wasVelocityComputed) |
Perform least squares using pseudoranges and Doppler measurments to determine the eight states: (lat,lon,hgt,vn,ve,vup,clk,clkdrift). | |
bool | PrintMatToDebug (const char *name, Matrix &M) |
A static function for outputting a matrix to the console. | |
bool | DetermineAmbiguitiesChanges (GNSS_RxData *rxData, GNSS_RxData *rxBaseData, Matrix &P, bool &changeOccured) |
Deal with changes in ambiguities. Remove the rows and columns from P of the ambiguities that are no longer active. Add rows and columns to P for new ambiguities. | |
Data Fields | |
stLSQ | m_posLSQ |
The Least Sqaures estimation matrix information for the position and clock offset solution. | |
stLSQ | m_velLSQ |
The Least Sqaures estimation matrix information for the velocity and clock drift solution. | |
stRTK | m_RTK |
The RTK estimation matrix information. | |
stRTKDD | m_RTKDD |
The double difference RTK estimation matrix information. | |
stKalmanModel | m_KF |
std::list< stAmbiguityInfo > | m_ActiveAmbiguitiesList |
GDM store in RxData? | |
Protected Attributes | |
Matrix | HtW |
The design matrix, H, transposed times W u x n. | |
Matrix | Ninv |
The inverse of the normal matrix, N = (H^T*W*H)^-1, u x u. |
GNSS::GNSS_Estimator::GNSS_Estimator | ( | ) |
GNSS::GNSS_Estimator::~GNSS_Estimator | ( | ) | [virtual] |
bool GNSS::GNSS_Estimator::DetermineSatellitePVT_GPSL1 | ( | GNSS_RxData * | rxData, | |
GNSS_RxData * | rxBaseData, | |||
unsigned & | nrValidEph | |||
) |
Determine the satellite clock corrections, positions, and velocities for the rover receiver and the reference receiver if aviailable (!NULL). Also determine if the ephemeris is valid (not too old). If differential, rxBaseData != NULL, the reference station receiver ephemeris data is used.
rxData | The pointer to the receiver data. |
rxBaseData | The pointer to the reference receiver data. NULL if not available. |
nrValidEph | The number of GPS L1 channels with valid ephemeris for the rover. |
Definition at line 646 of file GNSS_Estimator.cpp.
bool GNSS::GNSS_Estimator::DetermineAtmosphericCorrections_GPSL1 | ( | GNSS_RxData & | rxData | ) |
Determine the tropospheric and ionospheric delay for each GPS L1 channel in rxData.
rxData | The receiver data. |
Definition at line 962 of file GNSS_Estimator.cpp.
bool GNSS::GNSS_Estimator::DetermineUsablePseudorangeMeasurementsForThePositionSolution_GPSL1 | ( | GNSS_RxData & | rxData, | |
unsigned & | nrUsablePseudoranges | |||
) |
Determine the usable GPS L1 pseudroange measurements.
rxData | The receiver data. |
nrUsablePseudoranges | the number of usable GPS L1 pseudorange measurements. |
Definition at line 1033 of file GNSS_Estimator.cpp.
bool GNSS::GNSS_Estimator::DetermineUsableAdrMeasurements_GPSL1 | ( | GNSS_RxData & | rxData, | |
unsigned & | nrUsableAdr | |||
) |
Determine the usable GPS L1 ADR measurements.
rxData | The receiver data. |
nrUsableAdr | The number of usable GPS L1 adr measurements. |
Definition at line 1150 of file GNSS_Estimator.cpp.
bool GNSS::GNSS_Estimator::DetermineBetweenReceiverDifferentialIndex | ( | GNSS_RxData * | rxData, | |
GNSS_RxData * | rxBaseData, | |||
const bool | setToUseOnlyDifferential | |||
) |
Determine the corresponding indices for between receiver differencing.
rxData | (input) The pointer to the receiver data. |
rxBaseData | (input) The pointer to the reference receiver data. NULL if not available. |
setToUseOnlyDifferential | (input) This indicates that only differential measurements should be used. |
Definition at line 1593 of file GNSS_Estimator.cpp.
bool GNSS::GNSS_Estimator::DetermineDesignMatrixForThePositionSolution_GPSL1 | ( | GNSS_RxData & | rxData, | |
const unsigned | nrRowsInH, | |||
Matrix & | H | |||
) |
Determine the design matrix for the GPS L1 position solution based on pseudroange measurements.
rxData | The receiver data. |
nrRowsInH | The number of valid rows in H. |
H | The position & rx clock design matrix [n x 4]. |
Definition at line 1215 of file GNSS_Estimator.cpp.
bool GNSS::GNSS_Estimator::DetermineMeasurementWeightMatrixForThePositionSolution_GPSL1 | ( | GNSS_RxData & | rxData, | |
const unsigned | nrUsablePseudoranges, | |||
Matrix & | W | |||
) |
Determine the measurement weight matrix for the GPS L1 position solution based on pseudroange measurement standard deviation values specified in rxData.m_ObsArray[i].stdev_psr.
rxData | The receiver data. |
nrUsablePseudoranges | The number of usable GPS L1 pseudorange measurements. |
W | The inverse of the pseudorange measurement variance-coraiance matrix [nP x nP]. |
Definition at line 1306 of file GNSS_Estimator.cpp.
bool GNSS::GNSS_Estimator::DetermineMeasurementVarianceCovarianceMatrixForThePositionSolution_GPSL1 | ( | GNSS_RxData & | rxData, | |
const unsigned | n, | |||
Matrix & | R | |||
) |
Determine the measurement variance-coariance matrix for the GPS L1 position solution based on pseudroange measurement standard deviation values specified in rxData.m_ObsArray[i].stdev_psr.
rxData | The receiver data. |
n | The number of measurements and pseudo-measurements (constraints). |
R | The pseudorange measurement variance-covariance matrix [n x n]. |
Definition at line 1371 of file GNSS_Estimator.cpp.
bool GNSS::GNSS_Estimator::DeterminePseudorangeMisclosures_GPSL1 | ( | GNSS_RxData * | rxData, | |
GNSS_RxData * | rxBaseData, | |||
const unsigned | nrPsr, | |||
Matrix & | w | |||
) |
Compute the GPS L1 pseudroange misclosures.
rxData | The pointer to the receiver data. |
rxBaseData | The pointer to the reference receiver data. NULL if not available. |
nrPsr | The number of GPS L1 pseudorange measurements. |
w | The pseudorange misclosure vector [nP x 1]. |
Definition at line 1437 of file GNSS_Estimator.cpp.
bool GNSS::GNSS_Estimator::DetermineSingleDifferenceADR_Misclosures_GPSL1 | ( | GNSS_RxData * | rxData, | |
GNSS_RxData * | rxBaseData, | |||
const unsigned | n, | |||
Matrix & | w | |||
) |
Compute the differntial GPS L1 ADR misclosures.
rxData | The pointer to the receiver data. |
rxBaseData | The pointer to the reference receiver data. NULL if not available. |
n | The number of misclosures. |
w | The adr misclosure vector [n x 1]. |
Definition at line 1707 of file GNSS_Estimator.cpp.
bool GNSS::GNSS_Estimator::GNSS_Estimator::DetermineDoubleDifferenceADR_Misclosures_GPSL1 | ( | GNSS_RxData * | rxData, | |
GNSS_RxData * | rxBaseData, | |||
Matrix & | subB, | |||
const unsigned | n, | |||
Matrix & | w | |||
) |
Compute the double differntial GPS L1 ADR misclosures.
rxData | The pointer to the receiver data. |
rxBaseData | The pointer to the reference receiver data. NULL if not available. |
subB | The matrix that describes the differencing from SD to DD adr measurements |
n | The number of DD misclosures required. |
w | The adr misclosure vector [n x 1]. |
bool GNSS::GNSS_Estimator::DetermineUsableDopplerMeasurementsForTheVelocitySolution_GPSL1 | ( | GNSS_RxData & | rxData, | |
unsigned & | nrUsableDopplers | |||
) |
Determine the usable GPS L1 Doppler measurements.
rxData | The receiver data. |
nrUsableDopplers | the number of usable GPS L1 Doppler measurements. |
Definition at line 1105 of file GNSS_Estimator.cpp.
bool GNSS::GNSS_Estimator::DetermineDopplerMisclosures_GPSL1 | ( | GNSS_RxData * | rxData, | |
GNSS_RxData * | rxBaseData, | |||
const unsigned | n, | |||
Matrix & | w | |||
) |
Compute the GPS L1 Doppler misclosures.
rxData | The pointer to the receiver data. |
rxBaseData | The pointer to the reference receiver data. NULL if not available. |
n | The number of misclosures. |
w | The pseudorange misclosure vector [n x 1]. |
Definition at line 1946 of file GNSS_Estimator.cpp.
bool GNSS::GNSS_Estimator::DetermineDesignMatrixForTheVelocitySolution_GPSL1 | ( | GNSS_RxData & | rxData, | |
const unsigned | nrUsableDopplers, | |||
Matrix & | H | |||
) |
Determine the design matrix for the GPS L1 velocity solution based on Doppler measurements.
rxData | The receiver data. |
nrUsableDopplers | The number of usable GPS L1 Doppler measurements. |
H | The velocity & rx clock drift design matrix [nD x 4]. |
Definition at line 2045 of file GNSS_Estimator.cpp.
bool GNSS::GNSS_Estimator::DetermineMeasurementWeightMatrixForTheVelocitySolution_GPSL1 | ( | GNSS_RxData & | rxData, | |
const unsigned | n, | |||
Matrix & | W | |||
) |
Determine the measurement weight matrix for the GPS L1 velocity solution based on Doppler measurement standard deviation values specified in rxData.m_ObsArray[i].stdev_doppler.
rxData | The receiver data. |
n | The number of rows in W. |
W | The inverse of the Doppler measurement variance-coraiance matrix [n x n]. |
Definition at line 2141 of file GNSS_Estimator.cpp.
bool GNSS::GNSS_Estimator::DetermineMeasurementVarianceCovarianceMatrixForTheVelocitySolution_GPSL1 | ( | GNSS_RxData & | rxData, | |
const unsigned | n, | |||
Matrix & | R | |||
) |
Determine the measurement variance-covariance matrix for the GPS L1 velocity solution based on Doppler measurement standard deviation values specified in rxData.m_ObsArray[i].stdev_doppler.
rxData | The receiver data. |
n | The number of rows in R. |
R | The inverse of the Doppler measurement variance-coraiance matrix [n x n]. |
Definition at line 2207 of file GNSS_Estimator.cpp.
bool GNSS::GNSS_Estimator::PerformGlobalTestAndTestForMeasurementFaults | ( | GNSS_RxData & | rxData, | |
bool | testPsrOrDoppler, | |||
Matrix & | H, | |||
Matrix & | Ht, | |||
Matrix & | W, | |||
Matrix & | R, | |||
Matrix & | r, | |||
Matrix & | P, | |||
const unsigned char | n, | |||
const unsigned char | u, | |||
double & | avf, | |||
bool & | isGlobalTestPassed, | |||
bool & | hasRejectionOccurred, | |||
unsigned char & | indexOfRejected | |||
) |
Perform the Global Internal Reliability Test, followed by a search using local testing for a single measurement fault if the global test fails.
Perform the Global Internal Reliability Test, followed by a search using local testing for a single measurement fault if the global test fails.
The Global Internal Reliability Test:
The aposteriori variance factor is computed and compared to the value generated using Chi^2 lookup table. The aposerteriori variance factor indicates the following:
if( apv ~= 1 )
solution and observations are well modelled.
if( apv < 1 )
observation variance matrix is pessimistic.
(observations are better than what you said).
if( apv > 1 )
(1) The math model incorrect, (not likely) (2) The weight matrix/observation variance matrix is optimistic (observations are worse than what you said).
(3) Their is a blunder in the observations that is skewing the normality of the solution, and a local test for blunder my be needed.
rxData | The receiver data object. |
testPsrOrDoppler | This indicates if the psr misclosures are checked, otherwise the Doppler misclosures are checked. |
H | The design matrix, H, [n x u]. |
Ht | The design matrix transposed, H, [n x u]. |
W | The observation weight matrix, W, [n x n]. |
R | The observation variance-covariance matrix, R, [n x n]. |
r | The observation residual vector, [n x 1]. |
P | The state variance-covariance matrix, [u x u]. |
n | The number of observations, n. |
u | The number of unknowns, u. |
avf | The computed a-posteriori variance factor is returned. |
isGlobalTestPassed | This indicates if the global test passed. |
hasRejectionOccurred | This indicates if a rejection occurred. Only one measurement is flagged. |
indexOfRejected | This is the index of the rejected observation. |
Definition at line 2296 of file GNSS_Estimator.cpp.
bool GNSS::GNSS_Estimator::ComputeTransitionMatrix_8StatePVGM | ( | const double | dT, | |
Matrix & | T | |||
) |
dT | The change in time since the last update [s]. |
T | The transition matrix [8 x 8]. |
Definition at line 2470 of file GNSS_Estimator.cpp.
bool GNSS::GNSS_Estimator::ComputeTransitionMatrix_8StatePVGM_Float | ( | const double | dT, | |
Matrix & | T | |||
) |
dT | The change in time since the last update [s]. |
T | The transition matrix [(8 + nrAmb) x (8 + nrAmb)]. |
Definition at line 2521 of file GNSS_Estimator.cpp.
bool GNSS::GNSS_Estimator::ComputeTransitionMatrix_6StatePVGM_Float | ( | const double | dT, | |
Matrix & | T | |||
) |
dT | The change in time since the last update [s]. |
T | The transition matrix [(8 + nrAmb) x (8 + nrAmb)]. |
Definition at line 2566 of file GNSS_Estimator.cpp.
bool GNSS::GNSS_Estimator::ComputeProcessNoiseMatrix_8StatePVGM | ( | const double | dT, | |
Matrix & | Q | |||
) |
dT | The change in time since the last update [s]. |
Q | The process noise matrix [8 x 8]. |
Definition at line 2616 of file GNSS_Estimator.cpp.
bool GNSS::GNSS_Estimator::ComputeProcessNoiseMatrix_8StatePVGM_Float | ( | const double | dT, | |
Matrix & | Q | |||
) |
dT | The change in time since the last update [s]. |
Q | The process noise matrix [(8 + nrAmb) x (8 + nrAmb)]. |
Definition at line 2701 of file GNSS_Estimator.cpp.
bool GNSS::GNSS_Estimator::ComputeProcessNoiseMatrix_6StatePVGM_Float | ( | const double | dT, | |
Matrix & | Q | |||
) |
dT | The change in time since the last update [s]. |
Q | The process noise matrix [(8 + nrAmb) x (8 + nrAmb)]. |
Definition at line 2784 of file GNSS_Estimator.cpp.
bool GNSS::GNSS_Estimator::InitializeStateVarianceCovariance_8StatePVGM | ( | const double | std_lat, | |
const double | std_lon, | |||
const double | std_hgt, | |||
const double | std_vn, | |||
const double | std_ve, | |||
const double | std_vup, | |||
const double | std_clk, | |||
const double | std_clkdrift, | |||
Matrix & | P | |||
) |
Initialize the state variance-covariance matrix for the 8 state PV Gauss Markov model.
std_lat | The standard deviation uncertainty in the latitude [m]. |
std_lon | The standard deviation uncertainty in the longitude [m]. |
std_hgt | The standard deviation uncertainty in the height [m]. |
std_vn | The standard deviation uncertainty in the northing velocity [m/s]. |
std_ve | The standard deviation uncertainty in the easting velocity [m/s]. |
std_vup | The standard deviation uncertainty in the up velocity [m/s]. |
std_clk | The standard deviation uncertainty in the clock offset [m]. |
std_clkdrift | The standard deviation uncertainty in the clock drift [m/s]. |
P | The variance covariance of the states [8x8]. |
Definition at line 3177 of file GNSS_Estimator.cpp.
bool GNSS::GNSS_Estimator::InitializeStateVarianceCovariance_6StatePVGM | ( | const double | std_lat, | |
const double | std_lon, | |||
const double | std_hgt, | |||
const double | std_vn, | |||
const double | std_ve, | |||
const double | std_vup, | |||
Matrix & | P | |||
) |
Initialize the state variance-covariance matrix for the 6 state PV Gauss Markov model.
std_lat | The standard deviation uncertainty in the latitude [m]. |
std_lon | The standard deviation uncertainty in the longitude [m]. |
std_hgt | The standard deviation uncertainty in the height [m]. |
std_vn | The standard deviation uncertainty in the northing velocity [m/s]. |
std_ve | The standard deviation uncertainty in the easting velocity [m/s]. |
std_vup | The standard deviation uncertainty in the up velocity [m/s]. |
P | The variance covariance of the states [6x6]. |
Definition at line 3211 of file GNSS_Estimator.cpp.
bool GNSS::GNSS_Estimator::PredictAhead_8StatePVGM | ( | GNSS_RxData & | rxData, | |
const double | dT, | |||
Matrix & | T, | |||
Matrix & | Q, | |||
Matrix & | P | |||
) |
rxData | The receiver data. |
dT | The change in time since the last update [s]. |
T | The transition matrix [8 x 8] (output). |
Q | The process noise matrix [8 x 8] (output). |
P | The state variance covariance matrix [8 x 8] (input/output). |
Definition at line 2873 of file GNSS_Estimator.cpp.
bool GNSS::GNSS_Estimator::PredictAhead_8StatePVGM_Float | ( | GNSS_RxData & | rxData, | |
const double | dT, | |||
Matrix & | T, | |||
Matrix & | Q, | |||
Matrix & | P | |||
) |
rxData | The receiver data. |
dT | The change in time since the last update [s]. |
T | The transition matrix [(8 + nrAmb) x (8 + nrAmb)] (output). |
Q | The process noise matrix [(8 + nrAmb) x (8 + nrAmb)] (output). |
P | The state variance covariance matrix [(8 + nrAmb) x (8 + nrAmb)] (input/output). |
Definition at line 2956 of file GNSS_Estimator.cpp.
bool GNSS::GNSS_Estimator::PredictAhead_6StatePVGM_Float | ( | GNSS_RxData & | rxData, | |
const double | dT, | |||
Matrix & | T, | |||
Matrix & | Q, | |||
Matrix & | P | |||
) |
rxData | The receiver data. |
dT | The change in time since the last update [s]. |
T | The transition matrix [(8 + nrAmb) x (8 + nrAmb)] (output). |
Q | The process noise matrix [(8 + nrAmb) x (8 + nrAmb)] (output). |
P | The state variance covariance matrix [(8 + nrAmb) x (8 + nrAmb)] (input/output). |
Definition at line 3071 of file GNSS_Estimator.cpp.
bool GNSS::GNSS_Estimator::Kalman_Update_8StatePVGM | ( | GNSS_RxData * | rxData, | |
GNSS_RxData * | rxBaseData, | |||
Matrix & | P | |||
) |
rxData | A pointer to the rover receiver data. This must be a valid pointer. |
rxBaseData | A pointer to the reference receiver data if available. NULL if not available. |
P | The variance-covariance of the states. |
Definition at line 3242 of file GNSS_Estimator.cpp.
bool GNSS::GNSS_Estimator::Kalman_Update_8StatePVGM_SequentialMode | ( | GNSS_RxData * | rxData, | |
GNSS_RxData * | rxBaseData, | |||
Matrix & | P | |||
) |
rxData | A pointer to the rover receiver data. This must be a valid pointer. |
rxBaseData | A pointer to the reference receiver data if available. NULL if not available. |
P | The variance-covariance of the states. |
Definition at line 4186 of file GNSS_Estimator.cpp.
bool GNSS::GNSS_Estimator::Kalman_Update_8StatePVGM_SequentialMode_FloatSolution | ( | GNSS_RxData * | rxData, | |
GNSS_RxData * | rxBaseData, | |||
Matrix & | P | |||
) |
rxData | A pointer to the rover receiver data. This must be a valid pointer. |
rxBaseData | A pointer to the reference receiver data if available. NULL if not available. |
P | The variance-covariance of the states. |
Definition at line 4643 of file GNSS_Estimator.cpp.
bool GNSS::GNSS_Estimator::Kalman_Update_6StatePVGM_FloatSolution | ( | GNSS_RxData * | rxData, | |
GNSS_RxData * | rxBaseData, | |||
Matrix & | P | |||
) |
rxData | A pointer to the rover receiver data. This must be a valid pointer. |
rxBaseData | A pointer to the reference receiver data if available. NULL if not available. |
P | The variance-covariance of the states. |
Definition at line 3637 of file GNSS_Estimator.cpp.
bool GNSS::GNSS_Estimator::FixAmbiguities | ( | ) |
Fix ambiguities, right now does nothing.
Definition at line 4179 of file GNSS_Estimator.cpp.
bool GNSS::GNSS_Estimator::UpdateTime | ( | GNSS_RxData & | rxData | ) |
Update the rest of m_pvt.time struct based on the gps week and time of week only.
rxData | The receiver data. The m_pvt.time struct is updated. |
Definition at line 621 of file GNSS_Estimator.cpp.
bool GNSS::GNSS_Estimator::PerformLeastSquares_8StatePVT | ( | GNSS_RxData * | rxData, | |
GNSS_RxData * | rxBaseData, | |||
bool & | wasPositionComputed, | |||
bool & | wasVelocityComputed | |||
) |
Perform least squares using pseudoranges and Doppler measurments to determine the eight states: (lat,lon,hgt,vn,ve,vup,clk,clkdrift).
rxData | A pointer to the rover receiver data. This must be a valid pointer. |
rxBaseData | A pointer to the reference receiver data if available. NULL if not available. |
wasPositionComputed | A boolean to indicate if a position solution was computed. |
wasVelocityComputed | A boolean to indicate if a velocity solution was computed. |
Definition at line 86 of file GNSS_Estimator.cpp.
bool GNSS::GNSS_Estimator::PrintMatToDebug | ( | const char * | name, | |
Matrix & | M | |||
) |
A static function for outputting a matrix to the console.
Definition at line 5199 of file GNSS_Estimator.cpp.
bool GNSS::GNSS_Estimator::DetermineAmbiguitiesChanges | ( | GNSS_RxData * | rxData, | |
GNSS_RxData * | rxBaseData, | |||
Matrix & | P, | |||
bool & | changeOccured | |||
) |
Deal with changes in ambiguities. Remove the rows and columns from P of the ambiguities that are no longer active. Add rows and columns to P for new ambiguities.
rxData | Pointer to the receiver data. |
rxBaseData | Pointer to the reference receiver data if any (NULL if not available). |
P | The state variance-covariance matrix. |
Definition at line 5229 of file GNSS_Estimator.cpp.
The Least Sqaures estimation matrix information for the position and clock offset solution.
Definition at line 727 of file GNSS_Estimator.h.
The Least Sqaures estimation matrix information for the velocity and clock drift solution.
Definition at line 728 of file GNSS_Estimator.h.
stRTKDD GNSS::GNSS_Estimator::m_RTKDD |
The double difference RTK estimation matrix information.
Definition at line 731 of file GNSS_Estimator.h.
stKalmanModel GNSS::GNSS_Estimator::m_KF |
Kalman filter model settings for 1st order Gauss Markov Velocity/ClkDrift states. 8 state PVGM model.
Definition at line 736 of file GNSS_Estimator.h.
std::list<stAmbiguityInfo> GNSS::GNSS_Estimator::m_ActiveAmbiguitiesList |
GDM store in RxData?
This list keeps track of which amibiguities are active. i.e. already included in the state vector and state variance-covariance matrix.
Definition at line 759 of file GNSS_Estimator.h.
Matrix GNSS::GNSS_Estimator::HtW [protected] |
Matrix GNSS::GNSS_Estimator::Ninv [protected] |
The inverse of the normal matrix, N = (H^T*W*H)^-1, u x u.
Definition at line 764 of file GNSS_Estimator.h.