[ODE] rolling contact force

Erin Catto erincatto at sbcglobal.net
Sat Oct 2 23:52:02 MST 2004


I suspect for most people damping is good enough, but your idea is
interesting.

A more intuitive solution might be to use two rotational constraints with
torque limits. For example:

g1 = dot(normal, tangent1) = 0
g2 = dot(normal, tangent2) = 0

Take the normal to be fixed in body 2 and the tangents fixed in body 1. Then
the angular Jacobian for is found from:

d(g1)/dt = dot(normal, cross(omega1, tangent1))
         + dot(cross(omega2,normal), tangent1)
d(g2)/dt = dot(normal, cross(omega1, tangent2))
         + dot(cross(omega2,normal), tangent2)

Then tune the Lagrange multiplier limits to be based on the threshold torque
for rolling. You can leave the constraints in place during rolling for the
full effect. Curiously, the object will roll easier in some directions than
others, due to the pyramid approximation.

Erin

-----Original Message-----
From: ode-bounces at q12.org [mailto:ode-bounces at q12.org] On Behalf Of Alen
Ladavac
Sent: Thursday, September 30, 2004 1:23 AM
To: ODE mailing list
Subject: Fw: [ODE] rolling contact force

Gerard, it's in the FAQ, in Twiki, in community section on the ODE website.
You are supposed to use damping for that because real rolling friction is
not implemented.

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

> ----- Original Message -----
> From: gerard cherrier
> To: ode at q12.org
> Sent: Wednesday, September 29, 2004 07:23
> Subject: [ODE] rolling contact force
>
>
> bonjour,
> I'm trying to set for a rolling contact (with no slide) an opposite
rolling
> force
> at the contact point.( for example : to stop a free rolling sphere on an
> horizontal plane)
> Is there flags to do this in both directions ? what are there ?
> thank you
>
>
>
>
> _______________________________________________
> ODE mailing list
> ODE at q12.org
> http://q12.org/mailman/listinfo/ode
>

_______________________________________________
ODE mailing list
ODE at q12.org
http://q12.org/mailman/listinfo/ode




More information about the ODE mailing list