Skip to content

Feat/robomme benchmark#3311

Open
pkooij wants to merge 6 commits intofeat/benchmark-cifrom
feat/robomme-benchmark
Open

Feat/robomme benchmark#3311
pkooij wants to merge 6 commits intofeat/benchmark-cifrom
feat/robomme-benchmark

Conversation

@pkooij
Copy link
Copy Markdown
Member

@pkooij pkooij commented Apr 8, 2026

Title

Short, imperative summary (e.g., "fix(robots): handle None in sensor parser"). See CONTRIBUTING.md for PR conventions.

Type / Scope

  • Type: (Bug | Feature | Docs | Performance | Test | CI | Chore)
  • Scope: (optional — name of module or package affected)

Summary / Motivation

  • One-paragraph description of what changes and why.
  • Why this change is needed and any trade-offs or design notes.

Related issues

  • Fixes / Closes: # (if any)
  • Related: # (if any)

What changed

  • Short, concrete bullets of the modifications (files/behaviour).
  • Short note if this introduces breaking changes and migration steps.

How was this tested (or how to run locally)

  • Tests added: list new tests or test files.
  • Manual checks / dataset runs performed.
  • Instructions for the reviewer

Example:

  • Ran the relevant tests:

    pytest -q tests/ -k <keyword>
  • Reproduce with a quick example or CLI (if applicable):

    lerobot-train --some.option=true

Checklist (required before merge)

  • Linting/formatting run (pre-commit run -a)
  • All tests pass locally (pytest)
  • Documentation updated
  • CI is green

Reviewer notes

  • Anything the reviewer should focus on (performance, edge-cases, specific files) or general notes.
  • Anyone in the community is free to review the PR.

@pkooij pkooij force-pushed the feat/robomme-benchmark branch from aaf286c to 208234d Compare April 8, 2026 14:24
@pkooij pkooij changed the base branch from feat/async-vector-env to feat/benchmark-ci April 8, 2026 14:48
@pkooij pkooij force-pushed the feat/benchmark-ci branch from e89e6d9 to 927118e Compare April 8, 2026 17:22
@pkooij pkooij marked this pull request as ready for review April 9, 2026 08:03
@pkooij pkooij force-pushed the feat/robomme-benchmark branch from 208234d to f654d7e Compare April 9, 2026 08:06
pkooij and others added 2 commits April 9, 2026 10:14
Adds RoboMME — a 16-task memory-augmented manipulation benchmark
(ManiSkill/SAPIEN) — to lerobot's eval system, rebased on the
feat/async-vector-env branch and using the create_envs() dispatch pattern.

- src/lerobot/envs/robomme.py: RoboMMEGymEnv wrapper + create_robomme_envs()
- src/lerobot/envs/lazy_vec_env.py: LazyVectorEnv for deferred env init
- src/lerobot/envs/configs.py: RoboMMEEnv config with create_envs()
- pyproject.toml: robomme extras (Linux only, git dep)
- docker/Dockerfile.eval-robomme: gymnasium/numpy pin overrides for ManiSkill
- tests/test_robomme_env.py: 12 unit tests (all passing, mocked sim)
- docs/source/robomme.mdx: install instructions, task table, dataset info
- docs/source/_toctree.yml: add robomme to Benchmarks section

Dataset pepijn223/robomme_data_lerobot is already in LeRobot v3.0 format
(1,600 episodes, 768K frames). No conversion needed.

Initial integration prototyped in feat/robomme-integration.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…val)

Follows the pattern from feat/async-vector-env (PR #3309) — each benchmark
gets an isolated Docker image so its dependency tree cannot conflict with
other benchmarks.

- docker/Dockerfile.benchmark.robomme: CUDA image installing lerobot[robomme]
  only; adds Vulkan ICD loader for ManiSkill/SAPIEN rendering; applies
  gymnasium==0.29.1 + numpy==1.26.4 overrides post-install (mani-skill pins).
  Uses `uv sync` without --locked because robomme is a git dep not in uv.lock.
- .github/workflows/benchmark_tests.yml: full workflow with libero + metaworld
  jobs (from PR #3309) plus new robomme-integration-test job; triggers on
  changes to src/lerobot/envs/**, lerobot_eval.py, Dockerfiles.

TODO: update --policy.path in the robomme eval step once a robomme-trained
policy is published on the Hub.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@pkooij pkooij force-pushed the feat/robomme-benchmark branch from f654d7e to 489f681 Compare April 9, 2026 08:15
pkooij and others added 4 commits April 10, 2026 14:33
…icts

uv sync resolves all extras across all Python versions, hitting
numpy<2.0 vs numpy>=2.0 conflicts (robomme) and stale lockfile
errors (robocerebra). uv pip install resolves only the requested
extras for the current platform. Also pin uv to 0.8.0.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…, not cross-extra)

mani-skill hard-pins gymnasium==0.29.1 which directly conflicts with
lerobot's gymnasium>=1.1.1. This isn't a cross-extra resolution issue —
it's a genuine incompatibility. Fix: install lerobot base first, then
force-install robomme with --override to downgrade gymnasium and numpy.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant