Class LunarGnssCombinedMeasurement¶
Defined in File lunar_gnss_combined_measurement.h
Nested Relationships¶
Nested Types¶
Inheritance Relationships¶
Base Type¶
public lupnt::MeasurementClone< LunarGnssCombinedMeasurement >(Template Class MeasurementClone)
Class Documentation¶
-
class LunarGnssCombinedMeasurement : public lupnt::MeasurementClone<LunarGnssCombinedMeasurement>¶
Combined lunar-GNSS ODTS measurement model: a stack of per-channel GNSS observables (pseudorange/Doppler/carrier-phase) followed, when time-differenced carrier phase (TDCP) is enabled, by TDCP rows built from a stochastic-cloning state
[x_current; x_previous].This owns the measurement-model math that previously lived inside
LunarGnssODTSSimulation: the per-channel loop delegates toGnssMeasurement, and the TDCP rows difference the carrier range between the current and previous cloned states. The reusable pieces are exposed as static helpers so the simulation’s truth-data generation shares exactly the same model.Public Functions
-
LunarGnssCombinedMeasurement() = default¶
-
virtual MeasData Compute(const State &x, MatXd *H = nullptr) const override¶
Predict the measurement
z = h(x), its noise covarianceR, and (ifH != nullptr) the measurement JacobianH = dh/dxsizedn_z x x.size().- Parameters:
x – Estimation state.
H – [out] If non-null, filled with the measurement Jacobian; if null, only the value and covariance are computed.
- Returns:
MeasDatawithvalue = zandcovariance = R.
Public Static Functions
-
static VecXd ComputeMeasurementVector(const State &x, const std::vector<GnssChannel> &channels, const GnssMeasurementOptions &options, MatXd *H = nullptr)¶
Stack the per-channel GNSS observable vector
y = h(x)(and, ifH != nullptr, its Jacobian) by delegating toGnssMeasurementfor each channel.
-
static MatXd MeasurementCovariance(const std::vector<GnssChannel> &channels, const GnssMeasurementOptions &options)¶
Diagonal measurement covariance built from each channel’s per-observable sigmas.
-
static std::vector<TdcpPair> MakeTdcpPairs(const std::vector<GnssChannel> ¤t, const std::vector<GnssChannel> &previous)¶
Match carrier-phase channels between two epochs (same const/PRN/frequency).
-
static VecXd ComputeTdcpVector(const State ¤t_state, const State &previous_state, const std::vector<TdcpPair> &pairs, const GnssMeasurementOptions &options, MatXd *H = nullptr)¶
TDCP measurement vector (per pair, current-minus-previous carrier range) and, if
H != nullptr, its Jacobian with respect to[x_current; x_previous].
-
struct Config¶
Public Members
-
std::vector<GnssChannel> channels¶
current-epoch channels (pseudorange/Doppler)
-
GnssMeasurementOptions current_options¶
observable/state config for
channels
-
GnssMeasurementOptions carrier_options¶
carrier-phase config for TDCP rows
-
bool use_tdcp = false¶
enable TDCP rows / cloned-state layout
-
double tdcp_sigma_m = 0.0¶
shared additive TDCP sigma [m]
-
double filter_tdcp_noise_inflation_m = 0.0¶
filter-only TDCP inflation [m]
-
std::vector<GnssChannel> channels¶
-
struct TdcpPair¶
A matched carrier-phase channel pair (same constellation/PRN/frequency) across two consecutive epochs, used to form a TDCP observable.
-
LunarGnssCombinedMeasurement() = default¶