Grasshopper

algorithmic modeling for Rhino

I was curious if there was a way to add friction in kangaroo? I know Daniel made a traction video with a little truck driving on a surface. 

Maybe, sampling a set of points, compare them to the closest neighbor on a second surface, and have them attract each other? That might create "stickiness" though...

Thoughts?

-E

Views: 1852

Replies to This Discussion

I just looked through Daniel's vimeo's and found this

 "I just altered the mesh collision in Kangaroo to allow for transfer of tangential force"

 

problem seems solved. I think it might be useful to have a separate control for friction coefficients both static and kinetic.

Hi Esko,

That's right, I did change the way collisions between points and meshes are handled some time ago, but still didn't get around to publicly releasing the updated version. I'll try and get it out in the next few days.

I've found getting really good handling of static vs kinetic friction to be a pain though.

Distinguishing between collisions and resting contact generally becomes more complicated than it might first appear.

If the collision with the mesh or ground is 'hard' I project the particle positions, so they can never penetrate, and reverse the component of their velocity normal to the surface (multiplied by the restitution factor). This means that whenever you have some structure of springs resting on a hard surface, there is usually still some tiny imperceptible bouncing. This makes it hard to properly apply static friction (which would zero the tangential velocity if the tangential force was below some threshold and it is not already sliding), because particles are generally not perfectly on the surface, even when apparently at rest. Obviously it's not good to have friction affecting things that aren't touching the surface.

This is the origin of the 'settle' parameter in the settings. The idea was that when the motion of a particle normal to the surface drops below that limit, it will be totally zeroed, and the particle becomes properly resting on the surface. I never really like having to use these kind of weird ad hoc fixes though.

Alternatively, if the collision is 'soft' I use a spring-like force to push particles out of the ground/mesh.

This can cause problems because in many cases you just want a simple constraint that they never go below ground level, and there is a limit to how stiff you can make these spring-like forces.

The advantage though, is that because any particle resting 'on' the ground/surface will actually be slightly below/inside it, and one can use this to decide whether to apply contact friction.

With bouncing collisions, it is a little simpler. There is just the question of what to do with the velocity component tangential to the surface. See the bottom comment by me here, for more on the 'tumble' setting:

http://www.grasshopper3d.com/video/kangaroo-traction-test

So you see, it is challenging to get one consistent model that will give correct behaviour for all cases (eg a simple static 'leaning ladder' type problem, a bouncing particle, and vehicle wheel traction), without having several of these odd seeming and non-intuitive settings.

Oh yeah that is a challenge.

Maybe?:

Would a very thin 'skin' work, where the particle never passes through the surface, but its tangential force gets reduced exponentially as it approaches the surface, factoring in angle of attack. A perpendicular force wouldn't have any drag, like a bouncing ball, and static friction would 'engage' at a threshold.

I'm not sure how you would get rid of any vertical wiggling, but maybe that's ok? a dampening force?

-Just my quick thoughts

Yea, I did consider a thin zone within which the particle is considered in contact (provided its velocity in the normal direction is below a threshold). This means getting the closest point on the surface and distance from it for each particle, which I think is going to be considerably slower than just checking for containment though. Precalculating an offset surface could help though... I'll see

RSS

About

Translate

Search

Photos

  • Add Photos
  • View All

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service