0.5.0
Loading...
Searching...
No Matches
NAV::RtkSolution Class Reference

SPP Algorithm output. More...

Data Structures

struct  AmbiguityDD
 Ambiguity double differences. More...
struct  Observable
 Observable. More...
struct  Outlier
 Outlier information. More...
struct  PivotChange
 Pivot Change information. More...
struct  SatData
 Satellite specific data. More...

Public Types

enum class  SolutionType : uint8_t {
  None ,
  SPP ,
  Predicted ,
  RTK_Float ,
  RTK_Fixed
}
 Possible types of the RTK solution. More...

Public Member Functions

std::vector< std::string > dynamicDataDescriptors () const override
 Returns a vector of data descriptors for the dynamic data.
std::vector< std::pair< std::string, double > > getDynamicData () const override
 Returns a vector of data descriptors and values for the dynamic data.
std::optional< double > getDynamicDataAt (const std::string &descriptor) const override
 Get the value for the descriptor.
std::string getType () const override
 Returns the type of the data class.
std::optional< double > getValueAt (size_t idx) const override
 Get the value at the index.
void guiTooltip (bool detailView, bool firstOpen, const char *displayName, const char *id, int *rootWindow) const override
 Shows a GUI tooltip to look into details of the observation.
bool hasTooltip () const override
 Return whether this data has a tooltip.
std::vector< std::string > staticDataDescriptors () const override
 Returns a vector of data descriptors.
size_t staticDescriptorCount () const override
 Get the amount of descriptors.
Public Member Functions inherited from NAV::PosVel
const Eigen::Vector3d & e_velocity () const
 Returns the velocity in [m/s], in earth coordinates.
std::optional< Eigen::Vector3d > e_velocityStdev () const
 Returns the standard deviation of the velocity in [m/s], in earth coordinates.
const Eigen::Vector3d & n_velocity () const
 Returns the velocity in [m/s], in navigation coordinates.
std::optional< Eigen::Vector3d > n_velocityStdev () const
 Returns the standard deviation of the velocity in [m/s], in navigation coordinates.
template<typename DerivedP, typename DerivedV>
void setPosVel_e (const Eigen::MatrixBase< DerivedP > &e_position, const Eigen::MatrixBase< DerivedV > &e_velocity)
 Set the position and velocity.
template<typename DerivedP, typename DerivedV>
void setPosVel_n (const Eigen::MatrixBase< DerivedP > &lla_position, const Eigen::MatrixBase< DerivedV > &n_velocity)
 Set the position and velocity.
template<typename DerivedP, typename DerivedV, typename Derived>
void setPosVelAndCov_e (const Eigen::MatrixBase< DerivedP > &e_position, const Eigen::MatrixBase< DerivedV > &e_velocity, const Eigen::MatrixBase< Derived > &e_covarianceMatrix)
 Set the position, velocity and the covariance matrix.
template<typename DerivedP, typename DerivedV, typename Derived>
void setPosVelAndCov_n (const Eigen::MatrixBase< DerivedP > &lla_position, const Eigen::MatrixBase< DerivedV > &n_velocity, const Eigen::MatrixBase< Derived > &n_covarianceMatrix)
 Set the position, velocity and the covariance matrix.
template<typename Derived>
void setPosVelCovarianceMatrix_e (const Eigen::MatrixBase< Derived > &e_covarianceMatrix)
 Set the Covariance matrix in ECEF coordinates.
template<typename Derived>
void setPosVelCovarianceMatrix_n (const Eigen::MatrixBase< Derived > &n_covarianceMatrix)
 Set the Covariance matrix in NED coordinates.
bool setValueAt (size_t idx, double value) override
 Set the value at the index.
template<typename Derived>
void setVelocity_e (const Eigen::MatrixBase< Derived > &e_velocity)
 Set the Velocity in the earth frame.
template<typename Derived>
void setVelocity_n (const Eigen::MatrixBase< Derived > &n_velocity)
 Set the Velocity in the NED frame.
