From 3868ed0382fea1bd58ce175efb1e73c6f44038be Mon Sep 17 00:00:00 2001 From: Yuval Tassa Date: Tue, 6 Jan 2026 09:50:45 -0800 Subject: [PATCH] Improve XML schema usability PiperOrigin-RevId: 852820889 Change-Id: I04eea45161f9e71f9ccf49afad57ff28fd099b35 --- doc/APIreference/APIfunctions.rst | 3 + doc/APIreference/functions.rst | 2 +- doc/APIreference/functions_override.rst | 2 +- doc/XMLreference.rst | 363 +- doc/XMLschema.rst | 4643 ++++++++++++++--------- doc/conf.py | 1 + doc/css/theme_overrides.css | 47 + doc/includes/macros.rst | 21 + doc/programming/index.rst | 2 +- doc/requirements.txt | 1 + 10 files changed, 3197 insertions(+), 1888 deletions(-) mode change 100644 => 100755 doc/XMLschema.rst diff --git a/doc/APIreference/APIfunctions.rst b/doc/APIreference/APIfunctions.rst index e64a33ca..e8701868 100644 --- a/doc/APIreference/APIfunctions.rst +++ b/doc/APIreference/APIfunctions.rst @@ -9,6 +9,9 @@ Functions ========= +.. tip:: + Clicking on a function name below will take you to the source implementation in the GitHub repository. + The main header `mujoco.h `_ exposes a large number of functions. However the functions that most users are likely to need are a small fraction. diff --git a/doc/APIreference/functions.rst b/doc/APIreference/functions.rst index b9820381..d070db48 100644 --- a/doc/APIreference/functions.rst +++ b/doc/APIreference/functions.rst @@ -1076,7 +1076,7 @@ This function is triggered automatically if the following sensors are present in It is also triggered for :ref:`user sensors` of :ref:`stage` "acc". The computed force arrays ``cfrc_int`` and ``cfrc_ext`` currently suffer from a know bug, they do not take into account -the effect of spatial tendons, see :github:issue:`832`. +the effect of spatial tendons, see :issue:`832`. .. _mj_collision: diff --git a/doc/APIreference/functions_override.rst b/doc/APIreference/functions_override.rst index 1ca53297..a8d7e181 100644 --- a/doc/APIreference/functions_override.rst +++ b/doc/APIreference/functions_override.rst @@ -170,7 +170,7 @@ This function is triggered automatically if the following sensors are present in It is also triggered for :ref:`user sensors` of :ref:`stage` "acc". The computed force arrays ``cfrc_int`` and ``cfrc_ext`` currently suffer from a know bug, they do not take into account -the effect of spatial tendons, see :github:issue:`832`. +the effect of spatial tendons, see :issue:`832`. .. _mj_constraintUpdate: diff --git a/doc/XMLreference.rst b/doc/XMLreference.rst index fb4391fa..f5d16c2e 100644 --- a/doc/XMLreference.rst +++ b/doc/XMLreference.rst @@ -13,25 +13,28 @@ This chapter is the reference manual for the MJCF modeling language used in MuJo XML schema ~~~~~~~~~~ -The table below summarizes the XML elements and their attributes in MJCF. Note that all information in MJCF is entered -through elements and attributes. Text content in elements is not used; if present, the parser ignores it. - +The dropdown below summarizes the XML elements and their attributes in MJCF. Note that all information in MJCF is +entered through elements and attributes. Text content in elements is not used; if present, the parser ignores it. .. only:: html - .. collapse:: Collapse schema table - :open: + The icons to the left of each element have the following meaning: - The symbols in the second column of the table have the following meaning: + .. list-table:: + :widths: 6 94 - ====== =================================================== - **!** required element, can appear only once - **?** optional element, can appear only once - **\*** optional element, can appear many times - **R** optional element, can appear many times recursively - ====== =================================================== + * - |!| + - required element, can appear only once + * - |R| + - optional element, can appear multiple times recursively + * - |?| + - optional element, can appear only once + * - |m| + - optional element, can appear multiple times (default case, no icon) - .. cssclass:: schema-small + |br| + + .. container:: schema-small .. include:: XMLschema.rst @@ -126,7 +129,7 @@ saving the XML. There are currently six meta-elements in MJCF: .. _frame: -**frame** (R) +|R| **frame** ^^^^^^^^^^^^^ The frame meta-element is a pure coordinate transformation that can wrap any group of elements in the kinematic tree @@ -173,7 +176,7 @@ in their direct children. The attributes of the frame meta-element are documente .. _replicate: -**replicate** (R) +|R| **replicate** ^^^^^^^^^^^^^^^^^ The replicate element duplicates the enclosed kinematic tree elements with incremental translational and rotational @@ -256,7 +259,7 @@ namespaced once by the innermost call of :ref:`mjs_attach`. See the limitations .. _include: -**include** (*) +|m| **include** ^^^^^^^^^^^^^^^ This element does not strictly belong to MJCF. Instead it is a meta-element, used to assemble multiple XML @@ -281,7 +284,7 @@ how to use includes and how to modularize large files if desired. .. _mujoco: -**mujoco** (!) +|!| **mujoco** ~~~~~~~~~~~~~~ The unique top-level element, identifying the XML file as an MJCF model file. @@ -295,7 +298,7 @@ The unique top-level element, identifying the XML file as an MJCF model file. .. _option: -**option** (*) +|m| **option** ~~~~~~~~~~~~~~ This element is in one-to-one correspondence with the low level structure mjOption contained in the field mjModel.opt of @@ -492,7 +495,7 @@ adjust it properly through the XML. .. _option-flag: -:el-prefix:`option/` |-| **flag** (?) +|?| :el-prefix:`option/` |-| **flag** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element sets the flags that enable and disable different parts of the simulation pipeline. The actual flags used at @@ -688,7 +691,7 @@ from its default. .. _compiler: -**compiler** (*) +|m| **compiler** ~~~~~~~~~~~~~~~~ This element is used to set options for the built-in parser and compiler. After parsing and compilation it no longer @@ -879,7 +882,7 @@ has any effect. The settings here are global and apply to the entire model. .. _compiler-lengthrange: -:el-prefix:`compiler/` |-| **lengthrange** (?) +|?| :el-prefix:`compiler/` |-| **lengthrange** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element controls the computation of actuator length ranges. For an overview of this functionality see :ref:`Length @@ -973,7 +976,7 @@ disable length range computations altogether, include this element and set mode= .. _size: -**size** (*) +|m| **size** ~~~~~~~~~~~~ This element specifies size parameters that cannot be inferred from the number of elements in the model. Unlike the @@ -1070,7 +1073,7 @@ compilation. .. _statistic: -**statistic** (*) +|m| **statistic** ~~~~~~~~~~~~~~~~~ This element is used to override model statistics computed by the compiler. These statistics are not only informational @@ -1123,7 +1126,7 @@ parameters. .. _asset: -**asset** (*) +|m| **asset** ~~~~~~~~~~~~~ This is a grouping element for defining assets. It does not have attributes. Assets are created in the model so that @@ -1136,7 +1139,7 @@ file. .. _asset-mesh: -:el-prefix:`asset/` |-| **mesh** (*) +|m| :el-prefix:`asset/` |-| **mesh** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a mesh asset, which can then be referenced from geoms. If the referencing geom type is @@ -1460,7 +1463,7 @@ The full list of processing steps applied by the compiler to each mesh is as fol .. _mesh-plugin: -:el-prefix:`mesh/` |-| **plugin** (?) +|?| :el-prefix:`mesh/` |-| **plugin** ''''''''''''''''''''''''''''''''''''' Associate this mesh with an :ref:`engine plugin`. Either :at:`plugin` or :at:`instance` are required. @@ -1479,7 +1482,7 @@ Associate this mesh with an :ref:`engine plugin`. Either :at:`plugin` .. _asset-hfield: -:el-prefix:`asset/` |-| **hfield** (*) +|m| :el-prefix:`asset/` |-| **hfield** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a height field asset, which can then be referenced from geoms with type "hfield". A height field, @@ -1586,7 +1589,7 @@ also known as terrain map, is a 2D matrix of elevation data. The data can be spe .. _asset-skin: -:el-prefix:`asset/` |-| **skin** (*) +|m| :el-prefix:`asset/` |-| **skin** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. _asset-skin-name: @@ -1606,7 +1609,7 @@ still be specified here but this functionality is now deprecated and will be rem .. _asset-texture: -:el-prefix:`asset/` |-| **texture** (*) +|m| :el-prefix:`asset/` |-| **texture** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a texture asset, which is then referenced from a :ref:`material ` asset, which is finally referenced from a model element that needs to be textured. @@ -1836,7 +1839,7 @@ The custom MuJoCo format is assumed to be a binary file containing the following .. _asset-material: -:el-prefix:`asset/` |-| **material** (*) +|m| :el-prefix:`asset/` |-| **material** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a material asset. It can be referenced from :ref:`skins `, :ref:`geoms `, @@ -1945,7 +1948,7 @@ properties are grouped together. .. _material-layer: -:el-prefix:`material/` |-| **layer** (?) +|m| :el-prefix:`material/` |-| **layer** '''''''''''''''''''''''''''''''''''''''' If multiple textures are needed to specify the appearance of a material, the :ref:`texture ` @@ -1999,7 +2002,7 @@ attribute and :el:`layer` child elements is an error. .. _asset-model: -:el-prefix:`asset/` |-| **model** (*) +|m| :el-prefix:`asset/` |-| **model** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element specifies other MJCF models which may be used for :ref:`attachment` in the current model. @@ -2022,7 +2025,7 @@ This element specifies other MJCF models which may be used for :ref:`attachment< .. _body: -**(world)body** (R) +|R| **(world)body** ~~~~~~~~~~~~~~~~~~~ This element is used to construct the :ref:`kinematic tree ` via nesting. The element :el:`worldbody` is used for @@ -2117,7 +2120,7 @@ defined. Its body name is automatically defined as "world". .. _body-inertial: -:el-prefix:`body/` |-| **inertial** (?) +|?| :el-prefix:`body/` |-| **inertial** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element specifies the mass and inertial properties of the body. If this element is not included in a given body, @@ -2172,7 +2175,7 @@ axes of inertia of the body. Thus the inertia matrix is diagonal in this frame. .. _body-joint: -:el-prefix:`body/` |-| **joint** (*) +|m| :el-prefix:`body/` |-| **joint** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a joint. As explained in :ref:`Kinematic tree `, a joint creates motion degrees of freedom @@ -2390,7 +2393,7 @@ rotations as unit quaternions. .. _body-freejoint: -:el-prefix:`body/` |-| **freejoint** (*) +|m| :el-prefix:`body/` |-| **freejoint** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a free joint whose only attributes are :at:`name` and :at:`group`. The :el:`freejoint` element is @@ -2434,7 +2437,7 @@ inherited*. If the XML model is saved, it will appear as a regular joint of type .. _body-geom: -:el-prefix:`body/` |-| **geom** (*) +|m| :el-prefix:`body/` |-| **geom** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a geom, and attaches it rigidly to the body within which the geom is defined. Multiple geoms can @@ -2809,7 +2812,7 @@ helps clarify the role of bodies and geoms in MuJoCo. .. _geom-plugin: -:el-prefix:`geom/` |-| **plugin** (?) +|?| :el-prefix:`geom/` |-| **plugin** ''''''''''''''''''''''''''''''''''''' Associate this geom with an :ref:`engine plugin`. Either :at:`plugin` or :at:`instance` are required. @@ -2827,7 +2830,7 @@ Associate this geom with an :ref:`engine plugin`. Either :at:`plugin` .. _body-site: -:el-prefix:`body/` |-| **site** (*) +|m| :el-prefix:`body/` |-| **site** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a site, which is a simplified and restricted kind of geom. A small subset of the geom attributes @@ -2913,7 +2916,7 @@ tendons, constructing slider-crank transmissions for actuators. .. _body-camera: -:el-prefix:`body/` |-| **camera** (*) +|m| :el-prefix:`body/` |-| **camera** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a camera, which moves with the body where it is defined. To create a fixed camera, define it in the @@ -3040,7 +3043,7 @@ and the +Y axis points up. Thus the frame position and orientation are the key a .. _body-light: -:el-prefix:`body/` |-| **light** (*) +|m| :el-prefix:`body/` |-| **light** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a light, which moves with the body where it is defined. To create a fixed light, define it in the @@ -3181,7 +3184,7 @@ Attributes may be applied or ignored depending on the lighting model being used. .. _body-composite: -:el-prefix:`body/` |-| **composite** (*) +|m| :el-prefix:`body/` |-| **composite** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This is not a model element, but rather a macro which expands into multiple model elements representing a composite @@ -3259,7 +3262,7 @@ cable, which produces an inextensible chain of bodies connected with ball joints .. _composite-joint: -:el-prefix:`composite/` |-| **joint** (*) +|m| :el-prefix:`composite/` |-| **joint** ''''''''''''''''''''''''''''''''''''''''' Depending on the composite type, some joints are created automatically (e.g. the universal joints in rope) while other @@ -3327,7 +3330,7 @@ joints should be created, as well as to adjust the attributes of both automatic .. _composite-geom: -:el-prefix:`composite/` |-| **geom** (?) +|?| :el-prefix:`composite/` |-| **geom** '''''''''''''''''''''''''''''''''''''''' This sub-element adjusts the attributes of the geoms in the composite object. The default attributes are the same as in @@ -3380,7 +3383,7 @@ joints and tendons have different sets of attributes, while all geoms in the com .. _composite-site: -:el-prefix:`composite/` |-| **site** (?) +|?| :el-prefix:`composite/` |-| **site** '''''''''''''''''''''''''''''''''''''''' This sub-element adjusts the attributes of the sites in the composite object. Otherwise it is the same as geom above. @@ -3399,7 +3402,7 @@ This sub-element adjusts the attributes of the sites in the composite object. Ot .. _composite-skin: -:el-prefix:`composite/` |-| **skin** (?) +|?| :el-prefix:`composite/` |-| **skin** '''''''''''''''''''''''''''''''''''''''' If this element is included, the model compiler will generate a skinned mesh asset and attach it to the element bodies @@ -3449,7 +3452,7 @@ automatically-generated skin. .. _composite-plugin: -:el-prefix:`composite/` |-| **plugin** (?) +|?| :el-prefix:`composite/` |-| **plugin** '''''''''''''''''''''''''''''''''''''''''' Associate this composite with an :ref:`engine plugin`. Either :at:`plugin` or :at:`instance` are required. @@ -3468,7 +3471,7 @@ Associate this composite with an :ref:`engine plugin`. Either :at:`plu .. _body-flexcomp: -:el-prefix:`body/` |-| **flexcomp** (*) +|m| :el-prefix:`body/` |-| **flexcomp** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Similar to :el:`composite`, this element (new in MuJoCo 3.0) is not a model element, but rather a macro which expands @@ -3765,7 +3768,7 @@ saving the XML: .. _flexcomp-contact: -:el-prefix:`flexcomp/` |-| **contact** (*) +|m| :el-prefix:`flexcomp/` |-| **contact** '''''''''''''''''''''''''''''''''''''''''' .. _flexcomp-contact-internal: @@ -3793,7 +3796,7 @@ saving the XML: .. _flexcomp-edge: -:el-prefix:`flexcomp/` |-| **edge** (*) +|m| :el-prefix:`flexcomp/` |-| **edge** ''''''''''''''''''''''''''''''''''''''' Each flex element has one edge in 1D (coinciding with the capsule element), three edges in 2D, and six edges in 3D. The @@ -3821,7 +3824,7 @@ element is used to adjust the properties of all edges in the flex. .. _flexcomp-elasticity: -:el-prefix:`flexcomp/` |-| **elasticity** (*) +|m| :el-prefix:`flexcomp/` |-| **elasticity** ''''''''''''''''''''''''''''''''''''''''''''' .. _flexcomp-elasticity-young: @@ -3839,7 +3842,7 @@ element is used to adjust the properties of all edges in the flex. .. _flexcomp-pin: -:el-prefix:`flexcomp/` |-| **pin** (*) +|m| :el-prefix:`flexcomp/` |-| **pin** '''''''''''''''''''''''''''''''''''''' Each point is either pinned or not pinned. The effect of pinning was explained earlier. This element is used to specify @@ -3872,7 +3875,7 @@ multiple times is allowed. .. _flexcomp-plugin: -:el-prefix:`flexcomp/` |-| **plugin** (?) +|?| :el-prefix:`flexcomp/` |-| **plugin** ''''''''''''''''''''''''''''''''''''''''' Associate this flexcomp with an :ref:`engine plugin`. Either :at:`plugin` or :at:`instance` are required. @@ -3890,7 +3893,7 @@ Associate this flexcomp with an :ref:`engine plugin`. Either :at:`plug .. _body-plugin: -:el-prefix:`body/` |-| **plugin** (?) +|?| :el-prefix:`body/` |-| **plugin** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Associate this body with an :ref:`engine plugin`. Either :at:`plugin` or :at:`instance` are required. @@ -3908,7 +3911,7 @@ Associate this body with an :ref:`engine plugin`. Either :at:`plugin` .. _body-attach: -:el-prefix:`body/` |-| **attach** (*) +|m| :el-prefix:`body/` |-| **attach** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The :el:`attach` element is used to insert a sub-tree of bodies from another model into this model's kinematic tree. @@ -3943,7 +3946,7 @@ referenced or not). .. _body-frame: -:el-prefix:`body/` |-| **frame** (*) +|m| :el-prefix:`body/` |-| **frame** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Frames specify a coordinate transformation which is applied to all child elements. They disappear during compilation @@ -3983,7 +3986,7 @@ and the transformation they encode is accumulated in their direct children. See .. _contact: -**contact** (*) +|m| **contact** ~~~~~~~~~~~~~~~ This is a grouping element and does not have any attributes. It groups elements that are used to adjust the generation @@ -3993,7 +3996,7 @@ thus the description here is brief. .. _contact-pair: -:el-prefix:`contact/` |-| **pair** (*) +|m| :el-prefix:`contact/` |-| **pair** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a predefined geom pair which will be checked for collision. Unlike dynamically generated pairs @@ -4073,7 +4076,7 @@ friction can only be created with this element. .. _contact-exclude: -:el-prefix:`contact/` |-| **exclude** (*) +|m| :el-prefix:`contact/` |-| **exclude** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element is used to exclude a pair of bodies from collision checking. Unlike all other contact-related elements @@ -4098,7 +4101,7 @@ bodies. Collisions between any geom defined in the first body and any geom defin .. _deformable: -**deformable** (*) +|m| **deformable** ~~~~~~~~~~~~~~~~~~ This is a grouping element and does not have any attributes. It groups elements that specify deformable objects, namely flexes and skins. @@ -4106,7 +4109,7 @@ This is a grouping element and does not have any attributes. It groups elements .. _deformable-flex: -:el-prefix:`deformable/` |-| **flex** (*) +|m| :el-prefix:`deformable/` |-| **flex** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Flexible objects (or flexes) were added in MuJoCo 3.0. These are collections of massless stretchable geometric elements @@ -4205,7 +4208,7 @@ cases, the user will specify a :el:`flexcomp` which will then automatically cons .. _flex-edge: -:el-prefix:`flex/` |-| **edge** (?) +|?| :el-prefix:`flex/` |-| **edge** ''''''''''''''''''''''''''''''''''' This element adjusts the passive or constraint properties of all edges of the flex. A flex edge can have a damping @@ -4228,7 +4231,7 @@ these mechanisms to be combined as desired. .. _flex-elasticity: -:el-prefix:`flex/` |-| **elasticity** (?) +|?| :el-prefix:`flex/` |-| **elasticity** ''''''''''''''''''''''''''''''''''''''''' The elasticity model is a `Saint Venant-Kirchhoff @@ -4271,7 +4274,7 @@ stress-strain relationship.. See also :ref:`deformable ` objects. .. _flex-contact: -:el-prefix:`flex/` |-| **contact** (?) +|?| :el-prefix:`flex/` |-| **contact** '''''''''''''''''''''''''''''''''''''' This element adjusts the contact properties of the flex. It is mostly identical to geom contact properties, with some @@ -4347,7 +4350,7 @@ extensions specific to flexes. .. _deformable-skin: -:el-prefix:`deformable/` |-| **skin** (*) +|m| :el-prefix:`deformable/` |-| **skin** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ These are deformable meshes whose vertex positions and normals are computed each time the model is rendered. MuJoCo @@ -4465,7 +4468,7 @@ be clear from the above specification. .. _skin-bone: -:el-prefix:`skin/` |-| **bone** (*) +|m| :el-prefix:`skin/` |-| **bone** ''''''''''''''''''''''''''''''''''' This element defines a bone of the skin. The bone is a regular MuJoCo body which is referenced by name here. @@ -4505,7 +4508,7 @@ This element defines a bone of the skin. The bone is a regular MuJoCo body which .. _equality: -**equality** (*) +|m| **equality** ~~~~~~~~~~~~~~~~ This is a grouping element for equality constraints. It does not have attributes. See the :ref:`Equality ` @@ -4515,7 +4518,7 @@ all equality constraint types, thus we document them only once, under the :ref:` .. _equality-connect: -:el-prefix:`equality/` |-| **connect** (*) +|m| :el-prefix:`equality/` |-| **connect** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates an equality constraint that connects two bodies at a point. The constraint effectively defines a @@ -4590,7 +4593,7 @@ ball joint outside the kinematic tree. Connect constraints can be specified in o .. _equality-weld: -:el-prefix:`equality/` |-| **weld** (*) +|m| :el-prefix:`equality/` |-| **weld** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a weld equality constraint. It attaches two bodies to each other, removing all relative degrees of @@ -4677,7 +4680,7 @@ of the other body, without any joint elements in the child body. Weld constraint .. _equality-joint: -:el-prefix:`equality/` |-| **joint** (*) +|m| :el-prefix:`equality/` |-| **joint** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element constrains the position or angle of one joint to be a quartic polynomial of another joint. Only scalar @@ -4722,7 +4725,7 @@ joint types (slide and hinge) can be used. .. _equality-tendon: -:el-prefix:`equality/` |-| **tendon** (*) +|m| :el-prefix:`equality/` |-| **tendon** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element constrains the length of one tendon to be a quartic polynomial of another tendon. @@ -4760,7 +4763,7 @@ This element constrains the length of one tendon to be a quartic polynomial of a .. _equality-flex: -:el-prefix:`equality/` |-| **flex** (*) +|m| :el-prefix:`equality/` |-| **flex** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element constrains the lengths of all edges of a specified flex to their respective lengths in the initial model @@ -4785,7 +4788,7 @@ as there are edges in the specified flex. .. _equality-distance: -:el-prefix:`equality/` |-| **distance** (*) +|m| :el-prefix:`equality/` |-| **distance** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Distance equality constraints were removed in MuJoCo version 2.2.2. If you are using an earlier version, please switch @@ -4794,7 +4797,7 @@ to the corresponding version of the documentation. .. _tendon: -**tendon** (*) +|m| **tendon** ~~~~~~~~~~~~~~ Grouping element for tendon definitions. The attributes of fixed tendons are a subset of the attributes of spatial @@ -4805,7 +4808,7 @@ can also represent different forms of mechanical coupling. .. _tendon-spatial: -:el-prefix:`tendon/` |-| **spatial** (*) +|m| :el-prefix:`tendon/` |-| **spatial** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. figure:: images/XMLreference/tendon.png @@ -4986,7 +4989,7 @@ length X, as in the clip on the right of `this example model .. _spatial-site: -:el-prefix:`spatial/` |-| **site** (*) +|m| :el-prefix:`spatial/` |-| **site** '''''''''''''''''''''''''''''''''''''' This attribute specifies a site that the tendon path has to pass through. Recall that sites are rigidly attached to @@ -5000,7 +5003,7 @@ bodies. .. _spatial-geom: -:el-prefix:`spatial/` |-| **geom** (*) +|m| :el-prefix:`spatial/` |-| **geom** '''''''''''''''''''''''''''''''''''''' This element specifies a geom that acts as an obstacle for the tendon path. If the minimum-length path does not touch @@ -5026,7 +5029,7 @@ constrained to pass through the geom instead of passing around it. .. _spatial-pulley: -:el-prefix:`spatial/` |-| **pulley** (*) +|m| :el-prefix:`spatial/` |-| **pulley** '''''''''''''''''''''''''''''''''''''''' This element starts a new branch in the tendon path. The branches are not required to be connected spatially. Similar to @@ -5050,7 +5053,7 @@ illustrated the use of pulleys. .. _tendon-fixed: -:el-prefix:`tendon/` |-| **fixed** (*) +|m| :el-prefix:`tendon/` |-| **fixed** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates an abstract tendon whose length is defined as a linear combination of joint positions. Recall that @@ -5106,7 +5109,7 @@ as above. .. _fixed-joint: -:el-prefix:`fixed/` |-| **joint** (*) +|m| :el-prefix:`fixed/` |-| **joint** ''''''''''''''''''''''''''''''''''''' This element adds a joint to the computation of the fixed tendon length. The position or angle of each included joint is @@ -5125,7 +5128,7 @@ multiplied by the corresponding coef value, and added up to obtain the tendon le .. _actuator: -**actuator** (*) +|m| **actuator** ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This is a grouping element for actuator definitions. Recall the discussion of MuJoCo's :ref:`Actuation model @@ -5136,7 +5139,7 @@ under the :el:`general` actuator. .. _actuator-general: -:el-prefix:`actuator/` |-| **general** (*) +|m| :el-prefix:`actuator/` |-| **general** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a general actuator, providing full access to all actuator components and allowing the user to @@ -5399,7 +5402,7 @@ specify them independently. .. _actuator-motor: -:el-prefix:`actuator/` |-| **motor** (*) +|m| :el-prefix:`actuator/` |-| **motor** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This and the next three elements are the :ref:`Actuator shortcuts ` discussed earlier. When a @@ -5469,7 +5472,7 @@ This element does not have custom attributes. It only has common attributes, whi .. _actuator-position: -:el-prefix:`actuator/` |-| **position** (*) +|m| :el-prefix:`actuator/` |-| **position** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a position servo with an optional first-order filter. The underlying :el:`general` attributes are @@ -5580,7 +5583,7 @@ This element has one custom attribute in addition to the common attributes: .. _actuator-velocity: -:el-prefix:`actuator/` |-| **velocity** (*) +|m| :el-prefix:`actuator/` |-| **velocity** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a velocity servo. Note that in order create a PD controller, one has to define two actuators: a @@ -5651,7 +5654,7 @@ This element has one custom attribute in addition to the common attributes: .. _actuator-intvelocity: -:el-prefix:`actuator/` |-| **intvelocity** (*) +|m| :el-prefix:`actuator/` |-| **intvelocity** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates an integrated-velocity servo. For more information, see the @@ -5739,7 +5742,7 @@ This element has one custom attribute in addition to the common attributes: .. _actuator-damper: -:el-prefix:`actuator/` |-| **damper** (*) +|m| :el-prefix:`actuator/` |-| **damper** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element is an active damper which produces a force proportional to both velocity and control: ``F = - kv * velocity @@ -5810,7 +5813,7 @@ This element has one custom attribute in addition to the common attributes: .. _actuator-cylinder: -:el-prefix:`actuator/` |-| **cylinder** (*) +|m| :el-prefix:`actuator/` |-| **cylinder** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element is suitable for modeling pneumatic or hydraulic cylinders. The underlying :el:`general` attributes are @@ -5894,7 +5897,7 @@ This element has four custom attributes in addition to the common attributes: .. _actuator-muscle: -:el-prefix:`actuator/` |-| **muscle** (*) +|m| :el-prefix:`actuator/` |-| **muscle** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element is used to model a muscle actuator, as described in the :ref:`Muscles actuators ` @@ -6010,7 +6013,7 @@ This element has nine custom attributes in addition to the common attributes: .. _actuator-adhesion: -:el-prefix:`actuator/` |-| **adhesion** (*) +|m| :el-prefix:`actuator/` |-| **adhesion** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. youtube:: BcHZ5BFeTmU @@ -6076,7 +6079,7 @@ This element has a subset of the common attributes and two custom attributes. .. _actuator-plugin: -:el-prefix:`actuator/` |-| **plugin** (?) +|?| :el-prefix:`actuator/` |-| **plugin** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Associate this actuator with an :ref:`engine plugin`. Either :at:`plugin` or :at:`instance` are required. @@ -6159,7 +6162,7 @@ Associate this actuator with an :ref:`engine plugin`. Either :at:`plug .. _sensor: -**sensor** (*) +|m| **sensor** ~~~~~~~~~~~~~~ This is a grouping element for sensor definitions. It does not have attributes. The outputs of all sensors are @@ -6175,7 +6178,7 @@ themselves are "features" that could be of interest to the user. .. _sensor-touch: -:el-prefix:`sensor/` |-| **touch** (*) +|m| :el-prefix:`sensor/` |-| **touch** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a touch sensor. The active sensor zone is defined by a site. If a contact point falls within the @@ -6204,7 +6207,7 @@ scalar. It is computed by adding up the (scalar) normal forces from all included .. _sensor-accelerometer: -:el-prefix:`sensor/` |-| **accelerometer** (*) +|m| :el-prefix:`sensor/` |-| **accelerometer** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a 3-axis accelerometer. The sensor is mounted at a site, and has the same position and orientation @@ -6232,7 +6235,7 @@ The presence of this sensor in a model triggers a call to :ref:`mj_rnePostConstr .. _sensor-velocimeter: -:el-prefix:`sensor/` |-| **velocimeter** (*) +|m| :el-prefix:`sensor/` |-| **velocimeter** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a 3-axis velocimeter. The sensor is mounted at a site, and has the same position and orientation as @@ -6257,7 +6260,7 @@ the site frame. This sensor outputs three numbers, which are the linear velocity .. _sensor-gyro: -:el-prefix:`sensor/` |-| **gyro** (*) +|m| :el-prefix:`sensor/` |-| **gyro** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a 3-axis gyroscope. The sensor is mounted at a site, and has the same position and orientation as @@ -6284,7 +6287,7 @@ simulate an inertial measurement unit (IMU). .. _sensor-force: -:el-prefix:`sensor/` |-| **force** (*) +|m| :el-prefix:`sensor/` |-| **force** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a 3-axis force sensor. The sensor outputs three numbers, which are the interaction force between a @@ -6318,7 +6321,7 @@ The presence of this sensor in a model triggers a call to :ref:`mj_rnePostConstr .. _sensor-torque: -:el-prefix:`sensor/` |-| **torque** (*) +|m| :el-prefix:`sensor/` |-| **torque** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a 3-axis torque sensor. This is similar to the :ref:`force ` sensor above, but @@ -6346,7 +6349,7 @@ The presence of this sensor in a model triggers a call to :ref:`mj_rnePostConstr .. _sensor-magnetometer: -:el-prefix:`sensor/` |-| **magnetometer** (*) +|m| :el-prefix:`sensor/` |-| **magnetometer** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a magnetometer. It measures the magnetic flux at the sensor site position, expressed in the sensor @@ -6370,7 +6373,7 @@ site frame. The output is a 3D vector. .. _sensor-rangefinder: -:el-prefix:`sensor/` |-| **rangefinder** (*) +|m| :el-prefix:`sensor/` |-| **rangefinder** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a rangefinder. @@ -6445,7 +6448,7 @@ points (spheres) and the surface normals (arrows). .. _sensor-camprojection: -:el-prefix:`sensor/` |-| **camprojection** (*) +|m| :el-prefix:`sensor/` |-| **camprojection** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a camera projection sensor: the location of a target site, projected onto a camera image in pixel @@ -6478,7 +6481,7 @@ z-coordinate indicates a location in front of/behind the camera plane, respectiv .. _sensor-jointpos: -:el-prefix:`sensor/` |-| **jointpos** (*) +|m| :el-prefix:`sensor/` |-| **jointpos** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This and the remaining sensor elements do not involve sensor-specific computations. Instead they copy into the array @@ -6505,7 +6508,7 @@ attached to scalar joints (slide or hinge). Its output is scalar. .. _sensor-jointvel: -:el-prefix:`sensor/` |-| **jointvel** (*) +|m| :el-prefix:`sensor/` |-| **jointvel** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a joint velocity sensor. It can be attached to scalar joints (slide or hinge). Its output is @@ -6531,7 +6534,7 @@ scalar. .. _sensor-tendonpos: -:el-prefix:`sensor/` |-| **tendonpos** (*) +|m| :el-prefix:`sensor/` |-| **tendonpos** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a tendon length sensor. It can be attached to both spatial and fixed tendons. Its output is scalar. @@ -6555,7 +6558,7 @@ This element creates a tendon length sensor. It can be attached to both spatial .. _sensor-tendonvel: -:el-prefix:`sensor/` |-| **tendonvel** (*) +|m| :el-prefix:`sensor/` |-| **tendonvel** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a tendon velocity sensor. It can be attached to both spatial and fixed tendons. Its output is @@ -6580,7 +6583,7 @@ scalar. .. _sensor-actuatorpos: -:el-prefix:`sensor/` |-| **actuatorpos** (*) +|m| :el-prefix:`sensor/` |-| **actuatorpos** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates an actuator length sensor. Recall that each actuator has a transmission which has length. This @@ -6605,7 +6608,7 @@ sensor can be attached to any actuator. Its output is scalar. .. _sensor-actuatorvel: -:el-prefix:`sensor/` |-| **actuatorvel** (*) +|m| :el-prefix:`sensor/` |-| **actuatorvel** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates an actuator velocity sensor. This sensor can be attached to any actuator. Its output is scalar. @@ -6629,7 +6632,7 @@ This element creates an actuator velocity sensor. This sensor can be attached to .. _sensor-actuatorfrc: -:el-prefix:`sensor/` |-| **actuatorfrc** (*) +|m| :el-prefix:`sensor/` |-| **actuatorfrc** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates an actuator force sensor. The quantity being sensed is the scalar actuator force, not the @@ -6655,7 +6658,7 @@ arms determined by the transmission). This sensor can be attached to any actuato .. _sensor-jointactuatorfrc: -:el-prefix:`sensor/` |-| **jointactuatorfrc** (*) +|m| :el-prefix:`sensor/` |-| **jointactuatorfrc** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates an actuator force sensor, measured at a joint. The quantity being sensed is the generalized force @@ -6685,7 +6688,7 @@ joint or when a single actuator acts on multiple joints. See :ref:`CForceRange` .. _sensor-tendonactuatorfrc: -:el-prefix:`sensor/` |-| **tendonactuatorfrc** (*) +|m| :el-prefix:`sensor/` |-| **tendonactuatorfrc** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates an actuator force sensor, measured at a tendon. The quantity being sensed is the total force @@ -6712,7 +6715,7 @@ single tendon. See :ref:`CForceRange` for details. .. _sensor-ballquat: -:el-prefix:`sensor/` |-| **ballquat** (*) +|m| :el-prefix:`sensor/` |-| **ballquat** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a quaternion sensor for a ball joints. It outputs 4 numbers corresponding to a unit quaternion. @@ -6736,7 +6739,7 @@ This element creates a quaternion sensor for a ball joints. It outputs 4 numbers .. _sensor-ballangvel: -:el-prefix:`sensor/` |-| **ballangvel** (*) +|m| :el-prefix:`sensor/` |-| **ballangvel** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a ball joint angular velocity sensor. It outputs 3 numbers corresponding to the angular velocity of @@ -6762,7 +6765,7 @@ rotation takes place. .. _sensor-jointlimitpos: -:el-prefix:`sensor/` |-| **jointlimitpos** (*) +|m| :el-prefix:`sensor/` |-| **jointlimitpos** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a joint limit sensor for position. @@ -6789,7 +6792,7 @@ This element creates a joint limit sensor for position. .. _sensor-jointlimitvel: -:el-prefix:`sensor/` |-| **jointlimitvel** (*) +|m| :el-prefix:`sensor/` |-| **jointlimitvel** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a joint limit sensor for velocity. @@ -6814,7 +6817,7 @@ This element creates a joint limit sensor for velocity. .. _sensor-jointlimitfrc: -:el-prefix:`sensor/` |-| **jointlimitfrc** (*) +|m| :el-prefix:`sensor/` |-| **jointlimitfrc** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a joint limit sensor for constraint force. @@ -6839,7 +6842,7 @@ This element creates a joint limit sensor for constraint force. .. _sensor-tendonlimitpos: -:el-prefix:`sensor/` |-| **tendonlimitpos** (*) +|m| :el-prefix:`sensor/` |-| **tendonlimitpos** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a tendon limit sensor for position. @@ -6864,7 +6867,7 @@ This element creates a tendon limit sensor for position. .. _sensor-tendonlimitvel: -:el-prefix:`sensor/` |-| **tendonlimitvel** (*) +|m| :el-prefix:`sensor/` |-| **tendonlimitvel** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a tendon limit sensor for velocity. @@ -6889,7 +6892,7 @@ This element creates a tendon limit sensor for velocity. .. _sensor-tendonlimitfrc: -:el-prefix:`sensor/` |-| **tendonlimitfrc** (*) +|m| :el-prefix:`sensor/` |-| **tendonlimitfrc** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a tendon limit sensor for constraint force. @@ -6914,7 +6917,7 @@ This element creates a tendon limit sensor for constraint force. .. _sensor-framepos: -:el-prefix:`sensor/` |-| **framepos** (*) +|m| :el-prefix:`sensor/` |-| **framepos** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a sensor that returns the 3D position of the spatial frame of the object, in global coordinates or @@ -6958,7 +6961,7 @@ optionally with respect to a given frame-of-reference. .. _sensor-framequat: -:el-prefix:`sensor/` |-| **framequat** (*) +|m| :el-prefix:`sensor/` |-| **framequat** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a sensor that returns the unit quaternion specifying the orientation of the spatial frame of the @@ -6998,7 +7001,7 @@ object, in global coordinates. .. _sensor-framexaxis: -:el-prefix:`sensor/` |-| **framexaxis** (*) +|m| :el-prefix:`sensor/` |-| **framexaxis** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a sensor that returns the 3D unit vector corresponding to the X-axis of the spatial frame of the @@ -7038,7 +7041,7 @@ object, in global coordinates. .. _sensor-frameyaxis: -:el-prefix:`sensor/` |-| **frameyaxis** (*) +|m| :el-prefix:`sensor/` |-| **frameyaxis** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a sensor that returns the 3D unit vector corresponding to the Y-axis of the spatial frame of the @@ -7078,7 +7081,7 @@ object, in global coordinates. .. _sensor-framezaxis: -:el-prefix:`sensor/` |-| **framezaxis** (*) +|m| :el-prefix:`sensor/` |-| **framezaxis** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a sensor that returns the 3D unit vector corresponding to the Z-axis of the spatial frame of the @@ -7118,7 +7121,7 @@ object, in global coordinates. .. _sensor-framelinvel: -:el-prefix:`sensor/` |-| **framelinvel** (*) +|m| :el-prefix:`sensor/` |-| **framelinvel** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a sensor that returns the 3D linear velocity of the spatial frame of the object, in global @@ -7158,7 +7161,7 @@ coordinates. .. _sensor-frameangvel: -:el-prefix:`sensor/` |-| **frameangvel** (*) +|m| :el-prefix:`sensor/` |-| **frameangvel** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a sensor that returns the 3D angular velocity of the spatial frame of the object, in global @@ -7198,7 +7201,7 @@ coordinates. .. _sensor-framelinacc: -:el-prefix:`sensor/` |-| **framelinacc** (*) +|m| :el-prefix:`sensor/` |-| **framelinacc** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a sensor that returns the 3D linear acceleration of the spatial frame of the object, in global @@ -7230,7 +7233,7 @@ The presence of this sensor in a model triggers a call to :ref:`mj_rnePostConstr .. _sensor-frameangacc: -:el-prefix:`sensor/` |-| **frameangacc** (*) +|m| :el-prefix:`sensor/` |-| **frameangacc** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a sensor that returns the 3D angular acceleration of the spatial frame of the object, in global @@ -7262,7 +7265,7 @@ The presence of this sensor in a model triggers a call to :ref:`mj_rnePostConstr .. _sensor-subtreecom: -:el-prefix:`sensor/` |-| **subtreecom** (*) +|m| :el-prefix:`sensor/` |-| **subtreecom** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates sensor that returns the center of mass of the kinematic subtree rooted at a specified body, in @@ -7287,7 +7290,7 @@ global coordinates. .. _sensor-subtreelinvel: -:el-prefix:`sensor/` |-| **subtreelinvel** (*) +|m| :el-prefix:`sensor/` |-| **subtreelinvel** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates sensor that returns the linear velocity of the center of mass of the kinematic subtree rooted at a @@ -7314,7 +7317,7 @@ The presence of this sensor in a model triggers a call to :ref:`mj_subtreeVel` d .. _sensor-subtreeangmom: -:el-prefix:`sensor/` |-| **subtreeangmom** (*) +|m| :el-prefix:`sensor/` |-| **subtreeangmom** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates sensor that returns the angular momentum around the center of mass of the kinematic subtree rooted @@ -7341,7 +7344,7 @@ The presence of this sensor in a model triggers a call to :ref:`mj_subtreeVel` d .. _sensor-insidesite: -:el-prefix:`sensor/` |-| **insidesite** (*) +|m| :el-prefix:`sensor/` |-| **insidesite** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a sensor that returns 1 if the given object is inside a site, 0 otherwise. It is useful for triggering events in surrounding environment logic. @@ -7416,7 +7419,7 @@ sequential sensors .. _sensor-distance: -:el-prefix:`sensor/` |-| **distance** (*) +|m| :el-prefix:`sensor/` |-| **distance** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a sensor that returns the smallest signed distance between the surfaces of two geoms. @@ -7461,7 +7464,7 @@ See :ref:`collision-sensors` for more details about sensors of this type. .. _sensor-normal: -:el-prefix:`sensor/` |-| **normal** (*) +|m| :el-prefix:`sensor/` |-| **normal** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a sensor that returns the normal direction of the smallest signed distance between the surfaces of @@ -7508,7 +7511,7 @@ See :ref:`collision-sensors` for more details about sensors of this type. .. _sensor-fromto: -:el-prefix:`sensor/` |-| **fromto** (*) +|m| :el-prefix:`sensor/` |-| **fromto** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a sensor that returns the segment defining the smallest signed distance between the surfaces of two @@ -7556,7 +7559,7 @@ See :ref:`collision-sensors` for more details about sensors of this type. .. _sensor-contact: -:el-prefix:`sensor/` |-| **contact** (*) +|m| :el-prefix:`sensor/` |-| **contact** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **Motivation:** The array of contacts which occur during the main dynamics pipeline is inherently variable-sized. The @@ -7699,7 +7702,7 @@ Extraction .. _sensor-tactile: -:el-prefix:`sensor/` |-| **tactile** (*) +|m| :el-prefix:`sensor/` |-| **tactile** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. image:: images/XMLreference/tactile.png :align: right @@ -7735,7 +7738,7 @@ contribute to the sensor output. The sensor can be visualized by enabling the vi .. _sensor-e_potential: -:el-prefix:`sensor/` |-| **e_potential** (*) +|m| :el-prefix:`sensor/` |-| **e_potential** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates sensor that returns the potential energy. @@ -7754,7 +7757,7 @@ This element creates sensor that returns the potential energy. .. _sensor-e_kinetic: -:el-prefix:`sensor/` |-| **e_kinetic** (*) +|m| :el-prefix:`sensor/` |-| **e_kinetic** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates sensor that returns the kinetic energy. @@ -7773,7 +7776,7 @@ This element creates sensor that returns the kinetic energy. .. _sensor-clock: -:el-prefix:`sensor/` |-| **clock** (*) +|m| :el-prefix:`sensor/` |-| **clock** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates sensor that returns the simulation time. @@ -7792,7 +7795,7 @@ This element creates sensor that returns the simulation time. .. _sensor-user: -:el-prefix:`sensor/` |-| **user** (*) +|m| :el-prefix:`sensor/` |-| **user** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a user sensor. MuJoCo does not know how to compute the output of this sensor. Instead the user @@ -7848,8 +7851,8 @@ If a user sensor is of :ref:`stage` "vel" or "acc", then .. _sensor-plugin: -:el-prefix:`sensor/` |-| **plugin** (?) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +|?| :el-prefix:`sensor/` |-| **plugin** +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Ascociate this sensor with an :ref:`engine plugin`. Either :at:`plugin` or :at:`instance` are required. @@ -7886,7 +7889,7 @@ Ascociate this sensor with an :ref:`engine plugin`. Either :at:`plugin .. _keyframe: -**keyframe** (*) +|m| **keyframe** ~~~~~~~~~~~~~~~~ This is a grouping element for keyframe definitions. It does not have attributes. Keyframes can be used to create a @@ -7901,7 +7904,7 @@ in :ref:`simulate.cc ` the simulation state can be copied into a sel .. _keyframe-key: -:el-prefix:`keyframe/` |-| **key** (*) +|m| :el-prefix:`keyframe/` |-| **key** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element sets the data for one of the keyframes. They are set in the order in which they appear here. If the number @@ -7953,7 +7956,7 @@ be set to their values in the default configuration. .. _visual: -**visual** (*) +|m| **visual** ~~~~~~~~~~~~~~ This element is in one-to-one correspondence with the low level structure mjVisual contained in the field mjModel.vis @@ -7969,7 +7972,7 @@ coordinated visual settings corresponding to a "theme", and then include this fi .. _visual-global: -:el-prefix:`visual/` |-| **global** (?) +|?| :el-prefix:`visual/` |-| **global** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ While all settings in mjVisual are global, the settings here could not be fit into any of the other subsections. So this @@ -8066,7 +8069,7 @@ is effectively a miscellaneous subsection. .. _visual-quality: -:el-prefix:`visual/` |-| **quality** (?) +|?| :el-prefix:`visual/` |-| **quality** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element specifies settings that affect the quality of the rendering. Larger values result in higher quality but @@ -8118,7 +8121,7 @@ visualization should somehow be simplified. .. _visual-headlight: -:el-prefix:`visual/` |-| **headlight** (?) +|?| :el-prefix:`visual/` |-| **headlight** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element is used to adjust the properties of the headlight. There is always a built-in headlight, in addition to any @@ -8151,7 +8154,7 @@ to be reduced. .. _visual-map: -:el-prefix:`visual/` |-| **map** (?) +|?| :el-prefix:`visual/` |-| **map** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element is used to specify scaling quantities that affect both the visualization and built-in mouse perturbations. @@ -8245,7 +8248,7 @@ miscellaneous. .. _visual-scale: -:el-prefix:`visual/` |-| **scale** (?) +|?| :el-prefix:`visual/` |-| **scale** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The settings in this element control the spatial extent of various decorative objects. In all cases, the rendered size @@ -8345,7 +8348,7 @@ documented below. .. _visual-rgba: -:el-prefix:`visual/` |-| **rgba** (?) +|?| :el-prefix:`visual/` |-| **rgba** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The settings in this element control the color and transparency (rgba) of various decorative objects. We will call this @@ -8489,7 +8492,7 @@ disables the rendering of the corresponding object. .. _default: -**default** (R) +|R| **default** ~~~~~~~~~~~~~~~ This element is used to create a new defaults class; see :ref:`CDefault` above. Defaults classes can be nested, @@ -8511,7 +8514,7 @@ if omitted. .. _default-mesh-inertia: -:el-prefix:`default/` |-| **mesh** (?) +|?| :el-prefix:`default/` |-| **mesh** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | This element sets the attributes of the dummy :ref:`mesh ` element of the defaults class. @@ -8540,7 +8543,7 @@ if omitted. .. _default-material-texuniform: -:el-prefix:`default/` |-| **material** (?) +|?| :el-prefix:`default/` |-| **material** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | This element sets the attributes of the dummy :ref:`material ` element of the defaults class. @@ -8593,7 +8596,7 @@ if omitted. .. _default-joint-user: -:el-prefix:`default/` |-| **joint** (?) +|?| :el-prefix:`default/` |-| **joint** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | This element sets the attributes of the dummy :ref:`joint ` element of the defaults class. @@ -8664,7 +8667,7 @@ if omitted. .. _default-geom-user: -:el-prefix:`default/` |-| **geom** (?) +|?| :el-prefix:`default/` |-| **geom** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | This element sets the attributes of the dummy :ref:`geom ` element of the defaults class. @@ -8699,7 +8702,7 @@ if omitted. .. _default-site-user: -:el-prefix:`default/` |-| **site** (?) +|?| :el-prefix:`default/` |-| **site** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | This element sets the attributes of the dummy :ref:`site ` element of the defaults class. @@ -8742,7 +8745,7 @@ if omitted. .. _default-camera: -:el-prefix:`default/` |-| **camera** (?) +|?| :el-prefix:`default/` |-| **camera** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | This element sets the attributes of the dummy :ref:`camera ` element of the defaults class. @@ -8783,7 +8786,7 @@ if omitted. .. _default-light-mode: -:el-prefix:`default/` |-| **light** (?) +|?| :el-prefix:`default/` |-| **light** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | This element sets the attributes of the dummy :ref:`light ` element of the defaults class. @@ -8806,7 +8809,7 @@ if omitted. .. _default-pair-margin: -:el-prefix:`default/` |-| **pair** (?) +|?| :el-prefix:`default/` |-| **pair** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | This element sets the attributes of the dummy :ref:`pair ` element of the defaults class. @@ -8821,7 +8824,7 @@ if omitted. .. _default-equality-solimp: -:el-prefix:`default/` |-| **equality** (?) +|?| :el-prefix:`default/` |-| **equality** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | This element sets the attributes of the dummy :ref:`equality ` element of the defaults class. The actual @@ -8868,7 +8871,7 @@ if omitted. .. _default-tendon-user: -:el-prefix:`default/` |-| **tendon** (?) +|?| :el-prefix:`default/` |-| **tendon** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | This element sets the attributes of the dummy :ref:`tendon ` element of the defaults class. Similar to @@ -8914,7 +8917,7 @@ if omitted. .. _default-general-actearly: -:el-prefix:`default/` |-| **general** (?) +|?| :el-prefix:`default/` |-| **general** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | This element sets the attributes of the dummy :ref:`general ` element of the defaults class. @@ -8940,7 +8943,7 @@ if omitted. .. _default-motor-group: -:el-prefix:`default/` |-| **motor** (?) +|?| :el-prefix:`default/` |-| **motor** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This and the next three elements set the attributes of the :ref:`general ` element using @@ -8978,7 +8981,7 @@ tendon, slidersite, cranksite. .. _default-position-timeconst: -:el-prefix:`default/` |-| **position** (?) +|?| :el-prefix:`default/` |-| **position** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ All :ref:`position ` attributes are available here except: name, class, joint, jointinparent, site, @@ -9005,7 +9008,7 @@ refsite, tendon, slidersite, cranksite. .. _default-velocity-kv: -:el-prefix:`default/` |-| **velocity** (?) +|?| :el-prefix:`default/` |-| **velocity** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ All :ref:`velocity ` attributes are available here except: name, class, joint, jointinparent, site, @@ -9040,7 +9043,7 @@ refsite, tendon, slidersite, cranksite. .. _default-intvelocity-dampratio: -:el-prefix:`default/` |-| **intvelocity** (?) +|?| :el-prefix:`default/` |-| **intvelocity** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ All :ref:`intvelocity ` attributes are available here except: name, class, joint, jointinparent, @@ -9065,7 +9068,7 @@ site, refsite, tendon, slidersite, cranksite. .. _default-damper-kv: -:el-prefix:`default/` |-| **damper** (?) +|?| :el-prefix:`default/` |-| **damper** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ All :ref:`damper ` attributes are available here except: name, class, joint, jointinparent, site, @@ -9098,7 +9101,7 @@ refsite, tendon, slidersite, cranksite. .. _default-cylinder-bias: -:el-prefix:`default/` |-| **cylinder** (?) +|?| :el-prefix:`default/` |-| **cylinder** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ All :ref:`cylinder ` attributes are available here except: name, class, joint, jointinparent, site, @@ -9141,7 +9144,7 @@ refsite, tendon, slidersite, cranksite. .. _default-muscle-fvmax: -:el-prefix:`default/` |-| **muscle** (?) +|?| :el-prefix:`default/` |-| **muscle** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ All :ref:`muscle ` attributes are available here except: name, class, joint, jointinparent, site, @@ -9162,7 +9165,7 @@ refsite, tendon, slidersite, cranksite. .. _default-adhesion-group: -:el-prefix:`default/` |-| **adhesion** (?) +|?| :el-prefix:`default/` |-| **adhesion** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ All :ref:`adhesion ` attributes are available here except: name, class, body. @@ -9170,7 +9173,7 @@ All :ref:`adhesion ` attributes are available here except: na .. _custom: -**custom** (*) +|m| **custom** ~~~~~~~~~~~~~~ This is a grouping element for custom numeric and text elements. It does not have attributes. @@ -9178,7 +9181,7 @@ This is a grouping element for custom numeric and text elements. It does not hav .. _custom-numeric: -:el-prefix:`custom/` |-| **numeric** (*) +|m| :el-prefix:`custom/` |-| **numeric** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a custom numeric array in mjModel. @@ -9206,7 +9209,7 @@ This element creates a custom numeric array in mjModel. .. _custom-text: -:el-prefix:`custom/` |-| **text** (*) +|m| :el-prefix:`custom/` |-| **text** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a custom text field in mjModel. It could be used to store keyword commands for user callbacks and @@ -9225,7 +9228,7 @@ other custom computations. .. _custom-tuple: -:el-prefix:`custom/` |-| **tuple** (*) +|m| :el-prefix:`custom/` |-| **tuple** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element creates a custom tuple, which is a list of MuJoCo objects. The list is created by referencing the desired @@ -9239,7 +9242,7 @@ objects by name. .. _tuple-element: -:el-prefix:`tuple/` |-| **element** (*) +|m| :el-prefix:`tuple/` |-| **element** ''''''''''''''''''''''''''''''''''''''' This adds an element to the tuple. @@ -9264,7 +9267,7 @@ This adds an element to the tuple. .. _extension: -**extension** (*) +|m| **extension** ~~~~~~~~~~~~~~~~~ This is a grouping element for MuJoCo extensions. Extensions allow the user to extend MuJoCo's capabilities with custom @@ -9273,7 +9276,7 @@ extension type are :ref:`exPlugin`. .. _extension-plugin: -:el-prefix:`extension/` |-| **plugin** (*) +|m| :el-prefix:`extension/` |-| **plugin** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This element specifies that an engine plugin is required in order to simulate this model. @@ -9286,7 +9289,7 @@ See :ref:`exPlugin` for more details. .. _plugin-instance: -:el-prefix:`plugin/` |-| **instance** (*) +|m| :el-prefix:`plugin/` |-| **instance** ''''''''''''''''''''''''''''''''''''''''' Declares a plugin instance. Explicit instances declaration is required when multiple elements are backed by the same @@ -9302,7 +9305,7 @@ plugin, or when global plugin configuration is desired. See plugin :ref:`declara .. _instance-config: -:el-prefix:`instance/` |-| **config** (*) +|m| :el-prefix:`instance/` |-| **config** """"""""""""""""""""""""""""""""""""""""" Configuration of a plugin instance. When implicitly declaring a plugin under a model element, configuration is diff --git a/doc/XMLschema.rst b/doc/XMLschema.rst old mode 100644 new mode 100755 index f3e4930d..7bfb2d75 --- a/doc/XMLschema.rst +++ b/doc/XMLschema.rst @@ -1,1706 +1,2939 @@ -+------------------------------------+----+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| | | .. table:: | -| :ref:`mujoco | ! | :class: mjcf-attributes | -| ` | | | -| | | +-----------------------------------------------------------------+-----------------------------------------------------------------+-----------------------------------------------------------------+-----------------------------------------------------------------+ | -| | | | :ref:`model` | | | | | -| | | +-----------------------------------------------------------------+-----------------------------------------------------------------+-----------------------------------------------------------------+-----------------------------------------------------------------+ | -+------------------------------------+----+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| mujoco |br| |L| | | .. table:: | -| :ref:`option | \* | :class: mjcf-attributes | -|