Template Struct PGSContactSolverTpl

Inheritance Relationships

Base Type

Struct Documentation

template<typename _Scalar>
struct PGSContactSolverTpl : public pinocchio::ContactSolverBaseTpl<_Scalar>

Projected Gauss Siedel solver.

Public Types

typedef _Scalar Scalar
typedef ContactSolverBaseTpl<Scalar> Base
typedef Eigen::Matrix<Scalar, Eigen::Dynamic, 1> VectorXs

Public Functions

inline explicit PGSContactSolverTpl(const int problem_size)
template<typename MatrixLike, typename VectorLike, typename ConstraintAllocator, typename VectorLikeOut>
bool solve(const MatrixLike &G, const Eigen::MatrixBase<VectorLike> &g, const std::vector<CoulombFrictionConeTpl<Scalar>, ConstraintAllocator> &cones, const Eigen::DenseBase<VectorLikeOut> &x, const Scalar over_relax = Scalar(1))

Solve the constrained conic problem composed of problem data (G,g,cones) and starting from the initial guess.

Parameters:
  • G[in] Symmetric PSD matrix representing the Delassus of the contact problem.

  • g[in] Free contact acceleration or velicity associted with the contact problem.

  • cones[in] Vector of conic constraints.

  • x[inout] Initial guess and output solution of the problem

  • over_relax[in] Over relaxation value

Returns:

True if the problem has converged.

Protected Attributes

VectorXs x

Previous temporary value of the optimum.

VectorXs x_previous