Projected Gauss Siedel solver. More...
#include <pinocchio/algorithm/pgs-solver.hpp>
Public Types | |
typedef ContactSolverBaseTpl< Scalar > | Base |
typedef _Scalar | Scalar |
typedef Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > | VectorXs |
Public Types inherited from ContactSolverBaseTpl< _Scalar > | |
typedef hpp::fcl::CPUTimes | CPUTimes |
typedef _Scalar | Scalar |
typedef hpp::fcl::Timer | Timer |
Public Member Functions | |
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. More... | |
Public Member Functions inherited from ContactSolverBaseTpl< _Scalar > | |
ContactSolverBaseTpl (const int problem_size) | |
Scalar | getAbsoluteConvergenceResidual () const |
Returns the value of the absolute residual value corresponding to the contact complementary conditions. | |
Scalar | getAbsolutePrecision () const |
Get the absolute precision requested. | |
CPUTimes | getCPUTimes () const |
int | getIterationCount () const |
Get the number of iterations achieved by the solver. | |
int | getMaxIterations () const |
Get the maximum number of iterations allowed. | |
int | getProblemSize () const |
Returns the size of the problem. | |
Scalar | getRelativeConvergenceResidual () const |
Returns the value of the relative residual value corresponding to the difference between two successive iterates (infinity norms). | |
Scalar | getRelativePrecision () const |
Get the relative precision requested. | |
void | setAbsolutePrecision (const Scalar absolute_precision) |
Set the absolute precision for the problem. | |
void | setMaxIterations (const int max_it) |
Set the maximum number of iterations. | |
void | setRelativePrecision (const Scalar relative_precision) |
Set the relative precision for the problem. | |
Protected Attributes | |
Timer | timer |
VectorXs | x |
Previous temporary value of the optimum. | |
VectorXs | x_previous |
Protected Attributes inherited from ContactSolverBaseTpl< _Scalar > | |
Scalar | absolute_precision |
Desired absolute precision. | |
Scalar | absolute_residual |
Absolule convergence residual value. | |
int | it |
Number of iterations needed to achieve convergence. | |
int | max_it |
More... | |
int | problem_size |
Size of the problem. | |
Scalar | relative_precision |
Desired relative precision. | |
Scalar | relative_residual |
Relative convergence residual value. | |
Timer | timer |
Projected Gauss Siedel solver.
Definition at line 16 of file pgs-solver.hpp.
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.
[in] | G | Symmetric PSD matrix representing the Delassus of the contact problem. |
[in] | g | Free contact acceleration or velicity associted with the contact problem. |
[in] | cones | Vector of conic constraints. |
[in,out] | x | Initial guess and output solution of the problem |
[in] | over_relax | Over relaxation value |