Skip to content

Commit a4b5355

Browse files
committed
merging with main mujoco repo
2 parents 67a9f91 + d7f131e commit a4b5355

File tree

136 files changed

+48647
-2790
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

136 files changed

+48647
-2790
lines changed

doc/XMLreference.rst

+49-37
Original file line numberDiff line numberDiff line change
@@ -2129,12 +2129,6 @@ from its default.
21292129
When this flag is enabled, :ref:`mj_inverse` will interpret ``qacc`` as having been computed from the difference of
21302130
two sequential velocities, and undo the above modification.
21312131

2132-
.. _option-flag-sensornoise:
2133-
2134-
:at:`sensornoise`: :at-val:`[disable, enable], "disable"`
2135-
This flag enables the simulation of sensor noise. When disabled (which is the default) noise is not added to
2136-
sensordata, even if the sensors specify non-zero noise amplitudes. When enabled, zero-mean Gaussian noise is added to
2137-
the underlying deterministic sensor data. Its standard deviation is determined by the noise parameter of each sensor.
21382132

21392133
.. _option-flag-multiccd:
21402134

@@ -2354,24 +2348,6 @@ rotations as unit quaternions.
23542348
joint inertia in the model reference configuration. Note that the format is the same as the solref parameter of the
23552349
constraint solver.
23562350

2357-
.. _body-joint-limited:
2358-
2359-
:at:`limited`: :at-val:`[false, true, auto], "auto"`
2360-
This attribute specifies if the joint has limits. It interacts with the range attribute below. If this attribute
2361-
is "false", joint limits are disabled. If this attribute is "true", joint limits are enabled. If this
2362-
attribute is "auto", and :at:`autolimits` is set in :ref:`compiler <compiler>`, joint limits will be enabled
2363-
if range is defined.
2364-
2365-
.. _body-joint-actuatorfrclimited:
2366-
2367-
:at:`actuatorfrclimited`: :at-val:`[false, true, auto], "auto"`
2368-
This attribute specifies whether actuator forces acting on the joint should be clamped. See :ref:`CForceRange` for
2369-
details. It is available only for scalar joints (hinge and slider) and ignored for ball and free joints. |br| This
2370-
attribute interacts with the actuatorfrcrange attribute below. If this attribute is "false", actuator force
2371-
clamping is disabled. If it is "true", actuator force clamping is enabled. If this attribute is "auto", and
2372-
:at:`autolimits` is set in :ref:`compiler <compiler>`, actuator force clamping will be enabled if actuatorfrcrange
2373-
is defined.
2374-
23752351
.. _body-joint-solreflimit:
23762352

23772353
.. _body-joint-solimplimit:
@@ -2400,16 +2376,44 @@ rotations as unit quaternions.
24002376
joints, the limit is imposed on the angle of rotation (relative to the reference configuration) regardless of the
24012377
axis of rotation. Only the second range parameter is used for ball joints; the first range parameter should be set to
24022378
0. See the :ref:`Limit <coLimit>` section in the Computation chapter for more information.
2403-
|br| Setting this attribute without specifying :at:`limited` is an error, unless :at:`autolimits` is set in
2379+
|br| Setting this attribute without specifying :at:`limited` is an error if :at:`autolimits` is "false" in
24042380
:ref:`compiler <compiler>`.
24052381

2382+
.. _body-joint-limited:
2383+
2384+
:at:`limited`: :at-val:`[false, true, auto], "auto"`
2385+
This attribute specifies if the joint has limits. It interacts with the range attribute below. If this attribute
2386+
is "false", joint limits are disabled. If this attribute is "true", joint limits are enabled. If this
2387+
attribute is "auto", and :at:`autolimits` is set in :ref:`compiler <compiler>`, joint limits will be enabled
2388+
if range is defined.
2389+
24062390
.. _body-joint-actuatorfrcrange:
24072391

