Skip to main content

Robot Data Audit (RDA)

PyPI Python License: MIT Downloads Tests

audit: lerobot/pusht audit: AgiBotWorld2026 RL

Independent quality assessment for robot data. Runs locally — your data never leaves your machine.

RDA is a diagnostic tool. It does not guarantee training success-rate improvements.

RDA audits robot manipulation datasets (LeRobot format) for integrity, temporal consistency, motion quality and distribution coverage, then generates optimization recommendations calibrated to your target model architecture. Use it as an independent check before you accept a vendor dataset, train a policy, or publish a benchmark.

RDA audit overview

Install

pip install robot-data-audit

Optional dependency tiers:

Tier Extra Unlocks
Core (default) parquet audits: integrity + temporal/motion + dataset-utility metrics
Visual pip install robot-data-audit[video] or pip install av the 4 visual metrics (freeze / timestamp-alignment / stream-sync / quality)
Lerobot [lerobot] .parquet dataset loading via the lerobot package
UI [ui] the web dashboard

Visual metrics without PyAV are reported as "not audited", never as "pass": the JSON report carries a top-level skipped_by_missing_dep field and the CLI prints a warning listing the skipped checks. The web dashboard shows the same guarantee — a dep-missing dataset renders a "not audited ≠ pass" banner, and the Health Overview adds a Visual Integrity section (checked / flagged / not-checked episode counts) while Episode Explorer gains a per-episode Visual Audit panel (freeze-region table, per-camera quality penalties, per-sample quality curves).

Acceptance summary (v0.8.0): rda audit --format json emits an acceptance_summary block — dataset-level P10/P50/P90 baselines, Tukey-IQR runtime outliers, the Tier-1 calibration layer and the not-checked inventory — and the dashboard adds an Acceptance page that presents it as one deliverable for the data-acceptance party. RDA measures and presents; the accept/reject decision stays with the human reviewer.

Quick start

# 1. Audit a dataset — 18 metrics incl. visual-stream integrity, three-tier verdicts (PASS / REVIEW / EXCLUDE)
rda audit /path/to/lerobot/dataset

# 2. Recommendations calibrated to your model type
rda recommend /path/to/dataset --policy temporal   # or frame-wise

# 3. Optional web dashboard
rda ui

rda audit is fully offline. rda recommend computes all metrics locally and sends only aggregated statistics (<1KB) to the rules API — cached for offline reuse, and RDA_API_URL can point to your own server for private deployments. The usable_retention statistic is fps-aware (v0.7.3): a "usable" run must span ≥16 frames and ≥1 second (DROID's min_non_idle_len=16 encodes 1 s at 15-30 Hz; on 50 Hz data the floor rises to 50 frames so sub-second twitches no longer count).

RDA recommendations

Why RDA

12 local datasets, 4,959 episodes, one set of default thresholds, zero per-dataset tuning — full table in docs/benchmark.md.

Full audit of lerobot/libero_10 (v3.0) — 379 episodes, 101,469 frames: all 12 applicable integrity checks clean, 0 hard defects; the one REVIEW signal (low-motion heuristic) is discussed honestly. Read the report →

Blind test — we injected 50 defective episodes (5 defect classes, seed=42) into lerobot/pusht and kept 156 as controls. RDA caught all 50 under the broad criterion, precision 1.000 (zero false alarms on controls) under the strict one. Read the blind-test report →

Validated on AgiBotWorld2026 — third-party audit of AgiBot's Phase 3 dataset: all 5 simulation tasks + a real-robot RL package, 1,112 episodes, 4,448 integrity checks with 0 failures, and a 3.1× enrichment of RDA's discontinuity spikes at official human-takeover boundaries. Zero adaptation needed. Read the case study →

Every audit can also render into a shareable single-file HTML report and a README badge:

python tools/rda_render.py rda_report.json --html report.html --badge badge.svg

More: CLI reference & metrics table · experiments · real-world feedback form

Metric provenance

Every metric ships with a four-file provenance record (docs/provenance/<metric>/): algorithm.md (how it works), source.md (public precedents consulted — ideas only), implementation_origin.md (original implementation, zero third-party code), license.md (compliance notes). Covered: all 18 metrics (missing_dropout, invalid_values, schema_consistency, timestamp_validity, joint_limit, video_frame_integrity, video_freeze, video_timestamp_alignment, video_stream_sync, visual_quality, sensor_synchronization, sampling_jitter, velocity_acceleration, action_discontinuity, temporal_sufficiency, idle_ratio, distribution, coverage). Index: docs/provenance/.

Citation

@software{robot_data_audit,
  title = {Robot Data Audit: Quality Auditing for Robot Manipulation Datasets},
  author = {Niu Su Tech},
  year = {2026},
  url = {https://github.com/liesliy/rda}
}

MIT License.

Release files for robot-data-audit 0.8.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for robot-data-audit 0.8.0
File Size Uploaded
robot_data_audit-0.8.0.tar.gz 222.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for robot-data-audit 0.8.0
File Interpreter ABI Platform
robot_data_audit-0.8.0-py3-none-any.whl Python 3 none any Details

Total release size: 438.8 kB

Release files / robot_data_audit-0.8.0.tar.gz

Download URL robot_data_audit-0.8.0.tar.gz
Size 222.1 kB
Tags Source
SHA-256 checksum
How to use checksums
a4c7226fbb524969638ebf464901965f7aec532c859f3a06298ac54515683494
BLAKE2b-256 checksum
How to use checksums
d4a8156387f2aa70b08c21cbfc8083cdfcad3899c875d642eed1acb4dbb65606
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / robot_data_audit-0.8.0-py3-none-any.whl

Download URL robot_data_audit-0.8.0-py3-none-any.whl
Size 216.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5e151397cbc603a5e8d167ca54d421625ad3da100955f8f5e6f282b5138a0b3f
BLAKE2b-256 checksum
How to use checksums
d59502ee70ce1cbaf64cb808ff250c90a02ac30a8b2cc687bd2a83b7343044ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

0.9.14

2 release files

0.9.13

2 release files

0.9.12

2 release files

0.9.11

2 release files

0.9.9

2 release files

0.9.8

1 release file

0.9.7

2 release files

0.9.6

2 release files

0.9.5

2 release files

0.9.4

2 release files

0.9.3

1 release file

0.9.2

2 release files

0.9.1

2 release files

0.9.0

2 release files

This release

0.8.0 This release

2 release files

0.7.3

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.0

1 release file

0.5.9

1 release file

0.5.8

2 release files

0.5.7

2 release files

0.5.6

2 release files

0.5.5

2 release files

0.5.4

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.15

2 release files

0.4.14

2 release files

0.4.13

1 release file

0.4.12

1 release file

0.4.11

1 release file

0.4.10

1 release file

0.4.9

1 release file

0.4.8

2 release files

0.4.7

2 release files

0.4.6

2 release files

0.4.5

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

1 release file

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page