Skip to content

Integrate scene workspace checks and add a UR5 showcase - #750

Merged
yuecideng merged 6 commits into
mainfrom
codex/scene-expansion-workspace
Oct 17, 2026
Merged

yuecideng merged 6 commits into
mainfrom
codex/scene-expansion-workspace

Conversation

@yuecideng

@yuecideng yuecideng commented Oct 10, 2026 •

Copy link
Copy Markdown
Contributor

Description

Prepare and restore B=1 Task Program scene variants through the Gym reset lifecycle, and expose robot-aware workspace checks as reusable sim.scene services. The UR5 round-table showcase makes the preparation decision visible: reject a red start before planning, then generate measured pick-and-place demonstrations from green starts.

  • Keep RobotSceneWorkspace and SceneWorkspaceCandidate in sim.scene.workspace. Core checks return SceneCheckReport; the Task Program compatibility adapter returns ValidationResult.
  • Retain host ownership, reset order, fixed-parameter drift checks, contact refresh, recording initialization and fresh runtime/planner bindings. Physical restoration requires a numeric round-trip check and unchanged ownership, topology, backend and control period.
  • Fix static rigid-body property capture: static bodies have no dynamic mass/inertia data, while friction and damping remain checked.
  • Keep all UR5 demo code under scripts/tutorials/scene/: robot_workspace.py owns the CLI and orchestration; four private sibling helpers own the scene/candidates, Task Program trial, display/capture and presentation video. Demo code is no longer shipped or documented as a public SDK API.
  • Reuse real FK caches and one fixed downward grasp. Upright adjustments require fresh IK, current-limit and full-pose FK checks. The actual tabletop query results supply the red/green point cloud.
  • Validate whole-cube support against the circular table, settling, measured task outcome, the first recorded cube pose and physical/controller restoration. A rejected start executes zero expert controls.

The task gate requires program completion, at least 5 cm of measured lift, and a released cube within 4 cm of the goal for ten consecutive control steps at linear speed <= 0.03 m/s and angular speed <= 0.2 rad/s. Accepted trials save trajectory evidence; LeRobot writing is disabled by default.

Dependencies: shared scene services from #761. Existing package dependencies cover this implementation. Refs #760 and #748. Scene proposal imports use the canonical sim.scene.expansion namespace from #805.

Showcase and documentation

Showcase guide · Original MP4

UR5 round-table workspace: a red start is rejected, followed by successful pick and place from green starts

The guide embeds the full looping GIF (960 x 540, 8 fps, about 5 MiB), retains the original 1280 x 720, 25 fps MP4 download, and explains fixed-grasp color semantics, commands, acceptance and saved artifacts. Links from the Robot Workspace feature page and Simulation and Control tutorial index are retained.

The included seed-7 recording checks 1,190 object origins on a 2.4 m diameter round table: 703 pass and 487 fail. The red example produces zero actions; all three green starts complete measured pick-and-place trials. The committed GIF, video and screenshots are unchanged by the demo relocation.

Type of change

  • New feature
  • Enhancement
  • Bug fix
  • Documentation update

Validation

  • 413 focused production scene/workspace and Task Program host/integration tests passed; the default slow case was qualified separately.
  • 227 CI, mapped-context and documentation checks passed.
  • The native scene-host recording/restoration test passed using the production API.
  • Direct CLI smokes passed after relocation: scene --view none, task --view none, and task --view offscreen, all with seed 7 and three candidates. Task smokes were launched outside the repository to check path resolution. Both task runs succeeded 3/3; red rejection, first-frame cube poses and restoration passed. Candidate identities match across modes and views.
  • Offscreen output includes the 1280 x 720, 25 fps, 686-frame explanation video. The four moved private helpers are byte-for-byte unchanged.
  • Sphinx reference build passed with the existing repository documentation warnings; no removed SDK demo references remain. Black 26.3.1, whitespace and context checks passed; API coverage is 2602/2602 exports.

Demo-specific unit, presentation and native-mode tests were removed with the SDK demo modules. Automated tests retain production workspace, state and host coverage; no tests import the tutorial implementation. The tutorial is checked through syntax/help checks and direct CLI smokes.

Native qualification used a temporary coherent DexSim Python overlay over the installed binary because the local SDK installation mixed versions. The qualified physical scope remains fixed-topology B=1, single-arm UR5, Default backend/CPU physics.

Context review: revise the scene-services overview to point to the tutorial-owned implementation; other ownership and runtime guidance remains accurate.

