ReviewOS

stacks/drone

Surface vessels: survey a water route and collect a sample

#14
Open chris opened this 9 days ago ·
9 days ago

What to build

Plan and simulate a surface-vessel survey line with time-aligned depth/position data and a commanded water sample.

Acceptance criteria

  • Model vessel actuation, current/wind, return-to-safe-point and collision constraints.
  • Specify sonar/depth, sound-speed, water-level and datum corrections with uncertainty and export metadata.
  • Verify sample location, timestamp, container identity and payload acknowledgement; include harbour-work recovery.

Blocked by

  • #4 Estimation: publish owned attitude and local-position estimates
  • #6 Authority: verify arming, manual override and independent failsafes
  • #10 Mission engine: run and resume an owned waypoint mission
  • #8 Hardware adapters: command and verify the first camera or payload

Implemented surface slice

  • Planar force/torque hull dynamics with current/wind, three-axis vector thrust, stationkeeping, collision inhibition and return/stop constraints.
  • Two survey legs, one scoped modeled sample in harbour-bottle-001, return and stopped completion. A harbour energy branch returns without starting new collection. Loss/uncertain ACK blocks without automatic retry. Collection requires current authority and the exact active pending task; intervening loss stays uncertain.
  • Single-beam corrections preserve acoustic travel time, sound speed, draft, water level, local datum, beam footprint, capture-pose source/prediction epochs and declared independent position/attitude/clock uncertainty. Missing or understated sensor clock budgets are rejected. Nominal export contains 1,031 distinct modeled soundings.
  • Native surface:simulate --survey ... writes JSON through Stacks storage. The common stx workspace displays correlated bottle ACKs and correction/uncertainty summaries.

Read surface model, correction equations and limits and shared vehicle contract.

Remaining survey, recovery and physical gates

  • Measured hull/allocator/stopping behavior, waterproof power, physical RC/kill and shore-supervised trials.
  • Calibrated GNSS/IMU/heading, lever arms, sonar bar checks, sound-speed profiles, water-level datum transfer and independently assessed uncertainty/coverage.
  • Waves, roll/pitch, grounding/capsize and broader propulsion/hull dynamics as appropriate.
  • Physical sample pump/valve/container identity, sealing, contamination controls and uncertain-action recovery with hardware ACK reconciliation.
  • HIL, persistent whole-runtime checkpoint recovery, harbour collision rules and operational acceptance.

Shared runtime and evidence

Implemented in 8dde96a and its preceding commits. Every profile uses the owned raw IMU/GNSS sensor pipeline, estimator, versioned vehicle mission policy, shared authority lifecycle and independent typed output leases. Per-execution sessions isolate mutable controller, payload and sensor state. Physical endpoints remain inhibited.

The integrated suite passed 320 Bun tests, 22,849 assertions, 13 Python bridge tests, Buddy lint, application/runtime/view typechecks, roadmap/parity gates and native standalone CLI checks outside the checkout. Independent Standards and Spec reviews passed after sampler authority/scope, session isolation, estimator/clock epochs, scenario binding and landing-pause fixes. Browser QA verified nominal and recovery playback, correlated payload ACKs, host-loss versus stale host snapshots, numeric timeline controls and zero horizontal overflow at 320/375 px.

All evidence is owned physics simulation. It does not establish native controller execution, external firmware SITL, HIL or physical vehicle acceptance. CI for this pushed commit passed, including all Linux standalone CLI scenarios and both neutral-only Pico 2 cross-builds.

Sign in to comment on this issue.