Conversation
9 tasks
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.
Manager-Based object-only reset previously rebuilt a full state row from global defaults, which could reset the robot and broadcast environment zero's variant state. This change binds logical entities to UniSim's public physical layout, stages one selected-entity reset request, reads per-environment defaults, and restores independent keyframe controls without accessing private backend data.
Scene/config owners materialize typed physical sources and variants, validate the parent contract and collect their asset paths. A registered primitive task uses the same pickleable EnvFactory for MuJoCo and IsaacSim, with passive joints adding state but no actions. Bilingual contract notes and changelog describe the current scalar-joint/common-row transaction boundary.
Refs #1599, unilabsim/unisim#108 and unilabsim/unisim#113.
Draft dependency boundary: this code requires the UniSim M2 APIs currently on
dev/issue-108-multi-entity. The released dependency lock is still UniSim 1.4.2 and has intentionally not been disguised with an unreviewed release pin. Development validation used an explicit editable UniSim integration checkout. Before merge, publish/resolve the agreed minimum upstream version, update dependency metadata/lock and rerun final-head installation/CI. This PR is not yet claimed installable from the current lock.Validation on the final local implementation tree:
UV_NO_SYNC=1 make check: passed (Ruff, mypy 128 modules, Pyright 0 errors; one optional Drake warning).UNILAB_LOCAL_UNISIM=/home/user/ws/unilabsim/unisim-m2 UV_NO_SYNC=1 make test: 1477 passed, 28 skipped, 588 slow deselected.make test-all: passed, 70% coverage; required benchmark import smoke 34/34 module and 35/35 script checks.uv run --no-sync pytest -q tests/base/test_entity_scene_consumer.py tests/envs/test_multi_entity_consumer.py: 9 passed, 2 explicit native skips.UNILAB_TEST_M2_ISAACSIM=1 uv run --no-sync pytest -q tests/envs/test_multi_entity_consumer.py -k native --basetemp=/tmp/unilab-m2-isaacsim-rr -x: 2 passed, using registered factory → ManagerBasedRlEnv → public UniSim → actual IsaacSim worker. Covers passive articulation and rigid object/mirror scenes; these working-tree runs precede final released-dependency acceptance.git diff --check: passed.Required Go2/Allegro assets were obtained through the registered asset hub and remain ignored; no robot meshes entered git. Four pre-step-control test mocks were updated to initialize the new MuJoCo runtime fields. No training, reward redesign, runner/learner changes or M3 contact/DR support is introduced.
Declared/PR base:
main. Governing contracts: ADR-0006 and ADR-0007; current-head remote CI and released-dependency validation remain merge gates.