Public Member Functions inherited from NAV::Pos
const double & altitude () const
 Returns the altitude (height above ground) in [m].
std::optional< std::reference_wrapper< const KeyedMatrixXd< Keys::MotionModelKey, Keys::MotionModelKey > > > e_CovarianceMatrix () const
 Returns the Covariance matrix in ECEF frame.
const Eigen::Vector3d & e_position () const
 Returns the coordinates in [m].
std::optional< Eigen::Vector3d > e_positionStdev () const
 Returns the standard deviation of the position in ECEF frame coordinates in [m].
Eigen::Quaterniond e_Quat_n () const
 Returns the Quaternion from navigation to Earth-fixed frame.
const double & latitude () const
 Returns the latitude 𝜙 in [rad].
const Eigen::Vector3d & lla_position () const
 Returns the latitude 𝜙, longitude λ and altitude (height above ground) in [rad, rad, m].
const double & longitude () const
 Returns the longitude λ in [rad].
std::optional< std::reference_wrapper< const KeyedMatrixXd< Keys::MotionModelKey, Keys::MotionModelKey > > > n_CovarianceMatrix () const
 Returns the Covariance matrix in local navigation frame.
std::optional< Eigen::Vector3d > n_positionStdev () const
 Returns the standard deviation of the position in local navigation frame coordinates in [m].
Eigen::Quaterniond n_Quat_e () const
 Returns the Quaternion from Earth-fixed frame to navigation.
template<typename Derived>
void setPosCovarianceMatrix_e (const Eigen::MatrixBase< Derived > &e_covarianceMatrix)
 Set the Covariance matrix in ECEF coordinates.
template<typename Derived>
void setPosCovarianceMatrix_n (const Eigen::MatrixBase< Derived > &n_covarianceMatrix)
 Set the Covariance matrix in NED coordinates.
template<typename Derived>
void setPosition_e (const Eigen::MatrixBase< Derived > &e_position)
 Set the Position in coordinates.
template<typename Derived>
void setPosition_lla (const Eigen::MatrixBase< Derived > &lla_position)
 Set the Position lla object.
template<typename DerivedP, typename Derived>
void setPositionAndCov_e (const Eigen::MatrixBase< DerivedP > &e_position, const Eigen::MatrixBase< Derived > &e_covarianceMatrix)
 Set the position and the covariance matrix.
template<typename DerivedP, typename Derived>
void setPositionAndCov_n (const Eigen::MatrixBase< DerivedP > &lla_position, const Eigen::MatrixBase< Derived > &n_covarianceMatrix)
 Set the position and the covariance matrix.
Public Member Functions inherited from NAV::NodeData
void addEvent (const std::string &text)
 Adds the event to the list.
const std::vector< std::string > & events () const
 Returns a vector of string events associated with this data.
double getValueAtOrNaN (size_t idx) const
 Get the value at the index or NaN if not in the observation.
 NodeData ()=default
 Default constructor.
 NodeData (const NodeData &)=default
 Copy constructor.
 NodeData (NodeData &&)=default
 Move constructor.
NodeDataoperator= (const NodeData &)=default
 Copy assignment operator.
NodeDataoperator= (NodeData &&)=default
 Move assignment operator.
virtual bool setDynamicDataAt (const std::string &, double)
 Set the value for the descriptor.
virtual ~NodeData ()=default
 Destructor.

Static Public Member Functions

static std::vector< std::string > GetStaticDataDescriptors ()
 Returns a vector of data descriptors.
static constexpr size_t GetStaticDescriptorCount ()
 Get the amount of descriptors.
static std::vector< std::string > parentTypes ()
 Returns the parent types of the data class.
static std::string type ()
 Returns the type of the data class.
Static Public Member Functions inherited from NAV::PosVel
static std::vector< std::string > GetStaticDataDescriptors ()
 Returns a vector of data descriptors.
static constexpr size_t GetStaticDescriptorCount ()
 Get the amount of descriptors.
