feat(motion): add fixed-scene expert trajectory generation - #591
Open
yuecideng wants to merge 5 commits into
Open
feat(motion): add fixed-scene expert trajectory generation#591yuecideng wants to merge 5 commits into
yuecideng wants to merge 5 commits into
Conversation
Group solvers, planners, workspace and augmentation under sim.motion. Add fixed-scene preparation, bounded generation and confirmed LeRobot persistence, plus physically validated parallel cube PickUp collection and video examples. BREAKING CHANGE: import robot motion APIs from embodichain.lab.sim.motion; previous sim.solvers, sim.planners and sim.workspace paths are removed.
7 tasks
yuecideng
marked this pull request as ready for review
September 6, 2026 17:00
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Add a fixed-scene expert trajectory generation pipeline that restores the same physical initial state between attempts, augments explicitly permitted motion phases, validates the executed motion, and counts an episode only after its LeRobot shard has been sealed and read back.
The parallel cube example keeps the cube's initial pose fixed while varying 0°/90° grasp orientations and transit paths. Collection checks full-joint collision geometry, native contacts at every physics substep, bilateral finger contact, lift height, and held-object drift before persisting an episode.
embodichain.lab.sim.motionpackage. Update imports, configuration references, API docs, examples, benchmarks, tests, and agent context.MoveEndEffector → PickUptemplate export, a bounded CPU-physics PickUp validator, repeated parallel collection, and synchronized H.264 video examples.Breaking API migration: replace
embodichain.lab.sim.{solvers,planners,workspace}imports withembodichain.lab.sim.motion.{solvers,planners,workspace}. Legacy import packages are removed; low-level Warp kernels remain underutils/warp/kinematics.Dependencies: the optional
trajectory-generationextra addspython-fcl,trimesh, andyourdfpyfor PickUp collision validation. Collection uses the existing DexSim, LeRobot, and video dependencies; the free-motion example additionally uses cuRobo.This draft contains the implemented portions of the design and implementation plan under
docs/design/fixed_scene_expert_trajectory_augmentation_*. Full Atomic Runtime candidate consumption/tracking/recovery, Gym PickUp collection, the unified configuration launcher, and asynchronous persistence remain follow-up work. The current PickUp integration supports one unscaled fixed-base URDF robot and cuboid rigid objects with CPU physics; sampled geometry checks do not guarantee continuous collision avoidance.Type of change
Validation
f4ad72de): 1542 passed, 1 skipped, 168 deselected across motion, atomic actions, trajectory generation, Gym preparation/demo and simulation integrations, SimulationManager, articulation/gizmo, scene semantics, and motion benchmarks (excluding GPU/slow/requires_sim tests).black .andgit diff --checkpassed. Public API coverage: 1761/1761; checker tests: 8 passed. Sphinx dummy build completed with documentation warnings.quick_validate.py.Screenshots
Generate the synchronized four-view video and verified dataset locally:
pip install -e '.[trajectory-generation]' python examples/sim/motion/trajectory_generation/cube_pickup_collection.py \ --output /tmp/cube-pickup-collection --episodes 8 --record-videoOutputs include
preview.mp4,generation_report.json,pickup_report.json,manifest.json, and individual LeRobot episode shards. The video includes all attempted rollouts; the manifest includes only confirmed accepted episodes.Checklist
black .command to format the code base.python docs/scripts/check_api_docs.py).