One-click Robot Data Curation for Higher Quality Datasets

Community Article Published October 17, 2025

TLDR;

We built a free, open-source tool to instantly improve the quality of your LeRobot datasets: RoboticsData/score_lerobot_episodes

image

What It Does

score_lerobot_episodes automatically evaluates each episode in your dataset along five key dimensions of quality:

  • Visual Clarity — detects poor lighting, blur, and other vision artifacts
  • Motion Artifacts — flags jitter, path inefficiencies, and collisions
  • Robot Health — identifies actuator saturation and unstable joint configurations
  • Timing — detects idle periods and inflated trajectories
  • Task Success — estimates goal completion quality

Once scored, the tool outputs a filtered dataset that’s ready for fine-tuning or evaluation. No manual curation needed.

Visual Clarity

Poor lighting, occlusion, or blur can severely impact perception models but at the same time, a small amount of noise can also increase robustness.

Our approach strikes a balance: it uses classical computer vision heuristics to detect and remove the most obviously degraded frames while keeping natural variance intact. This gives you cleaner, more balanced data as a sanity check before training.

Motion Artifacts

Teleoperation datasets often include subtle trajectory defects: jitter, unintended collisions, or inefficient motion paths.

Such artifacts can introduce bias into learned control policies or even risk hardware damage when replayed. The tool automatically spots and flags these irregularities — making your control loops smoother and safer.

Robot Health

Episodes with actuator saturation, overextension, or unstable joint configurations indicate unhealthy control behavior. Our tool highlights these risky patterns to prevent wear-and-tear before they reach production or long-term training loops.

By filtering or reweighting such examples, you protect both your robot hardware and your training dynamics.

Timing

Not all episodes are equally valuable. Some contain long stretches of idle motion or operator delays that bloat your training time without adding useful signal.

score_lerobot_episodes detects these temporal anomalies — for example, an episode that should take 20 s but drags on for 90 s due to hesitation or recovery — and lets you exclude or down-weight them automatically.

One Command to Clean Your Data

With a single command, you can score and clean your entire dataset:

score_lerobot_episodes --input /path/to/dataset --output /path/to/filtered

…and instantly get a scored, filtered dataset with rich metadata to visualize and debug.

We welcome contributions, feedback, and dataset examples from the community. Try it today and see what your dataset really looks like under the hood.

GitHub: RoboticsData/score_lerobot_episodes

Community

Sign up or log in to comment