static std::vector< std::string > parentTypes ()
 Returns the parent types of the data class.
static std::string type ()
 Returns the type of the data class.
Static Public Member Functions inherited from NAV::Pos
static std::vector< std::string > GetStaticDataDescriptors ()
 Returns a vector of data descriptors.
static constexpr size_t GetStaticDescriptorCount ()
 Get the amount of descriptors.
static std::vector< std::string > parentTypes ()
 Returns the parent types of the data class.
static std::string type ()
 Returns the type of the data class.
Static Public Member Functions inherited from NAV::NodeData
static std::vector< std::string > GetStaticDataDescriptors ()
 Returns a vector of data descriptors.
static constexpr size_t GetStaticDescriptorCount ()
 Get the amount of descriptors.
static std::vector< std::string > parentTypes ()
 Returns the parent types of the data class.
static std::string type ()
 Returns the type of the data class.

Data Fields

double ambiguityCriticalValueRatio
 Ambiguity Critical Value µ ∈ (0, 1] (R1/R2 ≤ µ)
std::vector< AmbiguityDDambiguityDD_br
 Double differenced ambiguities.
AmbiguityResolutionFailure ambiguityResolutionFailure
 Ambiguity resolution failure.
InsTime baseTime
 Time of the base observation used.
std::unordered_map< std::pair< Code, GnssObs::ObservationType >, PivotChangechangedPivotSatellites
 List of pivot satellite changes.
std::vector< std::pair< CycleSlipDetector::Result, std::string > > cycleSlipDetectorResult
 Cycle slip detector results and name of the receiver.
double distanceBaseRover
 Distance of Rover to base [m].
ObservationFilter::Filtered filtered
 Signals filtered by the observation filter.
KeyedVectorXd< RTK::Meas::MeasKeyTypesmeasInnovation
 𝐳 Measurement vector
std::optional< size_t > nAmbiguitiesFixed
 Number of Ambiguities fixed.
std::vector< SatSigIdnewEstimatedAmbiguity
 Newly estimated ambiguities.
size_t nisRemovedCnt
 Amount of observations removed by NIS.
std::optional< KeyedKalmanFilter< double, RTK::States::StateKeyType, RTK::Meas::MeasKeyTypes >::NISResult > nisResultFinal
 Normalized Innovation Squared (NIS) test result (last NIS iteration)
std::optional< KeyedKalmanFilter< double, RTK::States::StateKeyType, RTK::Meas::MeasKeyTypes >::NISResult > nisResultInitial
 Normalized Innovation Squared (NIS) test result (before removing anything)
std::unordered_map< GnssObs::ObservationType, size_t > nObservations
 Number of utilized observations (including pivot)
std::unordered_map< GnssObs::ObservationType, size_t > nObservationsUniqueSatellite
 Number of utilized observations (counted once for each satellite)
size_t nSatellites
 Amount of satellites used.
std::multiset< ObservableobservableFiltered
 Observables available from receivers, but filtered by GUI settings.
std::multiset< ObservableobservableReceived
 Observables available from receivers (only if double diff possible)
std::multiset< ObservableobservableUsed
 Observables used for the final solution.
std::vector< Outlieroutliers
 List of found outliers.
std::multiset< Observablepivots
 List of pivot satellites.
std::vector< std::pair< SatId, SatData > > satData
 Extended data for each satellite.
SolutionType solType
 Type of th solution.
Data Fields inherited from NAV::NodeData
InsTime insTime
 Time at which the message was received.

Private Member Functions

void guiTooltipAmbiguities (const char *id) const
 Print a table for the ambiguities.
void guiTooltipObservationTable (const std::multiset< RtkSolution::Observable > &observables, bool showSatCounts, bool colorPivots, bool colorNotUsed, bool colorCycleSlips, bool colorPivotChanges, const char *id) const
 Print an observation table to the GUI.
