Add elasticity parameters to the schema.

PiperOrigin-RevId: 675115200
Change-Id: Ic6608ce61cbb857dca71b3d9cbdac057e8f1ac7a
This commit is contained in:
Alessio Quaglino
2024-09-16 05:55:40 -07:00
committed by Copybara-Service
parent 015bdeb756
commit b15de2c951
17 changed files with 146 additions and 52 deletions
+50
View File
@@ -3746,6 +3746,23 @@ element is used to adjust the properties of all edges in the flex.
Edge stiffness and damping, passed through to the automatically generated flex.
.. _flexcomp-elasticity:
:el-prefix:`flexcomp/` |-| **elasticity** (*)
'''''''''''''''''''''''''''''''''''''''''''''
.. _flexcomp-elasticity-young:
.. _flexcomp-elasticity-poisson:
.. _flexcomp-elasticity-damping:
.. _flexcomp-elasticity-thickness:
.. |body/flexcomp/elasticity attrib list| replace::
:at:`young`, :at:`poisson`, :at:`damping`, :at:`thickness`
|body/flexcomp/elasticity attrib list|
Same as in :ref:`flex/elasticity<flex-elasticity>`.
All attributes are passed through to the automatically-generated flex.
.. _flexcomp-pin:
:el-prefix:`flexcomp/` |-| **pin** (*)
@@ -4131,6 +4148,39 @@ these mechanisms to be combined as desired.
:at:`damping`: :at-val:`real(1), "0"`
Damping of all edges.
.. _flex-elasticity:
:el-prefix:`flex/` |-| **elasticity** (?)
'''''''''''''''''''''''''''''''''''''''''
.. _flex-elasticity-young:
:at:`young`: :at-val:`real(1), "0"`
Young's elastic modulus, a measure of tensile and compressive stiffness for continuum elastic materials.
Units of :math:`\textrm{pressure}=\textrm{force}/\textrm{area}`.
.. _flex-elasticity-poisson:
:at:`poisson`: :at-val:`real(1), "0"`
Poisson's ratio, the ratio of transverse deformation to applied longitudinal strain.
This unitless quantity is in the range :math:`[0, 0.5)`.
Small or large values imply compressibility or incompressiblity, respectively.
.. _flex-elasticity-damping:
:at:`damping`: :at-val:`real(1), "0"`
Rayleigh's damping coefficient, units of time.
This quantity scales the stiffness defined by Young's modulus to produce the damping matrix.
.. _flex-elasticity-thickness:
:at:`thickness`: :at-val:`real(1), "-1"`
Shell thickness, units of length; only for used 2D flexes. Used to scale the stretching stiffness.
This thickness can be set equal to 2 times the :ref:`radius <deformable-flex-radius>` in order to match the geometry,
but is exposed seperately since the radius might be constrained by considerations related to collision detection.
.. _flex-contact:
:el-prefix:`flex/` |-| **contact** (?)
+14
View File
@@ -514,6 +514,13 @@
| | | +-----------------------------------------------------------------+-----------------------------------------------------------------+-----------------------------------------------------------------+-----------------------------------------------------------------+ |
+------------------------------------+----+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |_2| flexcomp |br| |_2| |L| | | .. table:: |
| :ref:`elasticity | ? | :class: mjcf-attributes |
| <flexcomp-elasticity>` | | |
| | | +-----------------------------------------------------------------+-----------------------------------------------------------------+-----------------------------------------------------------------+-----------------------------------------------------------------+ |
| | | | :ref:`young<flexcomp-elasticity-young>` | :ref:`poisson<flexcomp-elasticity-poisson>` | :ref:`damping<flexcomp-elasticity-damping>` | :ref:`thickness<flexcomp-elasticity-thickness>` | |
| | | +-----------------------------------------------------------------+-----------------------------------------------------------------+-----------------------------------------------------------------+-----------------------------------------------------------------+ |
+------------------------------------+----+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |_2| flexcomp |br| |_2| |L| | | .. table:: |
| :ref:`contact | ? | :class: mjcf-attributes |
| <flexcomp-contact>` | | |
| | | +-----------------------------------------------------------------+-----------------------------------------------------------------+-----------------------------------------------------------------+-----------------------------------------------------------------+ |
@@ -581,6 +588,13 @@
| | | | :ref:`stiffness<flex-edge-stiffness>` | :ref:`damping<flex-edge-damping>` | | | |
| | | +-----------------------------------------------------------------+-----------------------------------------------------------------+-----------------------------------------------------------------+-----------------------------------------------------------------+ |
+------------------------------------+----+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |_2| flex |br| |_2| |L| | | .. table:: |
| :ref:`elasticity | ? | :class: mjcf-attributes |
| <flex-elasticity>` | | |
| | | +-----------------------------------------------------------------+-----------------------------------------------------------------+-----------------------------------------------------------------+-----------------------------------------------------------------+ |
| | | | :ref:`young<flex-elasticity-young>` | :ref:`poisson<flex-elasticity-poisson>` | :ref:`damping<flex-elasticity-damping>` | :ref:`thickness<flex-elasticity-thickness>` | |
| | | +-----------------------------------------------------------------+-----------------------------------------------------------------+-----------------------------------------------------------------+-----------------------------------------------------------------+ |
+------------------------------------+----+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| |_| deformable |br| |_| |L| | | .. table:: |
| :ref:`skin | \* | :class: mjcf-attributes |
| <deformable-skin>` | | |
+4
View File
@@ -1961,6 +1961,10 @@ typedef struct mjsFlex_ { // flex specification
double edgedamping; // edge damping
float rgba[4]; // rgba when material is omitted
mjString* material; // name of material used for rendering
double young; // Young's modulus
double poisson; // Poisson's ratio
double damping; // Rayleigh's damping
double thickness; // thickness (2D only)
// mesh properties
mjStringVec* vertbody; // vertex body names