Description

The Global Positioning System module models a GPS-like transmitter constellation for the simulation: many orbiters sharing a single catalogue (typically from Two-Line Elements), each contributing a ranging signal when it is active and geometrically visible to a receiver. It exists at universe level so any GPS Sensor (or other consumer) can query visible transmitters for the same RF “truth.”

The module does not simulate each transmitter as a full six-degree-of-freedom Spacecraft; orbits are kept in a compact Keplerian form and stepped forward with standard two-body dynamics for efficiency.

The constellation also owns the RF environment message: optional jamming (diffuse and/or directional sources) and optional region spoofing that adjust pseudo-ranges before receivers solve for position. Jamming is applied first, then spoofing when enabled.

NOTE

Adding a GPS Sensor does not automatically create a constellation. Scenarios must include this system and initialise it with a TLE (or equivalent) catalogue. Individual transmitters can be turned off for outages or reduced constellations.


Example use cases

  • GNSS navigation: Feed a GPS receiver with line-of-sight ranges and broadcast elements.
  • Contested spectrum: Stress receivers with elevated noise, jammer geometry, and coherent false ranges inside a defined region.
  • Operations concepts: Disable specific slots to represent maintenance or slot failures.

Module implementation

Catalogue and transmitter slots

Initialisation reads a file of TLEs (one transmitter per entry), builds parallel position / element storage and active flags (default: all on), and binds Earth gravity and simulation time from the solar-system model.

While the simulation runs, each transmitter’s orbit state is advanced each step using Earth’s gravitational parameter and a standard Kepler update (invalid elements are skipped).

What Receivers Get

Given the receiver’s ECI position (metres from the inertial origin, consistent with Earth’s state in the scenario), the system returns one GPS state per transmitter that is:

  • enabled, and
  • line-of-sight to the receiver (Earth occultation / visibility factor ).

Each state carries broadcast-style orbital elements, GPS time tags, and a geometric pseudo-range (metres) from transmitter to the receiver, before environment effects.

Jamming (optional)

When the environment is enabled, stress from diffuse jamming (normalised severity) and from point jammers (position, effective radiated power, optional antenna pattern and path-loss law) is combined with a simple receiver robustness setting (). Transmitters can be dropped when stress exceeds a threshold; survivors receive pseudo-range noise drawn from a seeded random process so identical scenarios replay the same draw. With the environment off, ranges are left at their geometric values (subject only to spoofing rules below).

Spoofing (optional, after jamming)

When region indicated position spoofing is active, the receiver lies inside a user-defined ECI sphere (centre and radius in metres), and Earth state is available, every surviving pseudo-range is replaced by the range from the transmitter to a single false ECI point:

Broadcast elements in the state are not rewritten—only ranges change, so a least-squares receiver is pulled toward while inside the region.

Persistence and Housekeeping

Inactive transmitter indices can be saved with the scenario and restored on load. Clearing the system removes all transmitters and resets initialisation.


Assumptions / limitations

  • Fidelity: Keplerian TLE-style evolution, not high-fidelity force modelling per satellite.
  • Truth model: Default catalogue path fills orbital geometry and time into each state; higher-fidelity broadcast clock and harmonic terms may remain at their defaults unless your workflow supplies them—receivers still apply the usual correction algebra with whatever coefficients are present.
  • Medium: No explicit ionospheric / tropospheric delay in the geometric range; use the environment message if you need extra stress beyond geometry.
  • Visibility: Earth-centric occultation is used for line-of-sight; other bodies are not part of that check unless your scenario framework extends it elsewhere.