void guiTooltipSatellites (const std::map< SatelliteSystem, std::unordered_set< SatId > > &satsReceived, const char *id) const
 Print a table for the satellites.

Additional Inherited Members

Protected Attributes inherited from NAV::Pos
std::optional< KeyedMatrixXd< Keys::MotionModelKey, Keys::MotionModelKey > > _e_covarianceMatrix
 Covariance matrix in ECEF coordinates.
std::optional< KeyedMatrixXd< Keys::MotionModelKey, Keys::MotionModelKey > > _n_covarianceMatrix
 Covariance matrix in local navigation coordinates.
Protected Attributes inherited from NAV::NodeData
std::vector< std::string > _events
 List of events.

Detailed Description

SPP Algorithm output.

Definition at line 37 of file RtkSolution.hpp.

Member Enumeration Documentation

◆ SolutionType

enum class NAV::RtkSolution::SolutionType : uint8_t
strong

Possible types of the RTK solution.

Enumerator
None 

No solution type specified.

SPP 

Solution calculated via SPP algorithm because of missing data for RTK.

Predicted 

Only predicted by Kalman Filter.

RTK_Float 

RTK solution with floating point ambiguities.

RTK_Fixed 

RTK solution with fixed ambiguities to integers.

Definition at line 250 of file RtkSolution.hpp.

Member Function Documentation

◆ dynamicDataDescriptors()

std::vector< std::string > NAV::RtkSolution::dynamicDataDescriptors ( ) const
inlinenodiscardoverridevirtual

Returns a vector of data descriptors for the dynamic data.

Reimplemented from NAV::NodeData.

Definition at line 163 of file RtkSolution.hpp.

◆ getDynamicData()

std::vector< std::pair< std::string, double > > NAV::RtkSolution::getDynamicData ( ) const
inlinenodiscardoverridevirtual

Returns a vector of data descriptors and values for the dynamic data.

Reimplemented from NAV::NodeData.

Definition at line 212 of file RtkSolution.hpp.

◆ getDynamicDataAt()

std::optional< double > NAV::RtkSolution::getDynamicDataAt ( const std::string & descriptor) const
inlinenodiscardoverridevirtual

Get the value for the descriptor.

Returns
Value if in the observation

Reimplemented from NAV::NodeData.

Definition at line 192 of file RtkSolution.hpp.

◆ GetStaticDataDescriptors()

std::vector< std::string > NAV::RtkSolution::GetStaticDataDescriptors ( )
inlinestaticnodiscard

Returns a vector of data descriptors.

Definition at line 61 of file RtkSolution.hpp.

◆ GetStaticDescriptorCount()

constexpr size_t NAV::RtkSolution::GetStaticDescriptorCount ( )
inlinestaticnodiscardconstexpr

Get the amount of descriptors.

Definition at line 88 of file RtkSolution.hpp.

◆ getType()

std::string NAV::RtkSolution::getType ( ) const
inlinenodiscardoverridevirtual

Returns the type of the data class.

Returns
The data type

Reimplemented from NAV::PosVel.

Definition at line 49 of file RtkSolution.hpp.

◆ getValueAt()

std::optional< double > NAV::RtkSolution::getValueAt ( size_t idx) const
inlinenodiscardoverridevirtual

Get the value at the index.

Parameters
idxIndex corresponding to data descriptor order
Returns
Value if in the observation

Reimplemented from NAV::PosVel.

Definition at line 99 of file RtkSolution.hpp.

◆ guiTooltip()

void NAV::RtkSolution::guiTooltip ( bool detailView,
bool firstOpen,
const char * displayName,
const char * id,
int * rootWindow ) const
overridevirtual

Shows a GUI tooltip to look into details of the observation.

Parameters
[in]detailViewFlag to show the detailed view
[in]firstOpenFlag whether the tooltip is opened once
[in]displayNameData identifier, can be used in dynamic data to identify the correct data
[in]idUnique identifier
[in]rootWindowPointer to the root window opening the tooltip

Reimplemented from NAV::NodeData.

