Update changelog for the 3.7.0 release.
PiperOrigin-RevId: 899497703 Change-Id: Ib9ec75550615dc245bc66af60c877e8adae17e67
This commit is contained in:
committed by
Copybara-Service
parent
aef0589442
commit
72cb2b210d
+47
-47
@@ -2,80 +2,80 @@
|
|||||||
Changelog
|
Changelog
|
||||||
=========
|
=========
|
||||||
|
|
||||||
Upcoming version (not yet released)
|
Version 3.7.0 (April 14, 2026)
|
||||||
-----------------------------------
|
------------------------------
|
||||||
|
|
||||||
General
|
General
|
||||||
^^^^^^^
|
^^^^^^^
|
||||||
|
|
||||||
- Added the :ref:`dcmotor<actuator-dcmotor>` actuator for modeling DC motors. Supports optional
|
1. Added the :ref:`dcmotor<actuator-dcmotor>` actuator for modeling DC motors. Supports optional
|
||||||
electrical dynamics (inductance), cogging torque, thermal resistance variation, and LuGre friction. See the
|
electrical dynamics (inductance), cogging torque, thermal resistance variation, and LuGre friction. See the
|
||||||
`technical note <_static/dcmotor.pdf>`__ for more details.
|
`technical note <_static/dcmotor.pdf>`__ for more details.
|
||||||
- Actuators with joint or tendon transmissions can now contribute
|
2. Actuators with joint or tendon transmissions can now contribute
|
||||||
:ref:`damping<actuator-general-damping>` and :ref:`armature<actuator-general-armature>` to their transmission target.
|
:ref:`damping<actuator-general-damping>` and :ref:`armature<actuator-general-armature>` to their transmission target.
|
||||||
These are applied during the passive force and inertia computations, respectively, and are scaled by gear\ :sup:`2`
|
These are applied during the passive force and inertia computations, respectively, and are scaled by gear\ :sup:`2`
|
||||||
("reflected" damping/inertia).
|
("reflected" damping/inertia).
|
||||||
|
|
||||||
.. youtube:: aKa3ZlEF9_Y
|
.. youtube:: aKa3ZlEF9_Y
|
||||||
:align: right
|
:align: right
|
||||||
:width: 35%
|
:width: 35%
|
||||||
|
|
||||||
- Stiffness in :ref:`joints<body-joint-stiffness>` and :ref:`tendons<tendon-spatial-stiffness>` and damping in
|
3. Stiffness in :ref:`joints<body-joint-stiffness>` and :ref:`tendons<tendon-spatial-stiffness>` and damping in
|
||||||
:ref:`joints<body-joint-damping>` and :ref:`tendons<tendon-spatial-damping>` now support nonlinear polynomial
|
:ref:`joints<body-joint-damping>` and :ref:`tendons<tendon-spatial-damping>` now support nonlinear polynomial
|
||||||
:ref:`force profiles<gePolynomial>`. New ``mjModel`` arrays (``jnt_stiffnesspoly``, ``tendon_stiffnesspoly``,
|
:ref:`force profiles<gePolynomial>`. New ``mjModel`` arrays (``jnt_stiffnesspoly``, ``tendon_stiffnesspoly``,
|
||||||
``dof_dampingpoly``, ``tendon_dampingpoly``) hold higher-order coefficients. The existing scalar arrays
|
``dof_dampingpoly``, ``tendon_dampingpoly``) hold higher-order coefficients. The existing scalar arrays
|
||||||
(``jnt_stiffness``, ``dof_damping``, etc.) continue to hold the linear coefficient and are unchanged.
|
(``jnt_stiffness``, ``dof_damping``, etc.) continue to hold the linear coefficient and are unchanged.
|
||||||
The polynomial order is defined by the new constant :ref:`mjNPOLY<glNumericSizes>`. A future breaking C-API change
|
The polynomial order is defined by the new constant :ref:`mjNPOLY<glNumericSizes>`. A future breaking C-API change
|
||||||
may unify the linear and higher-order coefficients into a single array.
|
may unify the linear and higher-order coefficients into a single array.
|
||||||
- Added :ref:`midpoint integration<geMidpoint>` for standalone free bodies in ``implicit`` and ``implicitfast``
|
4. Added :ref:`midpoint integration<geMidpoint>` for standalone free bodies in ``implicit`` and ``implicitfast``
|
||||||
:ref:`integrators<geIntegrators>`. This applies the implicit midpoint rule to the rotational dynamics of free bodies
|
:ref:`integrators<geIntegrators>`. This applies the implicit midpoint rule to the rotational dynamics of free bodies
|
||||||
with no children, conserving kinetic energy to machine precision in the absence of external torques. The
|
with no children, conserving kinetic energy to machine precision in the absence of external torques. The
|
||||||
:ref:`invdiscrete<option-flag-invdiscrete>` flag now also disables midpoint integration, providing an opt-out
|
:ref:`invdiscrete<option-flag-invdiscrete>` flag now also disables midpoint integration, providing an opt-out
|
||||||
mechanism.
|
mechanism.
|
||||||
- Added the centripetal/Coriolis acceleration term :math:`\dot{J}v` to the constraint solver bias for
|
5. Added the centripetal/Coriolis acceleration term :math:`\dot{J}v` to the constraint solver bias for
|
||||||
:ref:`connect<equality-connect>` and :ref:`weld<equality-weld>` equality constaints. This significantly improves the
|
:ref:`connect<equality-connect>` and :ref:`weld<equality-weld>` equality constaints. This significantly improves the
|
||||||
stability of constrained mechanisms like four-bar linkages. See :ref:`Dual problem<soDual>` for details.
|
stability of constrained mechanisms like four-bar linkages. See :ref:`Dual problem<soDual>` for details.
|
||||||
|
|
||||||
- Introduced :ref:`mjpEncoder`, the counterpart to :ref:`mjpDecoder` for encoding of :ref:`mjSpec` and :ref:`mjModel`
|
6. Introduced :ref:`mjpEncoder`, the counterpart to :ref:`mjpDecoder` for encoding of :ref:`mjSpec` and :ref:`mjModel`
|
||||||
into :ref:`mjResource`.
|
into :ref:`mjResource`.
|
||||||
|
|
||||||
- Added :ref:`mj_encode`, :ref:`mjp_registerEncoder`, :ref:`mjp_defaultEncoder`, and :ref:`mjp_findEncoder`.
|
7. Added :ref:`mj_encode`, :ref:`mjp_registerEncoder`, :ref:`mjp_defaultEncoder`, and :ref:`mjp_findEncoder`.
|
||||||
|
|
||||||
.. admonition:: Breaking API changes
|
.. admonition:: Breaking API changes
|
||||||
:class: attention
|
:class: attention
|
||||||
|
|
||||||
- The ``mjs`` layer fields ``stiffness`` and ``damping`` in :ref:`mjsJoint` and :ref:`mjsTendon` have
|
8. The ``mjs`` layer fields ``stiffness`` and ``damping`` in :ref:`mjsJoint` and :ref:`mjsTendon` have
|
||||||
been widened from ``mjtNum`` scalars to ``mjtNum[mjNPOLY+1]`` arrays. The first element is the linear coefficient
|
been widened from ``mjtNum`` scalars to ``mjtNum[mjNPOLY+1]`` arrays. The first element is the linear coefficient
|
||||||
(previously the scalar), and subsequent elements are the higher-order :ref:`polynomial<gePolynomial>` coefficients.
|
(previously the scalar), and subsequent elements are the higher-order :ref:`polynomial<gePolynomial>` coefficients.
|
||||||
|
|
||||||
**Migration:** Replace assignments like ``joint.stiffness = val`` with ``joint.stiffness[0] = val``.
|
**Migration:** Replace assignments like ``joint.stiffness = val`` with ``joint.stiffness[0] = val``.
|
||||||
- ``.obj`` and ``.stl`` decoders are now included as source when building MuJoCo with CMake. This fixes the
|
9. ``.obj`` and ``.stl`` decoders are now included as source when building MuJoCo with CMake. This fixes the
|
||||||
behaviour from the previous release where it required downstream code to load these plugins explicitly.
|
behaviour from the previous release where it required downstream code to load these plugins explicitly.
|
||||||
|
|
||||||
- The ``vertcollide`` field in :ref:`mjsFlex` has been removed. It is no longer required since
|
10. The ``vertcollide`` field in :ref:`mjsFlex` has been removed. It is no longer required since
|
||||||
:doc:`MuJoCo Warp <mjwarp/index>` supports native flex collisions.
|
:doc:`MuJoCo Warp <mjwarp/index>` supports native flex collisions.
|
||||||
|
|
||||||
- :ref:`mjPLUGIN_LIB_INIT` macro now requires a name argument to avoid initialization function name collisions.
|
11. :ref:`mjPLUGIN_LIB_INIT` macro now requires a name argument to avoid initialization function name collisions.
|
||||||
When building with MSVC, we now use the C runtime initialization section to initialize plugins instead of
|
When building with MSVC, we now use the C runtime initialization section to initialize plugins instead of
|
||||||
``DllMain``. See :ref:`plugin registration<exRegistration>` for more details.
|
``DllMain``. See :ref:`plugin registration<exRegistration>` for more details.
|
||||||
|
|
||||||
- The :ref:`mjtWarning` enum value ``mjWARN_VGEOMFULL`` is removed. Exhaustion of visual geoms is now handled
|
12. The :ref:`mjtWarning` enum value ``mjWARN_VGEOMFULL`` is removed. Exhaustion of visual geoms is now handled
|
||||||
internally by the :ref:`mjvScene`.
|
internally by the :ref:`mjvScene`.
|
||||||
- URDF parsing no longer hardcodes :ref:`strippath<compiler-strippath>` to "true". The setting is now respected and
|
13. URDF parsing no longer hardcodes :ref:`strippath<compiler-strippath>` to "true". The setting is now respected and
|
||||||
the default is "false". Setting this is attribute is now the responsibility of the user.
|
the default is "false". Setting this is attribute is now the responsibility of the user.
|
||||||
|
|
||||||
**Migration:** Set :ref:`strippath<compiler-strippath>` to "true" in MJCF or programmatically using
|
**Migration:** Set :ref:`strippath<compiler-strippath>` to "true" in MJCF or programmatically using
|
||||||
|
|
||||||
.. code-block:: python
|
.. code-block:: python
|
||||||
|
|
||||||
spec = mujoco.MjSpec.from_file("path/to/model.urdf")
|
spec = mujoco.MjSpec.from_file("path/to/model.urdf")
|
||||||
spec.compiler.strippath = True
|
spec.compiler.strippath = True
|
||||||
|
|
||||||
|
|
||||||
Bug fixes
|
Bug fixes
|
||||||
^^^^^^^^^
|
^^^^^^^^^
|
||||||
|
|
||||||
- The compiler now correctly accounts for negative scaling when loading user specified mesh data.
|
14. The compiler now correctly accounts for negative scaling when loading user specified mesh data.
|
||||||
|
|
||||||
Version 3.6.0 (March 10, 2026)
|
Version 3.6.0 (March 10, 2026)
|
||||||
------------------------------
|
------------------------------
|
||||||
|
|||||||
Reference in New Issue
Block a user