Class IslOdtsApp¶
Defined in File isl_odts_app.h
Inheritance Relationships¶
Base Type¶
public lupnt::LunaNetSubApp(Class LunaNetSubApp)
Class Documentation¶
-
class IslOdtsApp : public lupnt::LunaNetSubApp¶
Onboard inter-satellite-link (+ optional Earth-GNSS) ODTS flight application: a reusable
LunaNetSubAppthat owns the hub satellite’s Schmidt Extended Kalman Filter (SchmidtEKF,lupnt/numerics/filters/schmidt_ekf.h) and runs one predict/measurement-update cycle per scheduledStep().The filter estimates the hub’s own 8-state
[r, v, clock_bias, clock_drift]and carries each linked satellite’s 8-state as a Schmidt “consider” block (propagated and used in the update, never corrected). Each epoch the driving simulation stages that epoch’s measurement geometry/observations withStageMeasurements, then callsStep(t), which predicts tot, rebuilds the (per-epoch-variable) combined measurement model, and applies the update.This is the single onboard sensor-fusion point: additional sensors (surface-station pseudoranges, Doppler beacons, star-tracker/IMU, …) are fused simply by extending
IslOdtsMeasurementEpochand the combined measurement model, without changing the hostingLunaNetSatAppor the driving simulation’s schedule. It mirrors theLunarODTSApppattern used insideLunarGnssODTSSimulation.Public Functions
-
inline IslOdtsApp()¶
-
explicit IslOdtsApp(IslOdtsAppParams params)¶
-
void Configure(Real t0, const VecXd &x0, const MatXd &P0, Ptr<JointOrbitClockDynamics> filter_dynamics)¶
Seed the onboard filter. Must be called before
Setup().- Parameters:
t0 – Initial filter epoch [s, TDB].
x0 – Initial estimate,
[own(8), consider_1(8), ...], sizekSubStateSize * n_sat.P0 – Initial covariance, same layout.
filter_dynamics – Reduced-order joint orbit-clock dynamics used to propagate the own block and every consider block.
-
virtual void Setup(LunaNetSatApp &app) override¶
Build the Schmidt-EKF (time/state/covariance/dynamics/process-noise) from the
Configureinputs. The measurement model is (re)installed per epoch inStep.
-
virtual void Step(Real t) override¶
Predict to
t[s, TDB] and apply the update using the currently-staged measurement epoch (which is then consumed).
-
virtual void Finish() override¶
-
void StageMeasurements(const IslOdtsMeasurementEpoch &meas)¶
Stage the next epoch’s measurements to be processed on the following
Step.
-
inline const VecXd &GetPrefitResidual() const¶
Pre-fit measurement residual cached from the most recent
Step([crosslink range/range-rate..., anchor pseudorange...]).
-
inline const Ptr<SchmidtEKF> &GetFilter() const¶
The underlying Schmidt-EKF (for advanced inspection).
-
inline IslOdtsApp()¶