kshana 0.8.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +41 -9
- package/kshana_bg.wasm +0 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="docs/assets/kshana-mark.svg" alt="Kshana mark — a precision reticle hung from the Devanagari shirorekha" width="104" height="104">
|
|
3
|
+
</p>
|
|
4
|
+
|
|
1
5
|
<h1 align="center">
|
|
2
6
|
<img src="docs/assets/kshana-banner.svg" alt="Kshana — the precise instant. Open, reproducible hybrid quantum/classical PNT performance simulation." width="760">
|
|
3
7
|
</h1>
|
|
4
8
|
|
|
9
|
+
<p align="center"><em><strong>Kshana</strong> · <span lang="sa">क्षण</span> — Sanskrit for <em>the precise instant</em>, the smallest measure of time.</em></p>
|
|
10
|
+
|
|
5
11
|
<p align="center">
|
|
6
12
|
<a href="https://ashfordeou.github.io/kshana/"><img src="https://img.shields.io/badge/playground-try%20in%20browser-2dd4bf" alt="Live playground — run in your browser, no install"></a>
|
|
7
13
|
<a href="tests/sgp4_verification.rs"><img src="https://img.shields.io/badge/SGP4-666%2F666%20AIAA%20vectors%20%C2%B7%204.12mm-3fb950" alt="SGP4 validated against all 666 AIAA 2006-6753 vectors, worst 4.12 mm"></a>
|
|
@@ -28,7 +34,7 @@ and every sensor parameter is traceable to a published source.
|
|
|
28
34
|
*Free and open source under Apache-2.0, professionally developed and maintained by
|
|
29
35
|
Ashforde OÜ — commercial support, integration, and proprietary extensions available.*
|
|
30
36
|
|
|
31
|
-
> **Status: v0.
|
|
37
|
+
> **Status: v0.9.0 — a simulation substrate, not yet a product.** Four sensor packs
|
|
32
38
|
> that each report all six operational figures of merit (including a clock-stability-based
|
|
33
39
|
> spoof-*detectability* bound — analytic, meaningful only with a configured attack —
|
|
34
40
|
> demonstrated by an active spoofing-attack scenario), two independent Kalman error
|
|
@@ -36,15 +42,25 @@ Ashforde OÜ — commercial support, integration, and proprietary extensions ava
|
|
|
36
42
|
> self-consistency bound, multi-constellation geometry-derived GNSS availability *and*
|
|
37
43
|
> dilution of precision from orbits — synthetic Walker, Keplerian mean elements, or
|
|
38
44
|
> full two-line element sets propagated with **SGP4/SDP4** (validated against the AIAA
|
|
39
|
-
> 2006-6753 vectors) — a single-axis (1-DOF) IMU error budget
|
|
40
|
-
> walk and bias-instability), Monte Carlo
|
|
41
|
-
> sweeps, and a shareable HTML scorecard
|
|
45
|
+
> 2006-6753 vectors) — a single-axis (1-DOF) IMU error budget in the shipped
|
|
46
|
+
> inertial pack (velocity/angle random walk and bias-instability), Monte Carlo
|
|
47
|
+
> confidence bands, trade-study parameter sweeps, and a shareable HTML scorecard.
|
|
48
|
+
> As of v0.9.0 the library also carries a genuine **three-axis strapdown INS**
|
|
49
|
+
> (quaternion attitude, WGS-84 NED mechanization, coning/sculling, a five-term IMU
|
|
50
|
+
> error model), a **loosely-coupled GNSS/INS error-state EKF** with closed-loop
|
|
51
|
+
> feedback, **real snapshot and solution-separation (ARAIM-style) RAIM** with
|
|
52
|
+
> HPL/VPL and a runnable `integrity` scenario, and **RINEX-3 GPS ephemeris
|
|
53
|
+
> ingestion** (broadcast orbit + clock). All calibrated to published data and
|
|
42
54
|
> validated against the standard relations, with optional Python and WebAssembly
|
|
43
55
|
> bindings and a browser playground. Read [`docs/VALIDATION.md`](docs/VALIDATION.md)
|
|
44
56
|
> before citing any number — each noise term is labelled `validated` or `not modeled`,
|
|
45
57
|
> and optical-clock figures are *space goals on ground hardware* (no strontium optical
|
|
46
|
-
> clock has flown). What it is **not**:
|
|
47
|
-
>
|
|
58
|
+
> clock has flown). What it is still **not**: the shipped `inertial` scenario pack
|
|
59
|
+
> remains the 1-DOF budget (the three-axis navigator is library-level, not yet wired
|
|
60
|
+
> into a pack); the GNSS/INS filter is *loosely* coupled only (tight/pseudorange
|
|
61
|
+
> coupling is a documented stub); the RAIM is real but **not** formally certified to
|
|
62
|
+
> DO-229/DO-178C aviation standards; and the quantum models are phenomenological, not
|
|
63
|
+
> a first-principles quantum simulator. The full
|
|
48
64
|
> honest scope map is in [`docs/CAPABILITY.md`](docs/CAPABILITY.md); see also
|
|
49
65
|
> [`docs/INTEGRITY.md`](docs/INTEGRITY.md) and the claims table in
|
|
50
66
|
> [`docs/VALIDATION.md`](docs/VALIDATION.md).
|
|
@@ -159,6 +175,7 @@ cargo run -- scenarios/timetransfer.toml
|
|
|
159
175
|
cargo run -- scenarios/hybrid-pnt.toml
|
|
160
176
|
cargo run -- scenarios/orbit-gnss-challenged.toml
|
|
161
177
|
cargo run -- scenarios/orbit-sgp4-gps.toml
|
|
178
|
+
cargo run -- scenarios/integrity-raim.toml
|
|
162
179
|
```
|
|
163
180
|
|
|
164
181
|
Example output (clock holdover — note the Integrity and Security figures of merit):
|
|
@@ -177,9 +194,16 @@ accuracy — alongside the clock result.
|
|
|
177
194
|
> **Read these two numbers carefully.** `security` is an *analytic spoof-detectability
|
|
178
195
|
> bound* derived from each clock's stability — it is meaningful only against a
|
|
179
196
|
> configured spoofing scenario and is **not** a multi-satellite RAIM detector. `integrity`
|
|
180
|
-
> is the filter's *self-consistency* (fraction of outage samples inside its own k-sigma
|
|
197
|
+
> here is the filter's *self-consistency* (fraction of outage samples inside its own k-sigma
|
|
181
198
|
> bound), **not** an aviation HPL/VPL integrity figure. See
|
|
182
199
|
> [`docs/INTEGRITY.md`](docs/INTEGRITY.md).
|
|
200
|
+
>
|
|
201
|
+
> For genuine receiver-autonomous integrity, the **`integrity` scenario kind**
|
|
202
|
+
> (`scenarios/integrity-raim.toml`) runs real snapshot and solution-separation
|
|
203
|
+
> (ARAIM-style) RAIM over the propagated constellation geometry: it computes
|
|
204
|
+
> horizontal/vertical **protection levels (HPL/VPL)** per epoch and reports the
|
|
205
|
+
> fraction of epochs that meet the configured alert limits, with a Stanford
|
|
206
|
+
> integrity diagram for error-vs-PL classification.
|
|
183
207
|
|
|
184
208
|
### Python
|
|
185
209
|
|
|
@@ -259,8 +283,16 @@ Optional fields (off when absent): a clock may add `flicker_floor` (1/f FM Allan
|
|
|
259
283
|
floor); an inertial sensor may add `gyro_bias` and `q_arw` (gyro bias and angular
|
|
260
284
|
random walk), and `bias_instability` and `q_aa` (the Allan bias-instability floor and
|
|
261
285
|
acceleration random walk) — together a **single-axis (1-DOF) accelerometer error
|
|
262
|
-
budget** (VRW/ARW and bias-instability)
|
|
263
|
-
|
|
286
|
+
budget** (VRW/ARW and bias-instability). This is the error budget the shipped
|
|
287
|
+
`inertial` scenario *pack* runs. Separately, the library now carries a verified
|
|
288
|
+
**3-axis strapdown navigator** (`src/inertial/{attitude,mechanization,imu_errors}.rs`):
|
|
289
|
+
quaternion attitude with coning/sculling compensation, a full NED mechanization
|
|
290
|
+
(Earth-rate and transport-rate terms, WGS-84 Somigliana gravity), and a
|
|
291
|
+
deterministic IMU error model in which **scale-factor, misalignment,
|
|
292
|
+
g-sensitivity, quantization, and rate-ramp are modelled** (IEEE Std 952-1997
|
|
293
|
+
§A.2; Groves 2013 §4.3). That 3-axis path is **not yet wired into the scenario
|
|
294
|
+
pack/FoM** — switching the pack over, with a loosely-coupled GNSS/INS filter, is
|
|
295
|
+
the next inertial milestone. A
|
|
264
296
|
clock-holdover scenario may add `runs` (> 1) to run a **Monte Carlo ensemble** — each
|
|
265
297
|
figure of merit is then reported as a mean with a 5th–95th-percentile spread and the
|
|
266
298
|
chart shades the error confidence band (see `scenarios/clock-ensemble.toml`).
|
package/kshana_bg.wasm
CHANGED
|
Binary file
|