This is not really directly related to car physics (other than that I'm
using Lagrange multipliers for resolving the constraints within my
suspension system) but I figured that somebody here would have had practical
experience of implementing such a system.
My vehicles consist of a hierarchy of rigid bodies connected by constraints
(hinges, springs etc). All of the litrature I've found describing Lagrange
multipliers assumes that you begin with a system of particles, and
constraints occur between 2 or more particles. I figured I could develop
this idea for use in my sim. In my system, the constraints occur at offsets
from the COM of the rigid bodies, so I can easily get the world space
position, velocity and acceleration of these points, and from then on treat
them as individual particles.
My question is this: Assume I have a particular rigid body, A, which is
jointed with 2 other rigid bodies, B and C. The joint position on A for the
A,B constraint is not the same as the joint position on A for the A,C
constraint. Lets call these two joints Jb and Jc. Now with the system I've
described above, these 2 joints would just be treated as seperate particles.
However, there's a third distance constraint that results from the fact that
Jb and Jc both lie on the same rigid body A. (ie the positions of Jb and Jc
must stay a fixed distance apart). Do I have to add in this constraint
explicitly, or will it just drop out of the system automatically (since any
force applied to Jb will also be applied Jc and vice-versa, due to the
definition of a rigid body)?
Adding these extra constraints explicitly is not a problem theoretically,
except that it could potentially increase the size of my Jacobian matrix
dramatically, which would obviously increase the computation time. Is this
the way to go for solving this system, or is there another technique that I
don't know about? Any help or links to online resources greatly appreciated.
Sorry for the OT post,
Mike.