Restructure numeric constants table in API docs
Break the monolithic numeric constants table into 6 sub-grouped tables: Version, Engine constants, Array sizes, Visualization, Rendering, UI constants. Fix stale values: mjMAXUITEXT (500->300), mjMAXUIMULTI (20->35), mjMAXUIEDIT (5->7), mjMAXUIRECT (15->25). Add missing constants: mjMAXLIGHT, mjMAXMATERIAL. Fix placeholder description for mjMAXFLEXNODES. PiperOrigin-RevId: 875010581 Change-Id: Id47846de4d98b62cb96087b72ecd28358d5db9c7
This commit is contained in:
committed by
Copybara-Service
parent
a83fa7299d
commit
40e0007849
+120
-38
@@ -368,10 +368,41 @@ Numeric constants
|
|||||||
^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
Many integer constants were already documented in the primitive types above. In addition, the header files define
|
Many integer constants were already documented in the primitive types above. In addition, the header files define
|
||||||
several other constants documented here. Unless indicated otherwise, each entry in the table below is defined in
|
several other constants documented here. Note that some extended key codes are defined in
|
||||||
`mjmodel.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjmodel.h>`_. Note that some extended key
|
`mjui.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjui.h>`_ which are not shown below. Their
|
||||||
codes are defined in `mjui.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjui.h>`_ which are not
|
names are in the format ``mjKEY_XXX``. They correspond to GLFW key codes.
|
||||||
shown in the table below. Their names are in the format ``mjKEY_XXX``. They correspond to GLFW key codes.
|
|
||||||
|
|
||||||
|
.. _glNumericVersion:
|
||||||
|
|
||||||
|
Version
|
||||||
|
~~~~~~~
|
||||||
|
|
||||||
|
Defined in `mujoco.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mujoco.h>`_.
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:widths: 2 1 8
|
||||||
|
:header-rows: 1
|
||||||
|
|
||||||
|
* - symbol
|
||||||
|
- value
|
||||||
|
- description
|
||||||
|
* - ``mjVERSION_HEADER``
|
||||||
|
- 3005001
|
||||||
|
- The version of the MuJoCo headers. This is an integer calculated from the version string "S.M.P"
|
||||||
|
using the formula ``(S * 1e6) + (M * 1e3) + P``. For example, version 4.2.1 is represented as 4002001.
|
||||||
|
The API function :ref:`mj_version` returns a number with the same meaning
|
||||||
|
but for the compiled library. See
|
||||||
|
`VERSIONING.md <https://github.com/google-deepmind/mujoco/blob/main/VERSIONING.md>`__ for details.
|
||||||
|
|
||||||
|
|
||||||
|
.. _glNumericEngine:
|
||||||
|
|
||||||
|
Engine constants
|
||||||
|
~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Defined in `mjmodel.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjmodel.h>`_ unless
|
||||||
|
indicated otherwise.
|
||||||
|
|
||||||
.. list-table::
|
.. list-table::
|
||||||
:widths: 2 1 8
|
:widths: 2 1 8
|
||||||
@@ -384,6 +415,7 @@ shown in the table below. Their names are in the format ``mjKEY_XXX``. They corr
|
|||||||
- 1E-15
|
- 1E-15
|
||||||
- The minimal value allowed in any denominator, and in general any mathematical operation where 0 is not allowed.
|
- The minimal value allowed in any denominator, and in general any mathematical operation where 0 is not allowed.
|
||||||
In almost all cases, MuJoCo silently clamps smaller values to mjMINVAL.
|
In almost all cases, MuJoCo silently clamps smaller values to mjMINVAL.
|
||||||
|
Defined in `mjtnum.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjtnum.h>`_.
|
||||||
* - ``mjPI``
|
* - ``mjPI``
|
||||||
- :math:`\pi`
|
- :math:`\pi`
|
||||||
- The value of :math:`\pi`. This is used in various trigonometric functions, and also for conversion from degrees
|
- The value of :math:`\pi`. This is used in various trigonometric functions, and also for conversion from degrees
|
||||||
@@ -416,17 +448,38 @@ shown in the table below. Their names are in the format ``mjKEY_XXX``. They corr
|
|||||||
is raised and ray casting may not be possible. For a balanced hierarchy, this implies 1E15 bounding volumes.
|
is raised and ray casting may not be possible. For a balanced hierarchy, this implies 1E15 bounding volumes.
|
||||||
* - ``mjMAXFLEXNODES``
|
* - ``mjMAXFLEXNODES``
|
||||||
- 27
|
- 27
|
||||||
- Some number by Alessio that needs documentation. I guess it's related to trilinear flexes?
|
- The maximum number of nodes in a trilinear flex element.
|
||||||
* - ``mjMINAWAKE``
|
* - ``mjMINAWAKE``
|
||||||
- 10
|
- 10
|
||||||
- The minimum number of timesteps that must pass after a tree is awoken, before it is allowed to go back to sleep.
|
- The minimum number of timesteps that must pass after a tree is awoken, before it is allowed to go back to sleep.
|
||||||
|
* - ``mjMAXTHREAD``
|
||||||
|
- 128
|
||||||
|
- Maximum number of OS threads that can be used in a thread pool.
|
||||||
|
Defined in `mjthread.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjthread.h>`_.
|
||||||
|
|
||||||
|
|
||||||
|
.. _glNumericSizes:
|
||||||
|
|
||||||
|
Array sizes
|
||||||
|
~~~~~~~~~~~
|
||||||
|
|
||||||
|
Defined in `mjmodel.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjmodel.h>`_. These constants
|
||||||
|
correspond to array sizes which we have not fully settled. There may be reasons to increase them in the future, so as to
|
||||||
|
accommodate extra parameters needed for more elaborate computations. This is why we maintain them as symbolic constants
|
||||||
|
that can be easily changed, as opposed to the array size for representing quaternions for example -- which has no reason
|
||||||
|
to change.
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:widths: 2 1 8
|
||||||
|
:header-rows: 1
|
||||||
|
|
||||||
|
* - symbol
|
||||||
|
- value
|
||||||
|
- description
|
||||||
* - ``mjNEQDATA``
|
* - ``mjNEQDATA``
|
||||||
- 11
|
- 11
|
||||||
- The maximal number of real-valued parameters used to define each equality constraint. Determines the size of
|
- The maximal number of real-valued parameters used to define each equality constraint. Determines the size of
|
||||||
``mjModel.eq_data``. This and the next five constants correspond to array sizes which we have not fully settled.
|
``mjModel.eq_data``.
|
||||||
There may be reasons to increase them in the future, so as to accommodate extra parameters needed for more
|
|
||||||
elaborate computations. This is why we maintain them as symbolic constants that can be easily changed, as opposed
|
|
||||||
to the array size for representing quaternions for example -- which has no reason to change.
|
|
||||||
* - ``mjNDYN``
|
* - ``mjNDYN``
|
||||||
- 10
|
- 10
|
||||||
- The maximal number of real-valued parameters used to define the activation dynamics of each actuator.
|
- The maximal number of real-valued parameters used to define the activation dynamics of each actuator.
|
||||||
@@ -464,75 +517,104 @@ shown in the table below. Their names are in the format ``mjKEY_XXX``. They corr
|
|||||||
- The number of islands for which solver statistics can be stored in ``mjData.solver``. This array is
|
- The number of islands for which solver statistics can be stored in ``mjData.solver``. This array is
|
||||||
used to store diagnostic information about each iteration of the constraint solver.
|
used to store diagnostic information about each iteration of the constraint solver.
|
||||||
The actual number of islands for which the solver was run is given by ``mjData.nsolver_island``.
|
The actual number of islands for which the solver was run is given by ``mjData.nsolver_island``.
|
||||||
|
|
||||||
|
|
||||||
|
.. _glNumericVisualization:
|
||||||
|
|
||||||
|
Visualization
|
||||||
|
~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Defined in `mjvisualize.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjvisualize.h>`_.
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:widths: 2 1 8
|
||||||
|
:header-rows: 1
|
||||||
|
|
||||||
|
* - symbol
|
||||||
|
- value
|
||||||
|
- description
|
||||||
* - ``mjNGROUP``
|
* - ``mjNGROUP``
|
||||||
- 6
|
- 6
|
||||||
- The number of geom, site, joint, tendon and actuator groups whose rendering can be enabled and disabled via
|
- The number of geom, site, joint, tendon and actuator groups whose rendering can be enabled and disabled via
|
||||||
:ref:`mjvOption`.
|
:ref:`mjvOption`.
|
||||||
Defined in `mjvisualize.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjvisualize.h>`_.
|
* - ``mjMAXLIGHT``
|
||||||
|
- 100
|
||||||
|
- The maximum number of lights in a scene.
|
||||||
* - ``mjMAXOVERLAY``
|
* - ``mjMAXOVERLAY``
|
||||||
- 500
|
- 500
|
||||||
- The maximal number of characters in overlay text for rendering.
|
- The maximal number of characters in overlay text for rendering.
|
||||||
Defined in `mjvisualize.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjvisualize.h>`_.
|
|
||||||
* - ``mjMAXLINE``
|
* - ``mjMAXLINE``
|
||||||
- 100
|
- 100
|
||||||
- The maximal number of lines per 2D figure (:ref:`mjvFigure`).
|
- The maximal number of lines per 2D figure (:ref:`mjvFigure`).
|
||||||
Defined in `mjvisualize.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjvisualize.h>`_.
|
|
||||||
* - ``mjMAXLINEPNT``
|
* - ``mjMAXLINEPNT``
|
||||||
- 1001
|
- 1001
|
||||||
- The maximal number of points in each line in a 2D figure. Note that the buffer ``mjvFigure.linepnt`` has length
|
- The maximal number of points in each line in a 2D figure. Note that the buffer ``mjvFigure.linepnt`` has length
|
||||||
``2*mjMAXLINEPNT`` because each point has X and Y coordinates.
|
``2*mjMAXLINEPNT`` because each point has X and Y coordinates.
|
||||||
Defined in `mjvisualize.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjvisualize.h>`_.
|
|
||||||
* - ``mjMAXPLANEGRID``
|
* - ``mjMAXPLANEGRID``
|
||||||
- 200
|
- 200
|
||||||
- The maximal number of grid lines in each dimension for rendering planes.
|
- The maximal number of grid lines in each dimension for rendering planes.
|
||||||
Defined in `mjvisualize.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjvisualize.h>`_.
|
|
||||||
|
|
||||||
|
.. _glNumericRendering:
|
||||||
|
|
||||||
|
Rendering
|
||||||
|
~~~~~~~~~
|
||||||
|
|
||||||
|
Defined in `mjrender.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjrender.h>`_.
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:widths: 2 1 8
|
||||||
|
:header-rows: 1
|
||||||
|
|
||||||
|
* - symbol
|
||||||
|
- value
|
||||||
|
- description
|
||||||
* - ``mjNAUX``
|
* - ``mjNAUX``
|
||||||
- 10
|
- 10
|
||||||
- Number of auxiliary buffers that can be allocated in mjrContext.
|
- Number of auxiliary buffers that can be allocated in mjrContext.
|
||||||
Defined in `mjrender.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjrender.h>`_.
|
|
||||||
* - ``mjMAXTEXTURE``
|
* - ``mjMAXTEXTURE``
|
||||||
- 1000
|
- 1000
|
||||||
- Maximum number of textures allowed.
|
- Maximum number of textures allowed.
|
||||||
Defined in `mjrender.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjrender.h>`_.
|
* - ``mjMAXMATERIAL``
|
||||||
* - ``mjMAXTHREAD``
|
- 1000
|
||||||
- 128
|
- Maximum number of materials with textures.
|
||||||
- Maximum number OS threads that can be used in a thread pool.
|
|
||||||
Defined in `mjthread.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjthread.h>`_.
|
|
||||||
|
.. _glNumericUI:
|
||||||
|
|
||||||
|
UI constants
|
||||||
|
~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Defined in `mjui.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjui.h>`_.
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:widths: 2 1 8
|
||||||
|
:header-rows: 1
|
||||||
|
|
||||||
|
* - symbol
|
||||||
|
- value
|
||||||
|
- description
|
||||||
* - ``mjMAXUISECT``
|
* - ``mjMAXUISECT``
|
||||||
- 10
|
- 10
|
||||||
- Maximum number of UI sections.
|
- Maximum number of UI sections.
|
||||||
Defined in `mjui.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjui.h>`_.
|
|
||||||
* - ``mjMAXUIITEM``
|
* - ``mjMAXUIITEM``
|
||||||
- 200
|
- 200
|
||||||
- Maximum number of items per UI section.
|
- Maximum number of items per UI section.
|
||||||
Defined in `mjui.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjui.h>`_.
|
|
||||||
* - ``mjMAXUITEXT``
|
* - ``mjMAXUITEXT``
|
||||||
- 500
|
- 300
|
||||||
- Maximum number of characters in UI fields 'edittext' and 'other'.
|
- Maximum number of characters in UI fields 'edittext' and 'other'.
|
||||||
Defined in `mjui.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjui.h>`_.
|
|
||||||
* - ``mjMAXUINAME``
|
* - ``mjMAXUINAME``
|
||||||
- 40
|
- 40
|
||||||
- Maximum number of characters in any UI name.
|
- Maximum number of characters in any UI name.
|
||||||
Defined in `mjui.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjui.h>`_.
|
|
||||||
* - ``mjMAXUIMULTI``
|
* - ``mjMAXUIMULTI``
|
||||||
- 20
|
- 35
|
||||||
- Maximum number of radio and select items in UI group.
|
- Maximum number of radio and select items in UI group.
|
||||||
Defined in `mjui.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjui.h>`_.
|
|
||||||
* - ``mjMAXUIEDIT``
|
* - ``mjMAXUIEDIT``
|
||||||
- 5
|
- 7
|
||||||
- Maximum number of elements in UI edit list.
|
- Maximum number of elements in UI edit list.
|
||||||
Defined in `mjui.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjui.h>`_.
|
|
||||||
* - ``mjMAXUIRECT``
|
* - ``mjMAXUIRECT``
|
||||||
- 15
|
- 25
|
||||||
- Maximum number of UI rectangles.
|
- Maximum number of UI rectangles.
|
||||||
Defined in `mjui.h <https://github.com/google-deepmind/mujoco/blob/main/include/mujoco/mjui.h>`_.
|
|
||||||
* - ``mjVERSION_HEADER``
|
|
||||||
- 3005001
|
|
||||||
- The version of the MuJoCo headers. This is an integer calculated from the version string "S.M.P"
|
|
||||||
using the formula ``(S * 1e6) + (M * 1e3) + P``. For example, version 4.2.1 is represented as 4002001.
|
|
||||||
Defined in mujoco.h. The API function :ref:`mj_version` returns a number with the same meaning
|
|
||||||
but for the compiled library. See
|
|
||||||
`VERSIONING.md <https://github.com/google-deepmind/mujoco/blob/main/VERSIONING.md>`__ for details.
|
|
||||||
|
|
||||||
.. _Macros:
|
.. _Macros:
|
||||||
|
|
||||||
|
|||||||
@@ -1252,7 +1252,7 @@ Intersect ray ``pnt+x*vec, x >= 0`` with geoms.
|
|||||||
- If ``normal`` is not NULL, write the surface normal at the intersection point. The normal always points **out of the
|
- If ``normal`` is not NULL, write the surface normal at the intersection point. The normal always points **out of the
|
||||||
geometry**, regardless of the ray's direction (i.e., including rays hitting the surface from the inside).
|
geometry**, regardless of the ray's direction (i.e., including rays hitting the surface from the inside).
|
||||||
- Exclude geoms in body with id ``bodyexclude``, use -1 to include all bodies.
|
- Exclude geoms in body with id ``bodyexclude``, use -1 to include all bodies.
|
||||||
- ``geomgroup`` is an array of length :ref:`mjNGROUP<glNumeric>`, where 1 means the group should be included. Pass
|
- ``geomgroup`` is an array of length :ref:`mjNGROUP<glNumericVisualization>`, where 1 means the group should be included. Pass
|
||||||
NULL to skip geom group exclusion.
|
NULL to skip geom group exclusion.
|
||||||
- If ``flg_static`` is 0, static geoms will be excluded.
|
- If ``flg_static`` is 0, static geoms will be excluded.
|
||||||
|
|
||||||
@@ -2911,7 +2911,7 @@ each corresponding to one item. The last (unused) item has its type set to -1, t
|
|||||||
after the end of the last used section. There is also another version of this function
|
after the end of the last used section. There is also another version of this function
|
||||||
(:ref:`mjui_addToSection<mjui_addToSection>`) which adds items to a specified section instead of adding them at the end
|
(:ref:`mjui_addToSection<mjui_addToSection>`) which adds items to a specified section instead of adding them at the end
|
||||||
of the UI. Keep in mind that there is a maximum preallocated number of sections and items per section, given by
|
of the UI. Keep in mind that there is a maximum preallocated number of sections and items per section, given by
|
||||||
:ref:`mjMAXUISECT<glNumeric>` and :ref:`mjMAXUIITEM<glNumeric>`. Exceeding these maxima results in low-level errors.
|
:ref:`mjMAXUISECT<glNumericUI>` and :ref:`mjMAXUIITEM<glNumericUI>`. Exceeding these maxima results in low-level errors.
|
||||||
|
|
||||||
.. _mjui_addToSection:
|
.. _mjui_addToSection:
|
||||||
|
|
||||||
|
|||||||
@@ -403,7 +403,7 @@ Intersect ray ``pnt+x*vec, x >= 0`` with geoms.
|
|||||||
- If ``normal`` is not NULL, write the surface normal at the intersection point. The normal always points **out of the
|
- If ``normal`` is not NULL, write the surface normal at the intersection point. The normal always points **out of the
|
||||||
geometry**, regardless of the ray's direction (i.e., including rays hitting the surface from the inside).
|
geometry**, regardless of the ray's direction (i.e., including rays hitting the surface from the inside).
|
||||||
- Exclude geoms in body with id ``bodyexclude``, use -1 to include all bodies.
|
- Exclude geoms in body with id ``bodyexclude``, use -1 to include all bodies.
|
||||||
- ``geomgroup`` is an array of length :ref:`mjNGROUP<glNumeric>`, where 1 means the group should be included. Pass
|
- ``geomgroup`` is an array of length :ref:`mjNGROUP<glNumericVisualization>`, where 1 means the group should be included. Pass
|
||||||
NULL to skip geom group exclusion.
|
NULL to skip geom group exclusion.
|
||||||
- If ``flg_static`` is 0, static geoms will be excluded.
|
- If ``flg_static`` is 0, static geoms will be excluded.
|
||||||
|
|
||||||
@@ -444,7 +444,7 @@ each corresponding to one item. The last (unused) item has its type set to -1, t
|
|||||||
after the end of the last used section. There is also another version of this function
|
after the end of the last used section. There is also another version of this function
|
||||||
(:ref:`mjui_addToSection<mjui_addToSection>`) which adds items to a specified section instead of adding them at the end
|
(:ref:`mjui_addToSection<mjui_addToSection>`) which adds items to a specified section instead of adding them at the end
|
||||||
of the UI. Keep in mind that there is a maximum preallocated number of sections and items per section, given by
|
of the UI. Keep in mind that there is a maximum preallocated number of sections and items per section, given by
|
||||||
:ref:`mjMAXUISECT<glNumeric>` and :ref:`mjMAXUIITEM<glNumeric>`. Exceeding these maxima results in low-level errors.
|
:ref:`mjMAXUISECT<glNumericUI>` and :ref:`mjMAXUIITEM<glNumericUI>`. Exceeding these maxima results in low-level errors.
|
||||||
|
|
||||||
.. _mjui_update:
|
.. _mjui_update:
|
||||||
|
|
||||||
|
|||||||
@@ -1249,7 +1249,7 @@ The full list of processing steps applied by the compiler to each mesh is as fol
|
|||||||
transformations in ``mjModel.mesh_{pos, quat, scale}``.
|
transformations in ``mjModel.mesh_{pos, quat, scale}``.
|
||||||
#. Construct the convex hull if specified;
|
#. Construct the convex hull if specified;
|
||||||
#. Find the centroid of all triangle faces, and construct the union-of-pyramids representation. Triangles whose area is
|
#. Find the centroid of all triangle faces, and construct the union-of-pyramids representation. Triangles whose area is
|
||||||
too small (below the :ref:`mjMINVAL <glNumeric>` value of 1E-14) result in compile error;
|
too small (below the :ref:`mjMINVAL <glNumericEngine>` value of 1E-14) result in compile error;
|
||||||
#. Compute the center of mass and inertia matrix of the union-of-pyramids. Use eigenvalue decomposition to find the
|
#. Compute the center of mass and inertia matrix of the union-of-pyramids. Use eigenvalue decomposition to find the
|
||||||
principal axes of inertia. Center and align the mesh, saving the translational and rotational offsets for subsequent
|
principal axes of inertia. Center and align the mesh, saving the translational and rotational offsets for subsequent
|
||||||
geom-related computations.
|
geom-related computations.
|
||||||
@@ -1518,7 +1518,7 @@ also known as terrain map, is a 2D matrix of elevation data. The data can be spe
|
|||||||
and other geoms (except for planes and other height fields which are not supported) are computed by first selecting
|
and other geoms (except for planes and other height fields which are not supported) are computed by first selecting
|
||||||
the sub-grid of prisms that could collide with the geom based on its bounding box, and then using the general convex
|
the sub-grid of prisms that could collide with the geom based on its bounding box, and then using the general convex
|
||||||
collider. The number of possible contacts between a height field and a geom is limited to 50
|
collider. The number of possible contacts between a height field and a geom is limited to 50
|
||||||
(:ref:`mjMAXCONPAIR <glNumeric>`); any contacts beyond that are discarded. To avoid penetration due to discarded
|
(:ref:`mjMAXCONPAIR <glNumericEngine>`); any contacts beyond that are discarded. To avoid penetration due to discarded
|
||||||
contacts, the spatial features of the height field should be large compared to the geoms it collides with.
|
contacts, the spatial features of the height field should be large compared to the geoms it collides with.
|
||||||
|
|
||||||
.. _asset-hfield-name:
|
.. _asset-hfield-name:
|
||||||
|
|||||||
+2
-2
@@ -1463,8 +1463,8 @@ General
|
|||||||
Each row of length ``mjNSOLVER`` contains separate solver statistics for each constraint island.
|
Each row of length ``mjNSOLVER`` contains separate solver statistics for each constraint island.
|
||||||
If the solver does not use islands, only row 0 is filled.
|
If the solver does not use islands, only row 0 is filled.
|
||||||
|
|
||||||
- The new constant :ref:`mjNISLAND<glNumeric>` was set to 20.
|
- The new constant :ref:`mjNISLAND<glNumericSizes>` was set to 20.
|
||||||
- :ref:`mjNSOLVER<glNumeric>` was reduced from 1000 to 200.
|
- :ref:`mjNSOLVER<glNumericSizes>` was reduced from 1000 to 200.
|
||||||
- Added :ref:`mjData.solver_nisland<mjData>`: the number of islands for which the solver ran.
|
- Added :ref:`mjData.solver_nisland<mjData>`: the number of islands for which the solver ran.
|
||||||
- Renamed ``mjData.solver_iter`` to ``solver_niter``. Both this member and ``mjData.solver_nnz`` are now integer
|
- Renamed ``mjData.solver_iter`` to ``solver_niter``. Both this member and ``mjData.solver_nnz`` are now integer
|
||||||
vectors of length ``mjNISLAND``.
|
vectors of length ``mjNISLAND``.
|
||||||
|
|||||||
@@ -1621,17 +1621,17 @@ will generate up to 1 contact or with ``multiccd`` up to 4 contacts.
|
|||||||
| **1**
|
| **1**
|
||||||
* - HField
|
* - HField
|
||||||
- | HFieldCCD
|
- | HFieldCCD
|
||||||
| :ref:`mjMAXCONPAIR <glNumeric>`
|
| :ref:`mjMAXCONPAIR <glNumericEngine>`
|
||||||
- | HFieldCCD
|
- | HFieldCCD
|
||||||
| :ref:`mjMAXCONPAIR <glNumeric>`
|
| :ref:`mjMAXCONPAIR <glNumericEngine>`
|
||||||
- | HFieldCCD
|
- | HFieldCCD
|
||||||
| :ref:`mjMAXCONPAIR <glNumeric>`
|
| :ref:`mjMAXCONPAIR <glNumericEngine>`
|
||||||
- | HFieldCCD
|
- | HFieldCCD
|
||||||
| :ref:`mjMAXCONPAIR <glNumeric>`
|
| :ref:`mjMAXCONPAIR <glNumericEngine>`
|
||||||
- | HFieldCCD
|
- | HFieldCCD
|
||||||
| :ref:`mjMAXCONPAIR <glNumeric>`
|
| :ref:`mjMAXCONPAIR <glNumericEngine>`
|
||||||
- | HFieldCCD
|
- | HFieldCCD
|
||||||
| :ref:`mjMAXCONPAIR <glNumeric>`
|
| :ref:`mjMAXCONPAIR <glNumericEngine>`
|
||||||
- | HFieldSDF
|
- | HFieldSDF
|
||||||
| :ref:`sdf_initpoints <option-sdf_initpoints>`
|
| :ref:`sdf_initpoints <option-sdf_initpoints>`
|
||||||
* - Sphere
|
* - Sphere
|
||||||
@@ -1762,7 +1762,7 @@ sleeping mechanism is provided in the :ref:`Simulation chapter<siSleep>` but her
|
|||||||
Sleeping can occur in one of two ways:
|
Sleeping can occur in one of two ways:
|
||||||
|
|
||||||
- **Automatic:** A tree whose maximum velocity in absolute value is less than the
|
- **Automatic:** A tree whose maximum velocity in absolute value is less than the
|
||||||
:ref:`tolerance <option-sleep_tolerance>` for :ref:`mjMINAWAKE <glNumeric>` time steps is marked as "ready to sleep".
|
:ref:`tolerance <option-sleep_tolerance>` for :ref:`mjMINAWAKE <glNumericEngine>` time steps is marked as "ready to sleep".
|
||||||
If all trees in an island are ready to sleep, they are put to sleep during state advancement.
|
If all trees in an island are ready to sleep, they are put to sleep during state advancement.
|
||||||
- **Initialized asleep:** By setting the :ref:`body/sleep<body-sleep>` attribute of a tree root to "init", it is
|
- **Initialized asleep:** By setting the :ref:`body/sleep<body-sleep>` attribute of a tree root to "init", it is
|
||||||
marked as "initialized-asleep" and put to sleep during :ref:`mjData` initialization.
|
marked as "initialized-asleep" and put to sleep during :ref:`mjData` initialization.
|
||||||
|
|||||||
@@ -724,7 +724,7 @@ Warnings are provided when memory requirements exceed existing allocations durin
|
|||||||
setting `m.opt.contact_sensor_maxmatch`. Alternatively, refactor the contact sensor matching criteria, for example if
|
setting `m.opt.contact_sensor_maxmatch`. Alternatively, refactor the contact sensor matching criteria, for example if
|
||||||
the 2 geoms of interest are known, specify ``geom1`` and ``geom2``.
|
the 2 geoms of interest are known, specify ``geom1`` and ``geom2``.
|
||||||
- ``height field collision overflow``: The number of potential contacts generated by a height field exceeds
|
- ``height field collision overflow``: The number of potential contacts generated by a height field exceeds
|
||||||
:ref:`mjMAXCONPAIR <glNumeric>` and some contacts are ignored. To resolve this warning, reduce the height field
|
:ref:`mjMAXCONPAIR <glNumericEngine>` and some contacts are ignored. To resolve this warning, reduce the height field
|
||||||
resolution or reduce the size of the geom interacting with the height field.
|
resolution or reduce the size of the geom interacting with the height field.
|
||||||
|
|
||||||
Compilation
|
Compilation
|
||||||
|
|||||||
+1
-1
@@ -301,7 +301,7 @@ We begin by explaining the constraint impedance :math:`d`.
|
|||||||
at rest. Impedance is set using the :at:`solimp` attribute.
|
at rest. Impedance is set using the :at:`solimp` attribute.
|
||||||
|
|
||||||
Recall that :math:`d` must lie between 0 and 1; internally MuJoCo clamps it to the range [:ref:`mjMINIMP mjMAXIMP
|
Recall that :math:`d` must lie between 0 and 1; internally MuJoCo clamps it to the range [:ref:`mjMINIMP mjMAXIMP
|
||||||
<glNumeric>`] which is currently set to [0.0001 0.9999]. It causes the solver to interpolate between the unforced
|
<glNumericEngine>`] which is currently set to [0.0001 0.9999]. It causes the solver to interpolate between the unforced
|
||||||
acceleration :math:`\au` and reference acceleration :math:`\ar`. The user can set :math:`d` to a constant, or
|
acceleration :math:`\au` and reference acceleration :math:`\ar`. The user can set :math:`d` to a constant, or
|
||||||
take advantage of its interpolating property and make it position-dependent, i.e., a function of the constraint
|
take advantage of its interpolating property and make it position-dependent, i.e., a function of the constraint
|
||||||
violation :math:`r`. Position-dependent impedance can be used to model soft contact layers around objects, or define
|
violation :math:`r`. Position-dependent impedance can be used to model soft contact layers around objects, or define
|
||||||
|
|||||||
@@ -200,7 +200,7 @@ The situation is more subtle if existing code was developed with a certain versi
|
|||||||
compiled and linked with a different version. If the definitions of the API functions used in that code have changed,
|
compiled and linked with a different version. If the definitions of the API functions used in that code have changed,
|
||||||
either the compiler or the linker will generate errors. But even if the function definitions have not changed, it may
|
either the compiler or the linker will generate errors. But even if the function definitions have not changed, it may
|
||||||
still be a good idea to assert that the software version is the same. To this end, the main header (mujoco.h) defines
|
still be a good idea to assert that the software version is the same. To this end, the main header (mujoco.h) defines
|
||||||
the symbol :ref:`mjVERSION_HEADER <glNumeric>` and the library provides the function
|
the symbol :ref:`mjVERSION_HEADER <glNumericVersion>` and the library provides the function
|
||||||
:ref:`mj_version`. Thus the header and library versions can be compared with:
|
:ref:`mj_version`. Thus the header and library versions can be compared with:
|
||||||
|
|
||||||
.. code-block:: C
|
.. code-block:: C
|
||||||
|
|||||||
@@ -1098,7 +1098,7 @@ implementation details.
|
|||||||
|
|
||||||
The high level sleep state of :ref:`trees<ElemTree>` is described by ``mjData.tree_asleep`` (though see caveat below). A
|
The high level sleep state of :ref:`trees<ElemTree>` is described by ``mjData.tree_asleep`` (though see caveat below). A
|
||||||
negative value means a tree is awake, non-negative means asleep. Maximally awake trees are given the value - |-| (1 |-|
|
negative value means a tree is awake, non-negative means asleep. Maximally awake trees are given the value - |-| (1 |-|
|
||||||
+ |-| :ref:`mjMINAWAKE<glNumeric>`), and for every timestep where their velocity falls below the sleep :ref:`tolerance
|
+ |-| :ref:`mjMINAWAKE<glNumericEngine>`), and for every timestep where their velocity falls below the sleep :ref:`tolerance
|
||||||
<option-sleep_tolerance>`, this integer is incremented, up to -1, which means "ready to sleep". If all trees in an
|
<option-sleep_tolerance>`, this integer is incremented, up to -1, which means "ready to sleep". If all trees in an
|
||||||
island are ready to sleep, they are put to sleep during state advancement and their associated values in ``tree_asleep``
|
island are ready to sleep, they are put to sleep during state advancement and their associated values in ``tree_asleep``
|
||||||
are set to a (non-negative) index cycle: the "sleeping island". If any tree in the island is woken, all are woken.
|
are set to a (non-negative) index cycle: the "sleeping island". If any tree in the island is woken, all are woken.
|
||||||
@@ -1213,7 +1213,7 @@ Notes
|
|||||||
**Provisional choices**
|
**Provisional choices**
|
||||||
Some implementation choices are provisional and subject to change.
|
Some implementation choices are provisional and subject to change.
|
||||||
|
|
||||||
A concrete example is the decision to hard-code the value of :ref:`mjMINAWAKE<glNumeric>` instead of exposing it to
|
A concrete example is the decision to hard-code the value of :ref:`mjMINAWAKE<glNumericEngine>` instead of exposing it to
|
||||||
the user as a runtime option. This was done for two reasons. First, in our experiments, we've found that changing this
|
the user as a runtime option. This was done for two reasons. First, in our experiments, we've found that changing this
|
||||||
value is equivalent to changing the :ref:`sleep_tolerance<option-sleep_tolerance>`, which is the more useful knob.
|
value is equivalent to changing the :ref:`sleep_tolerance<option-sleep_tolerance>`, which is the more useful knob.
|
||||||
Second, one could argue for a time-to-sleep semantic that is in units of time rather than an integer number of
|
Second, one could argue for a time-to-sleep semantic that is in units of time rather than an integer number of
|
||||||
|
|||||||
Reference in New Issue
Block a user