solving constraints: theoretical background?

emiller
Posts: 1
Joined: Fri Aug 17, 2007 10:54 pm

solving constraints: theoretical background?

Post by emiller »

Hello!

I am evaluating the possibilities of Bullet Physics, and I would like to understand how the integration of the physics equations with constraints is done. As far as I understand, algorithms for differential algebraic equation (DAE) systems are used.

Does some documentation exist, how physical constraints are translated into DAEs, and how these DAEs are solved? Or, how do you translate the DAEs into ordinary differential equations (ODEs)?

A description of Bullet Physics' approach would be perfect, but any other explanation that provides a reasonable (not too much) amount of theory, is fine.

Thanks
Edi
User avatar
Erwin Coumans
Site Admin
Posts: 4221
Joined: Sun Jun 26, 2005 6:43 pm
Location: California, USA

Post by Erwin Coumans »

Bullet solves velocity and positional (penetration) constraints using an iterative approach. Iteratively reducing the constraint error is also known as Relaxation.

More formal: the constraint problem is a linear complementarity problem (LCP), and the iterative solution Bullet, ODE quickstep and many other physics engines se is known as projected Gauss Seidel (PGS), or successive over relaxation (SOR) (PGS versus SOR depends on the value of some parameter w). Bullet's iterative pair-wise constraint solving is an implementation of PGS/SOR.

Check out chapter 6 of Kenny Erleben's PhD thesis, or Erin Catto's / gphysics papers in this topic: http://www.continuousphysics.com/Bullet ... c.php?t=63
or just browse this forum a bit more.

Hope this helps,
Erwin