[ODE] Friction trouble, possibly a bug? ( was: problem with dBodyAddRelForce. help, I'm desperate )

asko asko at jetti.org
Fri Aug 1 19:02:01 2003


This is a multi-part message in MIME format.

------=_NextPart_000_0044_01C3589C.282FCE70
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Hey,

To me it seems like this problem isn't catching enough attention. And I
believe this is mainly because many people are not understanding what
the problem really is.


So I decided to make this little video which pretty much demonstrates
the problem in action:
http://www.jetti.org/asko/friction_trouble_divx.avi=20

It's 4.19 MB and as the name says, its encoded with Divx:
http://www.divx.com/divx=20


And a little explanation:
---------------------------------
There are two exactly same kind of boxes, both heading 30 degrees left =
from
Z-axis. Before each world-step, a negative force is added to the box's =
Z-axis.

Only difference between the two boxes is that the left one is affected
by friction, and the right one is not.

As you can see from the video, the frictionless box follows the path =
marked
on the ground just as expected, while the box affected by friction does =
not.

The more friction is involved, the less correct the path is. However, =
this whole
problem only appears when the box is heading to a direction other than =
n*45.
So if the box heading to 0, 45, 90, 135, 180, 225, 270 or 315 it'll work =
as
expected.

The weird thing is that I have been using ODE for about a year now and I =
haven't
noticed this thing before. That too might suggest that it's actually a =
bug ( maybe
appeared after something else was fixed ) instead of just me screwing =
something
up.

It would be very nice if anyone could try to recreate this in their app =
and tell me if
this really is a bug or something else instead.



----- Original Message -----=20
>From: Troy Chard=20
>To: ode@q12.org=20
>Sent: Thursday, July 31, 2003 3:50 AM
>Subject: Re: [ODE] Re: problem with dBodyAddRelForce. help, I'm =
desperate
>
>Hi asko,
>
>Thanks for the reply.  This would seem to verify that something is =
wonked with friction
>somewhere if we both getting same problem.
>Or we both doing something wrong in our code but i doubt it.  You =
deduced friction by
>setting it to 0.  I deduced friction by floating box off ground and =
testing in zero g.
>
>I'm thinking this is a little of the beaten track for ode usage.  For =
now I think I'm going
>to go with a different approach involving angular motors.  =
Alternatively I suppose I could
>set friction to 0 and use a dampener on the forces involved.
>
>Thanks again for reply.
>
>Troy
>
>
>
>At 08:41 PM 7/28/03 +0300, you wrote:
>>Hey,
>>
>>I saw your post in the mailing list archive and I'm amazed by the fact =

>>that I ran in to this exact same problem about the same time you sent =
the mail.
>>
>>I'm making a raycast car and this thing seems like the only problem =
left=20
>>to solve. I'm using the raycasts for creating contact joints and for=20
>>steering/driving im directly adding forces to the chassis.
>>
>>Seems that when the chassis is heading at some other angle than n*45 =
and a=20
>>force is added to the Z-axis, the chassis will not actually move along =

>>it's relative Z-axis, instead (pretty much) along the closest n*45=20
>>direction. I also tried directly changing the linear velocity, but =
seems=20
>>that the situation is exactly same that way.
>>
>>After playing around with the contact parameters, I came to the =
conclusion=20
>>that the problem is actually somewhere in the friction model. None of=20
>>these problems appear when friction is set to 0.
>>
>>However that isn't much of a solution, at least not for me. So I'm all =

>>ears for suggestions.
------=_NextPart_000_0044_01C3589C.282FCE70
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2800.1170" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff background=3D"">
<DIV><FONT face=3DArial size=3D2>Hey,</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>To me it seems like this problem isn't =
catching=20
enough attention. And I</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>believe this is mainly because many =
people are not=20
understanding what</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>the problem really is.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2><BR>So I decided to make this little =
video which=20
pretty much demonstrates<BR>the problem in action:<BR></FONT><A=20
href=3D"http://www.jetti.org/asko/friction_trouble_divx.avi"><FONT =
face=3DArial=20
size=3D2>http://www.jetti.org/asko/friction_trouble_divx.avi</FONT></A><F=
ONT=20
face=3DArial size=3D2> <BR><BR>It's 4.19 MB and as the name says, its =
encoded with=20
Divx:<BR></FONT><A href=3D"http://www.divx.com/divx"><FONT face=3DArial=20
size=3D2>http://www.divx.com/divx</FONT></A><FONT face=3DArial size=3D2> =

<BR></DIV></FONT>
<DIV><FONT face=3DArial size=3D2><BR>And a little =
explanation:</FONT></DIV>
<DIV><FONT face=3DArial =
size=3D2>---------------------------------<BR>There are two=20
exactly same kind of boxes, both heading 30 degrees left =
from</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>Z-axis. Before each world-step, =
a&nbsp;negative=20
force is added to the </FONT><FONT face=3DArial size=3D2>box's =
Z-axis.</FONT></DIV>
<DIV><FONT face=3DArial><FONT size=3D2><FONT face=3DArial=20
size=3D2></FONT></FONT></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Only difference between the two boxes =
is that=20
the&nbsp;left one&nbsp;is affected</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>by friction, and the&nbsp;right =
one&nbsp;is=20
not.<BR></FONT><FONT face=3DArial size=3D2></FONT></DIV>
<DIV><FONT face=3DArial size=3D2>As you can see from the video,=20
the&nbsp;frictionless&nbsp;box follows the path marked</FONT></DIV>
<DIV><FONT face=3DArial><FONT size=3D2>on t<FONT>he ground just as =
expected, while=20
the&nbsp;box affected by friction does not.</FONT></FONT></FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>The more friction is involved, the less =
correct the=20
path is. However, this whole</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>problem </FONT><FONT face=3DArial =
size=3D2>only appears=20
when the box is heading to a direction other than n*45.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>So if </FONT><FONT face=3DArial =
size=3D2>the=20
box&nbsp;heading to 0, 45, 90, 135, 180, 225, 270 or 315 it'll work=20
as</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>expected.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT><FONT face=3DArial =
size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>The weird thing is that I have been =
using ODE for=20
about a year now&nbsp;and I haven't</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>noticed this thing before. That too =
might suggest=20
that it's&nbsp;actually a bug ( maybe</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>appeared after something else was fixed =
) instead=20
</FONT><FONT face=3DArial><FONT size=3D2>of just me screwing=20
something</FONT></FONT></DIV>
<DIV><FONT face=3DArial><FONT size=3D2>up.</FONT></FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT><FONT face=3DArial =
size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>It would be very nice if =
anyone&nbsp;could&nbsp;try=20
to recreate this in&nbsp;their app and tell me if</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>this </FONT><FONT face=3DArial =
size=3D2>really is a bug=20
or something else instead.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial><FONT size=3D2><FONT face=3DArial =
size=3D2></FONT><FONT=20
face=3DArial size=3D2></FONT></FONT></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>----- Original Message ----- =
<BR>&gt;From: Troy=20
Chard <BR>&gt;To: ode@q12.org <BR>&gt;Sent: Thursday, July 31, 2003 3:50 =

