$darkmode
pinocchio 4.0.0
A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
ADMMConstraintSolverTpl< _Scalar, _Options > Struct Template Reference

ADMM constraint solver. More...

#include <pinocchio/algorithm/solvers/admm-solver.hpp>

Inheritance diagram for ADMMConstraintSolverTpl< _Scalar, _Options >:
Collaboration diagram for ADMMConstraintSolverTpl< _Scalar, _Options >:

Public Types

typedef internal::ADMMLinearUpdateRuleTpl< Scalar > ADMMLinearUpdateRule
 
typedef internal::ADMMOSQPUpdateRuleTpl< Scalar > ADMMOSQPUpdateRule
 
typedef ADMMSolverResultTpl< Scalar, Options > ADMMSolverResult
 
typedef ADMMSolverSettingsTpl< Scalar > ADMMSolverSettings
 
typedef ADMMSolverStatsTpl< Scalar > ADMMSolverStats
 
typedef internal::ADMMSolverWorkspaceTpl< Scalar, Options > ADMMSolverWorkspace
 
typedef internal::ADMMSpectralUpdateRuleTpl< Scalar > ADMMSpectralUpdateRule
 
typedef internal::ADMMUpdateRuleContainerTpl< Scalar > ADMMUpdateRuleContainer
 
typedef ConstraintSolverBase< SelfBase
 
typedef const Eigen::Ref< const VectorXs > ConstRefVectorXs
 
typedef Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic, Options > MatrixXs
 
typedef Eigen::Ref< const VectorXs > RefConstVectorXs
 
typedef Eigen::Ref< VectorXs > RefVectorXs
 
typedef _Scalar Scalar
 
typedef ADMMConstraintSolverTpl Self
 
typedef Eigen::Matrix< Scalar, Eigen::Dynamic, 1, Options > VectorXs
 

Public Member Functions

 ADMMConstraintSolverTpl (std::size_t max_problem_size=0)
 Default constructor. More...
 
bool isValid () const
 Returns true if solver is in a valid state (it has solved a constraint problem). If so, its stats are valid.
 
void resetImpl ()
 
template<typename DelassusDerived , typename VectorLike , typename ConstraintModel , typename ConstraintModelAllocator , typename ConstraintData , typename ConstraintDataAllocator >
bool solveImpl (DelassusOperatorBase< DelassusDerived > &delassus, const Eigen::MatrixBase< VectorLike > &g, const std::vector< ConstraintModel, ConstraintModelAllocator > &constraint_models, const std::vector< ConstraintData, ConstraintDataAllocator > &constraint_datas, const ADMMSolverSettings &settings, ADMMSolverResult &result)
 

Public Attributes

ADMMSolverStats stats
 Per-iteration stats of the ADMM solver.
 

Static Public Attributes

static constexpr int Options = _Options
 

Static Protected Member Functions

template<typename DelassusDerived >
static Scalar computeDelassusLargestEigenvalue (const DelassusOperatorBase< DelassusDerived > &delassus, ADMMSolverWorkspace &workspace)
 Compute largest eigen value of delassus.
 
template<typename DelassusDerived , typename VectorLike , typename ConstraintModel , typename ConstraintModelAllocator , typename ConstraintData , typename ConstraintDataAllocator >
static void retrievePrimalDualGuess (DelassusOperatorBase< DelassusDerived > &delassus, const Eigen::MatrixBase< VectorLike > &g, const std::vector< ConstraintModel, ConstraintModelAllocator > &constraint_models, const std::vector< ConstraintData, ConstraintDataAllocator > &constraint_datas, const ADMMSolverSettings &settings, const ADMMSolverResult &result, ADMMSolverWorkspace &workspace)
 Retrieve primal and/or dual guesses from settings and result's warmstarts.
 
template<typename DelassusDerived >
static void retrieveRhoGuess (const DelassusOperatorBase< DelassusDerived > &delassus, const ADMMSolverSettings &settings, const ADMMSolverResult &result, ADMMSolverWorkspace &workspace)
 Retrieve rho parameters guesses from settings and result's warmstarts.
 

Protected Attributes

bool m_is_valid
 Flag to check whether or not the solver is in a reset state. If not, its stats are valid.
 
ADMMSolverWorkspace m_workspace
 Workspace of the ADMM solver. This is an internal of the solver and is not meant to be accessed by users.
 

Detailed Description

template<typename _Scalar, int _Options>
struct pinocchio::ADMMConstraintSolverTpl< _Scalar, _Options >

ADMM constraint solver.

The solver solves the following CPP/NCP problem: min_x x^T G x + g s.t. x \in C, where G is the delassus matrix, g is the constraint velocities without any constraint forces acting on the system and C are the constraint sets. If the g term is augmented with the DeSaxce term, the problem becomes an NCP.

Definition at line 120 of file admm-solver.hpp.

Constructor & Destructor Documentation

◆ ADMMConstraintSolverTpl()

ADMMConstraintSolverTpl ( std::size_t  max_problem_size = 0)
inlineexplicit

Default constructor.

Note
The user can give max_problem_size to preallocate maximum problem sizes data. This is optional and the solver will automatically resize its workspace to handle the constraint problem thrown at it. If the solver encounters a problem which size is bigger than max_problem_size, it will automatically resize its internals as well as the result output of solve.
Parameters
[in]max_problem_sizemaximum problem size (before automatic reallocation)

Definition at line 156 of file admm-solver.hpp.


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