16#include <fmt/format.h>
69 std::shared_ptr<SppSolution>
calcSppSolution(
const std::shared_ptr<const GnssObs>& gnssObs,
70 const std::vector<const GnssNavInfo*>& gnssNavInfos,
71 const std::string& nameId);
86 [[nodiscard]]
bool canCalculateVelocity(
size_t nDoppMeas)
const;
89 [[nodiscard]]
bool canEstimateInterFrequencyBias()
const;
95 void updateInterSystemTimeDifferences(
const std::set<SatelliteSystem>& usedSatSystems,
size_t nDoppMeas,
const std::string& nameId);
100 void updateInterFrequencyBiases(
const Observations& observations,
const std::string& nameId);
106 std::vector<States::StateKeyTypes> determineStateKeys(
const std::set<SatelliteSystem>& usedSatSystems,
size_t nDoppMeas,
const std::string& nameId)
const;
113 std::vector<Meas::MeasKeyTypes> determineMeasKeys(
const Observations& observations,
size_t nPsrMeas,
size_t nDoppMeas,
const std::string& nameId)
const;
122 const std::vector<Meas::MeasKeyTypes>& measKeys,
124 const std::string& nameId)
const;
133 const std::string& nameId);
142 const std::string& nameId);
154 const Eigen::Vector3d& e_oldPos,
155 size_t nParams,
size_t nUniqueDopplerMeas,
double dt,
const std::string& nameId);
163 const std::string& nameId);
166 std::array<Receiver, ReceiverType::ReceiverType_COUNT> _receiver = { {
Receiver(
Rover) } };
172 bool _estimateInterFreqBiases =
true;
175 SPP::KalmanFilter _kalmanFilter;
180 Eigen::Matrix3d _e_lastPositionCovarianceMatrix;
181 Eigen::Matrix3d _e_lastVelocityCovarianceMatrix;
222#ifndef DOXYGEN_IGNORE
226struct fmt::formatter<NAV::SPP::Algorithm::EstimatorType> : fmt::formatter<const char*>
232 template<
typename FormatContext>
235 return fmt::formatter<const char*>::format(NAV::to_string(type), ctx);
241struct fmt::formatter<NAV::SPP::Algorithm::ReceiverType> : fmt::formatter<const char*>
247 template<
typename FormatContext>
250 return fmt::formatter<const char*>::format(NAV::to_string(type), ctx);
std::ostream & operator<<(std::ostream &os, const NAV::SPP::Algorithm::EstimatorType &obj)
Stream insertion operator overload.
nlohmann::json json
json namespace
Definition FlowManager.hpp:21
GNSS Observation messages.
Keys for the SPP algorithm for use inside the KeyedMatrices.
Calculates Observation estimates.
Observation data used for calculations.
@ Doppler
Doppler (Pseudorange rate)
Definition GnssObs.hpp:39
@ Pseudorange
Pseudorange.
Definition GnssObs.hpp:37
Dynamic sized KeyedMatrix.
Definition KeyedMatrix.hpp:2055
Dynamic sized KeyedVector.
Definition KeyedMatrix.hpp:1569
Calculates Observation estimates.
Definition ObservationEstimator.hpp:44
Observation Filter.
Definition ObservationFilter.hpp:45
Single Point Positioning Algorithm.
Definition Algorithm.hpp:37
friend void to_json(json &j, const Algorithm &obj)
Converts the provided object into json.
void reset()
Reset the algorithm.
EstimatorType
Possible SPP estimation algorithms.
Definition Algorithm.hpp:41
@ WeightedLeastSquares
Weighted Linear Least Squares.
@ COUNT
Amount of items in the enum.
@ KalmanFilter
Kalman Filter.
@ LeastSquares
Linear Least Squares.
ObservationFilter _obsFilter
Observation Filter.
Definition Algorithm.hpp:74
friend void from_json(const json &j, Algorithm &obj)
Converts the provided json object into a node object.
std::shared_ptr< SppSolution > calcSppSolution(const std::shared_ptr< const GnssObs > &gnssObs, const std::vector< const GnssNavInfo * > &gnssNavInfos, const std::string &nameId)
Calculate the SPP solution.
ReceiverType
Receiver Types.
Definition Algorithm.hpp:50
@ ReceiverType_COUNT
Amount of receiver types.
Definition Algorithm.hpp:52
@ Rover
Rover.
Definition Algorithm.hpp:51
ObservationEstimator _obsEstimator
Observation Estimator.
Definition Algorithm.hpp:79
bool ShowGuiWidgets(const char *id, float itemWidth, float unitWidth)
Shows the GUI input to select the options.
Observation storage type.
Definition Observation.hpp:38
Receiver information.
Definition Receiver.hpp:35