Bump version number to 2.2.2.

PiperOrigin-RevId: 472513958
Change-Id: I42f321c6681fdd42c5f80368f612534aa885af74
This commit is contained in:
Saran Tunyasuvunakool
2022-09-06 11:32:25 -07:00
committed by Copybara-Service
parent 3647584caa
commit 94b6ae2b69
13 changed files with 72 additions and 71 deletions
+1 -1
View File
@@ -28,7 +28,7 @@ set(MSVC_INCREMENTAL_DEFAULT ON)
project( project(
mujoco mujoco
VERSION 2.2.1 VERSION 2.2.2
DESCRIPTION "MuJoCo Physics Simulator" DESCRIPTION "MuJoCo Physics Simulator"
HOMEPAGE_URL "https://mujoco.org" HOMEPAGE_URL "https://mujoco.org"
) )
+53 -52
View File
@@ -2,82 +2,83 @@
Changelog Changelog
========= =========
Upcoming version (not yet released)
----------------------------------- Version 2.2.2 (September 7, 2022)
---------------------------------
General General
^^^^^^^ ^^^^^^^
.. youtube:: BcHZ5BFeTmU .. youtube:: BcHZ5BFeTmU
:align: right :align: right
:height: 150px :height: 150px
- Added :ref:`adhesion actuators<adhesion>` mimicking vacuum grippers and adhesive biomechanical appendages. 1. Added :ref:`adhesion actuators<adhesion>` mimicking vacuum grippers and adhesive biomechanical appendages.
- Added related `example model <https://github.com/deepmind/mujoco/tree/main/model/adhesion>`_ and video: #. Added related `example model <https://github.com/deepmind/mujoco/tree/main/model/adhesion>`_ and video:
- Added :ref:`mj_jacSubtreeCom` for computing the translational Jacobian of the center-of-mass of a subtree. #. Added :ref:`mj_jacSubtreeCom` for computing the translational Jacobian of the center-of-mass of a subtree.
- Added :at:`torquescale` and :at:`anchor` attributes to :el:`weld` constraints. :at:`torquescale` sets the #. Added :at:`torquescale` and :at:`anchor` attributes to :el:`weld` constraints. :at:`torquescale` sets the
torque-to-force ratio exerted by the constraint, :at:`anchor` sets the point at which the weld wrench is torque-to-force ratio exerted by the constraint, :at:`anchor` sets the point at which the weld wrench is
applied. See :ref:`weld <equality-weld>` for more details. applied. See :ref:`weld <equality-weld>` for more details.
- Increased ``mjNEQDATA``, the row length of equality constraint parameters in ``mjModel.eq_data``, from 7 to 11. #. Increased ``mjNEQDATA``, the row length of equality constraint parameters in ``mjModel.eq_data``, from 7 to 11.
- Added visualisation of anchor points for both :el:`connect` and :el:`weld` constraints (activated by the 'N' key in #. Added visualisation of anchor points for both :el:`connect` and :el:`weld` constraints (activated by the 'N' key in
``simulate``). ``simulate``).
- Added `weld.xml <https://github.com/deepmind/mujoco/tree/main/test/engine/testdata/weld.xml>`_ showing different #. Added `weld.xml <https://github.com/deepmind/mujoco/tree/main/test/engine/testdata/weld.xml>`_ showing different
uses of new weld attributes. uses of new weld attributes.
.. youtube:: s-0JHanqV1A .. youtube:: s-0JHanqV1A
:align: right :align: right
:height: 150px :height: 150px
- Cartesian 6D end-effector control is now possible by adding a reference site to actuators with :at:`site` #. Cartesian 6D end-effector control is now possible by adding a reference site to actuators with :at:`site`
transmission. See description of new :at:`refsite` attribute in the :ref:`actuator<general>` documentation and transmission. See description of new :at:`refsite` attribute in the :ref:`actuator<general>` documentation and
`refsite.xml <https://github.com/deepmind/mujoco/tree/main/test/engine/testdata/refsite.xml>`_ example model. `refsite.xml <https://github.com/deepmind/mujoco/tree/main/test/engine/testdata/refsite.xml>`_ example model.
#. Added :at:`autolimits` compiler option. If ``true``, joint and tendon :at:`limited` attributes and actuator
:at:`ctrllimited`, :at:`forcelimited` and :at:`actlimited` attributes will automatically be set to ``true`` if the
corresponding range *is defined* and ``false`` otherwise.
- Added :at:`autolimits` compiler option. If ``true``, joint and tendon :at:`limited` attributes and actuator If ``autolimits="false"`` (the default) models where a :at:`range` attribute is specified without the :at:`limited`
:at:`ctrllimited`, :at:`forcelimited` and :at:`actlimited` attributes will automatically be set to ``true`` if the attribute will fail to compile. A future release will change the default of :at:`autolimits` to ``true``, and this
corresponding range *is defined* and ``false`` otherwise. compilation error allows users to catch this future change of behavior.
If ``autolimits="false"`` (the default) models where a :at:`range` attribute is specified without the :at:`limited` .. attention::
attribute will fail to compile. A future release will change the default of :at:`autolimits` to ``true``, and this This is a breaking change. In models where a range was defined but :at:`limited` was unspecified, explicitly set
compilation error allows users to catch this future change of behavior. limited to ``false`` or remove the range to maintain the current behavior of your model.
.. attention:: #. Added moment of inertia computation for all well-formed meshes. This option is activated by setting the compiler
This is a breaking change. In models where a range was defined but :at:`limited` was unspecified, explicitly set flag :at:`exactmeshinertia` to ``true`` (defaults to ``false``). This default may change in the future.
limited to ``false`` or remove the range to maintain the current behavior of your model. #. Added parameter :at:`shellinertia` to :at:`geom`, for locating the inferred inertia on the boundary (shell).
Currently only meshes are supported.
#. For meshes from which volumetric inertia is inferred, raise error if the orientation of mesh faces is not consistent.
If this occurs, fix the mesh in e.g., MeshLab or Blender.
- Added moment of inertia computation for all well-formed meshes. This option is activated by setting the compiler .. youtube:: I2q7D0Vda-A
flag :at:`exactmeshinertia` to ``true`` (defaults to ``false``). This default may change in the future.
- Added parameter :at:`shellinertia` to :at:`geom`, for locating the inferred inertia on the boundary (shell).
Currently only meshes are supported.
- For meshes from which volumetric inertia is inferred, raise error if the orientation of mesh faces is not consistent.
If this occurs, fix the mesh in e.g., MeshLab or Blender.
.. youtube:: I2q7D0Vda-A
:align: right :align: right
:height: 150px :height: 150px
- Added catenary visualisation for hanging tendons. The model seen in the video can be found #. Added catenary visualisation for hanging tendons. The model seen in the video can be found
`here <https://github.com/deepmind/mujoco/tree/main/test/engine/testdata/catenary.xml>`_. `here <https://github.com/deepmind/mujoco/tree/main/test/engine/testdata/catenary.xml>`_.
- Added ``azimuth`` and ``elevation`` attributes to :ref:`visual/global<global>`, defining the initial orientation of #. Added ``azimuth`` and ``elevation`` attributes to :ref:`visual/global<global>`, defining the initial orientation of
the free camera at model load time. the free camera at model load time.
- Added ``mjv_defaultFreeCamera`` which sets the default free camera, respecting the above attributes. #. Added ``mjv_defaultFreeCamera`` which sets the default free camera, respecting the above attributes.
- ``simulate`` now supports taking a screenshot via a button in the File section or via ``Ctrl-P``. #. ``simulate`` now supports taking a screenshot via a button in the File section or via ``Ctrl-P``.
- Improvements to time synchronisation in `simulate`, in particular report actual real-time factor if different from #. Improvements to time synchronisation in `simulate`, in particular report actual real-time factor if different from
requested factor (if e.g., the timestep is so small that simulation cannot keep up with real-time). requested factor (if e.g., the timestep is so small that simulation cannot keep up with real-time).
- Added a disable flag for sensors. #. Added a disable flag for sensors.
- :ref:`mju_mulQuat` and :ref:`mju_mulQuatAxis` support in place computation. For example #. :ref:`mju_mulQuat` and :ref:`mju_mulQuatAxis` support in place computation. For example
|br| ``mju_mulQuat(a, a, b);`` sets the quaternion ``a`` equal to the product of ``a`` and ``b``. |br| ``mju_mulQuat(a, a, b);`` sets the quaternion ``a`` equal to the product of ``a`` and ``b``.
- Added sensor matrices to ``mjd_transitionFD`` (note this is an API change). #. Added sensor matrices to ``mjd_transitionFD`` (note this is an API change).
Deleted/deprecated features Deleted/deprecated features
^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Removed ``distance`` constraints. 21. Removed ``distance`` constraints.
Bug fixes Bug fixes
^^^^^^^^^ ^^^^^^^^^
- Fixed rendering of some transparent geoms in reflection. 22. Fixed rendering of some transparent geoms in reflection.
- Fixed ``intvelocity`` defaults parsing. #. Fixed ``intvelocity`` defaults parsing.
Version 2.2.1 (July 18, 2022) Version 2.2.1 (July 18, 2022)
----------------------------- -----------------------------
+2 -2
View File
@@ -29,14 +29,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 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 a trusted binary. Then, copy the dynamic library file from
``/Applications/MuJoCo.app/Contents/Frameworks/mujoco.framework/Versions/Current/libmujoco.2.2.1.dylib`` (it can be ``/Applications/MuJoCo.app/Contents/Frameworks/mujoco.framework/Versions/Current/libmujoco.2.2.2.dylib`` (it can be
found by browsing the contents of ``MuJoCo.app``) and rename it as ``mujoco.dylib``. found by browsing the contents of ``MuJoCo.app``) and rename it as ``mujoco.dylib``.
Linux Linux
_____ _____
Expand the ``tar.gz`` archive to ``~/.mujoco``. Then copy the dynamic library from Expand the ``tar.gz`` archive to ``~/.mujoco``. Then copy the dynamic library from
``~/.mujoco/mujoco-2.2.1/lib/libmujoco.so.2.2.1`` and rename it as ``libmujoco.so``. ``~/.mujoco/mujoco-2.2.2/lib/libmujoco.so.2.2.2`` and rename it as ``libmujoco.so``.
Windows Windows
_______ _______
+1 -1
View File
@@ -24,7 +24,7 @@ extern "C" {
#endif #endif
// header version; should match the library version as returned by mj_version() // header version; should match the library version as returned by mj_version()
#define mjVERSION_HEADER 221 #define mjVERSION_HEADER 222
// needed to define size_t, fabs and log10 // needed to define size_t, fabs and log10
#include "stdlib.h" #include "stdlib.h"
+2 -2
View File
@@ -75,13 +75,13 @@ if(NOT TARGET mujoco)
find_path(MUJOCO_FRAMEWORK mujoco.Framework HINTS ${MUJOCO_FRAMEWORK_DIR}) find_path(MUJOCO_FRAMEWORK mujoco.Framework HINTS ${MUJOCO_FRAMEWORK_DIR})
if(MUJOCO_FRAMEWORK) if(MUJOCO_FRAMEWORK)
message("MuJoCo framework is at ${MUJOCO_FRAMEWORK}/mujoco.framework") message("MuJoCo framework is at ${MUJOCO_FRAMEWORK}/mujoco.framework")
set(MUJOCO_LIBRARY ${MUJOCO_FRAMEWORK}/mujoco.framework/Versions/A/libmujoco.2.2.1.dylib) set(MUJOCO_LIBRARY ${MUJOCO_FRAMEWORK}/mujoco.framework/Versions/A/libmujoco.2.2.2.dylib)
target_compile_options(mujoco INTERFACE -F${MUJOCO_FRAMEWORK}) target_compile_options(mujoco INTERFACE -F${MUJOCO_FRAMEWORK})
endif() endif()
endif() endif()
if(NOT MUJOCO_FRAMEWORK) if(NOT MUJOCO_FRAMEWORK)
find_library(MUJOCO_LIBRARY mujoco mujoco.2.2.1 HINTS ${MUJOCO_LIBRARY_DIR} REQUIRED) find_library(MUJOCO_LIBRARY mujoco mujoco.2.2.2 HINTS ${MUJOCO_LIBRARY_DIR} REQUIRED)
find_path(MUJOCO_INCLUDE mujoco/mujoco.h HINTS ${MUJOCO_INCLUDE_DIR} REQUIRED) find_path(MUJOCO_INCLUDE mujoco/mujoco.h HINTS ${MUJOCO_INCLUDE_DIR} REQUIRED)
message("MuJoCo is at ${MUJOCO_LIBRARY}") message("MuJoCo is at ${MUJOCO_LIBRARY}")
message("MuJoCo headers are at ${MUJOCO_INCLUDE}") message("MuJoCo headers are at ${MUJOCO_INCLUDE}")
+1 -1
View File
@@ -30,7 +30,7 @@ from setuptools import find_packages
from setuptools import setup from setuptools import setup
from setuptools.command import build_ext from setuptools.command import build_ext
__version__ = '2.2.1' __version__ = '2.2.2'
MUJOCO_CMAKE = 'MUJOCO_CMAKE' MUJOCO_CMAKE = 'MUJOCO_CMAKE'
MUJOCO_CMAKE_ARGS = 'MUJOCO_CMAKE_ARGS' MUJOCO_CMAKE_ARGS = 'MUJOCO_CMAKE_ARGS'
+1 -1
View File
@@ -24,7 +24,7 @@ set(MSVC_INCREMENTAL_DEFAULT ON)
project( project(
mujoco_samples mujoco_samples
VERSION 2.2.1 VERSION 2.2.2
DESCRIPTION "MuJoCo samples binaries" DESCRIPTION "MuJoCo samples binaries"
HOMEPAGE_URL "https://mujoco.org" HOMEPAGE_URL "https://mujoco.org"
) )
+1 -1
View File
@@ -29,7 +29,7 @@ set(MUJOCO_DEP_VERSION_lodepng
project( project(
mujoco_simulate mujoco_simulate
VERSION 2.2.1 VERSION 2.2.2
DESCRIPTION "MuJoCo simulate binaries" DESCRIPTION "MuJoCo simulate binaries"
HOMEPAGE_URL "https://mujoco.org" HOMEPAGE_URL "https://mujoco.org"
) )
+2 -2
View File
@@ -35,8 +35,8 @@
#endif #endif
#endif #endif
#define mjVERSION 221 #define mjVERSION 222
#define mjVERSIONSTRING "2.2.1" #define mjVERSIONSTRING "2.2.2"
// names of disable flags // names of disable flags
const char* mjDISABLESTRING[mjNDISABLE] = { const char* mjDISABLESTRING[mjNDISABLE] = {
+4 -4
View File
@@ -141,9 +141,9 @@ TEST_F(JacobianTest, SubtreeJacNoInternalAcc) {
// the CoM should accelerate the whole mechanism without any internal motion // the CoM should accelerate the whole mechanism without any internal motion
int body_dofadr = model->body_dofadr[bodyid]; int body_dofadr = model->body_dofadr[bodyid];
mjtNum invtreemass = 1.0/model->body_subtreemass[bodyid]; mjtNum invtreemass = 1.0/model->body_subtreemass[bodyid];
for (int r=0; r<3; r++) { for (int r = 0; r < 3; r++) {
for (int c=0; c<nv; c++) { for (int c = 0; c < nv; c++) {
mjtNum expected = c-body_dofadr==r ? invtreemass : 0.0; mjtNum expected = c - body_dofadr == r ? invtreemass : 0.0;
EXPECT_THAT(jac_subtree[nv*r+c], DoubleNear(expected, max_abs_err)); EXPECT_THAT(jac_subtree[nv*r+c], DoubleNear(expected, max_abs_err));
} }
} }
@@ -155,7 +155,7 @@ TEST_F(JacobianTest, SubtreeJacNoInternalAcc) {
using VersionTest = MujocoTest; using VersionTest = MujocoTest;
const char *const kExpectedVersionString = "2.2.1"; const char *const kExpectedVersionString = "2.2.2";
TEST_F(VersionTest, MjVersion) { TEST_F(VersionTest, MjVersion) {
EXPECT_EQ(mj_version(), mjVERSION_HEADER); EXPECT_EQ(mj_version(), mjVERSION_HEADER);
@@ -37,7 +37,7 @@ public class MujocoBinaryRetriever {
if (AssetDatabase.LoadMainAssetAtPath(mujocoPath + "/mujoco.dylib") == null) { if (AssetDatabase.LoadMainAssetAtPath(mujocoPath + "/mujoco.dylib") == null) {
File.Copy( File.Copy(
"/Applications/MuJoCo.app/Contents/Frameworks" + "/Applications/MuJoCo.app/Contents/Frameworks" +
"/mujoco.framework/Versions/Current/libmujoco.2.2.1.dylib", "/mujoco.framework/Versions/Current/libmujoco.2.2.2.dylib",
mujocoPath + "/mujoco.dylib"); mujocoPath + "/mujoco.dylib");
AssetDatabase.Refresh(); AssetDatabase.Refresh();
} }
@@ -45,7 +45,7 @@ public class MujocoBinaryRetriever {
if (AssetDatabase.LoadMainAssetAtPath(mujocoPath + "/libmujoco.so") == null) { if (AssetDatabase.LoadMainAssetAtPath(mujocoPath + "/libmujoco.so") == null) {
File.Copy( File.Copy(
Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) +
"/.mujoco/mujoco-2.2.1/lib/libmujoco.so.2.2.1", "/.mujoco/mujoco-2.2.2/lib/libmujoco.so.2.2.2",
mujocoPath + "/libmujoco.so"); mujocoPath + "/libmujoco.so");
AssetDatabase.Refresh(); AssetDatabase.Refresh();
} }
+1 -1
View File
@@ -98,7 +98,7 @@ public const int mjMAXLINEPNT = 1000;
public const int mjMAXPLANEGRID = 200; public const int mjMAXPLANEGRID = 200;
public const bool THIRD_PARTY_MUJOCO_MJXMACRO_H_ = true; public const bool THIRD_PARTY_MUJOCO_MJXMACRO_H_ = true;
public const bool THIRD_PARTY_MUJOCO_MUJOCO_H_ = true; public const bool THIRD_PARTY_MUJOCO_MUJOCO_H_ = true;
public const int mjVERSION_HEADER = 221; public const int mjVERSION_HEADER = 222;
// ------------------------------------Enums------------------------------------ // ------------------------------------Enums------------------------------------
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"name": "org.mujoco", "name": "org.mujoco",
"displayName": "MuJoCo", "displayName": "MuJoCo",
"version": "2.2.1", "version": "2.2.2",
"description": "MuJoCo importer and runtime plug-in", "description": "MuJoCo importer and runtime plug-in",
"dependencies": {}, "dependencies": {},
"author": { "author": {