Upgrades composer to use mujoco==3.10.0#317
Merged
Merged
Conversation
Collaborator
Author
|
@juelg , seems there's some other places I missed that also use mjspec. Will check the failed workflow's outputs and update the files |
- With the new mjspec API, when attaching an object, the old reference spec (e.g. child_spec) is updated as well, and its names changes. This was causing the prefix being duplicated and was making it fail when searching for a specific reference in the new spec
juelg
approved these changes
Jul 12, 2026
tenfoldpaper
pushed a commit
that referenced
this pull request
Jul 12, 2026
Upgrades composer to use mujoco==3.10.0
Closed
juelg
added a commit
that referenced
this pull request
Jul 20, 2026
* fix: compatibility with mujoco 3.10.0 * feat: add rcs_taxim * feat: working taxim demo with robotiq gripper * fix: remove misplaced tactile sensor demo * WIP: implementation of StableBaselines3 PPO * wip: add readme instruction for starting sb3 * fix: don't flatten obs by default * feat: add proper spaces for training and inference with parallelization option * feat: add mesh-based box * feat: add norm2tex material piping * WIP: run_ablate for physics check * feat: somewhat working ablation script * add docker container and ppo reward * undo changes and add step to startgrasp wrapper * remove deprecated sb3 package * fix(docker): link script * feat: zed cli rgb snapshot * fix(teleop): depth in cameras * chore(quest): simplify right/left swapping logic * impr(robotiq): physical reset only in constructor * feat: robotiq in teleop script * impr(gripper): improved change detection * feat(zed): add option to record both eyes * feat(inference): add initial inference loop script * style: format inference franka script * fix(franka): inference script after testing Co-authored-by: Copilot <copilot@github.com> * feat: sim inference * fix: patch always open gripper observation * feat: reconnect and keyboard control * feat: optionally record * feat: added mp4 video converter from recording * feat(mp4): added joint display * fix: printing and sim sleep * feat: action chunking optionally in inference script * feat: support for relative actions * feat: inference add success button * fix(storage wrapper): flush keeps last to avoid success problems * fix(mp4): shows joint actions if available * fix(fr3): torque discontinuity while reset * fix(hw camera): stop camera before stop polling thread * feat: using input instead of pynput * feat: add limited absolute action wrapper * feat: add limited absolute actions to inference script * stash: latest version Co-authored-by: Copilot <copilot@github.com> * stash: add notes * fix: left/right wrist camera bug * fix: docker dependency * fix(inference): image resize method to match conversion * docs: added documentation for assets path * fix(pypi): pin compatible pinocchio runtime deps * fix(egl): fail fast when rendering is requested without egl * chore: rename python package to rcs_core * chore: remove global pynput dependency * bump: version 0.7.1 → 0.7.2 * build: rename rcs to rcs-core - fix rcs package name in extensions - added rcs as dependency in build process - improved robustness of downloading assets * ci: python wheel building * docs: updated install instructions - updated install instructions - updated licenses and readmes * docs: added libfranka version documentation * build: auditwheel repair and readded libpoco * build(panda): fr3 copy over * build: fix rcs find path * build: fix license and author name * ci: fix wheel and cibuildwheel for pipy uploading * chore: cleanup unused codes and comments * docs: added inference * style: fix format * fix: resolve ruff lint errors Wire up the previously-undefined `scene`/`ROBOT_INSTANCE` names in the example scripts, drop unused imports, move the typer.Option default and the unnecessary else-after-return into ruff-compliant form, and add rule-specific noqa comments for the function-scoped torch/torchvision imports in the LeRobot joint converter. * fix: resolve mypy type errors Exclude examples/inference/franka.py from mypy to resolve a duplicate "franka" module clash with examples/teleop/franka.py (whose franka.py is the one example/teleop/quest_align_frame.py actually imports from). Make LimitedAbsoluteAction._get_current()'s return annotation honest (np.ndarray | common.Pose) since it returns a Pose in cartesian control modes, and add a cast at the one call site that lacked one. Add rule-specific type: ignore / noqa comments for the remaining cases where the underlying stubs don't match runtime behavior (FR3-only robot methods, duckdb's loosely-typed schema introspection, Optional fields that are known to be set, and the lerobot torch imports). * docs: added python headers to readme * fix: resolve pytest failures and StorageWrapper hang StorageWrapper._flush() inferred and permanently cached its pyarrow schema from whatever rows happened to be in the first flush. Since "action" is logged one step behind (frame 0 has no prior action), an unlucky first batch consisting only of that null action got pyarrow's null type pinned for the field forever, so every later batch with a real action value failed with "Invalid null value". Defer flushing until the buffered rows yield a schema with no null-typed fields instead of caching a too-eager guess. Separately, close() called _flush() and only sent the writer thread's stop sentinel afterwards, so any exception during that flush (such as the one above) left the background ThreadPoolExecutor thread blocked on an empty queue forever, hanging the whole process at interpreter exit. Wrap the flush in try/finally so the sentinel is always sent. Also add the include_rotation field quest.py now reads to the QuestOperator test config double, which test_consume_action_swaps_ gripper_with_controller was missing. * style: fix gym warning and path obj in cli * format: pyformat * misc: bump taxim version * misc: update mujoco-taxim dependency * fix: correct EE orientation and trajectory for Robotiq * Merge pull request #317 from RobotControlStack/upgrade-mjspec Upgrades composer to use mujoco==3.10.0 * fix: remove deprecated test * fix: correct version number * format: pyformat * format: pyformat * fix: move the digit demo to rcs/examples * fix: remove unnecessary files * fix: remove hardcoded path and rename function more clearly * fix: add rcs_taxim extension to list * fix: import the file instead of class * format: pyformat and pylint * fix: change default name in EmptyWorldFR3 to robot * fix: add robot_prefix_template as an arg to config; revert to right * format: pyformat * fix: remove input argument to config --------- Co-authored-by: deboliveira <debora.oliveira@utn.de> Co-authored-by: Tobias Jülg <tobias.juelg@utn.de> Co-authored-by: Copilot <copilot@github.com> Co-authored-by: Tobias Juelg <tobias@juelg.net> Co-authored-by: Tobias Jülg <tobiasj@allenai.org>
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.
Description
composer.pyto use the latest version of theMjSpecAPImujocoversion to3.10.0(latest atm)Here is a video of the cartesian control example for the fr3, seems to work just fine.
Kooha-2026-07-09-23-45-32.mp4
@juelg , as I mentioned on the lab, the changes are mostly improvements (apart from the breaking changes to the spec API), but it would be better if you can run your tests and also run your benchmarks to see that nothing iffy is going on.
Also, have to make sure that the wildcard for
libmujoco.so.*does the trick when building the manylinux wheels.