Scenario kind pagesEdit on GitHubSource: docs/kinds/by-kind/terrain-slam.md

terrain-slam (scenario kind)

Scenario kind of the engine v0.38.0, family GPS-denied alternative PNT. Advisory: analysis output from a research and engineering tool, not type-approved navigation equipment and not a safety-of-life service. Every label here is the engine's or the verification matrix's; a kind is MODELLED unless the matrix says otherwise (how a label is earned: the README's Evidence section).

What it does#

GPS-denied sequential (recursive) terrain-referenced navigation: a particle filter runs the terrain-match measurement model epoch by epoch (SITAN as a running filter) so a time-varying INS drift is tracked along the track, where the batch terrain-nav only recovers a single constant offset.

One run of scenarios/terrain-slam.toml summarises as: terrain-slam | 60 waypoints | free-inertial RMS 2947 m (final 5082 m) | terrain-matched RMS 1241 m (final 69 m, 2x cut) | mean ESS 2599/4000 | matching sigma 17.0 m

Inputs#

From the schema (kshana kinds --json):

  • Required fields: dem_seed, start_lat_deg, start_lon_deg, step_lat_deg, step_lon_deg, waypoints, drift_rate_lat_deg, drift_rate_lon_deg, altimeter_sigma_m, map_sigma_m
  • Optional fields: n_particles, init_pos_sigma_deg, process_sigma_deg, resample_ess_frac, seed

The example scenarios/terrain-slam.toml sets, among others:

Field Value Unit
altimeter_sigma_m 8 m
dem_seed 1 not stated
drift_rate_lat_deg 6.0000e-4 deg
drift_rate_lon_deg -5.0000e-4 deg
init_pos_sigma_deg 0.006 deg
kind terrain-slam text
map_sigma_m 15 m
n_particles 4000 not stated
process_sigma_deg 0.0025 deg
resample_ess_frac 0.5 not stated
seed 1 not stated
start_lat_deg 12.08 deg

Run it#

kshana scenarios/terrain-slam.toml

What it gives#

The scalar results of that run, with the units the engine states:

Result Value Unit
free_inertial_final_m 5081.603847 m
free_inertial_rms_m 2946.527203 m
matched_final_m 69.357005 m
matched_rms_m 1240.770832 m
mean_ess 2599.161463 count
measurement_sigma_m 17 m
min_ess 1535.202707 count
waypoints 60 count
The chart the engine writes for scenarios/terrain-slam.toml, kind terrain-slam

Evidence#

No matrix row names this kind by name; the label on its result is the engine's own, above.

The rows the run itself exercised, with the oracle the matrix gives each (the public sources are named there):

  • MODELLED Gravity-map matching, terrain-referenced (TERCOM/SITAN), magnetic anomaly. Oracle (InternalConsistency): IGRF-14 coefficients; first-principles matched-filter CRLB. The real-field gravity benchmark's field is externally checked (row 'Gravity-anomaly synthesis from a spherical-harmonic model'), but its navigation outcome has no external oracle
  • MODELLED Deterministic, scenario-hashed, SBOM + cross-platform golden gates. Oracle (ExternalDataset): SBOM conformance to the official CycloneDX 1.5 JSON Schema (+ valid SPDX identifiers) — an external published standard, zero validation errors over the full dependency graph; the FoM-determinism / byte-reproducibility part remains a pinned self-consistency check, so the row stays MODELLED

Limitations#

What the run's own report says is not modelled or not validated:

  • Alternative / complementary PNT is MODELLED, not validated: checked against its own closed-form / analytic identity — catches transcription and coefficient errors, but is not an external oracle. (verification matrix (docs/MODELLED-RATIONALE.md))
  • Reproducibility & software assurance is MODELLED, not validated: a sub-claim is externally checked, but the whole capability composes modelled pieces, so the capability stays Modelled. (verification matrix (docs/MODELLED-RATIONALE.md))

See also#