contact detection between polyhedra and sphere

Asked by lip

hello
i want to know the principle of contact detection between polyhedra and sphere,can you give me some advice?

Question information

Language:
English Edit question
Status:
Answered
For:
Yade Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Jan Stránský (honzik) said :
#1

In general or how it is implemented in Yade?

Revision history for this message
lip (mr.xie) said :
#2

in general

Revision history for this message
A Dinesh (adepu-dinesh-a) said :
#3

Hi Jan,

Can you atleast please give references for which Yade implemented the contact detection from? Thank you.

Revision history for this message
Jan Stránský (honzik) said :
#4

> Can you atleast please give references for which Yade implemented the contact detection from?

no :-) there is no reference, I just did something very simple to make it work.
- on polyhedron, find closes point ("closest") to the sphere's center ("center").
- then follow [1] to compute normal, penetrationDepth, contactPoint.

> in general

it is too general question :-) you can e.g.:
- use the current idea (see above)
- use the current idea, somehow enhanced (evaluate differently vertex/edge/face cases)
- do the same as polyhedron-polyhedron contact does, i.e. compute overlapping solid and use it for further computations (of contact point, normal direction etc.)
- surely something else..

cheers
Jan

[1] https://github.com/yade/trunk/blob/master/pkg/dem/Polyhedra_Ig2.cpp#L436

Revision history for this message
lip (mr.xie) said :
#5

Hi, Jan
        for instance, for two spheres,If the distance between the centers of a sphere is greater than the sum of the radii of two spheres, we can say that the two spheres came into contact. what you say above is something that we already know polyhedra and sphere are contact, what i want to know is how to detect that wether polyhedra and sphere are contact or not.

Revision history for this message
A Dinesh (adepu-dinesh-a) said :
#6

Hi Lip,

That's what Jan is explaining, I guess. For a sphere-sphere interaction we have the contact force dependent
on the amount of overlap. But in the case of polyhedra, one needs to check the amount of volume. And the
force is proportional to the overlap volume.

See figure 1 of reference [1]. In this figure the author Herrmann describes the interaction between two polygons (It is 2d,
so he considers area, in place of volume). I think the same principle goes with sphere and polyhedra interaction.
Can Jan conform? Thanks

Revision history for this message
A Dinesh (adepu-dinesh-a) said :
#7

This reference also looks good [1]. See section 2.

[1] https://www.sciencedirect.com/science/article/pii/037843719500111J

Revision history for this message
Jan Stránský (honzik) said :
#8

> what i want to know is how to detect that wether polyhedra and sphere are contact or not.

what is the use case? As it is on Yade forum, I assumed usage in Yade. Yade does:
- reject "too far away" bodies by a collider uisng axis aligned boundong boxes
- evaluate (determine contact point, normal, ...) potential contact. Yes/No contact is a possible natural outcome.

In general case, one way (used currently) is to compute the closest point of the polyhedron surface (to the sphere's center) and test if that point is inside the sphere*.
Currently I don't know about any other method (but I did no research on this topic)

* plus the case when the sphere is entirely inside the polyhedron

cheers
Jan

Can you help with this problem?

Provide an answer of your own, or ask lip for more information if necessary.

To post a message you must log in.