Skip to content

Add atomic runtime execution for augmented PickUp collection - #594

Draft
yuecideng wants to merge 1 commit into
feat/fixed-scene-trajectory-generationfrom
feat/atomic-runtime-trajectory-generation
Draft

Add atomic runtime execution for augmented PickUp collection#594
yuecideng wants to merge 1 commit into
feat/fixed-scene-trajectory-generationfrom
feat/atomic-runtime-trajectory-generation

Conversation

@yuecideng

Copy link
Copy Markdown
Contributor

Description

Execute selected augmented PickUp candidates through a fresh ExecutionSession and ExecutionRunner, with measured arm feedback and verified held-object effects before expert-data acceptance. The existing collector previously replayed offline atomic templates; cube_pickup_collection.py --runtime now exercises the observed runtime while preserving its physical contact checks and confirmed LeRobot persistence.

Depends on #591. This is a separate increment based on feat/fixed-scene-trajectory-generation; review only the changes above that branch.

  • Add PickUpRuntimeSource and share plan/effect construction through PickUp.materialize_trajectory. Preserve the chosen joint branch and transit/approach/close/lift/hold phases after every full-batch initial-state restoration.
  • Keep one physics clock, float64 command periods, explicit zero velocity targets, and T commands / T+1 observations. Arm feedback remains mandatory; gripper preload is verified by native bilateral contact and hold stability.
  • Verify symbolic effects using the current observed joint context in the motion endpoint's TCP frame. Record both this frame and the contact profile's native TCP frame, with effect errors and bounded runtime event counts.
  • Block recovery commands at the transport boundary, cancel/hold the active batch, and reject its expert data. Interrupted phase prefixes return unavailable path evidence so rejection does not abort the collection job.
  • Update the API reference, guide, examples, design status and agent context. Offline collection remains available.

This layer covers Atomic PickUp × pure simulation with the existing fixed-base URDF / cuboid / CPU-physics contact profile. Contact-aware Gym, general via-point factors, the unified YAML launcher and the complete M1 qualification matrix remain subsequent work.

Type of change

  • New feature (non-breaking change which adds functionality)
  • Documentation update

Validation

  • Affected collection and atomic-action CPU tests: 993 passed, 1 skipped, 15 deselected. Includes candidate ownership/protected phases, idle rows, five control periods, velocity-target consistency, effect-frame mismatch and recovery rejection.
  • Real headless simulation: 4 passed across observed runtime collection, recovery rejection, offline collection and the original four-panel preview. Runtime collected 8/8/8 proposed/attempted/committed, with 271 actual commands and 272 observations per episode; all eight LeRobot shards and the 544-frame H.264 video were read back. Minimum lift was 17.90 cm and bilateral hold-contact coverage was 100%.
  • Real recovery negative case: one tail-batch attempt, one candidate command, two plan attempts, measured safe hold, zero commits, no manifest and no job error.
  • black ., black --check ., git diff --check, API coverage 1762/1762, and docs checker 8 passed. Sphinx dummy build succeeded with 744 warnings; none referenced the added generation APIs. Independent read-only review findings were fixed and rechecked.

Screenshots

Reproduce the synchronized four-panel video and numeric dataset:

python examples/sim/motion/trajectory_generation/cube_pickup_collection.py \
  --output /tmp/cube-runtime-experts --episodes 8 --runtime --record-video

The output directory must be new or empty. preview.mp4 shows two grasp orientations and independent augmented transit paths; generation_report.json and per-episode metadata carry acceptance evidence. Video is separate from the numeric LeRobot dataset.

Checklist

  • I have run the black . command to format the code base.
  • I have made corresponding changes to the documentation.
  • Public API changes are reflected in the API docs.
  • I have added tests that prove the feature works.
  • Dependencies have been reviewed; no dependency changes are needed beyond feat(motion): add fixed-scene expert trajectory generation #591.

@yuecideng yuecideng added docs Improvements or additions to documentation enhancement New feature or request motion gen Things related to motion generation for robot dataset atomic action atomic action related functionality labels Sep 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

atomic action atomic action related functionality dataset docs Improvements or additions to documentation enhancement New feature or request motion gen Things related to motion generation for robot

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant