Add two new attributes to weld constraints:

- `anchor` determines the point of wrench application, in the frame of body2.
- `tfratio` scales applied torques relative to applied forces.
- Add visualisation of both anchor points to both weld and connect constraints.
- Add a test model showing how the new weld parameters behave.

PiperOrigin-RevId: 470021901
Change-Id: I3faba0e5dcab2e29ee81096f5ff71ff66d99758c
This commit is contained in:
Alessio Quaglino
2022-08-25 10:21:26 -07:00
committed by Copybara-Service
parent e2c3f04097
commit d26501c0f3
20 changed files with 491 additions and 248 deletions
+13 -1
View File
@@ -812,7 +812,9 @@ in the second column of the table have the following meaning:
| | | +-------------------------+-------------------------+-------------------------+ |
| | | | :at:`body2` | :at:`relpose` | :at:`active` | |
| | | +-------------------------+-------------------------+-------------------------+ |
| | | | :at:`solref` | :at:`solimp` | | |
| | | | :at:`solref` | :at:`solimp` | :at:`anchor` | |
| | | +-------------------------+-------------------------+-------------------------+ |
| | | | :at:`torquescale` | | | |
| | | +-------------------------+-------------------------+-------------------------+ |
+--------------------------+----+------------------------------------------------------------------------------------+
| |_2|:el:`joint` | \* | .. table:: |
@@ -4023,6 +4025,16 @@ of the other body, without any joint elements in the child body.
body1. If the quaternion part (i.e., last 4 components of the vector) are all zeros, as in the default setting, this
attribute is ignored and the relative pose is the one corresponding to the model reference pose in qpos0. The unusual
default is because all equality constraint types share the same default for their numeric parameters.
:at:`anchor`: :at-val:`real(3), "0 0 0"`
Coordinates of the weld point relative to body2. If :at:`relpose` is not specified, the meaning of
this parameter is the same as for connect constraints, except that is relative to body2. If :at:`relpose` is
specified, body1 will use the pose to compute its anchor point.
:at:`torquescale`: :at-val:`real, "1"`
Relative torque-to-force ratio. This ratio is used by the weld to scale how much it "cares" about rotational
displacements vs. translational displacements. Setting this value to 0 makes the :el:`weld` behave like a
:el:`connect` constraint. Note that this value has units of length and can therefore be interpreted as follows.
Imagining that the weld is implemented by a patch of glue sticking the two bodies together, :at:`torquescale` can be
interpreted as the diameter of this glue patch.
.. _equality-joint: