Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 53 additions & 0 deletions Examples/WendyDataCampaign/campaign.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# The campaign schema version this file is written against. Required; this
# release of the agent supports version 1.
version: 1

name: forklift-failures
fleet: warehouse-west

sources:
# Per-source capture policy is optional; without one a source records
# continuously. Which modes an adapter honors depends on the source kind:
# cameras do continuous and snapshot, audio does continuous and threshold,
# ROS 2 and telemetry do continuous only. A mode an adapter does not
# implement for its kind still validates and deploys; deployment warns and
# that source records continuously.
- camera: front
capture:
mode: snapshot
interval: 2s
max_resolution: 1280x720
- ros2: /lidar/points
- ros2: /vehicle/odometry
# An audio source with a level-threshold capture policy: when the cabin
# microphone's peak level crosses -20 dBFS, the agent seals a 30-second WAV
# fragment. level_db is a negative-valued field, so the comparison is against
# a negative threshold.
- audio: cabin-mic
capture:
mode: threshold
trigger: "level_db > -20"
fragment: 30s

capture:
buffer: 10s
after_trigger: 20s
triggers:
- event: emergency_stop
- model.uncertainty: "> 0.65"

upload:
# One of always, wifi, or manual.
when: wifi
# Optional logical dataset name the fleet backend maps to storage. This is
# not a URL; devices never receive bucket layouts or credentials.
destination: forklift-episodes
# Optional device-side bandwidth cap for uploads.
max_rate: 5MB/s

retention:
# Optional cap for on-device episode storage.
local_quota: 10GiB

export:
annotation: cvat
56 changes: 56 additions & 0 deletions Examples/WendyDataModelApp/campaign.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# Campaign for the WendyDataModelApp reference app. Deploy with:
#
# wendy data campaign deploy campaign.yaml
#
# This is the only campaign the example needs. It works with the app
# running, on a single-camera device, because the app no longer opens the
# camera: it subscribes to the same producer this campaign's capture
# adapter consumes (the sensors entitlement, see wendysensors.py). The
# earlier telemetry-only variant existed solely to work around the
# device-conflict that arrangement removes.
version: 1

name: model-harness-demo

sources:
# "front" selects the only healthy camera on a single-camera device.
# Captured continuously and uncapped, so the episode holds the actual
# frames the model consumed: the manifest's model_input ledger names each
# sample the app received, and cameras/<source>/index.jsonl locates the
# bytes for the same sample_id. after_trigger bounds the volume to about
# twenty seconds of video per episode.
#
# A "capture: {mode: snapshot, interval: 30s}" policy here stores far
# less, and remains correct — the manifest then reports the source's
# payload_retention as capture_policy_keeps_a_subset, so a consumer knows
# the episode holds bytes for only some of the frames the model saw.
- camera: front

capture:
# Keep 10 seconds of pre-trigger application records and 20 seconds
# after the trigger.
buffer: 10s
after_trigger: 20s
triggers:
# Fired by the app's edge-triggered person event.
- event: person_detected
# Fired by any prediction whose attributes.uncertainty exceeds 0.65:
# frames where YOLOv8n saw nothing above its confidence threshold
# (uncertainty 1.0) or only low-confidence detections. Each such
# prediction names the sample it came from, so the episode can be
# replayed against the exact frame that confused the model.
- model.uncertainty: "> 0.65"

upload:
when: always

retention:
local_quota: 5GiB

export:
annotation: cvat

# Pin the model this campaign collects for, matching the version every
# prediction record reports in attributes.model_version.
models:
yolov8n: "8.3.63"
Loading
Loading