Fw: [ODE] rolling contact force

Dimitris Papavasiliou jimmyp at hal.csd.auth.gr
Fri Oct 8 16:13:12 MST 2004


On Thursday 30 September 2004 11:22, Alen Ladavac wrote:
> But while we are at it.... This reminds me of something I tought about
> posting here a few days ago... why is this feature not implemented in ODE?
> Just lack of time, or is there some practical reason why would that not
> work well?
>
> I'm asking because we added that to our simulator recently and it turns out
> to be very simple. Rolling friction can be modeled as two additional rows
> in the contact joint. They have same force direction as ordinary friction,
> just with opposite lever direction (negate the vector pointing from the
> body center towards contact, and use that for the angular part). Works
> quite well. For performance reasons, we flag those contacts that need it
> (sphere, cylinder's sides, ...).
>
> This is more expensive than damping, but there is an important difference
> in results. With damping, you if you apply a small force to a very heavy
> body during a long period of time, it _will_ move. While with friction it
> won't.
>
> Does anyone have any experiences with this? Or any theories why this
> solution would have problems?
>
> Alen

In fact why is it that although I set mu and fdir1 when rolling I still get no 
friction? Presumably because the total velocity of the contact point is zero. 
But the friction force is Ff = mu * Fn, velocity doesn't get into this, 
although in reality friction depends on it. So this assumption prevents me 
from modelling rolling friction more accurately (as depending on mu and Fn 
not on v).

Wouldn't it be simpler to have a surface.mode flag for whether you want 
friction at all (and if you do which approximation) and use that to determine 
whether to apply friction force or not? I mean it isn't physically correct as 
it is anyway, why make assumptions based on velocity?

Also, if you're willing to donate your code and if your approach is better 
than what I'm proposing is there any chance of including it in the core? Does 
the author ever check the list?

In any case having to approximate rolling friction as damping, not because 
you're not wiling to pay the computational price for it but because the 
library design won't let you, is not very good, not even acceptable in some 
cases (I assume it won't be enough for accurate pool physics simulation for 
example).

Dimitris P.


More information about the ODE mailing list