Bump version number to 2.3.0.
PiperOrigin-RevId: 481823754 Change-Id: Ie8c2c65b11178952355830ef019fe2efdf774189
This commit is contained in:
committed by
Copybara-Service
parent
c7c6a870b4
commit
57b0b36699
+1
-1
@@ -28,7 +28,7 @@ set(MSVC_INCREMENTAL_DEFAULT ON)
|
||||
|
||||
project(
|
||||
mujoco
|
||||
VERSION 2.2.2
|
||||
VERSION 2.3.0
|
||||
DESCRIPTION "MuJoCo Physics Simulator"
|
||||
HOMEPAGE_URL "https://mujoco.org"
|
||||
)
|
||||
|
||||
Vendored
+4
-4
@@ -1,6 +1,6 @@
|
||||
1 VERSIONINFO
|
||||
FILEVERSION 2,2,2,0
|
||||
PRODUCTVERSION 2,2,2,0
|
||||
FILEVERSION 2,3,0,0
|
||||
PRODUCTVERSION 2,3,0,0
|
||||
FILEOS 0x4
|
||||
FILETYPE 0x1
|
||||
{
|
||||
@@ -9,9 +9,9 @@ FILETYPE 0x1
|
||||
BLOCK "040904b0"
|
||||
{
|
||||
VALUE "ProductName", "MuJoCo"
|
||||
VALUE "ProductVersion", "2.2.2"
|
||||
VALUE "ProductVersion", "2.3.0"
|
||||
VALUE "FileDescription", "MuJoCo"
|
||||
VALUE "FileVersion", "2.2.2"
|
||||
VALUE "FileVersion", "2.3.0"
|
||||
VALUE "InternalName", "mujoco.dll"
|
||||
VALUE "OriginalFilename", "mujoco.dll"
|
||||
VALUE "CompanyName", "DeepMind"
|
||||
|
||||
Vendored
+4
-4
@@ -1,8 +1,8 @@
|
||||
MUJOCO ICON "mujoco.ico"
|
||||
|
||||
1 VERSIONINFO
|
||||
FILEVERSION 2,2,2,0
|
||||
PRODUCTVERSION 2,2,2,0
|
||||
FILEVERSION 2,3,0,0
|
||||
PRODUCTVERSION 2,3,0,0
|
||||
FILEOS 0x4
|
||||
FILETYPE 0x1
|
||||
{
|
||||
@@ -11,9 +11,9 @@ FILETYPE 0x1
|
||||
BLOCK "040904b0"
|
||||
{
|
||||
VALUE "ProductName", "MuJoCo"
|
||||
VALUE "ProductVersion", "2.2.2"
|
||||
VALUE "ProductVersion", "2.3.0"
|
||||
VALUE "FileDescription", "MuJoCo"
|
||||
VALUE "FileVersion", "2.2.2"
|
||||
VALUE "FileVersion", "2.3.0"
|
||||
VALUE "InternalName", "simulate.exe"
|
||||
VALUE "OriginalFilename", "simulate.exe"
|
||||
VALUE "CompanyName", "DeepMind"
|
||||
|
||||
+59
-60
@@ -3,82 +3,81 @@ Changelog
|
||||
=========
|
||||
|
||||
|
||||
Upcoming version (not yet released)
|
||||
-----------------------------------
|
||||
Version 2.3.0 (October 18, 2022)
|
||||
--------------------------------
|
||||
|
||||
General
|
||||
^^^^^^^
|
||||
|
||||
- The ``contact`` array and arrays prefixed with ``efc_`` in ``mjData`` were moved out of the ``buffer`` into a new
|
||||
``arena`` memory space. These arrays are no longer allocated with fixed sizes when ``mjData`` is created.
|
||||
Instead, the exact memory requirement is determined during each call to :ref:`mj_forward` (specifically,
|
||||
in :ref:`mj_collision` and :ref:`mj_makeConstraint`) and the arrays are allocated from the ``arena`` space. The
|
||||
``stack`` now also shares its available memory with ``arena``. This change reduces the memory footprint of ``mjData``
|
||||
in models that do not use the PGS solver, and will allow for significant memory reductions in the future.
|
||||
See the :ref:`Memory allocation <CSize>` section for details.
|
||||
1. The ``contact`` array and arrays prefixed with ``efc_`` in ``mjData`` were moved out of the ``buffer`` into a new
|
||||
``arena`` memory space. These arrays are no longer allocated with fixed sizes when ``mjData`` is created.
|
||||
Instead, the exact memory requirement is determined during each call to :ref:`mj_forward` (specifically,
|
||||
in :ref:`mj_collision` and :ref:`mj_makeConstraint`) and the arrays are allocated from the ``arena`` space. The
|
||||
``stack`` now also shares its available memory with ``arena``. This change reduces the memory footprint of ``mjData``
|
||||
in models that do not use the PGS solver, and will allow for significant memory reductions in the future.
|
||||
See the :ref:`Memory allocation <CSize>` section for details.
|
||||
|
||||
.. youtube:: RHnXD6uO3Mg
|
||||
:align: right
|
||||
:height: 150px
|
||||
.. youtube:: RHnXD6uO3Mg
|
||||
:align: right
|
||||
:height: 150px
|
||||
|
||||
- Added colab notebook tutorial showing how to balance the humanoid on one leg with a Linear Quadratic Regulator. The
|
||||
notebook uses MuJoCo's native Python bindings, and includes a draft ``Renderer`` class, for easy rendering in Python.
|
||||
|br| Try it yourself: |LQRopenincolab|
|
||||
#. Added colab notebook tutorial showing how to balance the humanoid on one leg with a Linear Quadratic Regulator. The
|
||||
notebook uses MuJoCo's native Python bindings, and includes a draft ``Renderer`` class, for easy rendering in Python.
|
||||
|br| Try it yourself: |LQRopenincolab|
|
||||
|
||||
.. |LQRopenincolab| image:: https://colab.research.google.com/assets/colab-badge.svg
|
||||
:target: https://colab.research.google.com/github/deepmind/mujoco/blob/main/python/LQR.ipynb
|
||||
:target: https://colab.research.google.com/github/deepmind/mujoco/blob/main/python/LQR.ipynb
|
||||
|
||||
- Updates to humanoid model:
|
||||
#. Updates to humanoid model:
|
||||
- Added two keyframes (stand-on-one-leg and squat).
|
||||
- Increased maximum hip flexion angle.
|
||||
- Added hamstring tendons which couple the hip and knee at high hip flexion angles.
|
||||
- General cosmetic improvements, including improved use of defaults and better naming scheme.
|
||||
|
||||
* Added two keyframes (stand-on-one-leg and squat).
|
||||
* Increased maximum hip flexion angle.
|
||||
* Added hamstring tendons which couple the hip and knee at high hip flexion angles.
|
||||
* General cosmetic improvements, including improved use of defaults and better naming scheme.
|
||||
|
||||
- Added :ref:`mju_boxQP` and allocation function :ref:`mju_boxQPmalloc` for solving the box-constrained
|
||||
Quadratic Program:
|
||||
#. Added :ref:`mju_boxQP` and allocation function :ref:`mju_boxQPmalloc` for solving the box-constrained
|
||||
Quadratic Program:
|
||||
|
||||
.. math::
|
||||
|
||||
x^* = \text{argmin} \; \tfrac{1}{2} x^T H x + x^T g \quad \text{s.t.} \quad l \le x \le u
|
||||
|
||||
The algorithm, introduced in `Tassa et al. 2014 <https://doi.org/10.1109/ICRA.2014.6907001>`_,
|
||||
converges after 2-5 Cholesky factorisations, independent of problem size.
|
||||
The algorithm, introduced in `Tassa et al. 2014 <https://doi.org/10.1109/ICRA.2014.6907001>`_,
|
||||
converges after 2-5 Cholesky factorisations, independent of problem size.
|
||||
|
||||
- Added :ref:`mju_mulVecMatVec` to multiply a square matrix :math:`M` with vectors :math:`x` and :math:`y` on both
|
||||
sides. The function returns :math:`x^TMy`.
|
||||
#. Added :ref:`mju_mulVecMatVec` to multiply a square matrix :math:`M` with vectors :math:`x` and :math:`y` on both
|
||||
sides. The function returns :math:`x^TMy`.
|
||||
|
||||
- Added new plugin API. Plugins allow developers to extend MuJoCo's capability without modifying core engine code.
|
||||
The plugin mechanism is intended to replace the existing callbacks, though these will remain for the time being as an
|
||||
option for simple use cases and backward compatibility. The new mechanism manages stateful plugins and supports
|
||||
multiple plugins from different sources, allowing MuJoCo extensions to be introduced in a modular fashion, rather than
|
||||
as global overrides. Note the new mechanism is currently undocumented except in code, as we test it internally.
|
||||
If you are interested in using the plugin mechanism, please get in touch first.
|
||||
#. Added new plugin API. Plugins allow developers to extend MuJoCo's capability without modifying core engine code.
|
||||
The plugin mechanism is intended to replace the existing callbacks, though these will remain for the time being as an
|
||||
option for simple use cases and backward compatibility. The new mechanism manages stateful plugins and supports
|
||||
multiple plugins from different sources, allowing MuJoCo extensions to be introduced in a modular fashion, rather
|
||||
than as global overrides. Note the new mechanism is currently undocumented except in code, as we test it internally.
|
||||
If you are interested in using the plugin mechanism, please get in touch first.
|
||||
|
||||
- Added :at:`assetdir` compiler option, which sets the values of both :at:`meshdir` and :at:`texturedir`. Values in
|
||||
the latter attributes take precedence over :at:`assetdir`.
|
||||
#. Added :at:`assetdir` compiler option, which sets the values of both :at:`meshdir` and :at:`texturedir`. Values in
|
||||
the latter attributes take precedence over :at:`assetdir`.
|
||||
|
||||
- Added :at:`realtime` option to :ref:`visual` for starting a simulation at a slower speed.
|
||||
#. Added :at:`realtime` option to :ref:`visual` for starting a simulation at a slower speed.
|
||||
|
||||
- Added new :at:`cable` composite type:
|
||||
#. Added new :at:`cable` composite type:
|
||||
|
||||
* Cable elements are connected with ball joints.
|
||||
* The `initial` parameter specifies the joint at the starting boundary: :at:`free`, :at:`ball`, or :at:`none`.
|
||||
* The boundary bodies are exposed with the names :at:`B_left` and :at:`B_right`.
|
||||
* The vertex initial positions can be specified directly in the XML with the parameter :at:`vertex`.
|
||||
* The orientation of the body frame **is** the orientation of the material frame of the curve.
|
||||
- Cable elements are connected with ball joints.
|
||||
- The `initial` parameter specifies the joint at the starting boundary: :at:`free`, :at:`ball`, or :at:`none`.
|
||||
- The boundary bodies are exposed with the names :at:`B_left` and :at:`B_right`.
|
||||
- The vertex initial positions can be specified directly in the XML with the parameter :at:`vertex`.
|
||||
- The orientation of the body frame **is** the orientation of the material frame of the curve.
|
||||
|
||||
- Added new :at:`cable` passive force plugin:
|
||||
#. Added new :at:`cable` passive force plugin:
|
||||
|
||||
* Twist and bending stiffness can be set separately with the parameters :at:`twist` and :at:`bend`.
|
||||
* The stress-free configuration can be set to be the initial one or flat with the flag :at:`flat`.
|
||||
* New `cable.xml <https://github.com/deepmind/mujoco/tree/main/model/plugin/cable.xml>`_ example
|
||||
showing the formation of plectoneme.
|
||||
* New `coil.xml <https://github.com/deepmind/mujoco/tree/main/model/plugin/coil.xml>`_ example
|
||||
showing a curved equilibrium configuration.
|
||||
* New `belt.xml <https://github.com/deepmind/mujoco/tree/main/model/plugin/belt.xml>`_ example
|
||||
showing interaction between twist and anisotropy.
|
||||
* Added test using cantilever exact solution.
|
||||
- Twist and bending stiffness can be set separately with the parameters :at:`twist` and :at:`bend`.
|
||||
- The stress-free configuration can be set to be the initial one or flat with the flag :at:`flat`.
|
||||
- New `cable.xml <https://github.com/deepmind/mujoco/tree/main/model/plugin/cable.xml>`_ example showing the
|
||||
formation of plectoneme.
|
||||
- New `coil.xml <https://github.com/deepmind/mujoco/tree/main/model/plugin/coil.xml>`_ example showing a curved
|
||||
equilibrium configuration.
|
||||
- New `belt.xml <https://github.com/deepmind/mujoco/tree/main/model/plugin/belt.xml>`_ example showing interaction
|
||||
between twist and anisotropy.
|
||||
- Added test using cantilever exact solution.
|
||||
|
||||
.. youtube:: 25kQP671fJE
|
||||
:align: right
|
||||
@@ -94,16 +93,16 @@ General
|
||||
|
||||
Python bindings
|
||||
^^^^^^^^^^^^^^^
|
||||
11. Added ``id`` and ``name`` properties to
|
||||
`named accessor <https://mujoco.readthedocs.io/en/latest/python.html#named-access>`_ objects.
|
||||
These provide more Pythonic API access to ``mj_name2id`` and ``mj_id2name`` respectively.
|
||||
|
||||
- Added ``id`` and ``name`` properties to
|
||||
`named accessor <https://mujoco.readthedocs.io/en/latest/python.html#named-access>`_ objects. These provide more
|
||||
Pythonic API access to ``mj_name2id`` and ``mj_id2name`` respectively.
|
||||
#. The length of ``MjData.contact`` is now ``ncon`` rather than ``nconmax``, allowing it to be straightforwardly used as
|
||||
an iterator without needing to check ``ncon``.
|
||||
|
||||
- The length of ``MjData.contact`` is now ``ncon`` rather than ``nconmax``, allowing it to be straightforwardly used as
|
||||
an iterator without needing to check ``ncon``.
|
||||
#. Fix a memory leak when a Python callable is installed as callback
|
||||
(`#527 <https://github.com/deepmind/mujoco/issues/527>`_).
|
||||
|
||||
- Fix a memory leak when a Python callable is installed as callback
|
||||
(`#527 <https://github.com/deepmind/mujoco/issues/527>`_).
|
||||
|
||||
Version 2.2.2 (September 7, 2022)
|
||||
---------------------------------
|
||||
|
||||
+2
-2
@@ -30,14 +30,14 @@ _____
|
||||
|
||||
The MuJoCo app needs to be run at least once before the native library can be used, in order to register the library as
|
||||
a trusted binary. Then, copy the dynamic library file from
|
||||
``/Applications/MuJoCo.app/Contents/Frameworks/mujoco.framework/Versions/Current/libmujoco.2.2.2.dylib`` (it can be
|
||||
``/Applications/MuJoCo.app/Contents/Frameworks/mujoco.framework/Versions/Current/libmujoco.2.3.0.dylib`` (it can be
|
||||
found by browsing the contents of ``MuJoCo.app``) and rename it as ``mujoco.dylib``.
|
||||
|
||||
Linux
|
||||
_____
|
||||
|
||||
Expand the ``tar.gz`` archive to ``~/.mujoco``. Then copy the dynamic library from
|
||||
``~/.mujoco/mujoco-2.2.2/lib/libmujoco.so.2.2.2`` and rename it as ``libmujoco.so``.
|
||||
``~/.mujoco/mujoco-2.3.0/lib/libmujoco.so.2.3.0`` and rename it as ``libmujoco.so``.
|
||||
|
||||
Windows
|
||||
_______
|
||||
|
||||
@@ -24,7 +24,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
// header version; should match the library version as returned by mj_version()
|
||||
#define mjVERSION_HEADER 222
|
||||
#define mjVERSION_HEADER 230
|
||||
|
||||
// needed to define size_t, fabs and log10
|
||||
#include <stdlib.h>
|
||||
|
||||
@@ -75,13 +75,13 @@ if(NOT TARGET mujoco)
|
||||
find_path(MUJOCO_FRAMEWORK mujoco.Framework HINTS ${MUJOCO_FRAMEWORK_DIR})
|
||||
if(MUJOCO_FRAMEWORK)
|
||||
message("MuJoCo framework is at ${MUJOCO_FRAMEWORK}/mujoco.framework")
|
||||
set(MUJOCO_LIBRARY ${MUJOCO_FRAMEWORK}/mujoco.framework/Versions/A/libmujoco.2.2.2.dylib)
|
||||
set(MUJOCO_LIBRARY ${MUJOCO_FRAMEWORK}/mujoco.framework/Versions/A/libmujoco.2.3.0.dylib)
|
||||
target_compile_options(mujoco INTERFACE -F${MUJOCO_FRAMEWORK})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT MUJOCO_FRAMEWORK)
|
||||
find_library(MUJOCO_LIBRARY mujoco mujoco.2.2.2 HINTS ${MUJOCO_LIBRARY_DIR} REQUIRED)
|
||||
find_library(MUJOCO_LIBRARY mujoco mujoco.2.3.0 HINTS ${MUJOCO_LIBRARY_DIR} REQUIRED)
|
||||
find_path(MUJOCO_INCLUDE mujoco/mujoco.h HINTS ${MUJOCO_INCLUDE_DIR} REQUIRED)
|
||||
message("MuJoCo is at ${MUJOCO_LIBRARY}")
|
||||
message("MuJoCo headers are at ${MUJOCO_INCLUDE}")
|
||||
|
||||
+1
-1
@@ -30,7 +30,7 @@ from setuptools import find_packages
|
||||
from setuptools import setup
|
||||
from setuptools.command import build_ext
|
||||
|
||||
__version__ = '2.2.2'
|
||||
__version__ = '2.3.0'
|
||||
|
||||
MUJOCO_CMAKE = 'MUJOCO_CMAKE'
|
||||
MUJOCO_CMAKE_ARGS = 'MUJOCO_CMAKE_ARGS'
|
||||
|
||||
@@ -24,7 +24,7 @@ set(MSVC_INCREMENTAL_DEFAULT ON)
|
||||
|
||||
project(
|
||||
mujoco_samples
|
||||
VERSION 2.2.2
|
||||
VERSION 2.3.0
|
||||
DESCRIPTION "MuJoCo samples binaries"
|
||||
HOMEPAGE_URL "https://mujoco.org"
|
||||
)
|
||||
|
||||
@@ -29,7 +29,7 @@ set(MUJOCO_DEP_VERSION_lodepng
|
||||
|
||||
project(
|
||||
mujoco_simulate
|
||||
VERSION 2.2.2
|
||||
VERSION 2.3.0
|
||||
DESCRIPTION "MuJoCo simulate binaries"
|
||||
HOMEPAGE_URL "https://mujoco.org"
|
||||
)
|
||||
|
||||
@@ -35,8 +35,8 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define mjVERSION 222
|
||||
#define mjVERSIONSTRING "2.2.2"
|
||||
#define mjVERSION 230
|
||||
#define mjVERSIONSTRING "2.3.0"
|
||||
|
||||
// names of disable flags
|
||||
const char* mjDISABLESTRING[mjNDISABLE] = {
|
||||
|
||||
@@ -155,7 +155,7 @@ TEST_F(JacobianTest, SubtreeJacNoInternalAcc) {
|
||||
|
||||
using VersionTest = MujocoTest;
|
||||
|
||||
const char *const kExpectedVersionString = "2.2.2";
|
||||
const char *const kExpectedVersionString = "2.3.0";
|
||||
|
||||
TEST_F(VersionTest, MjVersion) {
|
||||
EXPECT_EQ(mj_version(), mjVERSION_HEADER);
|
||||
|
||||
@@ -37,7 +37,7 @@ public class MujocoBinaryRetriever {
|
||||
if (AssetDatabase.LoadMainAssetAtPath(mujocoPath + "/mujoco.dylib") == null) {
|
||||
File.Copy(
|
||||
"/Applications/MuJoCo.app/Contents/Frameworks" +
|
||||
"/mujoco.framework/Versions/Current/libmujoco.2.2.2.dylib",
|
||||
"/mujoco.framework/Versions/Current/libmujoco.2.3.0.dylib",
|
||||
mujocoPath + "/mujoco.dylib");
|
||||
AssetDatabase.Refresh();
|
||||
}
|
||||
@@ -45,7 +45,7 @@ public class MujocoBinaryRetriever {
|
||||
if (AssetDatabase.LoadMainAssetAtPath(mujocoPath + "/libmujoco.so") == null) {
|
||||
File.Copy(
|
||||
Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) +
|
||||
"/.mujoco/mujoco-2.2.2/lib/libmujoco.so.2.2.2",
|
||||
"/.mujoco/mujoco-2.3.0/lib/libmujoco.so.2.3.0",
|
||||
mujocoPath + "/libmujoco.so");
|
||||
AssetDatabase.Refresh();
|
||||
}
|
||||
|
||||
@@ -100,7 +100,7 @@ public const int mjMAXLINEPNT = 1000;
|
||||
public const int mjMAXPLANEGRID = 200;
|
||||
public const bool THIRD_PARTY_MUJOCO_MJXMACRO_H_ = true;
|
||||
public const bool THIRD_PARTY_MUJOCO_MUJOCO_H_ = true;
|
||||
public const int mjVERSION_HEADER = 222;
|
||||
public const int mjVERSION_HEADER = 230;
|
||||
|
||||
|
||||
// ------------------------------------Enums------------------------------------
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "org.mujoco",
|
||||
"displayName": "MuJoCo",
|
||||
"version": "2.2.2",
|
||||
"version": "2.3.0",
|
||||
"description": "MuJoCo importer and runtime plug-in",
|
||||
"dependencies": {},
|
||||
"author": {
|
||||
|
||||
Reference in New Issue
Block a user