AM<BR>&gt;Subject: Re: [ODE] Re: problem with dBodyAddRelForce. help, =
I'm=20
desperate</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>&gt;<BR></FONT><FONT face=3DArial =
size=3D2>&gt;Hi=20
asko,<BR>&gt;<BR>&gt;Thanks for the reply.&nbsp; This would seem to =
verify that=20
something is wonked with friction<BR>&gt;somewhere if we both getting =
same=20
problem.</FONT><FONT face=3DArial size=3D2><BR>&gt;Or we both doing =
something wrong=20
in our code but i doubt it.&nbsp; You deduced friction by<BR>&gt;setting =
it to=20
0.&nbsp; I deduced friction by floating box off ground and testing in =
zero=20
g.<BR>&gt;<BR>&gt;I'm thinking this is a little of the beaten track for =
ode=20
usage.&nbsp; For now I think I'm going<BR>&gt;to go with a different =
approach=20
involving angular motors.&nbsp; Alternatively I suppose I =
could<BR>&gt;set=20
friction to 0 and use a dampener on the forces =
involved.<BR>&gt;<BR>&gt;Thanks=20
again for reply.<BR>&gt;<BR>&gt;Troy<BR>&gt;<BR>&gt;<BR>&gt;<BR>&gt;At =
08:41 PM=20
7/28/03 +0300, you wrote:<BR>&gt;&gt;Hey,<BR>&gt;&gt;<BR>&gt;&gt;I saw =
your post=20
in the mailing list archive and I'm amazed by the fact <BR>&gt;&gt;that =
I ran in=20
to this exact same problem about the same time you sent the=20
mail.<BR>&gt;&gt;<BR>&gt;&gt;I'm making a raycast car and this thing =
seems like=20
the only problem left <BR>&gt;&gt;to solve. I'm using the raycasts for =
creating=20
contact joints and for <BR>&gt;&gt;steering/driving im directly adding =
forces to=20
the chassis.<BR>&gt;&gt;<BR>&gt;&gt;Seems that when the chassis is =
heading at=20
some other angle than n*45 and a <BR>&gt;&gt;force is added to the =
Z-axis, the=20
chassis will not actually move along <BR>&gt;&gt;it's relative Z-axis, =
instead=20
(pretty much) along the closest n*45 <BR>&gt;&gt;direction. I also tried =

directly changing the linear velocity, but seems <BR>&gt;&gt;that the =
situation=20
is exactly same that way.<BR>&gt;&gt;<BR>&gt;&gt;After playing around =
with the=20
contact parameters, I came to the conclusion <BR>&gt;&gt;that the =
problem is=20
actually somewhere in the friction model. None of <BR>&gt;&gt;these =
problems=20
appear when friction is set to 0.<BR>&gt;&gt;<BR>&gt;&gt;However that =
isn't much=20
of a solution, at least not for me. So I'm all <BR>&gt;&gt;ears for=20
suggestions.</FONT></DIV></BODY></HTML>

------=_NextPart_000_0044_01C3589C.282FCE70--