The contact force problem generated by Jinngine is ultimately a non-linear complementarity problem. In fact, when disregarding the coupling between friction forces and normal forces, the problem becomes a mixed linear complimentarity problem, or MLCP for short. The MLCP is on the form
Given the matrix A, the vector b, and the solution limit vectors l and u, Find x, such that
w = A x + b
where
if x_i=u_i then w_i<=0
if x_i in (l_i,u_i) then w_i = 0
if x_i=l_i then w_i>=0
A is the matrix J M^(-1) J^T which describes constraint relations, and b is the vector of desired change in velocities.
This problem class can model normal-component contact forces and various joint types. The reason why this becomes a NCP when contact friction is introduced, is that we allow u and l to depend on the magnitude of some x_i vales, namely the x_i's that represent normal contact forces, so
l_i = -|mu * x_j| and u_i = |mu*x_j|
where i is the index of a friction constraint, j is the index of the normal force, and mu is the friction coefficient. constraint to which the friction constraint is coupled. This coupling is done to model an approximation to Coulomb's law of friction.
|
|
|
|