rickstaa / stable-gym

This package contains several gymnasium environments with positive definite cost functions, designed for compatibility with stable RL agents.
https://rickstaa.dev/stable-gym
MIT License
12 stars 2 forks source link

build(deps-dev): bump mujoco from 2.3.7 to 3.1.3 #372

Closed dependabot[bot] closed 8 months ago

dependabot[bot] commented 8 months ago

Bumps mujoco from 2.3.7 to 3.1.3.

Release notes

Sourced from mujoco's releases.

3.1.3

See the changelog.

3.1.2

See the changelog.

3.1.1

See the changelog.

3.1.0

See the changelog.

3.0.1

See the changelog.

3.0.0

New features

  1. Added simulation on GPU and TPU via the new MuJoCo XLA (MJX) Python module. Python users can now natively run MuJoCo simulations at millions of steps per second on Google TPU or their own accelerator hardware.

    • MJX is designed to work with on-device reinforcement learning algorithms. This Colab notebook demonstrates using MJX along with reinforcement learning to train humanoid and quadruped robots to locomote: Open In Colab
    • The MJX API is compatible with MuJoCo but is missing some features in this release. See the outline of MJX feature parity for more details.
  2. Added new signed distance field (SDF) collision primitive. SDFs can take any shape and are not constrained to be convex. Collision points are found by minimizing the maximum of the two colliding SDFs via gradient descent.

    • Added new SDF plugin for defining implicit geometries. The plugin must define methods computing an SDF and its gradient at query points. See the documentation for more details.
  3. Added new low-level model element called flex, used to define deformable objects. These simplicial complexes can be of dimension 1, 2 or 3, corresponding to stretchable lines, triangles or tetrahedra. Two new MJCF elements are used to define flexes. The top-level deformable section contains the low-level flex definition. The flexcomp element, similar to composite is a convenience macro for creating deformables, and supports the GMSH tetrahedral file format.

    • Added shell passive force plugin, computing bending forces using a constant precomputed Hessian (cotangent operator).

      Note: This feature is still under development and subject to change. In particular, deformable object functionality is currently available both via deformable and composite, and both are modifiable by the first-party elasticity plugins. We expect some of this functionality to be unified in the future.

  4. Added constraint island discovery with mj_island. Constraint islands are disjoint sets of constraints and degrees-of-freedom that do not interact. The only solver which currently supports islands is CG. Island discovery can be activated using a new enable flag. If island discovery is enabled, geoms, contacts and tendons will be colored according to the corresponding island, see video. Island discovery is currently disabled for models that have deformable objects (see previous item).

  5. Added mjThreadPool and mjTask which allow for multi-threaded operations within the MuJoCo engine pipeline. If engine-internal threading is enabled, the following operations will be multi-threaded:

    • Island constraint resolution, if island discovery is enabled and the CG solver is selected. The 22 humanoids model shows a 3x speedup compared to the single threaded simulation.
    • Inertia-related computations and collision detection will happen in parallel.

    Engine-internal threading is a work in progress and currently only available in first-party code via the testspeed utility, exposed with the npoolthread flag.

  6. Added capability to initialize composite particles from OBJ files. Fixes #642 and #674.

General

[!IMPORTANT] Breaking API changes

  1. Removed the macros mjMARKSTACK and mjFREESTACK.

    Migration: These macros have been replaced by new functions mj_markStack and mj_freeStack. These functions manage the mjData stack in a fully encapsulated way (i.e., without introducing a local variable at the call site).

  2. Renamed mj_stackAlloc to mj_stackAllocNum. The new function mj_stackAllocByte allocates an arbitrary number of bytes and has an additional argument for specifying the alignment of the returned pointer.

... (truncated)

Changelog

Sourced from mujoco's changelog.

Version 3.1.3 (March 5th, 2024)

General ^^^^^^^

  1. Added the :at:inheritrange attribute to :ref:position<actuator-position> and :ref:intvelocity<actuator-intvelocity> actuators, allowing convenient setting of the actuator's :at:ctrlrange or :at:actrange (respectively), according to the range of the transmission target (joint or tendon). See :ref:position/inheritrange<actuator-position-inheritrange> for details.
  2. Deprecated :ref:mj_makeEmptyFileVFS in favor of :ref:mj_addBufferVFS. :ref:mjVFS now computes checksums of its internal file buffers. :ref:mj_addBufferVFS allocates an empty buffer with a given name in an mjVFS and copies the data buffer into it, combining and replacing the deprecated two-step process of calling :ref:mj_makeEmptyFileVFS followed by a direct copy into the given mjVFS internal file buffer.
  3. Added :ref:mj_angmomMat which computes the 3 x nv angular momentum matrix :math:H(q), providing the linear mapping from generalized velocities to subtree angular momentum :math:h = H \dot q. Contribution by :github:user:v-r-a.

MJX ^^^

  1. Improved performance of getting and putting device data.

    • Use tobytes() for numpy array serialization, which is orders of magnitude faster than converting to tuples.
    • Avoid reallocating host mjData arrays when array shapes are unchanged.
    • Speed up calculation of mjx.ncon for models with many geoms.
    • Avoid calling mjx.ncon in mjx.get_data_into when nc can be derived from mjx.Data.
  2. Fixed a bug in mjx-viewer that prevented it from running. Updated mjx-viewer to use newer mjx.get_data_into function call.

  3. Fixed a bug in mjx.euler that applied incorrect damping when using dense mass matrices.

  4. Fixed a bug in mjx.solve that was causing slow convergence when using mjSOL_NEWTON in :ref:mjtSolver.

  5. Added support for :ref:mjOption.impratio<mjOption> to mjx.Model.

  6. Added support for cameras in mjx.Model and mjx.Data. Fixes :github:issue:1422.

  7. Added an implementation of broadphase using top_k and bounding spheres.

Python bindings ^^^^^^^^^^^^^^^ 11. Fixed incorrect data types in the bindings for the geom, vert, elem, and flex array members of the mjContact struct, and all array members of the mjrContext struct.

Version 3.1.2 (February 05, 2024)

General ^^^^^^^

  1. Improved the :ref:discardvisual<compiler-discardvisual> compiler flag, which now discards all visual-only assets. See :ref:discardvisual<compiler-discardvisual> for details.
  2. Removed the :ref:timer<mjtTimer> for midphase colllision detection, it is now folded in with the narrowphase timer. This is because timing the two phases seperately required fine-grained timers inside the collision

... (truncated)

Commits
  • e2c1418 Updated abseil for release version v3.1.3
  • 827cdfd Merge pull request #1413 from awesome-aj0123:usd-integration
  • 7e87c6a Updated Eigen3 hash in below files for Mujoco release version v3.1.3
  • eb2e064 Updated version number to match the latest release v3.1.3 and date for mujoco...
  • 224fbd0 Fix egregious bug in broadphase.
  • 0631a40 Merge pull request #1470 from Balint-H:bugfix/unity-tendon-rendering
  • 6b7d714 Merge pull request #1450 from v-r-a:angmomMat
  • 49ddb7c Update changelog for 3.1.0.
  • 31384bd Speed up String2Vector.
  • 9efa4eb Move CompareModel to fixture.
  • Additional commits viewable in compare view


Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
dependabot[bot] commented 8 months ago

OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting @dependabot ignore this major version or @dependabot ignore this minor version. You can also ignore all major, minor, or patch releases for a dependency by adding an ignore condition with the desired update_types to your config file.

If you change your mind, just re-open this PR and I'll resolve any conflicts on it.