Skip to content

Navigation Architecture Guide

bijux-gnss-nav is organized by scientific dependency, not by one universal execution pipeline. Format families establish typed products; orbit, clock, time, and physical models establish state; corrections transform measurements; position, integrity, PPP, and RTK families produce distinct claims.

Scientific Dependency Order

flowchart LR
    external["external products"]
    formats["format interpretation"]
    state["orbit, clock, time,<br/>and physical state"]
    observations["receiver observations"]
    corrections["corrections and<br/>combinations"]
    estimators["position, integrity,<br/>PPP, or RTK"]
    evidence["solution, quality,<br/>lifecycle, or refusal"]

    external --> formats --> state --> corrections
    observations --> corrections --> estimators --> evidence
    state --> estimators

Each arrow is a scientific boundary. A parser must not choose estimator policy. An estimator must not reinterpret product time or silently invent a missing correction.

Locate The Scientific Owner

concern architecture route ownership rule
Broadcast messages, RINEX, precise products, antenna files, or bias records Module map formats preserve syntax, semantics, provenance, and rejection
Satellite state, clock, uncertainty, or navigation-specific time Code navigation orbit and time families resolve product meaning before estimation
Atmosphere, bias, combinations, windup, antenna, tide, or celestial effects Integration seams corrections and models expose assumptions rather than hiding them in solvers
Standalone position, integrity, filtering, PPP, or RTK Execution model each estimator family owns its state and claim lifecycle
Dependency on core, signal, receiver, infrastructure, or command Dependency direction navigation consumes shared contracts but not runtime or persistence policy
Stateful filters and persisted result records State and persistence nav owns estimator state; infrastructure owns durable placement
Parse, product, model, convergence, integrity, or support failure Error model refusal stays attributable to the failing scientific boundary
New format, model, correction, or estimator family Extensibility model placement follows scientific responsibility, not delivery convenience

Statefulness Does Not Mean Runtime Ownership

flowchart TD
    state["stateful navigation component"]
    scientific{"state represents estimator,<br/>orbit, clock, or model?"}
    scheduling{"selects receiver channels,<br/>sample windows, or run effects?"}
    repository{"owns persisted layout,<br/>history, or discovery?"}
    nav["navigation package"]
    receiver["receiver package"]
    infra["infrastructure package"]
    owner["stronger domain owner"]

    state --> scientific
    scientific -- yes --> nav
    scientific -- no --> scheduling
    scheduling -- yes --> receiver
    scheduling -- no --> repository
    repository -- yes --> infra
    repository -- no --> owner

An EKF, PPP filter, RTK ambiguity state, or product interpolator can remain navigation-owned because its lifecycle is scientific and runtime-neutral. Receiver owns when navigation is invoked during a live session. Infrastructure owns where resulting records are persisted and later found.

Keep Estimator Families Distinct

Position, integrity, PPP, and RTK share observations, satellite state, and mathematical support, but they do not share one claim contract. Their prerequisites, lifecycle, convergence, uncertainty, downgrade, and refusal evidence differ. Shared helpers belong below those policies; claim-specific state stays with its estimator family.

Architecture Failure Signals

  • Product parsing requires host wall-clock context to resolve rollover.
  • A correction becomes an undocumented term inside a solver.
  • A generic result erases whether it came from standalone positioning, PPP, or RTK.
  • Receiver channel state or repository paths enter navigation modules.
  • A missing product becomes a zero correction or nominal state.
  • Public exports expose solver-local workspaces with no durable scientific role.

Use architecture risks when one of these signals appears.

Implementation Evidence

The implementation authorities are the format boundary, orbit boundary, correction boundary, model boundary, estimation boundary, and navigation time boundary.

The crate architecture documents the full package dataflow and dependency rules.