[ODE] spinning object friction simulation

Graham Fyffe gfyffe at gmail.com
Mon May 16 21:43:20 MST 2005


Hey all there.  I have a quandry with using ODE to model soft-ish
objects.  I have a sphere, and I'm simulating a slightly smushy sphere
using erp / cfm values for the contact.  Things are cool, except when
I spin it like a top.

Now, a real smushy sphere, for example a rubber ball, has a non-zero
area contact patch.  Thus, when you spin the ball like a top, there is
friction that makes the ball eventually stop spinning.  Howerver, in
ODE, my smushy sphere contacts the ground at exactly one point, i.e.
zero contact area.  It spins forever.

Note that if I simulate a box in ODE, I get several contacts, and the
problem goes away because I essentially get a point sampling of the
contact patch.

I tried putting in more contact joints, but then my ball no longer
rolls well, since it has to "roll over" each contact point, bumping
and jostling about as it does so.  Imagine a hard sphere rolling over
a rod placed in front of it.  That's what it looks like.

So my question is: how can I simulate a finite contact patch for my
smushy sphere in ODE?  Can I, for instance, add a flag to the contact
joint to tell it that it's supposed to represent a small area instead
of a point, so that it gives me frictional torques as well as forces? 
Or is there a way to get it to work by adding my own contacts, in some
particular manner?

Thanks all!  I'll be sure to share whatever solution I end up with.

- Graham



More information about the ODE mailing list