Definition at line 460 of file RtkSolution.cpp.

◆ guiTooltipAmbiguities()

void NAV::RtkSolution::guiTooltipAmbiguities ( const char * id) const
private

Print a table for the ambiguities.

Parameters
[in]idUnique identifier

Definition at line 409 of file RtkSolution.cpp.

◆ guiTooltipObservationTable()

void NAV::RtkSolution::guiTooltipObservationTable ( const std::multiset< RtkSolution::Observable > & observables,
bool showSatCounts,
bool colorPivots,
bool colorNotUsed,
bool colorCycleSlips,
bool colorPivotChanges,
const char * id ) const
private

Print an observation table to the GUI.

Parameters
[in]observablesObservables
[in]showSatCountsWhether to show the observable count in the table header
[in]colorPivotsWhether to color the pivot satellite
[in]colorNotUsedWhether to color observations not used
[in]colorCycleSlipsWhether to color cycle-slips
[in]colorPivotChangesWhether to color pivot changes
[in]idUnique identifier

Definition at line 139 of file RtkSolution.cpp.

◆ guiTooltipSatellites()

void NAV::RtkSolution::guiTooltipSatellites ( const std::map< SatelliteSystem, std::unordered_set< SatId > > & satsReceived,
const char * id ) const
private

Print a table for the satellites.

Parameters
[in]satsReceivedList of received satellites
[in]idUnique identifier

Definition at line 34 of file RtkSolution.cpp.

◆ hasTooltip()

bool NAV::RtkSolution::hasTooltip ( ) const
inlinenodiscardoverridevirtual

Return whether this data has a tooltip.

Reimplemented from NAV::NodeData.

Definition at line 245 of file RtkSolution.hpp.

◆ parentTypes()

std::vector< std::string > NAV::RtkSolution::parentTypes ( )
inlinestaticnodiscard

Returns the parent types of the data class.

Returns
The parent data types

Definition at line 53 of file RtkSolution.hpp.

◆ staticDataDescriptors()

std::vector< std::string > NAV::RtkSolution::staticDataDescriptors ( ) const
inlinenodiscardoverridevirtual

Returns a vector of data descriptors.

Reimplemented from NAV::PosVel.

Definition at line 91 of file RtkSolution.hpp.

◆ staticDescriptorCount()

size_t NAV::RtkSolution::staticDescriptorCount ( ) const
inlinenodiscardoverridevirtual

Get the amount of descriptors.

Reimplemented from NAV::PosVel.

Definition at line 94 of file RtkSolution.hpp.

◆ type()

std::string NAV::RtkSolution::type ( )
inlinestaticnodiscard

Returns the type of the data class.

Returns
The data type

Definition at line 42 of file RtkSolution.hpp.

Field Documentation

◆ ambiguityCriticalValueRatio

double NAV::RtkSolution::ambiguityCriticalValueRatio

Ambiguity Critical Value µ ∈ (0, 1] (R1/R2 ≤ µ)

Definition at line 275 of file RtkSolution.hpp.

◆ ambiguityDD_br

std::vector<AmbiguityDD> NAV::RtkSolution::ambiguityDD_br

Double differenced ambiguities.

Definition at line 384 of file RtkSolution.hpp.

◆ ambiguityResolutionFailure

AmbiguityResolutionFailure NAV::RtkSolution::ambiguityResolutionFailure

Ambiguity resolution failure.

Definition at line 274 of file RtkSolution.hpp.

◆ baseTime

InsTime NAV::RtkSolution::baseTime

Time of the base observation used.

Definition at line 269 of file RtkSolution.hpp.

◆ changedPivotSatellites

std::unordered_map<std::pair<Code, GnssObs::ObservationType>, PivotChange> NAV::RtkSolution::changedPivotSatellites

List of pivot satellite changes.

Definition at line 306 of file RtkSolution.hpp.

◆ cycleSlipDetectorResult

