[ODE] coulomb friction model?

Bob Dowland Bob.Dowland at blue52.co.uk
Thu Oct 21 18:38:08 MST 2004


>It's basically a tree of constraints, so maybe there's
some way to solve it after all. 

For sure (probably) ;) - I'd go straight to the robotics literature, in particular there are methods involving a mix of dynamics with topological structure (to get the dependencies right ie the right direction of propagation of energy/impulses) that may handle your setup quite naturally (and with linear complexity) a bit of googling should throw up some nice undergrad course that explains the rules - also check out Barraffs paper "...with Lagrange Multipliers..." (see his web site), also Featherstone's algorithm in his book "Robot Dynamics Algorithms". 

IMHO if the config of your system is fixed then I think your right not to try and run solely through ODE or any other "physics engine". Others may disagree but IMHO it's best not to lean to heavily on the physics engine which is best used for handling "transient" constraints "plausably" and at least as quickly as they would evolve in "reality" ie real-time. For fixed configurations you could probably get more mileage (speed and accuracy) from a configuration space approach (eg Lagrangian at least for frictionless), then concentrate on how to build a friction model around/into that - just my 1.8 cents there mind...

Best of luck!

:)


> -----Original Message-----
> From: Graham Fyffe [mailto:gfyffe at gmail.com]
> Sent: 21 October 2004 17:10
> To: Bob Dowland
> Cc: Nguyen Binh; ode at q12.org
> Subject: Re: [ODE] coulomb friction model?
> 
> 
> 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