ReviewOS

stacks/drone

Agriculture sensing: scout a field with calibrated multispectral data

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

What to build

Plan a crop-scouting route and produce a calibrated field observation layer from multispectral or visible imagery.

Acceptance criteria

  • Record irradiance/reference-panel calibration, bands, camera synchronization and geospatial metadata.
  • Verify an index/map calculation against a known dataset; document agronomic inference limits.
  • Include explicit selected-animal livestock observations and field/parcel reporting without automatic identity claims.

Blocked by

  • #18 Aerial mapping: fly a camera-triggered survey with georeferenced imagery
  • #8 Hardware adapters: command and verify the first camera or payload

Scope and evidence

An owned software implementation is now published. The original acceptance criteria remain open for the full measured field and hardware gates below. Preserve explicit operator authority and report simulator, bench, HIL and vehicle evidence separately. The owned implementation must remain replaceable behind the shared driver and mission contracts.

Implemented owned software

Commit fd8445a publishes the calibrated agriculture workflow:

  • Polygon/hole-aware crop-scouting plans and explicit clipped rectangular parcels, running through the actual owned raw-sensor, estimator, mission, authority, multirotor control and independent modeled-board physics path.
  • Separate raw uint16 red/NIR and visible images, per-band exposure/gain/irradiance/epoch records, declared panel samples and coefficients, registered-grid metadata, scoped shutter ACKs and latched calibration/synchronization/quality failures. No NIR is inferred from visible colour.
  • Documented MicaSense numerical radiance and panel correction, conditional NDVI intervals, masked/nodata pixels, estimated-pose source selection and area-weighted field/parcel sample reports. This is a sampling layer, not reconstruction or a crop diagnosis.
  • Explicit operator-selected animal labels tied to one retained source pixel, capture bytes/calibration/pose digest and projected parcel. Observer and animal identity and physical presence remain unverified. Changed captures never inherit a target; edited drafts survive pending source binding.
  • Native Stacks agriculture:plan, agriculture:simulate, agriculture:process and agriculture:observe, standalone CLI and stx /agriculture. Reprocessing explicitly retains validated declarations through --observations.
  • Private bounded source recordings, original PNG/raw-band exports, numeric/GeoJSON point layers, parcel reports and an unsigned completion-hash manifest.

Read semantics and limits, ADR21, and the pinned independent vendor reference.

Validation evidence

  • Final integrated local suite: 527 Bun tests / 48,048 assertions, 13 Python bridge tests, lint, application/runtime/view typechecks and roadmap/parity integrity passed.
  • Independent Standards and Spec reviews passed after fixing and regression-testing pending observation draft ownership. The five deferred-response action tests execute the actual source handler and real observation service with controlled response delivery; they do not claim compiled DOM or browser cryptography qualification.
  • Nominal actual-runtime collection completes with 32 acknowledged multiband frames. Irradiance loss, band skew, saturation, camera loss/wrong ACK, position loss, RC takeover and abort latch neutral board outcomes. Partial visits preserve missing field/parcel support.
  • Outside-checkout compiled commands pass all four operations, transfer the complete 220,604-byte result through a stdout pipe, retain the exact original selected capture/digest on reprocessing, verify 134 exported file hashes and exercise four hazards.
  • Real browser checks cover nominal and partial synchronization-fault collection, actual visible/index images, numeric grid inputs/provenance, explicit light-animal pixel selection, capture-change draft clearing/original record retention, outside-field rejection, clear/scenario reset, empty warning/error console and 320/375 px layouts without page overflow.
  • Independent pinned official vendor panel-image DN/metadata verifies scalar radiance and retained panel-ratio/index values. Separate independently worked numeric frames and actual runtime landmarks verify the production calibration/map path. The different vendor panel ROIs are not registered crop pixels and do not validate an external vegetation map.
  • Exact-head Drone CI passed, including all seven agriculture standalone steps, the full Linux checks and both neutral-only Pico 2 builds. Evidence remains owned simulation, not external firmware SITL, HIL or physical flight.

The reusable awaitable output helper was also contributed to native Stacks CLI, with clean-checkout source bindings. It passes 86 package tests including real slow pipes, compiled Unicode output and EPIPE cleanup. The normal dependency release will replace the application's matching temporary helper. Follow-up Stacks CI is running; its artifact-freshness gate now passes, including the clean-checkout snippet and native catalog checks.

Remaining full acceptance

Keep this issue open for measured multispectral camera/panel/irradiance calibration, capture synchronization and optical registration; physical pose/heading/range and surveyed uncertainty; real field ingestion and registered external crop-map comparisons; ground agronomic measurements; real explicitly reviewed livestock observations; richer parcel models; and bench/HIL/vehicle and storage power-loss campaigns. Unsigned source bindings authenticate neither observations nor operators. Synthetic numerical agreement does not establish crop health, yield, animal identity or physical field accuracy. No spraying prescription or physical actuation is enabled.

Sign in to comment on this issue.