[ODE] coulomb friction model?

Graham Fyffe gfyffe at gmail.com
Thu Oct 21 13:09:56 MST 2004


Thanks for the info, guys!  Actually, I don't need non-penetration
constraints.  I'm simulating the internals of a drivetrain, so
everything is essentially fixed in place.  The only state variables
are the angular velocities of each part, which only rotate along one
axis so they're just one-dimensional quantities.  Unfortunately, from
what I can decypher from Baraff's papers, everybody uses 2-body joints
for precisely the same reason that logic people try to use 2-variable
clauses in their satisfiability problems.  2-SAT is solvable in linear
time, just like 2-body joints are.  But once you get 3 or more
variables related by a constraint, the problem gets exponentially
harder.

Still, I am hopeful for several reasons.  1) my system contains no
closed loops.  It's basically a tree of constraints, so maybe there's
some way to solve it after all.  2) my system is fixed, and doesn't
have too many variables.  I'm not trying to solve general physical
systems here, so maybe even if I use an exponential algorithm I could
hard code it and optimize the heck out of it.  3) I've seen so many
real-time drivetrain simulations, there must be some way to do it!  :)

- Graham


On Thu, 21 Oct 2004 16:57:34 +0100, Bob Dowland
<bob.dowland at blue52.co.uk> wrote:
> (Apologies for the double posting Nguyen - just my outlook skills! erhh, I lost them round here somewhere.. ;)
> 
> <actual post>
> 
> Graham,
> 
> For another ref there is David Eberley's "Game Physics". There is quite a full discussion in there on the details of how the A_ij and b_i terms are formulated, there is also something in the SIGGRAPH tutorial, "Physically based modelling,.." on precisely this - although there were a couple of small errors in the code when I last looked at it.
> 
> Not much (IIRC) on friction in either of those two I'm afraid but both awfully helpful if you want to get those non-pen constraints working as a first pass - I get the feeling you are also working on that right? If so, bear in mind that solving for the reaction forces is a good place to start.
> 
> Note that the problem of formulating ie setting up that "system matrix" etc and the problem of selecting a solution from the space of all possible answers are distinct/separate issues. My advice would be to RM&ID as many approaches as poss especially if you're writing an engine. Even if you can do better than the Cottle-Dantzig algo - it's worth taking some time (if you have it) to study (ie implement and watch it go). But be prepared to put some time in looking at results and thinking about ways to detect/recover when its producing garbage.
> 
> :)
> 
> Bob.
> 
> 
> 
> 
> > -----Original Message-----
> > From: Nguyen Binh [mailto:ngbinh at gmail.com]
> > Sent: 21 October 2004 05:20
> > To: Graham Fyffe
> > Cc: ode at q12.org
> > Subject: Re: [ODE] coulomb friction model?
> >
> >
> > On Wed, 20 Oct 2004 16:06:23 -0300, Graham Fyffe
> > <gfyffe at gmail.com> wrote:
> > > Hi all!  I'm trying to use a coulomb friction model for my own
> > > simulation stuff.  I am in the middle of decyphering Baraff's paper
> > > and website, where he prescribes using a modified Dantzig method of
> > > sorts.  My question is, what algorithm does ODE use?
> >
> >     Hi-low Dantzig on Step (normal)
> >     a sort of iterative on StepFast (obsolete now, IMHO)
> >     Better Iterative (K. Murty) in QuickSep(recommended)
> >
> >     All the meterials in Barraff paper seems to archaic now. I don't
> > know any modern physics lib use it now.
> >
> > > I've tried
> > > parsing through the step.cpp file, but I can't extract the
> > algorithm.
> >
> >     I will be surprised if you could find the algorithm at
> > first read. :)
> >
> > > There seem to be optimizations based on the two-body joints
> > that mask
> > > the true meaning to me.  I've read about the jacobians and
> > matrices in
> > > the joints how-to document as well, but it is very light on what
> > > actually goes into the matrix in order to handle the "max force"
> > > properties of friction.  I've also red Russ's articles on
> > the subject
> > > in the Games Programming Gems books, but again it is light
> > on details
> > > about how to construct the matrix.  Can anybody help me out?
> >
> >    The thing Russ wrote in GPG is just how to create a joint.So it's a
> > bit cryptic.
> >
> > > BTW, I'm not using ODE for this project because the model is very
> > > simple; I only care about angular velocities of some parts and the
> > > rest of the system is totally fixed.  Also, ODE is unusable for it
> > > because I have linear constraints involving up to 5 of the bodies,
> > > whereas ODE only supports 2 :(
> >
> >    Hmmm..... IMHO no physical simulation libary exists now use more
> > than 2 bodies constraints. All the 5 bodies constraints must be
> > converted to 2 bodies-constraints system.
> >
> > --
> > Nguyen Binh
> > www.glassegg.com
> > _______________________________________________
> > ODE mailing list
> > ODE at q12.org
> > http://q12.org/mailman/listinfo/ode


More information about the ODE mailing list