24082392
:at:`actuatorfrcrange`: :at-val:`real(2), "0 0"`
24092393
Range for clamping total actuator forces acting on this joint. See :ref:`CForceRange` for details. It is available
24102394
only for scalar joints (hinge and slider) and ignored for ball and free joints. |br| The compiler expects the first
24112395
value to be smaller than the second value. |br| Setting this attribute without specifying :at:`actuatorfrclimited`
2412-
is an error, unless :at:`compiler-autolimits` is set.
2396+
is an error if :at:`compiler-autolimits` is "false".
2397+
2398+
.. _body-joint-actuatorfrclimited:
2399+
2400+
:at:`actuatorfrclimited`: :at-val:`[false, true, auto], "auto"`
2401+
This attribute specifies whether actuator forces acting on the joint should be clamped. See :ref:`CForceRange` for
2402+
details. It is available only for scalar joints (hinge and slider) and ignored for ball and free joints. |br| This
2403+
attribute interacts with the actuatorfrcrange attribute below. If this attribute is "false", actuator force
2404+
clamping is disabled. If it is "true", actuator force clamping is enabled. If this attribute is "auto", and
2405+
:at:`autolimits` is set in :ref:`compiler <compiler>`, actuator force clamping will be enabled if
2406+
:at:`actuatorfrcrange` is defined.
2407+
2408+
.. _body-joint-actuatorgravcomp:
2409+
2410+
:at:`actuatorgravcomp`: :at-val:`[false, true], "false"`
2411+
If this flag is enabled, gravity compensation applied to this joint is added to actuator forces
2412+
(``mjData.qfrc_actuator``) rather than passive forces (``mjData.qfrc_passive``). Notionally, this means that gravity
2413+
compensation is the result of a control system rather than natural buoyancy. In practice, enabling this flag is
2414+
useful when joint-level actuator force clamping is used. In this case, the total actuation force applied on a joint,
2415+
including gravity compensation, is guaranteed to not exceeed the specified limits. See :ref:`CForceRange` and
2416+
:ref:`actuatorfrcrange<body-joint-actuatorfrcrange>` for more details on this type of force limit.
24132417

24142418
.. _body-joint-margin:
24152419

@@ -3808,16 +3812,20 @@ saving the XML:
38083812
in MuJoCo can be used as a rigid geom attached to a single body. In contrast, the flex generated here corresponds to
38093813
a soft mesh with the same initial shape, where each vertex is a separate moving body (unless pinned).
38103814

3811-
**gmsh** is similar to mesh, but it loads a `GMSH file <https://gmsh.info//doc/texinfo/gmsh.html#MSH-file-format>`__
3812-
in format 4.1 (ascii or binary). The file extension can be anything; the parser recognizes the format by examining
3815+
.. _gmsh-file-docs:
3816+
3817+
**gmsh** is similar to mesh, but it loads a GMSH file in
3818+
`format 4.1 <https://gmsh.info//doc/texinfo/gmsh.html#MSH-file-format>`__
3819+
and `format 2.2 <https://gmsh.info//doc/texinfo/gmsh.html#MSH-file-format-version-2-_0028Legacy_0029>`__
3820+
(ascii or binary). The file extension can be anything; the parser recognizes the format by examining
38133821
the file header. This is a very rich file format, allowing all kinds of elements with different dimensionality and
38143822
topology. MuJoCo only supports GMSH element types 1, 2, 4 which happen to correspond to our 1D, 2D and 3D flexes and
38153823
assumes that the nodes are specified in a single block. Only the Nodes and Elements sections of the GMHS file are
38163824
processed, and used to populate the point and element data of the flexcomp. The parser will generate an error if the
38173825
GMSH file contains meshes that are not supported by MuJoCo. :at:`dim` is automatically set to the dimensionality
38183826
specified in the GMSH file. Presently this is the only mechanism to load a large tetrahedral mesh in MuJoCo and
38193827
generate a corresponding soft entity. If such a mesh is available in a different file format, use the freely
3820-
available `GMSH software <https://gmsh.info/>`__ to convert it to GMSH 4.1.
3828+
available `GMSH software <https://gmsh.info/>`__ to convert it to GMSH in one of the supported versions.
38213829

