0.2.0
|
The Spp Kalman Filter related options. More...
Public Member Functions | |
void | addInterFrequencyBias (const Frequency &freq) |
Adds the frequency as inter-frequency bias state. | |
KeyedMatrixXd< States::StateKeyTypes, States::StateKeyTypes > | calcProcessNoiseMatrixGroves (double dt, const Eigen::Vector3d &lla_pos, const std::string &nameId) const |
Calculates the process noise matrix Q. | |
void | deinitialize () |
Deinitialize the KF (can be used to reinitialize the Filter when results seem strange) | |
const KeyedMatrixXd< States::StateKeyTypes, States::StateKeyTypes > & | getErrorCovarianceMatrix () const |
Returns the Error covariance matrix 𝐏 | |
const KeyedVectorXd< States::StateKeyTypes > & | getState () const |
Returns the State vector x̂ | |
const std::vector< SPP::States::StateKeyTypes > & | getStateKeys () const |
Get the States in the Kalman Filter. | |
void | initialize (const KeyedVectorXd< States::StateKeyTypes > &states, const KeyedMatrixXd< States::StateKeyTypes, States::StateKeyTypes > &variance) |
Initialize the filter. | |
bool | isInitialized () const |
Checks wether the Kalman filter is initialized. | |
void | predict (const double &dt, const Eigen::Vector3d &lla_pos, const std::string &nameId) |
Does the Kalman Filter prediction. | |
void | reset () |
Resets the filter. | |
void | setClockBiasErrorCovariance (double clkPhaseDrift) |
Set the P matrix entry for the covariance of the clock phase drift. | |
bool | ShowGuiWidgets (const char *id, bool useDoppler, bool multiConstellation, bool estimateInterFrequencyBiases, float itemWidth, float unitWidth) |
Shows the GUI input to select the options. | |
void | update (const std::vector< Meas::MeasKeyTypes > &measKeys, const KeyedMatrixXd< Meas::MeasKeyTypes, States::StateKeyTypes > &H, const KeyedMatrixXd< Meas::MeasKeyTypes, Meas::MeasKeyTypes > &R, const KeyedVectorXd< Meas::MeasKeyTypes > &dz, const std::string &nameId) |
Does the Kalman Filter update. | |
SatelliteSystem | updateInterSystemTimeDifferences (const std::set< SatelliteSystem > &usedSatSystems, SatelliteSystem oldRefSys, SatelliteSystem newRefSys, const std::string &nameId) |
Adds the inter system time difference bias and drift. | |
The Spp Kalman Filter related options.
void NAV::SPP::KalmanFilter::addInterFrequencyBias | ( | const Frequency & | freq | ) |
Adds the frequency as inter-frequency bias state.
[in] | freq | Frequency to estimate the inter-frequency bias for |
KeyedMatrixXd< States::StateKeyTypes, States::StateKeyTypes > NAV::SPP::KalmanFilter::calcProcessNoiseMatrixGroves | ( | double | dt, |
const Eigen::Vector3d & | lla_pos, | ||
const std::string & | nameId ) const |
Calculates the process noise matrix Q.
[in] | dt | Time step [s] |
[in] | lla_pos | Position in Latitude, Longitude, Altitude [rad, rad, m] |
[in] | nameId | Name and id of the node calling this (only used for logging purposes) |
void NAV::SPP::KalmanFilter::initialize | ( | const KeyedVectorXd< States::StateKeyTypes > & | states, |
const KeyedMatrixXd< States::StateKeyTypes, States::StateKeyTypes > & | variance ) |
Initialize the filter.
states | States to initialize with |
variance | Variance of the state |
void NAV::SPP::KalmanFilter::predict | ( | const double & | dt, |
const Eigen::Vector3d & | lla_pos, | ||
const std::string & | nameId ) |
Does the Kalman Filter prediction.
[in] | dt | Time step [s] |
[in] | lla_pos | Position in Latitude, Longitude, Altitude [rad, rad, m] |
[in] | nameId | Name and id of the node calling this (only used for logging purposes) |
void NAV::SPP::KalmanFilter::setClockBiasErrorCovariance | ( | double | clkPhaseDrift | ) |
Set the P matrix entry for the covariance of the clock phase drift.
clkPhaseDrift | Clock phase drift variance in [m^2 / s] |
bool NAV::SPP::KalmanFilter::ShowGuiWidgets | ( | const char * | id, |
bool | useDoppler, | ||
bool | multiConstellation, | ||
bool | estimateInterFrequencyBiases, | ||
float | itemWidth, | ||
float | unitWidth ) |
Shows the GUI input to select the options.
[in] | id | Unique id for ImGui. |
[in] | useDoppler | Whether to use doppler measurements |
[in] | multiConstellation | Whether to use multiple constellations |
[in] | estimateInterFrequencyBiases | Whether to use estimate inter frequency biases |
[in] | itemWidth | Width of the widgets |
[in] | unitWidth | Width on unit inputs |
void NAV::SPP::KalmanFilter::update | ( | const std::vector< Meas::MeasKeyTypes > & | measKeys, |
const KeyedMatrixXd< Meas::MeasKeyTypes, States::StateKeyTypes > & | H, | ||
const KeyedMatrixXd< Meas::MeasKeyTypes, Meas::MeasKeyTypes > & | R, | ||
const KeyedVectorXd< Meas::MeasKeyTypes > & | dz, | ||
const std::string & | nameId ) |
Does the Kalman Filter update.
[in] | measKeys | Measurement keys |
[in] | H | Measurement sensitivity matrix 𝐇 |
[in] | R | Measurement noise covariance matrix 𝐑 |
[in] | dz | Measurement innovation 𝜹𝐳 |
[in] | nameId | Name and id of the node calling this (only used for logging purposes) |
SatelliteSystem NAV::SPP::KalmanFilter::updateInterSystemTimeDifferences | ( | const std::set< SatelliteSystem > & | usedSatSystems, |
SatelliteSystem | oldRefSys, | ||
SatelliteSystem | newRefSys, | ||
const std::string & | nameId ) |
Adds the inter system time difference bias and drift.
[in] | usedSatSystems | Used Satellite systems this epoch |
[in] | oldRefSys | Old Satellite time reference system |
[in] | newRefSys | New Satellite time reference system |
[in] | nameId | Name and id of the node calling this (only used for logging purposes) |