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 |
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#
- Family page: GPS-denied alternative PNT
- All kinds: KINDS.md