std::vector<std::pair<CycleSlipDetector::Result, std::string> > NAV::RtkSolution::cycleSlipDetectorResult

Cycle slip detector results and name of the receiver.

Definition at line 279 of file RtkSolution.hpp.

◆ distanceBaseRover

double NAV::RtkSolution::distanceBaseRover

Distance of Rover to base [m].

Definition at line 266 of file RtkSolution.hpp.

◆ filtered

ObservationFilter::Filtered NAV::RtkSolution::filtered

Signals filtered by the observation filter.

Definition at line 340 of file RtkSolution.hpp.

◆ measInnovation

KeyedVectorXd<RTK::Meas::MeasKeyTypes> NAV::RtkSolution::measInnovation

𝐳 Measurement vector

Definition at line 387 of file RtkSolution.hpp.

◆ nAmbiguitiesFixed

std::optional<size_t> NAV::RtkSolution::nAmbiguitiesFixed

Number of Ambiguities fixed.

Definition at line 276 of file RtkSolution.hpp.

◆ newEstimatedAmbiguity

std::vector<SatSigId> NAV::RtkSolution::newEstimatedAmbiguity

Newly estimated ambiguities.

Definition at line 382 of file RtkSolution.hpp.

◆ nisRemovedCnt

size_t NAV::RtkSolution::nisRemovedCnt

Amount of observations removed by NIS.

Definition at line 371 of file RtkSolution.hpp.

◆ nisResultFinal

std::optional<KeyedKalmanFilter<double, RTK::States::StateKeyType, RTK::Meas::MeasKeyTypes>::NISResult> NAV::RtkSolution::nisResultFinal

Normalized Innovation Squared (NIS) test result (last NIS iteration)

Definition at line 369 of file RtkSolution.hpp.

◆ nisResultInitial

std::optional<KeyedKalmanFilter<double, RTK::States::StateKeyType, RTK::Meas::MeasKeyTypes>::NISResult> NAV::RtkSolution::nisResultInitial

Normalized Innovation Squared (NIS) test result (before removing anything)

Definition at line 367 of file RtkSolution.hpp.

◆ nObservations

std::unordered_map<GnssObs::ObservationType, size_t> NAV::RtkSolution::nObservations

Number of utilized observations (including pivot)

Definition at line 271 of file RtkSolution.hpp.

◆ nObservationsUniqueSatellite

std::unordered_map<GnssObs::ObservationType, size_t> NAV::RtkSolution::nObservationsUniqueSatellite

Number of utilized observations (counted once for each satellite)

Definition at line 272 of file RtkSolution.hpp.

◆ nSatellites

size_t NAV::RtkSolution::nSatellites

Amount of satellites used.

Definition at line 263 of file RtkSolution.hpp.

◆ observableFiltered

std::multiset<Observable> NAV::RtkSolution::observableFiltered

Observables available from receivers, but filtered by GUI settings.

Definition at line 335 of file RtkSolution.hpp.

◆ observableReceived

std::multiset<Observable> NAV::RtkSolution::observableReceived

Observables available from receivers (only if double diff possible)

Definition at line 333 of file RtkSolution.hpp.

◆ observableUsed

std::multiset<Observable> NAV::RtkSolution::observableUsed

Observables used for the final solution.

Definition at line 337 of file RtkSolution.hpp.

◆ outliers

std::vector<Outlier> NAV::RtkSolution::outliers

List of found outliers.

Definition at line 365 of file RtkSolution.hpp.

◆ pivots

std::multiset<Observable> NAV::RtkSolution::pivots

List of pivot satellites.

Definition at line 331 of file RtkSolution.hpp.

◆ satData

std::vector<std::pair<SatId, SatData> > NAV::RtkSolution::satData

Extended data for each satellite.

Definition at line 397 of file RtkSolution.hpp.

◆ solType

SolutionType NAV::RtkSolution::solType

Type of th solution.

Definition at line 260 of file RtkSolution.hpp.


The documentation for this class was generated from the following files: