# data/collect — Random‑sweep dataset capture Move servos in a random circular pattern and capture synchronized camera frames from the HTTP stream server, writing a `StructuredDataset` to disk. ## Usage ```bash # Capture 100 frames at radius 5.0, move to a waypoint before capture s6 data collect -n 100 -r 5.0 --waypoint center -o data/random_dataset # List available waypoints (no capture) s6 data collect --wps ``` ## How it works - Connects to the robotic RPC via `PathDriver` (host/port from args or stream server) and optionally moves to `--waypoint`. - Iterates a random path (`driver.random`) within the given radius; for each pose, fetches a composite frame from the FastAPI stream server and splits it into per-camera images via `s6.utils.take_snapshot`. - Reorders camera images deterministically with `CameraIDIdentifierAruco` and writes records into `s6.utils.StructuredDataset` with servo positions and images. ## Key flags - `-n/--frame-count` — number of samples to capture (default 100) - `-r/--radius` — random sweep radius - `--waypoint` — named waypoint to move to before capture - `-o/--output` — output dataset directory - `--stream-server` — host of the FastAPI video stream server - `--rpc-host`, `--rpc-port`, `--rpc-serialization` — robotic RPC settings - `--wps` — list waypoints and exit