mirror of
https://github.com/azaion/gps-denied-onboard.git
synced 2026-06-21 22:01:13 +00:00
c19c76481c
Enhanced the SKILL.md file to enforce conciseness rules for the state file, specifying acceptable content and file size limits. Updated the autodev state to reflect the transition to the planning phase, including changes to the current step and sub-step details. Revised acceptance criteria to clarify validation requirements and external dependencies, ensuring alignment with the latest research findings. Added a new overlay for Mode B revisions to track changes and decisions made during the assessment process.
96 lines
11 KiB
Markdown
96 lines
11 KiB
Markdown
# Glossary
|
||
|
||
**Status**: confirmed-by-user
|
||
**Date**: 2026-05-09
|
||
**Scope**: project-specific terminology for the GPS-denied onboard pose-estimation system. Generic software / industry terms (REST, JSON, IMU, WGS84, etc.) are intentionally omitted.
|
||
|
||
Terms are alphabetical. Each entry: one-line definition + parenthetical source.
|
||
|
||
---
|
||
|
||
**adti20** — Informal name for the production deployment camera, the **ADTi Surveyor Lite 20MP 20L V1** (APS-C ~23.6×15.7 mm, ~5472×3648 px, fixed downward, no gimbal). Pinned in `restrictions.md` §Cameras. (source: `restrictions.md`, user confirmation 2026-05-09)
|
||
|
||
**adti26** — Informal name for the camera that captured the 60 still-image test fixtures (`AD000001..AD000060.jpg`) under `_docs/00_problem/input_data/`. Distinct from the production-deployed `adti20`; calibration data must be sourced from public/factory references for these test images. (source: user confirmation 2026-05-09)
|
||
|
||
**AdHoP refinement** — OrthoLoC method-agnostic perspective preconditioning, conditional sub-stage between cross-domain matcher and pose estimation; invoked only when initial reprojection error exceeds threshold (component C3.5). (source: `solution.md` §C3.5, SQ2 Decision 2)
|
||
|
||
**AGL / Above Ground Level** — Vertical distance from the ground directly below the UAV; operational ceiling ≤1 km AGL. (source: `restrictions.md` §UAV & Flight)
|
||
|
||
**AI camera** — Operator-controlled gimbal+zoom camera consumed by AI detection systems; out of scope for nav-pose, in scope for AC-7.x object localization only. (source: `restrictions.md` §Cameras)
|
||
|
||
**Camera calibration artifact** — JSON file carrying camera intrinsics + distortion + body-to-camera extrinsics + acquisition method (`factory_sheet | checkerboard_refined | hybrid`). The only way camera-specific parameters enter the system; no hard-coded camera math anywhere. Test fixtures and production deployments load different artifacts on the same code path. (source: user directive 2026-05-09)
|
||
|
||
**Companion / Companion PC** — The onboard Jetson Orin Nano Super running the GPS-denied estimation pipeline. Synonyms used interchangeably across docs. (source: `restrictions.md` §Onboard Hardware)
|
||
|
||
**D-PROJ-1** — *(CLOSED in this Plan cycle)* Camera calibration acquisition strategy. Resolved as: hybrid factory data sheet + per-unit ground-truth checkerboard refinement (~1 day per deployed unit). No physical hardware available this cycle, so production calibration is documented as instructions only. (source: `solution.md` Open decisions, user confirmation 2026-05-09)
|
||
|
||
**D-PROJ-2** — *(OPEN, parent-suite)* Two design tasks against `satellite-provider`: (i) post-landing tile ingest endpoint, (ii) multi-flight trust / staleness logic. Surfaced in `satellite-provider/_docs/` outside this Plan cycle as a parent-suite deliverable. Tracked via `_docs/_process_leftovers/2026-05-09_satellite-provider-design-tasks.md`. (source: `solution.md`, user confirmation 2026-05-09)
|
||
|
||
**D-PROJ-3** — Multi-flight fixture acquisition (AerialVL S03 + Maxar Open Data Ukraine + own multi-flight data). NOT pursued in this Plan cycle: AC-NEW-4 / AC-NEW-7 wording was relaxed to Monte-Carlo-over-current-data with stated CI; multi-flight statistical residual risk recorded for the Step 4 risk register. (source: `solution.md`, traceability-matrix.md, user confirmation 2026-05-09)
|
||
|
||
**Dead reckoned** — Source label `dead_reckoned`: estimate produced from IMU-only propagation with no visual or satellite anchoring. Carries monotonically growing covariance; emitted during visual blackouts or after re-localization fails. (source: AC-1.4, AC-NEW-8)
|
||
|
||
**Derkachi flight footage** — Representative cropped nadir video + synchronized `SCALED_IMU2` + `GLOBAL_POSITION_INT` telemetry under `input_data/flight_derkachi/`. Used for runtime cadence + VIO + replay testing. (source: `problem.md`, `data_parameters.md`)
|
||
|
||
**External position / GPS replacement** — What this system emits to the FC: WGS84 coordinates + honest covariance + provenance label, replacing real GPS when denied/spoofed. (source: AC-4.3, AC-6.3)
|
||
|
||
**FC / Flight Controller** — ArduPilot Plane or iNav. PX4 explicitly out of scope. (source: `restrictions.md` §Sensors & Integration)
|
||
|
||
**FDR / Flight Data Recorder** — Per-flight onboard NVM record (≤64 GB) of estimates, IMU traces, MAVLink stream, mid-flight tiles, system health, failed-tile thumbnails. Excludes raw nav/AI-camera frames. (source: AC-NEW-3)
|
||
|
||
**Flight state** — Boolean signal `IN_AIR | ON_GROUND` derived from FC `MAV_STATE` (MAVLink HEARTBEAT). Safety-critical: gates the post-landing upload path; `IN_AIR` forbids any outbound write to `satellite-provider`. Enforced primarily by process-level isolation — the upload daemon is not loaded in the airborne companion image. (source: user directive 2026-05-09)
|
||
|
||
**GCS / Ground Control Station** — QGroundControl. Mission Planner is out of scope. (source: `restrictions.md`)
|
||
|
||
**GPS denial / GPS spoofing** — Distinct failure modes the system must distinguish: denial = no fix; spoofing = false fix that must not be promoted into the estimator. (source: AC-3.5, AC-NEW-2, AC-NEW-8)
|
||
|
||
**`GPS_INPUT`** — MAVLink message used as the per-frame FC delivery channel for ArduPilot Plane. (source: AC-4.3, `restrictions.md`)
|
||
|
||
**GSD / Ground Sample Distance** — Meters-per-pixel on the ground; target 10–20 cm/px @ 1 km AGL for the nav camera. (source: `restrictions.md` §Cameras)
|
||
|
||
**Internal smoothing** — AC-4.5 scope: GTSAM iSAM2 retroactively refines past keyframes onboard and emits the corrected current frame; the FC log is forward-time only. NOT to be confused with FC-side retroactive correction (which neither ArduPilot nor iNav supports). (source: `solution.md` §C5, Mode B Fact #107)
|
||
|
||
**Jetson Orin Nano Super** — Pinned companion compute: 67 TOPS sparse INT8, 8 GB shared LPDDR5, 25 W TDP, JetPack/CUDA/TensorRT. (source: `restrictions.md`)
|
||
|
||
**Mid-flight tile generation** — Companion orthorectifies nav-camera frames into basemap-projected tiles in flight, deduplicates, stores locally in `satellite-provider`-compatible format. NO outbound upload while airborne — upload happens post-landing only. (source: AC-8.4, user directive 2026-05-09)
|
||
|
||
**Mission profile** — 8 h flight, ~150 km² operational sector + ~50 km² transit corridor, ≤400 km² total cached, ~60 km/h cruise, ≤1 km AGL, eastern/southern Ukraine. (source: `restrictions.md`)
|
||
|
||
**`MSP2_SENSOR_GPS`** — MSP2 message used as the per-frame FC delivery channel for iNav (iNav has no inbound MAVLink external-positioning handler). (source: `restrictions.md`, AC-4.3)
|
||
|
||
**Nav camera / Navigation camera** — The fixed-downward (no gimbal) camera on the UAV; pinned model is `adti20`. Distinct from the operator-controlled AI camera. (source: `restrictions.md` §Cameras)
|
||
|
||
**Operator** — Pre-flight and post-flight human role: classifies the operational area (active-conflict vs stable rear), downloads tiles via `satellite-provider`, stages cache + calibration onto the companion before takeoff, and after landing triggers the post-landing upload tool. (source: `problem.md`, AC-3.4 / AC-6.2, user confirmation 2026-05-09)
|
||
|
||
**Post-landing upload tool** — Operator-side process that runs only when `flight state == ON_GROUND`; pushes locally-saved mid-flight tiles to `satellite-provider`'s ingest endpoint. Implemented as a separate process / image so the upload code path is never loaded in the airborne companion. (source: user directive 2026-05-09)
|
||
|
||
**`satellite-provider`** — First-class architecture boundary: the suite's existing .NET 8 REST microservice at `/Users/obezdienie001/dev/azaion/suite/satellite-provider/`. Runs in Docker (`:5100`, OpenAPI at `/swagger`); downloads Google Maps tiles; stores them in PostgreSQL + filesystem (`./tiles/{zoomLevel}/{x}/{y}.jpg`). Read-only from the onboard runtime; receives post-landing tile uploads via a yet-to-be-designed ingest endpoint (parent-suite work, D-PROJ-2). Synonym in older docs: "Suite Sat Service" / "Azaion Suite Satellite Service". (source: parent-suite `satellite-provider/README.md`, user confirmation 2026-05-09)
|
||
|
||
**Satellite anchored** — Source label `satellite_anchored`: estimate produced by matching the current nav frame against pre-cached satellite tiles. Highest confidence among the three labels. (source: AC-1.4)
|
||
|
||
**Sector classification** — Pre-flight operator decision: active-conflict (6-month tile-freshness threshold) vs stable rear (12-month threshold). Drives the freshness gate at ingest and during runtime tile use. (source: AC-8.2, AC-NEW-6, `solution.md` operator-tooling section)
|
||
|
||
**Source label** — Provenance tag carried with every emitted estimate: `{satellite_anchored | visual_propagated | dead_reckoned}`. (source: AC-1.4)
|
||
|
||
**Suite Sat Service** — Synonym for `satellite-provider` used in earlier docs (problem.md, restrictions.md, solution_draft01/02). The actual implementation in the parent suite is the .NET 8 service; "Suite Sat Service" is the role name. (source: `restrictions.md`, parent-suite `satellite-provider/README.md`)
|
||
|
||
**Tier-1 / Tier-2** — Testing-environment split: Tier-1 = workstation Docker (fast/cheap); Tier-2 = Jetson hardware (AC-bound). Both appear in the deployment plan and CI matrix per finding F6. (source: `_docs/02_document/tests/environment.md`)
|
||
|
||
**Tile** — Unit of persistent imagery on the companion; basemap-projected, deduplicated; the only persistent imagery format. Mid-flight-generated tiles use the same on-disk format as `satellite-provider` (`./{zoomLevel}/{x}/{y}.jpg` + matching metadata schema) so post-landing upload is byte-identical. (source: AC-8.4, AC-8.5, parent-suite `satellite-provider/README.md`, user confirmation 2026-05-09)
|
||
|
||
**Tile cache** — Local on-Jetson store, ≤10 GB, populated pre-flight from `satellite-provider`, augmented mid-flight by orthorectified nav-camera-derived tiles. (source: `restrictions.md`, AC-8.3, AC-8.4)
|
||
|
||
**Tile freshness** — <6 mo (active-conflict sectors) / <12 mo (stable rear); stale tiles must be rejected or downgraded. (source: AC-8.2, AC-NEW-6)
|
||
|
||
**TTFF / Time To First Fix** — From companion boot to first valid emitted external-position frame; budget <30 s p95. (source: AC-NEW-1)
|
||
|
||
**UAV** — Fixed-wing unmanned aerial vehicle this system runs on; ~60 km/h cruise, ≤1 km AGL, 8 h flights, eastern/southern Ukraine theater. (source: `restrictions.md`)
|
||
|
||
**VioStrategy** — Pluggable interface (Okvis2 / VinsMono / KltRansac) selected at startup by config. Production binary excludes the GPL-3.0 implementation per D-C1-1-SUB-A=(a) build-config exclusion; research/dev binary links all three for the comparative study (IT-12). (source: `solution.md` §C1)
|
||
|
||
**VIO / Visual-Inertial Odometry** — Frame-to-frame motion + IMU bias estimation via fused camera + IMU streams (component C1). (source: `solution.md` §C1)
|
||
|
||
**Visual propagated** — Source label `visual_propagated`: estimate produced by VIO frame-to-frame propagation with no fresh satellite anchor. Mid-confidence. (source: AC-1.4)
|
||
|
||
**VPR / Visual Place Recognition** — Descriptor-based retrieval of the nearest satellite tile to the current nav frame (component C2). (source: `solution.md` §C2)
|