From dde25d039bbe6ee3d9e8238eb3552a57711c05e1 Mon Sep 17 00:00:00 2001 From: Google DeepMind Date: Thu, 12 Sep 2024 14:09:11 -0700 Subject: [PATCH] Update Mujoco dependencies to latest versions. PiperOrigin-RevId: 674003245 Change-Id: Ib758fa361cb34a786dcd3d55fbf3e5a459b75a3f --- cmake/MujocoDependencies.cmake | 2 +- doc/changelog.rst | 118 ++++++++++++++++----------------- python/mujoco/CMakeLists.txt | 4 +- 3 files changed, 62 insertions(+), 62 deletions(-) diff --git a/cmake/MujocoDependencies.cmake b/cmake/MujocoDependencies.cmake index 2093591f..73d9f56d 100644 --- a/cmake/MujocoDependencies.cmake +++ b/cmake/MujocoDependencies.cmake @@ -39,7 +39,7 @@ set(MUJOCO_DEP_VERSION_qhull CACHE STRING "Version of `qhull` to be fetched." ) set(MUJOCO_DEP_VERSION_Eigen3 - 33d0937c6bdf5ec999939fb17f2a553183d14a74 + f33af052e0e60d4aa367328e7d9dffc9dedca6d8 CACHE STRING "Version of `Eigen3` to be fetched." ) diff --git a/doc/changelog.rst b/doc/changelog.rst index 036f0ebb..483f55e2 100644 --- a/doc/changelog.rst +++ b/doc/changelog.rst @@ -2,8 +2,8 @@ Changelog ========= -Upcoming version (not yet released) ------------------------------------ +Version 3.2.3 (Sep 12, 2024) +---------------------------- General ^^^^^^^ @@ -11,75 +11,75 @@ General .. admonition:: Breaking API changes :class: attention - - The runtime options ``mpr_tolerance`` and ``mpr_iterations`` were renamed to - :ref:`ccd_tolerance` and :ref:`ccd_iterations`, both in XML and in - the :ref:`mjOption` struct. This is because the new convex collision detection pipeline (see below) does not use - the MPR algorithm. The semantics of these options remain identical. - - The functions ``mjs_findMesh`` and ``mjs_findKeyframe`` were replaced by ``mjs_findElement``, which allows to look - for any object type. - - The experimental use of 2D/3D elasticity plugins with :ref:`composite` has been removed. Users - should instead use :ref:`flexcomp`, which provides the correct collision behavior. + 1. The runtime options ``mpr_tolerance`` and ``mpr_iterations`` were renamed to + :ref:`ccd_tolerance` and :ref:`ccd_iterations`, both in XML and in + the :ref:`mjOption` struct. This is because the new convex collision detection pipeline (see below) does not use + the MPR algorithm. The semantics of these options remain identical. + 2. The functions ``mjs_findMesh`` and ``mjs_findKeyframe`` were replaced by ``mjs_findElement``, which allows to look + for any object type. + 3. The experimental use of 2D/3D elasticity plugins with :ref:`composite` has been removed. Users + should instead use :ref:`flexcomp`, which provides the correct collision behavior. -- Added the :ref:`nativeccd` flag. When this flag is enabled, general convex collision - detection is handled with a new native code path, rather than `libccd `__. - This feature is in early stages of testing, but users who've experienced issues related to collsion detection are - welcome to experiment with it and report any issues. -- Added a new way of defining :ref:`connect` equality constraints, using two sites rather than bodies. - The new semantic is useful when the assumption that the constraint is satisfied in the base configuration does not - hold. In this case the sites will "snap together" at the beginning of the simulation. Additionally, changing the site - positions in ``mjModel.site_pos`` at runtime can be used to modify the constraint. -- Introduced **free joint alignment**, an optimization that applies to bodies with a free joint and no child bodies - (simple free-floating bodies): automatically aligning the body frame with the inertial frame. This feature can be - toggled individually using the :ref:`freejoint/align` attribute or globally using the compiler - :ref:`alignfree` attribute. The alignment diagonalizes the related 6x6 inertia sub-matrix, leading - to both faster simulation and more stable simulation of free bodies. +4. Added the :ref:`nativeccd` flag. When this flag is enabled, general convex collision + detection is handled with a new native code path, rather than `libccd `__. + This feature is in early stages of testing, but users who've experienced issues related to collsion detection are + welcome to experiment with it and report any issues. +5. Added a new way of defining :ref:`connect` equality constraints, using two sites rather than bodies. + The new semantic is useful when the assumption that the constraint is satisfied in the base configuration does not + hold. In this case the sites will "snap together" at the beginning of the simulation. Additionally, changing the site + positions in ``mjModel.site_pos`` at runtime can be used to modify the constraint. +6. Introduced **free joint alignment**, an optimization that applies to bodies with a free joint and no child bodies + (simple free-floating bodies): automatically aligning the body frame with the inertial frame. This feature can be + toggled individually using the :ref:`freejoint/align` attribute or globally using the compiler + :ref:`alignfree` attribute. The alignment diagonalizes the related 6x6 inertia sub-matrix, leading + to both faster simulation and more stable simulation of free bodies. - While this optimization is a strict improvement, it changes the semantics of the joint's degrees-of-freedom. - Therefore, ``qpos`` and ``qvel`` values saved in older versions (for example, in :ref:`keyframes`) will - become invalid. The global compiler attribute currently defaults to "false" due to this potential breakage, but could - be changed to "true" in a future release. Aligned free joints are recommended for all new models. + While this optimization is a strict improvement, it changes the semantics of the joint's degrees-of-freedom. + Therefore, ``qpos`` and ``qvel`` values saved in older versions (for example, in :ref:`keyframes`) will + become invalid. The global compiler attribute currently defaults to "false" due to this potential breakage, but could + be changed to "true" in a future release. Aligned free joints are recommended for all new models. -- Added an :ref:`mjSpec` option for creating a texture directly from a buffer. -- :ref:`shell (surface) inertia ` is now supported by all geom types. -- When :ref:`attaching` sub-models, :ref:`keyframes` will now be correctly merged into the - parent model, but only on the first attachment. -- Added the :ref:`mjtSameFrame` enum which contains the possible frame alignments of bodies and their children. These - alignments are used for computation shortcuts in :ref:`mj_kinematics`. -- Added :ref:`mj_jacDot` for computing time-derivatives of kinematic Jacobians. Fixes :github:issue:`411`. +7. Added an :ref:`mjSpec` option for creating a texture directly from a buffer. +8. :ref:`shell (surface) inertia ` is now supported by all geom types. +9. When :ref:`attaching` sub-models, :ref:`keyframes` will now be correctly merged into the + parent model, but only on the first attachment. +10. Added the :ref:`mjtSameFrame` enum which contains the possible frame alignments of bodies and their children. These + alignments are used for computation shortcuts in :ref:`mj_kinematics`. +11. Added :ref:`mj_jacDot` for computing time-derivatives of kinematic Jacobians. Fixes :github:issue:`411`. MJX ^^^ -- Added ``efc_pos`` to ``mjx.Data`` (:github:issue:`1388`). -- Added position-dependent sensors: ``MAGNETOMETER``, ``CAMPROJECTION``, ``RANGEFINDER``, ``JOINTPOS``, - ``ACTUATORPOS``, ``BALLQUAT``, ``FRAMEPOS``, ``FRAMEXAXIS``, ``FRAMEYAXIS``, ``FRAMEZAXIS``, ``FRAMEQUAT``, - ``SUBTREECOM``, ``CLOCK``. -- Added velocity-dependent sensors: ``VELOCIMETER``, ``GYRO``, ``JOINTVEL``, ``ACTUATORVEL``, ``BALLANGVEL``, - ``FRAMELINVEL``, ``FRAMEANGVEL``, ``SUBTREELINVEL``, ``SUBTREEANGMOM``. -- Added acceleration/force-dependent sensors: ``ACCELEROMETER``, ``ACTUATORFRC``, ``JOINTACTFRC``. -- Changed default policy to avoid placing unused (MuJoCo-only) arrays on device. -- Added ``device`` parameter to ``mjx.make_data`` to bring it to parity with ``mjx.put_model`` and ``mjx.put_data``. -- Added support for :ref:`implicitfast integration` for all cases except - :doc:`fluid drag `. -- Fixed a bug where ``qLDiagInv`` had the wrong size for sparse mass matrices. -- Added support for joint and tendon :ref:`frictionloss `. -- Added support for :ref:`connect` equality constraints using two sites. -- Added support for :ref:`spatial tendons ` with site wrapping. +12. Added ``efc_pos`` to ``mjx.Data`` (:github:issue:`1388`). +13. Added position-dependent sensors: ``MAGNETOMETER``, ``CAMPROJECTION``, ``RANGEFINDER``, ``JOINTPOS``, + ``ACTUATORPOS``, ``BALLQUAT``, ``FRAMEPOS``, ``FRAMEXAXIS``, ``FRAMEYAXIS``, ``FRAMEZAXIS``, ``FRAMEQUAT``, + ``SUBTREECOM``, ``CLOCK``. +14. Added velocity-dependent sensors: ``VELOCIMETER``, ``GYRO``, ``JOINTVEL``, ``ACTUATORVEL``, ``BALLANGVEL``, + ``FRAMELINVEL``, ``FRAMEANGVEL``, ``SUBTREELINVEL``, ``SUBTREEANGMOM``. +15. Added acceleration/force-dependent sensors: ``ACCELEROMETER``, ``ACTUATORFRC``, ``JOINTACTFRC``. +16. Changed default policy to avoid placing unused (MuJoCo-only) arrays on device. +17. Added ``device`` parameter to ``mjx.make_data`` to bring it to parity with ``mjx.put_model`` and ``mjx.put_data``. +18. Added support for :ref:`implicitfast integration` for all cases except + :doc:`fluid drag `. +19. Fixed a bug where ``qLDiagInv`` had the wrong size for sparse mass matrices. +20. Added support for joint and tendon :ref:`frictionloss `. +21. Added support for :ref:`connect` equality constraints using two sites. +22. Added support for :ref:`spatial tendons ` with site wrapping. Bug fixes ^^^^^^^^^ -- Fixed a performance regression introduced in 3.1.7 in mesh Bounding Volume Hierarchies (:github:issue:`1875`, - contribution by :github:user:`michael-ahn`). -- Fixed a bug wherein, for models that have both muscles and stateless actuators and used one of the implicit - integrators, wrong derivatives would be computed. -- Fixed a bug in tendon wrapping around spheres. Before this fix, tendons that wrapped around spheres with an - externally-placed :ref:`sidesite` could jump inside the sphere instead of wrapping around it. -- Fixed a bug that caused :at:`meshdir` and :at:`texturedir` to be overwritten during model - :ref:`attachment`, preventing model attachment for models with assets in different directories. +23. Fixed a performance regression introduced in 3.1.7 in mesh Bounding Volume Hierarchies (:github:issue:`1875`, + contribution by :github:user:`michael-ahn`). +24. Fixed a bug wherein, for models that have both muscles and stateless actuators and used one of the implicit + integrators, wrong derivatives would be computed. +25. Fixed a bug in tendon wrapping around spheres. Before this fix, tendons that wrapped around spheres with an + externally-placed :ref:`sidesite` could jump inside the sphere instead of wrapping around it. +26. Fixed a bug that caused :at:`meshdir` and :at:`texturedir` to be overwritten during model + :ref:`attachment`, preventing model attachment for models with assets in different directories. Python bindings ^^^^^^^^^^^^^^^ -- Added support for engine plugins in :ref:`mjSpec` (:github:issue:`1903`). -- Better error reporting for issues with the assets dictionary, when loading models. +27. Added support for engine plugins in :ref:`mjSpec` (:github:issue:`1903`). +28. Better error reporting for issues with the assets dictionary, when loading models. Version 3.2.2 (Aug 8, 2024) diff --git a/python/mujoco/CMakeLists.txt b/python/mujoco/CMakeLists.txt index 650d95bb..dcb9c583 100644 --- a/python/mujoco/CMakeLists.txt +++ b/python/mujoco/CMakeLists.txt @@ -173,7 +173,7 @@ findorfetch( GIT_REPO https://gitlab.com/libeigen/eigen GIT_TAG - 33d0937c6bdf5ec999939fb17f2a553183d14a74 + f33af052e0e60d4aa367328e7d9dffc9dedca6d8 TARGETS Eigen3::Eigen EXCLUDE_FROM_ALL @@ -191,7 +191,7 @@ findorfetch( GIT_REPO https://github.com/pybind/pybind11 GIT_TAG - 941f45bcb51457884fa1afd6e24a67377d70f75c # v2.13.1 + 7c33cdc2d39c7b99a122579f53bc94c8eb3332ff # v2.13.5 TARGETS pybind11::pybind11_headers EXCLUDE_FROM_ALL