|
Eigen::SparseMatrix< double, Eigen::RowMajor, ptrdiff_t > | H |
| The matrix \(\mathbf{H}\), which is a matrix of size \(c\times n\) that converts from the \(n\) degrees of freedom in the system (i.e., the sum of all the DOF over all the representations in the scene), to the \(c\) degrees of freedom summed over all the constraints being applied to the system. More...
|
|
Matrix | CHt |
| The matrix \(\mathbf{C\;H^T}\), which is a matrix of size \(n\times c\) that is used to convert the vector of \(c\) constraint forces to the \(n\) displacements of each degree of freedom of the system. More...
|
|
Matrix | A |
| Matrix \(\mathbf{A}\) used to describe the mixed LCP problem.
|
|
Vector | b |
| Vector \(b\) used to describe the mixed LCP problem.
|
|
Vector | mu |
| A vector of friction coefficients used to describe the mixed LCP problem. More...
|
|
std::vector< MlcpConstraintType > | constraintTypes |
| A vector of constraint types used to describe the mixed LCP problem. More...
|
|
A description of a physical mixed LCP system to be solved.
This extends the pure mathematical MLCP problem by storing the intermediate matrices H and CHt that are necessary to physically interpret the solution.
Note that the matrix \(\mathbf{A}\) used in the MlcpProblem is computed in the physical problem as \(\mathbf{H\;C\;H^T}\), where \(\mathbf{C}\) is the compliance matrix. For contact constraints, \(b\) is the initial signed displacements between the colliding representations, \(b_i \lt 0\) when the representations interpenetrate, \(x\) is the forces to apply at each contact to prevent penetration, and \(c\) is the signed displacements after the forces are applied.
- Note
- The solution to the MLCP will only address the constraints that were provided, and application of \(x\) to the representations in the scene may cause new collisions for constraints that were not originally incorporated in the MLCP.
- See also
- SurgSim::Math::MlcpProblem
Eigen::SparseMatrix<double, Eigen::RowMajor, ptrdiff_t> SurgSim::Physics::MlcpPhysicsProblem::H |
The matrix \(\mathbf{H}\), which is a matrix of size \(c\times n\) that converts from the \(n\) degrees of freedom in the system (i.e., the sum of all the DOF over all the representations in the scene), to the \(c\) degrees of freedom summed over all the constraints being applied to the system.
It is used to convert the vector of \(n\) displacements of each degree of freedom of the system to the vector of \(c\) displacements of each degree of freedom of the constraints. Given a set of constraints \(\mathbf{G}(t, \mathbf{x})\), then \(\mathbf{H} = \frac{d \mathbf{G}}{d \mathbf{x}}\) (i.e., the constraints' tangential space).