Struct SurfaceLansMeasurement

Nested Relationships

Nested Types

Inheritance Relationships

Base Type

Struct Documentation

struct SurfaceLansMeasurement : public lupnt::ErrorStateMeasurement

One LCRNS / LANS (Lunar Augmented Navigation Service) pseudorange from a relay satellite to the surface rover.

Models a one-way code pseudorange biased by the rover clock: rho = |r_sat - r_rover| + C * clock_bias. The measurement noise combines the receiver pseudorange noise (sigma_m, default 1 m) and the broadcast ephemeris/clock signal-in-space error (sise_m, default 3 m, 1-sigma) added in quadrature.

Public Functions

double PredictedRange(const Vec3d &r_rover, double clock_bias_s) const

Predicted pseudorange |r_sat - r_rover| + C * clock_bias.

Parameters:
  • r_roverRover position, Moon-fixed frame [m].

  • clock_bias_sRover clock bias [s].

Vec3d LosUnit(const Vec3d &r_rover) const

Unit line-of-sight vector from the rover toward the satellite. The range partial d(rho)/d(r_rover) equals -LosUnit.

Parameters:

r_roverRover position, Moon-fixed frame [m].

inline double NoiseVariance() const

Measurement noise variance sigma_m^2 + sise_m^2 [m^2].

virtual MeasData Compute(const NavErrorContext &nom, MatXd *H = nullptr) const override

Error-state model: predicted pseudorange, R, and (if H != nullptr) the 1 x error_state_size Jacobian (-LosUnit^T at the position error, C at the clock-bias error). Consumes only the nominal position and clock bias.

Public Members

double timestamp = 0.0

measurement epoch [s]

Vec3d r_sat = Vec3d::Zero()

transmitter position, Moon-fixed frame [m]

double pseudorange_m = 0.0

measured pseudorange [m]

double sigma_m = 1.0

receiver pseudorange noise 1-sigma [m]

double sise_m = 3.0

signal-in-space error 1-sigma [m]

Config config

error-state index mapping

struct Config

Error-state mapping for the LANS pseudorange model.

Public Members

int i_dr = 0

position-error offset in the error state

int i_dcb = 15

clock-bias-error offset in the error state