Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Doxygen on how to estimate hydroelastic contact parameters #21987

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

amcastro-tri
Copy link
Contributor

@amcastro-tri amcastro-tri commented Oct 3, 2024

We might want (maybe) to expand these a bit further to add a couple more case (e.g. grippers), but I think this is a good start.
It'll help me reference estimations for #21463.


This change is Reviewable

Copy link
Contributor Author

@amcastro-tri amcastro-tri left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+@sherm1 for feature review.

I'd still need to add a couple schematics (Figs 1 and 2 in the text), but I believe that won't slow you down at all. You can start the review. I'll push those figs next week. I wanted to make sure the contet is right first.

cc'ing @joemasterjohn

Reviewable status: LGTM missing from assignee sherm1(platform), needs at least two assigned reviewers, missing label for release notes (waiting on @amcastro-tri)

@amcastro-tri amcastro-tri changed the title Doxygen docs to teach users how to set contact parameters Doxygen on how to estimate hydroelastic contact parameters Oct 3, 2024
Copy link
Member

@sherm1 sherm1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

First pass done.

Awesome! A few questions and comments. I'll make another pass when the figures are in.

Reviewed 2 of 2 files at r1, all commit messages.
Reviewable status: 14 unresolved discussions, LGTM missing from assignee sherm1(platform), needs at least two assigned reviewers, missing label for release notes (waiting on @amcastro-tri)


multibody/plant/doxygen_hydroelastic_parameters.h line 8 at r1 (raw file):

/** @addtogroup hydro_params Estimation of Hydroelastic Parameters

Similarly to Hertz's theory of contact mechanics, in this section we derive

BTW you can call this "Hertz theory" (rather than "Hertz's theory") and avoid the extra punctuation and weird pronunciation.


multibody/plant/doxygen_hydroelastic_parameters.h line 9 at r1 (raw file):

Similarly to Hertz's theory of contact mechanics, in this section we derive
analytical formulae to estimate the elastic force that establishes between two

BTW consider using "formulas" as the plural. Google says that form is used in "everyday writing", i.e. it isn't as uppity as "formulae".


multibody/plant/doxygen_hydroelastic_parameters.h line 11 at r1 (raw file):

analytical formulae to estimate the elastic force that establishes between two
bodies in contact. As in Hertz's theory, we assume small deformations, allowing
us to introduce geometrical approximations.

BTW consider adding a short paragraph on how this section could be useful to a person using Drake. How should someone make use of this information?


multibody/plant/doxygen_hydroelastic_parameters.h line 23 at r1 (raw file):

The table below summarizes analytical formulae to compute the contact force
between a body of a given geometric shape with a half-space. The body penetrates
a distance `x` into the table.

BTW later you re-use "x" to mean a generic point on the contact surface, while here it is a scalar penetration depth. It's confusing to use the same symbol for two different things in the same paper. Consider using some other symbol for the few places where penetration depth is used in this section -- maybe "d" or "δ"?


multibody/plant/doxygen_hydroelastic_parameters.h line 29 at r1 (raw file):

Cylinderᵃ       |         R          |@f$\pi R^2 x@f$              |@f$\pi E R x@f$
Sphereᵇ         |         R          |@f$\pi R x^2@f$              |@f$\pi E x^2@f$
Coneᶜ           |         H          |@f$\pi/3\tan^2(\theta)x^3@f$ |@f$\pi/3 \tan^2(\theta) E/H x^3@f$

BTW what is the source for these formulas? KL Johnson? I'd like to double check in case of typos or whatever.


multibody/plant/doxygen_hydroelastic_parameters.h line 31 at r1 (raw file):

Coneᶜ           |         H          |@f$\pi/3\tan^2(\theta)x^3@f$ |@f$\pi/3 \tan^2(\theta) E/H x^3@f$

ᵃ Compliant cylinder of radius R and length L > R. Rigid half-space.

minor: should state explicitly that you are considering the case where the cylinder's end cap is contacting the half space. It could also be lying on its side in which case the contact would be very different.

I guess you could call it a "cylindrical indenter". Or a coffee cup!


multibody/plant/doxygen_hydroelastic_parameters.h line 37 at r1 (raw file):

ᶜ Rigid conic indenter of apex angle θ. Compliant half-space.

One final observation. As with Hert'z contact theory, the contact force between

typo: spurious apostrophe Hert'z -> Hertz


multibody/plant/doxygen_hydroelastic_parameters.h line 69 at r1 (raw file):

degrade numerical conditioning and therefore users must choose a value that is
acceptable for their application. Experience shows that for modeling "rigid"
(once again, stiff) objects, there is no much gain in accurately resolving

typo: no -> not


multibody/plant/doxygen_hydroelastic_parameters.h line 71 at r1 (raw file):

(once again, stiff) objects, there is no much gain in accurately resolving
penetrations below the submillimeter range (~10⁻⁴ m). Therefore moduli in the
order of 10⁷-10⁸ Pa will be more than enough, we no good practical reason to use

typo: we -> with


multibody/plant/doxygen_hydroelastic_parameters.h line 128 at r1 (raw file):

advantages over traditional EFM
  - Hydroelastic contact generalizes to arbitrary non-convex geometry
  - Large _deformations_ (interpenetration) are allowed

BTW consider "deformations" (in quotes) rather than italics. Quotes are better assuming you are trying to emphasize that these are fictional (since there isn't really any deformation).


multibody/plant/doxygen_hydroelastic_parameters.h line 135 at r1 (raw file):

Given the clear connection between hydroelastic contact and EFM, we use this
analogy to derive analytical formula to estimate contact forces. More precisely,

typo: derive -> derive an


multibody/plant/doxygen_hydroelastic_parameters.h line 155 at r1 (raw file):

where κ = κᵃ⋅κᵇ/(κᵃ+κᵇ) is the effective stiffness and κᵃ = Eᵃ/Hᵃ and κᵇ = Eᵇ/Hᵇ
are the stiffness of bodies A and B respectively. V is the volume the original
geometries would overlap if the did not deform.

typo: the -> they


multibody/plant/doxygen_hydroelastic_parameters.h line 162 at r1 (raw file):

Hydroelastic contact model, where the balance of normal stresses (pressure)
determines the location of the contact surface. Still, we find that this
derivation leads to exactly the same result in (2).

BTW cool!


multibody/plant/doxygen_hydroelastic_parameters.h line 172 at r1 (raw file):

We use the EFM approximation (1) to model the normal stress (pressure) that
results from deforming each body A and B amounts ϕᵃ(x) and ϕᵇ(x) respectively.
With this, the balance of momentum at each point on the contact surface is

minor: momentum -> pressure

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants