Drake
Drake C++ Documentation
ConstraintSolver< T >::MlcpToLcpData Struct Reference

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).

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

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...
 

Member Data Documentation

◆ A_solve

std::function<MatrixX<T>const MatrixX<T>&)> A_solve

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

◆ delassus_QTZ

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.

◆ fast_A_solve

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.

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: