Advertisement

Joints, resting contact, and friction

Started by September 04, 2002 03:04 AM
0 comments, last by Eric 22 years, 5 months ago
I have a basic rigid body simulator working, and now I''d like to add joints, resting contact, and friction. This is all 2D, by the way. For joints, I just need to support a bilateral constraint, i.e., keeping a point on one body fixed to a line on another body. To satisfy bilateral constraints, I just need to solve a system of linear equations involving the magnitude of the constraint forces (right?). To resolve a collision, I think I''ll have to solve a similar system involving impulse magnitudes, although I haven''t found any literature on this. Resting contact is a unilateral constraint and looks to be more complicated. The best/easiest "exact" solution I''ve seen is one by Baraff that involves a math trick called pivoting. However, this is still a little too complicated for me, particularly with the inclusion of friction. I''m also worried that any exact solution will be too slow... I want to be able to handle lots (25-50) of objects piled on top of each other. So, I''m leaning towards a penalty force solution. However, I haven''t found a detailed description of any implemenations of penalty forces. Regarding friction, this is closely tied to resting contact. I want static friction to work properly, so that, for example, a mechanical arm could pick up an object without the object gradually slipping. (My game concept is basically a "virtual erector set", so these details are important.) Any suggestions on this stuff? Any good links for penalty forces?
The Baraff papers are classic references for constrained geometry. Penalty methods are easy to implement, but probably aren''t going to be a good idea. They are very susceptible to numerical stability problems.

Search the forum archives for "Baraff" and that should lead you to a number of links.

Graham Rhodes
Senior Scientist
Applied Research Associates, Inc.
Graham Rhodes Moderator, Math & Physics forum @ gamedev.net

This topic is closed to new replies.

Advertisement