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