ins-trn-coast (scenario kind)
Scenario kind of the engine v0.38.0, family Inertial, fusion and quantum sensors. 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#
INS/TRN coasting error model: position error against coast duration, built from IMU coefficients rather than swept as an assumed drift rate. Five growth contributions — accelerometer bias, gyro-bias tilt through gravity, velocity random walk, angle random walk and scale factor against travelled distance — each propagated through a nine-state local-level inertial error model with Schuler feedback at a stated latitude and height (the short-coast leading-order laws t², t³, t^1.5, t^2.5 and t¹/t² are reported beside it) and combined under a STATED rule (root-sum-square by default, or linear-sum, or deterministic-sum with stochastic-rss; all three are computed on every run so the choice is visible rather than buried). The coast durations reaching caller-supplied position thresholds (10 m and 50 m by default) are located by the engine's existing bisection, each with a per-contribution breakdown naming the dominant source, and each single contribution's crossing is additionally inverted algebraically so the two agree. A terrain-relative-navigation mode bounds the coast with periodic position fixes and reports the largest fix interval that holds each threshold; a position-only fix leaves velocity error and tilt alive across the fix, so it does not always bound the coast at any fix rate, and the report says so rather than returning a zero. MODELLED: the IMU class coefficients are representative band figures, not a datasheet, and the terrain-fix residual is an input. An unreached threshold is reported as null with a status, never as a zero. Not a certified inertial-navigation performance product.
One run of scenarios/ins-trn-coast.toml summarises as: ins-trn-coast | navigation IMU, 250 m/s, combination rss | 10 m at 251.0 s (accel_bias) | 50 m at 608.8 s (accel_bias) | TRN position-only peak 44.7 m over 1200 s
Inputs#
From the schema (kshana kinds --json):
- Required fields: none
- Optional fields:
imu_grade,accel_bias_ug,accel_vrw_m_s_per_sqrt_hr,accel_scale_factor_ppm,gyro_bias_deg_per_hr,gyro_arw_deg_per_sqrt_hr,speed_m_s,ref_accel_m_s2,latitude_deg,height_m,combination,crossing_thresholds_m,grades,drift_band_lo_m_per_s,drift_band_hi_m_per_s,trn_fix_mode,trn_fix_interval_s,trn_fix_residual_m,mission_duration_s
The example scenarios/ins-trn-coast.toml sets, among others:
| Field | Value | Unit |
|---|---|---|
combination |
rss | text |
crossing_thresholds_m |
[10, 50] | m |
drift_band_hi_m_per_s |
0.05 | s |
drift_band_lo_m_per_s |
0.001 | s |
imu_grade |
navigation | text |
kind |
ins-trn-coast | text |
mission_duration_s |
1200 | s |
ref_accel_m_s2 |
0 | m/s^2 |
speed_m_s |
250 | m/s |
trn_fix_interval_s |
120 | s |
trn_fix_mode |
position-only | text |
trn_fix_residual_m |
17 | m |
Run it#
kshana scenarios/ins-trn-coast.toml
3 bundled scenarios use this kind; the others are in scenarios/.
What it gives#
The scalar results of that run, with the units the engine states:
| Result | Value | Unit |
|---|---|---|
combination |
rss | text |
imu.accel_bias_m_s2 |
2.4517e-4 | m/s^2 |
imu.accel_bias_ug |
25 | ug |
imu.accel_scale_factor_ppm |
100 | ppm |
imu.accel_vrw_m_s_per_sqrt_hr |
0.007 | (m/s)/sqrt(hr) |
imu.accel_vrw_m_s_per_sqrt_s |
1.1667e-4 | (m/s)/sqrt(s) |
imu.grade |
navigation | text |
imu.gyro_arw_deg_per_sqrt_hr |
0.002 | deg/sqrt(hr) |
imu.gyro_arw_rad_per_sqrt_s |
5.8178e-7 | rad/sqrt(s) |
imu.gyro_bias_deg_per_hr |
0.01 | deg/hr |
Result label (the engine's): MODELLED INS/TRN coasting error budget. Each contribution is propagated through a nine-state local-level inertial error model with Schuler feedback (level platform heading north at a stated site, free-inertial including the unstable vertical channel); its short-coast leading-order laws (bias t^2, gy
Evidence#
VALIDATED: the verification matrix rows that name this kind.
- VALIDATED Position-error-vs-coast-duration budget built from IMU coefficients, each error source (accelerometer bias, gyro bias, velocity random walk, angle random walk, scale factor cruising and under sustained specific force) propagated through a n
The rows the run itself exercised, with the oracle the matrix gives each (the public sources are named there):
- 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
- VALIDATED Position-error-vs-coast-duration budget built from IMU coefficients, each error source (accelerometer bias, gyro bias, velocity random walk, angle random walk, . Oracle (ExternalDataset): NaveGo v1.4 (commit 24d9488, LGPL-3.0), run as a separate program under GNU Octave 8.4.0: free-inertial coast runs with the same IMU error profile, with one corrected numerical dead band in its quaternion update (qua_update.m: the guard on a rate below 1e-8 rad/s replaced by wnorm == 0, applied to a run-time copy and asserted to match once; with the guard in place a slowly drifting platform attitude froze and cut the
Limitations#
What the run's own report says is not modelled or not validated:
- MODELLED INS/TRN coasting error budget. Each contribution is propagated through a nine-state local-level inertial error model with Schuler feedback (level platform heading north at a stated site, free-inertial including the unstable vertical channel); its short-coast leading-order laws (bias t^2, gyro-bias tilt t^3, velocity random walk t^1.5, angle random walk t^2.5, scale factor x travelled distance) are cross-chec (result
label) - INS/TRN coasting error model: position error against coast duration, built from IMU coefficients rather than swept as an assumed drift rate. (kind catalogue (
kshana kinds --json)) - MODELLED: the IMU class coefficients are representative band figures, not a datasheet, and the terrain-fix residual is an input. (kind catalogue (
kshana kinds --json)) - The question this answers: when a GNSS (or aperture-duty-cycled) study says "assume a dead-reckoning drift of 0.001–0.050 m/s", where does that number come from? It comes from the IMU, and this scenario computes it instead of sweeping it. Five growth terms — accelerometer bias (t^2), gyro-bias tilt through gravity (t^3), velocity random walk (t^1.5), angle random walk (t^2.5) and scale factor times the travelled dist (scenario file comment, lines 4 to 11)
- 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: Inertial, fusion and quantum sensors
- All kinds: KINDS.md
- Topic page: RESILIENCE-CROSSWALK.md