Skip to content

Navigation Solution Contracts

Navigation-solution records describe solver output in a form that receiver, infra, command, and validation readers can exchange. Core owns the record shape and serialized meaning. bijux-gnss-nav owns the algorithms that compute the solution.

Solution Payload Map

flowchart LR
    nav["nav solver"]
    epoch["NavSolutionEpoch"]
    residuals["residuals and RMS"]
    quality["status validity<br/>lifecycle refusal"]
    provenance["source observation<br/>artifact provenance"]
    consumers["receiver infra command<br/>validation readers"]

    nav --> epoch
    epoch --> residuals
    epoch --> quality
    epoch --> provenance
    residuals --> consumers
    quality --> consumers
    provenance --> consumers

Record Families

family records and fields shared promise
epoch position NavSolutionEpoch, ECEF, geodetic position, receiver time downstream readers can identify the solved state and epoch
residual evidence NavResidual, NavConstellationResidualRms accepted and rejected measurements remain inspectable
clock and biases clock_bias_s, clock_bias_m, clock_drift_s_per_s, InterSystemBias timing and constellation bias evidence stays explicit
quality and validity SolutionStatus, SolutionValidity, NavQualityFlag readers can distinguish valid, degraded, refused, and invalid output
lifecycle and refusal NavLifecycleState, NavRefusalClass, health events solver refusal and lifecycle state survive serialization
uncertainty and integrity covariance, sigma, DOP, HPL, VPL, innovation fields uncertainty is carried as evidence, not implied by success
provenance artifact id, source observation epoch id, assumptions, provenance downstream readers can route back to source evidence

Boundary Decisions

  • Add fields here only when multiple crates need shared solution meaning.
  • Keep estimator internals, filter state, ambiguity search, and correction implementation in nav.
  • Keep artifact storage, run layout, and inspection workflows in infra.
  • Keep operator report selection in the command crate.
  • Preserve serialized meaning with explicit defaults or version boundaries.

First Proof Check

Inspect crates/bijux-gnss-core/src/nav_solution.rs, crates/bijux-gnss-core/src/observation/navigation.rs, crates/bijux-gnss-core/docs/CONTRACTS.md, crates/bijux-gnss-core/docs/SERIALIZATION.md, crates/bijux-gnss-core/docs/INVARIANTS.md, crates/bijux-gnss-core/tests/nav_artifact_validation.rs, and downstream nav tests that construct or consume NavSolutionEpoch.