Modified the autodev state to transition to phase 10, updating the sub-step name and details to reflect the latest architectural review changes. Enhanced the glossary entry for VioStrategy to clarify its functionality, build-time exclusions, and implications for deployment and research binaries, ensuring alignment with recent architectural decisions.
12 KiB
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; not hot-swappable mid-flight. The interchangeable-strategy pattern (ADR-001) plus build-time exclusion via per-implementation CMake BUILD_* flags (ADR-002) lets the project produce a small deployment binary (links the production-default + the engine-rule-mandatory simple-baseline) and a separate research binary that links every available strategy for the IT-12 comparative-study report. ADR-002 is purely technical (binary size on 8 GB shared Jetson, AC-NEW-1 boot budget, dependency / attack surface, accidental-selection risk); component licenses do not influence which strategy is the deployment-default. (source: solution.md §C1, architecture.md ADR-001 + ADR-002 + ADR-009)
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)