Skip to content

test(tasks): gate cube physical recovery - #483

Open
yuecideng wants to merge 1 commit into
feat/production-parallel-safetyfrom
feat/cube-physical-recovery-gates
Open

test(tasks): gate cube physical recovery#483
yuecideng wants to merge 1 commit into
feat/production-parallel-safetyfrom
feat/cube-physical-recovery-gates

Conversation

@yuecideng

@yuecideng yuecideng commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Description

Stack

  • Layer: 14/14
  • Base: feat/production-parallel-safety
  • Depends on: feat(expert-program): validate parallel joint segments #482
  • Followed by: Top of stack
    Close the current physical acceptance loop for declarative Expert Programs. The UR5 cube preset uses 100 real motion samples while retaining the 0.08-rad tracking gate and bounded replanning; a slow GPU gate proves all three lazy Pick/Place/settle/validator cycles complete through contact dynamics.

A second slow gate injects only a bounded controller-ready gripper-open command through ordinary env.step() calls during Place. It proves physical held-object loss, core-owned symbolic invalidation, RECOVERY_REQUIRED, a real re-acquisition Pick, Place retry, and completion of the remaining program. The fault wrapper never writes object pose, velocity, constraint, attachment, or task state.

This layer also documents the placement and parallel APIs and refreshes the deterministic rollout report.

Refs #471
Refs #474

Type of change

  • Enhancement (non-breaking change which improves existing functionality)
  • Documentation update

Screenshots

Not applicable.

Validation

  • Relevant cross-stack regression — 1215 passed, 2 skipped, 8 deselected
  • pytest -q tests/benchmark/expert_program/test_demo_success_cube_sim.py tests/benchmark/expert_program/test_cube_physical_recovery_sim.py -m 'slow and gpu and requires_sim' --run-gpu — 2 passed in 186.81s
  • pytest -q tests/gym/envs/tasks/test_multi_segments_cube_pick_place.py tests/gym/envs/tasks/test_open_drawer.py tests/scripts/tools/test_expert_program_rollout_report.py — 19 passed, 1 deselected
  • python scripts/tools/expert_program_rollout_report.py --check — up to date
  • make html — succeeded; Sphinx reported 698 repository-wide warnings
  • Black 26.3.1 check on changed Python files and git diff --check

Checklist

  • Changed Python files pass Black 26.3.1.
  • Public API, usage, rollout, and design documentation is updated.
  • Unit, integration, and real-simulation tests prove the behavior.
  • No dependency update is required.

@yuecideng
yuecideng force-pushed the feat/cube-physical-recovery-gates branch from 21b62d7 to f116933 Compare August 11, 2026 16:09
@yuecideng yuecideng added task A task written in openai gym format for imitation learning or reinforcement learning gym robot learning env and its related features docs Improvements or additions to documentation labels Aug 11, 2026
@yuecideng
yuecideng marked this pull request as ready for review August 11, 2026 16:12
@greptile-apps

greptile-apps Bot commented Aug 11, 2026

Copy link
Copy Markdown

Greptile Summary

This PR strengthens the repeated-cube physical acceptance coverage and updates the corresponding task preset and rollout documentation.

  • Increases the UR5 cube preset to 100 motion samples while preserving tracking and recovery bounds.
  • Adds slow GPU simulation gates for three-cycle completion and physical-loss recovery.
  • Refreshes rollout metrics, capability documentation, and public API references.

Confidence Score: 5/5

The PR appears safe to merge because no concrete blocking or independently actionable non-blocking defect remains.

The production change is a bounded task-policy calibration, and the added simulation gates exercise the intended completion and recovery paths without exposing a supported failure mechanism.

Important Files Changed

Filename Overview
embodichain_tasks/embodichain_tasks/multi_segments/cube_pick_place.py Configures 100 motion samples for the cube preset while retaining existing tracking and bounded-recovery policies.
tests/benchmark/expert_program/test_cube_physical_recovery_sim.py Adds an isolated simulation gate that injects controller-level gripper opening and verifies physical loss, invalidation, reacquisition, and retry.
tests/benchmark/expert_program/test_demo_success_cube_sim.py Adds a slow GPU regression gate validating all three physical Pick/Place cycles and their effect, settling, and validator metadata.
scripts/tools/expert_program_rollout_report.py Refreshes the deterministic capability and integration matrices to represent newly validated coverage.
docs/design/expert_program_rollout_report.md Updates generated rollout metrics and physical-acceptance status consistently with the reporting tool.

Sequence Diagram

sequenceDiagram
    participant Test as Recovery gate
    participant Env as env.step()
    participant Physics as Contact dynamics
    participant Runtime as Expert Program runtime
    Test->>Env: Replace bounded Place commands with gripper-open targets
    Env->>Physics: Apply ordinary controller commands
    Physics-->>Runtime: Held-object relation contradicted
    Runtime->>Runtime: Invalidate symbolic held state
    Runtime->>Env: Execute recovery Pick
    Env-->>Runtime: Re-acquisition verified
    Runtime->>Env: Retry Place and remaining program
    Env-->>Test: Completed three-segment episode
Loading

Reviews (1): Last reviewed commit: "test(tasks): gate cube physical recovery" | Re-trigger Greptile

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs Improvements or additions to documentation gym robot learning env and its related features task A task written in openai gym format for imitation learning or reinforcement learning

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant