Sandbox — LSD is in active testing. All systems operational·payments are test-mode (no real charges).
Overview Use Cases News Docs Tool Store Support Community Get LSD
Use cases/ Robotics/ QA-ing robot telemetry before a field trial
Twelve-unit QA board with pass/fail badges and flagged dropout windows replace with screenshot · 1600 × 900

QA-ing robot telemetry before a field trial

Drop each unit's CSV sensor logs on the canvas, pull the same channels live over REST, and resample everything onto one 10 Hz clock. Outlier and dropout flags roll up into a per-unit pass/fail report. Three of our twelve units failed before the truck was even loaded.

Beginner ⏱ 20 min telemetryqatime-seriescsvfield-trial

The Friday-before problem#

A field trial gives you one window. If unit 7's IMU has been silently dropping packets for two weeks, you find out in a muddy field, a day's drive from the lab. We used to eyeball a handful of plots per robot the night before and hope — twelve units, six sensors each, and exactly one person who knew which wiggles were normal. The pipeline in this walkthrough replaced that ritual with a report we now run every Friday.

Where the thresholds come from#

The pass/fail lines aren't arbitrary. Above roughly half a percent dropout, our EKF starts trusting stale poses; above one percent outliers, the planner brakes for ghosts. Encode whatever your stack tolerates — the point is that the numbers live in the pipeline, argued about once as a team, instead of in someone's head.

It scales with the fleet#

Unit 13 arrived the week after we built this. Its logs went into the same folder, the canvas picked it up on the next run, and the report grew a row — no edits, no new scripts. The three units that failed that first Friday all shipped fixed the following week, with the flagged windows attached to the repair tickets.

Step by step

How it's built

  1. #019 · Load 01

    Drop the log bundle on the canvas

    Drag the trial folder — 12 units, six sensor CSVs each — onto the canvas. LSD groups them into one @load node keyed by unit ID and previews the first rows with inferred types. IMU at 200 Hz, GPS at 5 Hz, and battery at 1 Hz land as separate time-series entities.

    Log bundle grouped by unit with type-inferred previews replace with screenshot · 1200 × 750
  2. 02

    Pull live telemetry from the fleet API

    Add a second @load node pointed at the fleet's REST endpoint with a 2-second poll. Rows stream in under the same schema, so each unit's live heartbeat sits right beside its recorded history. A green pulse on the node shows which units are actually awake.

    REST node streaming live rows beside the recorded logs replace with screenshot · 1200 × 750
  3. #020 · Shape 03

    Resample everything onto one clock

    Chain a @shape sync node and pick a 10 Hz common clock. Set linear interpolation for IMU and battery, hold-last for GPS fixes, and watch the merged timeline preview line up. The synced table is a cached intermediate, so the flagging downstream stays instant.

    Merged 10 Hz timeline across IMU, GPS, and battery replace with screenshot · 1200 × 750
  4. #021 · Shape 04

    Flag outliers and dropouts

    Add two flag nodes — a rolling MAD outlier check on every numeric channel, and a gap detector that marks any silence over 500 ms as a dropout. Flags paint straight onto the timeline as red and amber bands. Unit 7's IMU lights up immediately with forty dropouts an hour.

    Timeline painted with red dropout bands and amber outlier flags replace with screenshot · 1200 × 750
  5. #022 · Deliver 05

    Roll up the pass/fail report

    Finish with a @deliver report node and set the trial thresholds — dropouts under 0.5%, outliers under 1%, live heartbeat present. Every unit gets a pass/fail badge with its flagged windows attached as evidence. Export as CSV and post it before anyone loads the truck.

    Per-unit pass/fail report with threshold breakdown replace with screenshot · 1200 × 750
The pipeline

Every step used, at a glance

Load

Logs + live telemetry

Ingest per-unit sensor CSVs and stream the same channels live from the fleet's REST API.

CSVREST/HTTP
Shape

Sync & flag

Resample every channel onto a 10 Hz clock, then flag outliers and dropout gaps per unit.

Deliver

Pass/fail QA report

Score each unit against the trial thresholds and export the evidence-backed report.

CSV
12 units
scored in one pipeline run
3 failures
caught before the truck left
10 Hz
one clock across every sensor

More use cases