Checklist

  • Run black . with Black 26.3.1.
  • Review and update affected documentation and agent context.
  • Keep reusable services in production modules and demo code in tutorials.
  • Validate production contracts and run the relocated CLI.
  • Review dependencies; no additional runtime package is required.

@yuecideng
yuecideng added this pull request to stack #751 October 10, 2026 15:01
@yuecideng yuecideng changed the title feat(scene): integrate workspace and settled scene initial states Integrate workspace sampling and settled scene restoration Oct 10, 2026
@yuecideng yuecideng added enhancement New feature or request motion gen Things related to motion generation for robot dataset labels Oct 10, 2026
@yuecideng
yuecideng force-pushed the codex/scene-expansion-workspace branch from 2253cd5 to f31efad Compare October 10, 2026 15:05
@greptile-apps

greptile-apps Bot commented Oct 10, 2026 •

Copy link
Copy Markdown

RetriggerView in GreptileConfidence Score: 5/5

[Medium impact] The PR appears safe to merge; no actionable issues remain from this review.

Summary

Adds robot-aware scene checks, preparation through Gym reset, saved-state restoration, and a UR5 red/green workspace showcase.

  • Robot workspace checks turn valid samples into checked object grasp poses.
  • Scene variants prepare and restore through the Gym reset cycle.
  • The UR5 demo shows red starts stopping and green starts reaching pick-and-place.
  • The API docs use the canonical scene expansion namespace.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart LR
  A[Scene candidate] --> B[Gym reset and reset events]
  B --> C[Apply poses and settle]
  C --> D[Refresh contacts and check scene]
  D --> E{Checks pass?}
  E -->|No| F[Reject without expert actions]
  E -->|Yes| G[Seed recording and create fresh bridge]
  G --> H[Execute task and measure outcome]
  H --> I[Restore saved state and compare]
Loading

Reviews (13) · Last reviewed commit: "refactor(demo): move workspace showcase ..." · Reviewed by Greptile

Comment thread embodichain/lab/gym/envs/base_env.py
@yuecideng
yuecideng force-pushed the codex/scene-expansion-workspace branch from f31efad to 36989f7 Compare October 11, 2026 15:56
@yuecideng
yuecideng force-pushed the codex/scene-expansion-workspace branch from 36989f7 to 83ed8fc Compare October 11, 2026 16:39
@yuecideng
yuecideng removed this pull request from stack #751 October 11, 2026 16:41
@yuecideng yuecideng changed the title Integrate workspace sampling and settled scene restoration Integrate scene services with Task Program workspace and reset Oct 11, 2026
@yuecideng
yuecideng changed the base branch from codex/scene-expansion-contracts to codex/scene-foundation October 11, 2026 16:42
@yuecideng
yuecideng added this pull request to stack #762 October 11, 2026 16:42
@yuecideng
yuecideng force-pushed the codex/scene-expansion-workspace branch from 83ed8fc to 16dc84a Compare October 11, 2026 16:50
Comment thread embodichain/lab/task_program/integrations/simulation/scene_expansion.py Outdated
Comment thread embodichain/lab/task_program/integrations/simulation/workspace.py Outdated
@yuecideng
yuecideng force-pushed the codex/scene-expansion-workspace branch from 16dc84a to 83ed8fc Compare October 11, 2026 17:13
Comment thread embodichain/lab/task_program/integrations/simulation/workspace.py Outdated
Base automatically changed from codex/scene-foundation to main October 13, 2026 14:20
@yuecideng
yuecideng force-pushed the codex/scene-expansion-workspace branch from ed91138 to c862137 Compare October 13, 2026 14:20
Comment thread embodichain/lab/task_program/integrations/simulation/scene_expansion.py Outdated
Comment thread tests/gym/envs/task_program/test_simulation_scene_expansion.py Outdated
@yuecideng
yuecideng force-pushed the codex/scene-expansion-workspace branch from ed91138 to c862137 Compare October 13, 2026 14:42
Comment thread embodichain/lab/task_program/integrations/simulation/scene_expansion.py Outdated
@yuecideng yuecideng added the docs Improvements or additions to documentation label Oct 17, 2026
@yuecideng yuecideng changed the title Integrate scene services with Task Program workspace and reset Integrate scene workspace checks and add a UR5 showcase Oct 17, 2026
@yuecideng
yuecideng force-pushed the codex/scene-expansion-workspace branch from 118075e to 4ca63f5 Compare October 17, 2026 11:31
@yuecideng
yuecideng merged commit 81e8f1a into main Oct 17, 2026
9 checks passed
@yuecideng
yuecideng deleted the codex/scene-expansion-workspace branch October 17, 2026 16:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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