Cosmetic improvements to Actuation Model documentation.

PiperOrigin-RevId: 526659426
Change-Id: If0ca9a505bb77e496739938a946ead5780b93d0f
This commit is contained in:
Yuval Tassa
2023-04-24 09:02:44 -07:00
committed by Copybara-Service
parent 62a675ba28
commit 51126caf3f
+15 -3
View File
@@ -258,7 +258,7 @@ actuator works. The user can set them independently for maximum flexibility, or
.. _geTransmission: .. _geTransmission:
Transmission Transmission
~~~~~~~~~~~~ ^^^^^^^^^^^^
Each actuator has a scalar length :math:`l_i(q)` defined by the type of transmission and its parameters. The gradient Each actuator has a scalar length :math:`l_i(q)` defined by the type of transmission and its parameters. The gradient
:math:`\nabla l_i` is an :math:`n_V`-dimensional vector of moment arms. It determines the mapping from scalar :math:`\nabla l_i` is an :math:`n_V`-dimensional vector of moment arms. It determines the mapping from scalar
@@ -266,19 +266,23 @@ actuator force to joint force. The transmission properties are determined by the
is attached; the possible attachment object types are :at:`joint`, :at:`tendon`, :at:`jointinparent`, is attached; the possible attachment object types are :at:`joint`, :at:`tendon`, :at:`jointinparent`,
:at:`slider-crank`, :at:`site`, and :at:`body`. :at:`slider-crank`, :at:`site`, and :at:`body`.
:at:`joint` and :at:`tendon`
The :at:`joint` and :at:`tendon` transmission types act as expected and correspond to the actuator applying forces or The :at:`joint` and :at:`tendon` transmission types act as expected and correspond to the actuator applying forces or
torques to the target object. Ball joints are special, see the :at:`joint` documentation in torques to the target object. Ball joints are special, see the :ref:`actuator/general/joint<actuator-general-joint>`
:ref:`actuator<actuator-general>` reference for more details. documentation for more details.
:at:`jointinparent`
The :at:`jointinparent` transmission is unique to ball and free joint and asserts that rotation should be measured The :at:`jointinparent` transmission is unique to ball and free joint and asserts that rotation should be measured
in the parent rather than child frame. in the parent rather than child frame.
:at:`slider-crank`
:at:`slider-crank` `transmissions <https://en.wikipedia.org/wiki/Slider-crank_linkage>`_ transform a linear force to :at:`slider-crank` `transmissions <https://en.wikipedia.org/wiki/Slider-crank_linkage>`_ transform a linear force to
a torque, as in a piston-driven combustion engine. `This model a torque, as in a piston-driven combustion engine. `This model
<https://github.com/deepmind/mujoco/tree/main/model/slider_crank>`_ contains pedagogical examples. Slider-cranks can <https://github.com/deepmind/mujoco/tree/main/model/slider_crank>`_ contains pedagogical examples. Slider-cranks can
also be modeled explicitly by creating MuJoCo bodies and coupling them with equality constraints to the rest of the also be modeled explicitly by creating MuJoCo bodies and coupling them with equality constraints to the rest of the
system, but that would be less efficient. system, but that would be less efficient.
:at:`site`
:at:`site` transmission (without a :at:`refsite`, see below) and :at:`body` transmission targets have a fixed zero :at:`site` transmission (without a :at:`refsite`, see below) and :at:`body` transmission targets have a fixed zero
length :math:`l_i(q) = 0`. They can therefore not be used to maintain a desired length, but can be used to apply length :math:`l_i(q) = 0`. They can therefore not be used to maintain a desired length, but can be used to apply
forces. Site transmissions correspond to applying a Cartsian force/torque at the site, and are useful for modeling forces. Site transmissions correspond to applying a Cartsian force/torque at the site, and are useful for modeling
@@ -292,7 +296,11 @@ is attached; the possible attachment object types are :at:`joint`, :at:`tendon`,
be controlled with a :el:`position` actuator, enabling Cartesian end-effector control. See the :at:`refsite` be controlled with a :el:`position` actuator, enabling Cartesian end-effector control. See the :at:`refsite`
documentation in :ref:`actuator<actuator-general>` reference for more details. documentation in :ref:`actuator<actuator-general>` reference for more details.
.. _geActivation:
Activation dynamics Activation dynamics
^^^^^^^^^^^^^^^^^^^
Some actuators such as pneumatic and hydraulic cylinders as well as biological muscles have an internal state called Some actuators such as pneumatic and hydraulic cylinders as well as biological muscles have an internal state called
"activation". This is a true dynamic state, beyond the joint positions :math:`q` and velocities :math:`v`. Including "activation". This is a true dynamic state, beyond the joint positions :math:`q` and velocities :math:`v`. Including
such actuators in the model results in 3rd-order dynamics. We denote the vector of actuator activations :math:`w`. such actuators in the model results in 3rd-order dynamics. We denote the vector of actuator activations :math:`w`.
@@ -315,7 +323,11 @@ Activation dynamics
be "none" which corresponds to a regular actuator with no activation state. The dimensionality of :math:`w` equals be "none" which corresponds to a regular actuator with no activation state. The dimensionality of :math:`w` equals
the number of actuators whose activation type is different from "none". the number of actuators whose activation type is different from "none".
.. _geActuatorForce:
Force generation Force generation
^^^^^^^^^^^^^^^^
Each actuator generates a scalar force :math:`p_i` which is some function Each actuator generates a scalar force :math:`p_i` which is some function
.. math:: .. math::