Version 2.3.0 #536
saran-t
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
General
The
contactarray and arrays prefixed withefc_inmjDatawere moved out of thebufferinto a newarenamemory space. These arrays are no longer allocated with fixed sizes whenmjDatais created. Instead, the exact memory requirement is determined during each call tomj_forward(specifically, inmj_collisionandmj_makeConstraint) and the arrays are allocated from thearenaspace. Thestacknow also shares its available memory witharena. This change reduces the memory footprint ofmjDatain models that do not use the PGS solver, and will allow for significant memory reductions in the future. See the Memory allocation section for details.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
Rendererclass, for easy rendering in Python. Try it yourself:Updates to humanoid model:
Added$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, converges after 2-5 Cholesky factorisations, independent of problem size.
mju_boxQPand allocation functionmju_boxQPmallocfor solving the box-constrained Quadratic Program:Added$M$ with vectors $x$ and $y$ on both sides. The function returns $x^TMy$ .
mju_mulVecMatVecto multiply a square matrixAdded 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
assetdircompiler option, which sets the values of bothmeshdirandtexturedir. Values in the latter attributes take precedence overassetdir.Added
realtimeoption tovisualfor starting a simulation at a slower speed.Added new
cablecomposite type:initialparameter specifies the joint at the starting boundary:free,ball, ornone.B_leftandB_right.vertex.Added new
cablepassive force plugin:twistandbend.flat.Python bindings
Added
idandnameproperties to named accessor objects. These provide more Pythonic API access tomj_name2idandmj_id2namerespectively.The length of
MjData.contactis nownconrather thannconmax, allowing it to be straightforwardly used asan iterator without needing to check
ncon.Fix a memory leak when a Python callable is installed as callback (#527).
This discussion was created from the release 2.3.0.
Beta Was this translation helpful? Give feedback.
All reactions