[ODE] Values required to produce at least semi-realisticfrictionusing the default constant-force-limit model?

Ed Jones ed.jones at oracle.com
Tue Mar 16 11:38:59 MST 2004


Yes, spheres roll off into the distance because ODE doesn't implement 
rolling friction or air resistance.

I would argue that this is too application specific to implement within 
ODE itself and I wouldn't think you'd want to necessarily do it in your 
collision callback. You just apply damping forces to your objects when 
you're applying all the other forces, as simple as what's in the FAQ. 
The complex bit is determining what those damping forces should be, 
depending on the cross-sectionmal area of your object relative to its 
direction of travel, whether your spehere is rolling over steel or 
grass, etc.

Static vs. Dynamic friction is a different thing. As I understand it 
static friction "holds things in place" and is typically much (?) higher 
than dynamic friction which tries to "slow things down" that are sliding 
over each other. You can see this in Formula 1 cars, as long as they're 
not sliding then the tyre is in static friction contact with the track 
and there's loads of grip, as soon as they start sliding you then get 
into dynamic friction territory which is (relatively) much lower and you 
spin out, or if you're trying to get off the line you spin your wheels 
and don't go anywhere. At least that's how I understand it. And this (I 
think) is what the FDS stuff in the contact joint attempts to simulate.

Cheers,
Ed.


Megan Fox wrote:

>I did read the faq, but concluded that the manual friction mentioned there
>was, as someone else said, something more for the emulation of air friction,
>with surface friction already being taken care of.
>
>... but anyways, to that end...
>
>Can anyone describe how they've handled this in their engine?  For the
>moment, I'm thinking the best solution might be to apply the drag
>coefficient inside the collision callback (or further "inside" the engine if
>possible, though I haven't looked at the internals yet) - grab the current
>velocity of the objects and reduce them each by the average of the two
>object's friction values, or somesuch thing?  Or maybe this isn't such a
>great idea?
>
>Thanks for any assitance in this,
>
>-Megan Fox
>
>  
>
>>As far as I can tell, ODE's friction value is used only to
>>determine whether
>>or not something starts to move when gravity, or another force,
>>acts upon it
>>(static or "starting" friction).  What you're asking for is dynamic
>>friction, which is the force that must be overcome to maintain
>>steady motion
>>of one body in contact with another.
>>
>>And I agree -- ODE should be handling this for us, ideally.  (Says the guy
>>with neither the math 'leetness nor the motivation to add it himself. :)
>>
>>When someone runs the test_boxstack demo and sees spheres zooming
>>losslessly
>>off into the distance at warp 9, their first conclusion is that
>>ODE is lame
>>and broken.  Fortunately, I read the FAQ before I concluded that,
>>but a lot
>>of people don't.  I imagine that a general implementation of dynamic
>>friction isn't as simple and generic as we're assuming it is, or Russ
>>would've already added it just to save himself the "This thing is full of
>>bugs" comments that show up every so often on the list.
>>    
>>
>
>_______________________________________________
>ODE mailing list
>ODE at q12.org
>http://q12.org/mailman/listinfo/ode
>  
>




More information about the ODE mailing list