Friction Cone

Started by
11 comments, last by cristi-t 19 years, 8 months ago
Airo:
Alk:
l and k are contact indices, while i and j are body indices. Alk means "effect of contact k on contact l". Each contact has two body indices, i and j. For example:
mik means mass of body i in contact k;
vector noted rkik means the vector from "point of contact k" to "center of mass of body i in contact k";
(rabc = vector from point of contact a, to center of mass of body b in contact c).

LCP:
For the LCP solver read "Baraff - Fast Contact Force Computation". I implemented it from there, but without friction.

IInv:
You also need IInv (I superscript -1, the inverse of I). This is computed each frame as IInv = R * IBodyInv * RT. IBodyInv (and IBody) is constant and it's computed only once before simulation starts.

Cristian
Advertisement
thanks the subscripts make more sense now.

yes, i've read how baraff solved the lcp. i have not tried to implement it because i'm still trying to design a contact detection system that work for various primitive shapes. other problem is how to write the matrix class efficiently and how to deal with floating point inaccuracies.

IBodyInv, oops my mistake, i meant this in the equation.

my question was, will it change when the body is in contact or not?

see diagram 6 of the website below
http://physics.uwstout.edu/StatStr/statics/Beams/bdsn47a.htm

i think the parallel axis theorem has to be used but i can't remember it being mentioned in the papers i've read, f.e. baraffs lecture notes.
Quote:Original post by Airo
my question was, will it change when the body is in contact or not?

see diagram 6 of the website below
http://physics.uwstout.edu/StatStr/statics/Beams/bdsn47a.htm

i think the parallel axis theorem has to be used but i can't remember it being mentioned in the papers i've read, f.e. baraffs lecture notes.


For primitives you have formulas that give you the moment of inertia, you don't have to compute it like the general case. For example, for a parallelepiped:
http://scienceworld.wolfram.com/physics/MomentofInertiaRectangularParallelepiped.html
(Note that this is IBody, you need to invert it to get IBodyInv)

IBodyInv never changes. IInv however does change at every time step. It depends on position of the body so you have to compute it every time step as IInv = R*IBodyInv*RT. (During the time step IInv is of course constant.)

Cristian

This topic is closed to new replies.

Advertisement