38223830
**direct** allows the user to specify the point and element data of the flexcomp directly in the XML. Note that
38233831
flexcomp will still generate moving bodies automatically, as well as automate other settings; so it still provides
@@ -3873,7 +3881,7 @@ saving the XML:
38733881
:at:`file`: :at-val:`string, optional`
38743882
The name of the file from which a **mesh** or a **gmsh** is loaded. For mesh, the file extentsion is used to
38753883
determine the file format. Supported formats are the same as in :ref:`mesh assets<asset-mesh>`. For gmsh, the file is
3876-
expected to be in GMSH format 4.1, ascii or binary.
3884+
expected to be in GMSH format 4.1 or 2.2, ascii or binary, see :ref:`here<gmsh-file-docs>`.
38773885

38783886
.. _body-flexcomp-rigid:
38793887

@@ -5092,22 +5100,22 @@ specify them independently.
50925100

50935101
:at:`ctrlrange`: :at-val:`real(2), "0 0"`
50945102
Range for clamping the control input. The first value must be smaller than the second value.
5095-
|br| Setting this attribute without specifying :at:`ctrllimited` is an error, unless :at:`autolimits` is set in
5103+
|br| Setting this attribute without specifying :at:`ctrllimited` is an error if :at:`autolimits` is "false" in
50965104
:ref:`compiler <compiler>`.
50975105

50985106
.. _actuator-general-forcerange:
50995107

51005108
:at:`forcerange`: :at-val:`real(2), "0 0"`
51015109
Range for clamping the force output. The first value must be no greater than the second value.
5102-
|br| Setting this attribute without specifying :at:`forcelimited` is an error, unless :at:`autolimits` is set in
5110+
|br| Setting this attribute without specifying :at:`forcelimited` is an error if :at:`autolimits` is "false" in
51035111
:ref:`compiler <compiler>`.
51045112

51055113
.. _actuator-general-actrange:
51065114

51075115
:at:`actrange`: :at-val:`real(2), "0 0"`
51085116
Range for clamping the activation state. The first value must be no greater than the second value.
51095117
See the :ref:`Activation clamping <CActRange>` section for more details.
5110-
|br| Setting this attribute without specifying :at:`actlimited` is an error, unless :at:`autolimits` is set in
5118+
|br| Setting this attribute without specifying :at:`actlimited` is an error if :at:`autolimits` is "false" in
51115119
:ref:`compiler <compiler>`.
51125120

51135121
.. _actuator-general-lengthrange:
@@ -6485,10 +6493,12 @@ arms determined by the transmission). This sensor can be attached to any actuato
64856493
:el-prefix:`sensor/` |-| **jointactuatorfrc** (*)
64866494
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
64876495

6488-
This element creates an actuator force sensor, measured at a joint. The quantity being sensed is the
6489-
generalized force contributed by all actuators to a single scalar joint (hinge or slider). This type of sensor is
6490-
important when multiple actuators act on a single joint or when a single actuator act on multiple joints. See
6491-
:ref:`CForceRange` for details.
6496+
This element creates an actuator force sensor, measured at a joint. The quantity being sensed is the generalized force
6497+
contributed by all actuators to a single scalar joint (hinge or slider). If the joint's
6498+
:ref:`actuatorgravcomp<body-joint-actuatorgravcomp>` attribute is "true", this sensor will also measure contributions by
6499+
gravity compensation forces (which are added directly to the joint and would *not* register in the
6500+
:ref:`actuatorfrc<sensor-actuatorfrc>`) sensor. This type of sensor is important when multiple actuators act on a single
6501+
joint or when a single actuator act on multiple joints. See :ref:`CForceRange` for details.
64926502

64936503

64946504
.. _sensor-jointactuatorfrc-name:
@@ -7382,6 +7392,8 @@ if omitted.
73827392

73837393
.. _default-joint-actuatorfrclimited:
73847394

7395+
.. _default-joint-actuatorgravcomp:
7396+
73857397
.. _default-joint-solreflimit:
73867398

73877399
.. _default-joint-solimplimit:

0 commit comments

Comments
 (0)