Skip to content

Add measured offline Affordance collection - #653

Draft
yuecideng wants to merge 3 commits into
mainfrom
codex/affordance-offline
Draft

yuecideng wants to merge 3 commits into
mainfrom
codex/affordance-offline

Conversation

@yuecideng

Copy link
Copy Markdown
Contributor

Description

Connect opt-in Affordance sampling to the run-env offline Task Program collection workflow. Sequential Pick/Place episodes now require measured target proximity, gripper release, and object stability before their rows can be saved. With four environments and a quota of five episodes, the final batch saves only enough accepted rows to reach five confirmed commits.

  • Bind sampling to each batch/attempt and persist row-specific pose choices, episode identities, and resolved configuration fingerprints.
  • Count synchronous LeRobot receipts only after files are independently readable; preserve prior episodes when resuming writes and block further writes after uncertain persistence failures. Optional trajectory output must also finish before the host confirms a row.
  • Bound retries, discard rejected rows, and write a run manifest covering accepted rows, completed commits, and partial failures.
  • Include a UR5 deployment, API documentation, and updated environment, Task Program, Atomic Action, and persistence context.

Scope is Affordance-only offline collection. Online collection, trajectory generation/coverage, parallel Task Program segments, and asynchronous receipt support are excluded. No dependency changes or linked issue.

Per-episode LeRobot finalize/reload adds I/O cost. Receipts provide same-process deduplication, not cross-process recovery or an atomic transaction across dataset and trajectory outputs.

Type of change

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

Validation

  • Affected production regression: 939 passed, 2 deselected (one default test exclusion and one existing DexSim compatibility failure explicitly excluded).
  • Context/API tooling: 48 passed. Public API coverage: 2083/2083.
  • Persistence follow-up: 60 passed, including independent dataset reloads immediately after each of three consecutive commits, before recorder shutdown, with earlier data preserved.
  • Static deployment inspector: passed, 3 segments / 6 calls.
  • black==26.3.1 with black ., structural checks, context map check, and git diff --check: passed.
  • Code review findings on fingerprint completeness and premature LeRobot receipts were fixed and rechecked.

Draft validation limit: the real simulation smoke run failed during startup because the available DexSim build lacks WorldConfig.log_startup_info. The excluded existing config test requires DLSSConfig.frame_time_delta_ms, also absent in that build. Physical rollout success and yield remain unverified; mock tests and real LeRobot persistence tests do not establish physical task success.

Checklist

  • I have run the black . command to format the code base.
  • I reviewed affected documentation and agent context and updated it where needed.
  • Public API changes are reflected in the API docs (python docs/scripts/check_api_docs.py).
  • I have added tests that prove the feature's supported contracts.
  • Dependencies have been reviewed; no dependency changes are required.

@yuecideng yuecideng added enhancement New feature or request dataset gym robot learning env and its related features atomic action atomic action related functionality labels Sep 18, 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 enhancement New feature or request gym robot learning env and its related features

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant