dsta022/Loop-Engineering-for-VLA
Toolkit for collecting, merging, auditing, visualizing, and publishing RGB/RGB-D LeRobot VLA datasets.
Loop Engineering for VLAnything – A Toolkit for Building High‑Quality Vision‑Language‑Action Datasets
What it is
- An open‑source Python toolkit that lets researchers record, merge, audit, enrich, and iterate on multimodal robot‑learning datasets built for vision‑language‑action (VLA) models such as those in the
lerobotecosystem. - It works with standard RGB‑only LeRobot datasets and RGB‑D datasets that include loss‑less depth side‑cars, plus a work‑in‑progress visuo‑tactile mode.
- The whole pipeline is model‑free by default – you can plug in evaluators, annotators, or policy trainers later without pulling in heavy model weights.
Why it matters
- High‑quality VLA data is hard to obtain; small errors in video, depth, or action logs can cripple downstream training.
- The toolkit treats every artifact (videos, joint states, language captions, human feedback) as a first‑class side‑car that never mutates the original recordings, making the data audit‑friendly and reproducible.
- It provides a conservative, rule‑based quality audit that automatically drops clearly broken episodes while flagging borderline cases for human review.
Core components
| Area | Entry‑point (CLI) | What it does |
|---|---|---|
| Recording | vla-merge, vla-audit, … (see table below) |
Framework‑free recorder that talks directly to SO‑100/SO‑101 robot arms and to Orbbec, Intel RealSense, or generic OpenCV cameras. Writes LeRobot‑v3.0‑compatible datasets with optional depth side‑cars and human‑guided policy feedback. |
| Merging | vla-merge |
Combines many LeRobot datasets (RGB‑only, RGB‑D, etc.) into a single physical dataset, rewriting indices, metadata, and depth files. |
| Auditing | vla-audit |
Deterministic structural checks (metadata, timestamps, video decode, depth PNG integrity) plus optional semantic checks that run a policy checkpoint or custom evaluator to score how well the episode follows its task description. |
| Cleaning | vla-clean |
Builds a clean dataset by applying the keep/review/drop lists produced by the audit. |
| Language enrichment | vla-enrich |
Adds trajectory‑language side‑cars (subtasks, events, state descriptions) using a built‑in kinematic annotator or any user‑provided language annotator plugin. |
| Feedback collection | vla-feedback-build |
Captures human interventions on a deployed policy, stores them as side‑cars, and later merges them into a training set. |
| Policy iteration | vla-iterate |
Simple train‑evaluate‑promote‑deploy loop that can be hooked to any lerobot checkpoint. |
| Upload | vla-push |
Pushes the final dataset to Hugging Face (the repo ships a ready‑to‑use HF dataset: DerekLX/lerobot_derek_depth). |
| Utility tools | vla-completeness, vla-calibrate, vla-depth-vis, vla-task-studio, vla-language-studio |
Helpers for dataset sanity‑checks, threshold calibration, depth visualisation, and interactive profile/annotation editing. |
How to get started
- Install Python 3.12+, create a conda env, and add
ffmpeg(required for video handling). - Install the repo in editable mode with the recording extras you need, e.g.
conda create -n vla python=3.12 -y && conda activate vla conda install -c conda-forge ffmpeg -y pip install -e "[record]" # adds camera‑SDK optional deps later with [realsense] or [orbbec] - Use the
record/scripts to capture new episodes (RGB or RGB‑D). Example for an Orbbec camera:python record/rgbd_record/find_cameras.py orbbec python record/rgbd_record/record.py --config_path=record/rgbd_record/configs/record_rgbd.yaml - Merge multiple raw datasets into one unified folder with
vla-merge. - Run a structural audit (
vla-audit) to generatekeep_episodes.txt,review_episodes.txt, anddrop_episodes.txt. - (Optional) Plug a semantic evaluator – e.g. the built‑in
semantic_backends.vla_checkpoint_evaluator– to score episodes against a policy checkpoint. - Enrich the kept episodes with language side‑cars via
vla-enrich. - If you have collected human feedback on a deployed policy, build the feedback dataset with
vla-feedback-buildand feed it back intovla-iteratefor the next training round. - Push the final, audited dataset to Hugging Face with
vla-push.
Who should use it
- Researchers building vision‑language‑action or embodied AI models who need a reproducible data‑engineering pipeline.
- Robotics labs that already use the
lerobotdata format and want to add depth or tactile side‑cars without rewriting their existing code. - Teams that want a closed‑loop data‑collection loop: record → audit → enrich → train → collect feedback → repeat.
Key design principles
- Conservative decisions – only hard failures are dropped; ambiguous cases are marked for review.
- Side‑car‑first – depth, language, feedback, and even training weights live outside the core dataset, preserving the original recordings.
- Pluggable, model‑free by default – the base install ships no weights; any evaluator, annotator, or policy can be added via a simple
module:attributeplugin string.
Documentation & community
- A full static website (
https://dsta022.github.io/Loop-Engineering-for-VLA/) hosts the playbooks, plugin contracts, and audit strategy docs. - CI runs unit tests on synthetic data for both Linux and Windows.
- The repository includes example configuration files, a synthetic test suite, and a ready‑to‑use Hugging Face dataset.
All details above are taken directly from the repository’s README; no additional features have been inferred.
Related
- Dispatch
- Dispatch
- Project
- Dispatch