CoolFace
Datasetpublic

Damin3927/dynamic_robot_bench_dr_scripted_14k

dynamic_robot_bench_dr_scripted_14k 14,400 scripted-expert demonstrations across the 72 evaluated task families of dynamic-robot-bench — a conveyor-belt dynamic-manipulation benchmark (Franka Panda + wrist camera, ManiSkill 3 / SAPIEN GPU sim). One LeRobot v2.1 dataset: 200 episodes per family, success-filtered, every domain-randomization knob on, and belt speed uniform over 0.10–0.40 m/s. 1,118,617 frames · 209 distinct language instructions · 20 fps The belt speed… See the full description on the dataset page: https://huggingface.co/datasets/Damin3927/dynamic_robot_bench_dr_scripted_14k.

sourceHugging Facecc-by-4.0updated 11d agoView on Hugging Face
0likes76downloads
Dataset Card

dynamicrobotbenchdrscripted_14k

14,400 scripted-expert demonstrations across the 72 evaluated task families of [dynamic-robot-bench](https://github.com/Damin3927/dynamic-robot-bench) — a conveyor-belt dynamic-manipulation benchmark (Franka Panda + wrist camera, ManiSkill 3 / SAPIEN GPU sim). One LeRobot v2.1 dataset: 200 episodes per family, success-filtered, every domain-randomization knob on, and belt speed uniform over 0.10–0.40 m/s.

1,118,617 frames · 209 distinct language instructions · 20 fps

The belt speed is uniform by construction, not by luck

The thing that makes this dataset different from a sweep is that the speed distribution is enforced. Collection stratifies the saved episodes over 10 equal-width bins of 0.030 m/s and holds an equal quota in each, discarding surplus successes rather than letting the success filter reshape the band — fast belts fail more often, so an unstratified success-filtered collection skews slow.

per-bin episode counts1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440, 1440
observed range0.100 – 0.400 m/s
belt direction+y: 7,244 / -y: 7,156

The equal counts are enforced, not observed. The collector retargets the draw at whichever bin is most deficient and discards surplus successes, so the counts are exact by construction and carry no information about how many attempts each bin cost. A goodness-of-fit statistic against an IID uniform null does not apply to them either — they have zero variance where an IID sample's would be multinomial — so none is quoted here. The table says the corpus is flat across the band; it does not say the collection was unbiased in any deeper sense.

Per-episode speeds are in meta/bench_episode_provenance.jsonl (14,400 rows), so this table can be recomputed from the files rather than believed.

Collection configuration

Identical for every family, from the recorded stamps:

knobvalue
robot / controlpanda_wristcam · pd_ee_delta_pose
scenereplicacad (index 0), shader default
randomization--randomize — every boolean knob on the family's config, plus the scripted-expert velocity SDE
speed stratification--speed-bins 10
scene-DR resampling--reconfigure-every 8 → 25 independent scene draws per family
success filter--filter-success (only successful episodes are saved)
parallel envs4
episode cap300 steps
seedsone distinct --seed per family; the expansion is in each family's collection.main_seed in meta/ranges.json
code874874b6

Scene-background randomization (workspace tint, lighting intensity/colour/direction, independent per-camera eye jitter, clutter props) is drawn once per reconfigure and shared by the batch, which is why the resampling count above is the number of distinct backgrounds a family carries — not 200.

Layout

Standard LeRobot v2.1, plus two bench files:

  • meta/ranges.jsonthe family manifest: every family's episode range, frame count, and its own collection stamp. The stamp is per-family because bench_collection describes one collection run and this dataset is 72 of them; it is carried here rather than dropped.
  • meta/bench_episode_provenance.jsonl — one row per episode: env_seed, belt_speed, belt_direction, object_id, the randomization snapshot, and the initial poses it was drawn into. gym_id names the owning family.

Features: exterior_image_1_left (224×224, three world-fixed eyes tiled), wrist_image_left (224×224), joint_position (7), gripper_position (1), actions (8 = 7 target joint angles + gripper, DROID convention).

Families

familyepisodesframesindex rangemean belt speed (m/s)distinct objects
ConveyorAxleSeat-v0200142350–1990.251
ConveyorBeltCorner-v020025201200–3990.25016
ConveyorBeltLoad-v020022203400–5990.2506
ConveyorBeltSwap-v020023612600–7990.2508
ConveyorBoreGrip-v020016111800–9990.250
ConveyorCapPress-v0200142111000–11990.250
ConveyorCapSwipe-v0200168101200–13990.249
ConveyorCartCouple-v0200152641400–15990.250
ConveyorClearArch-v0200130871600–17990.25010
ConveyorClipCard-v0200101631800–19990.250
ConveyorColorPress-v0200121222000–21990.2504
ConveyorCountPress-v0200153352200–23990.2506
ConveyorCrushLimitPick-v0200157132400–25990.251
ConveyorCullFlawed-v0200249992600–27990.2505
ConveyorDepthBand-v0200120212800–29990.249
ConveyorDivertPick-v0200176223000–31990.251
ConveyorDrawerOpen-v0200150243200–33990.250
ConveyorDualPin-v0200126813400–35990.250
ConveyorEdgeFlush-v0200156413600–37990.2517
ConveyorEdgeRecenter-v0200204193800–39990.2505
ConveyorEvenLoad-v0200155404000–41990.250
ConveyorFaceUp-v0200301914200–43990.250
ConveyorFlagHold-v0200166294400–45990.250
ConveyorFlapPost-v0200130874600–47990.2508
ConveyorFlushFit-v0200137184800–49990.2496
ConveyorFreeLane-v020094425000–51990.2508
ConveyorFruitDrop-v0200140465200–53990.2506
ConveyorGapThread-v0200115145400–55990.2504
ConveyorHandleGrasp-v0200178985600–57990.2494
ConveyorHexSocket-v0200107845800–59990.250
ConveyorHookRail-v0200140306000–61990.250
ConveyorKeySlot-v0200137926200–63990.2504
ConveyorKitFill-v0200154416400–65990.2504
ConveyorMatchAngle-v0200118256600–67990.250
ConveyorMeterInsert-v020087746800–69990.250
ConveyorNamedPick-v0200178357000–71990.25024
ConveyorNutRunDown-v0200176377200–73990.250
ConveyorOrderPick-v0200180287400–75990.249
ConveyorOrientPlace-v0200167667600–77990.250
ConveyorPatchCover-v0200143517800–79990.2496
ConveyorPegPull-v0200138368000–81990.251
ConveyorPourFill-v0200127968200–83990.251
ConveyorPressButton-v0200118288400–85990.250
ConveyorPullCord-v0200136508600–87990.250
ConveyorRailBalance-v0200145968800–89990.2504
ConveyorRampRoll-v0200116589000–91990.2502
ConveyorReach-v020097539200–93990.251
ConveyorReadPresent-v0200295919400–95990.2494
ConveyorRelPlace-v0200141609600–97990.25012
ConveyorRingHang-v0200138149800–99990.250
ConveyorRingHangTilt-v02001174010000–101990.251
ConveyorRockerToggle-v02001257210200–103990.250
ConveyorScanAim-v02001105810400–105990.250
ConveyorScoopBall-v02001577210600–107990.2513
ConveyorSelectorSet-v02001656710800–109990.2513
ConveyorSheetEdgePick-v02001510011000–111990.251
ConveyorShoeMat-v02001451111200–113990.2503
ConveyorShroudBore-v0200815311400–115990.249
ConveyorSideInsert-v02001097411600–117990.251
ConveyorSideLabel-v02001048711800–119990.250
ConveyorSoftSet-v02001398912000–121990.2504
ConveyorSpringHold-v02001294612200–123990.249
ConveyorStampSeal-v02001031312400–125990.250
ConveyorTareLoad-v02003630512600–127990.2503
ConveyorThreadLoop-v02001134112800–129990.251
ConveyorTopple-v02001833013000–131990.250
ConveyorToteUnload-v02001416313200–133990.25012
ConveyorTrayLift-v02001844213400–135990.25112
ConveyorTrayToBin-v02001577913600–137990.25012
ConveyorTurntablePick-v02001385213800–139990.250
ConveyorUprightBottle-v02003266714000–141990.2504
ConveyorWipeBoard-v02001407214200–143990.250

What this data is not

  • Successes only. --filter-success keeps episodes the scripted expert solved, so the corpus carries no failure modes. Anything learning a recovery behaviour needs data collected without it.
  • A scripted expert, not a human. Trajectories come from per-family analytic controllers with a bounded velocity SDE perturbing the per-step displacement budget; they are consistent in a way teleoperation is not.
  • The evaluated families only. The benchmark registers 100 dynamic families; the 72 here are the ones that clear the suite's rate bar across the whole 0.10–0.40 m/s band under the shipped configuration. The rest are registered and importable but not maintained.

Asset attribution

The manipulated objects come from the sources below — mostly primitives built procedurally by this repository rather than scanned meshes. The dataset is released CC-BY-4.0, which is compatible with each source; attribution flows through to the original authors.

  • Procedural (SAPIEN primitives built in this repository) — MIT, with the code (93 distinct objects, 6,190 episodes)
  • YCB Object and Model Set — CC-BY 4.0 · https://www.ycbbenchmarks.com/ (6 distinct objects, 210 episodes)

The remaining 8,000 episodes are from families whose manipulated part is fixed, so they record no per-episode object identity. No Google Scanned Objects, RoboCasa or Poly Haven mesh appears in this dataset: the families that draw from those catalogs are the ones held out of the evaluated set.

Citation

The benchmark this was collected with is unpublished; cite the repository until a paper exists.

Damin3927/dynamic_robot_bench_dr_scripted_14k · CoolFace