Drake
ConstraintSolver< T >::MlcpToLcpData Struct Reference

Structure used to convert a mixed linear complementarity problem to a pure linear complementarity problem (by solving for free variables). More...

#include <drake/multibody/constraint/constraint_solver.h>

Collaboration diagram for ConstraintSolver< T >::MlcpToLcpData:
[legend]

## Public Attributes

Eigen::CompleteOrthogonalDecomposition< MatrixX< T > > delassus_QTZ
Decomposition of the Delassus matrix GM⁻¹Gᵀ, where G is the bilateral constraint matrix and M is the system generalized inertia matrix. More...

std::function< MatrixX< T >const MatrixX< T > &)> A_solve
A function pointer for solving linear systems using MLCP "A" matrix (see Velocity-level-MLCPs). More...

std::function< MatrixX< T >const MatrixX< T > &)> fast_A_solve
A function pointer for solving linear systems using only the upper left block of A⁺ in the MLCP (see Velocity-level-MLCPs), where A⁺ is a singularity-robust pseudo-inverse of A, toward exploiting operations with zero blocks. More...

## Detailed Description

### template<typename T> struct drake::multibody::constraint::ConstraintSolver< T >::MlcpToLcpData

Structure used to convert a mixed linear complementarity problem to a pure linear complementarity problem (by solving for free variables).

## Member Data Documentation

 std::functionconst MatrixX&)> A_solve

A function pointer for solving linear systems using MLCP "A" matrix (see Velocity-level-MLCPs).

 Eigen::CompleteOrthogonalDecomposition > delassus_QTZ

Decomposition of the Delassus matrix GM⁻¹Gᵀ, where G is the bilateral constraint matrix and M is the system generalized inertia matrix.

 std::functionconst MatrixX&)> fast_A_solve

A function pointer for solving linear systems using only the upper left block of A⁺ in the MLCP (see Velocity-level-MLCPs), where A⁺ is a singularity-robust pseudo-inverse of A, toward exploiting operations with zero blocks.

For example:

A⁺ | b |
| 0 |

and

A⁺ | B |
| 0 |


where b ∈ ℝⁿᵛ is an arbitrary vector of dimension equal to the generalized velocities and B ∈ ℝⁿᵛˣᵐ is an arbitrary matrix with row dimension equal to the dimension of the generalized velocities and arbitrary number of columns (denoted m here).

The documentation for this struct was generated from the following file: