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

Struct describing the solution of the PGS constraint solver after calling the solve method. Also contains the warmstart of the solution to the constraint problem. More...

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

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

Public Types

typedef ConstraintSolverResultBase< SelfBase
 
typedef Eigen::Ref< const VectorXs > RefConstVectorXs
 
typedef _Scalar Scalar
 
typedef PGSSolverResultTpl Self
 
typedef Eigen::Matrix< Scalar, Eigen::Dynamic, 1, Options > VectorXs
 
typedef internal::EigenStorageTpl< VectorXs > VectorXsStorage
 

Public Member Functions

 PGSSolverResultTpl ()
 Default constructor.
 
 PGSSolverResultTpl (const PGSSolverResultTpl &other)
 Copy constructor.
 
void clearConstraintImpulseGuessImpl ()
 
void clearConstraintVelocityGuessImpl ()
 
int constraintSizeImpl () const
 
PGSSolverResultTploperator= (const PGSSolverResultTpl &other)
 Assignment operator.
 
void resetImpl ()
 
void resize (std::size_t problem_size_)
 Resize the primal/dual vectors of the solution.
 
template<typename VectorLike >
void retrieveConstraintImpulsesImpl (const Eigen::MatrixBase< VectorLike > &constraint_impulses_) const
 
template<typename VectorLike >
void retrieveConstraintVelocitiesImpl (const Eigen::MatrixBase< VectorLike > &constraint_velocities_) const
 
template<typename VectorLike >
void retrieveDualSolution (const Eigen::MatrixBase< VectorLike > &dual_solution_) const
 Retrieve dual solution.
 
template<typename VectorLike >
void retrievePrimalSolution (const Eigen::MatrixBase< VectorLike > &primal_solution_) const
 Retrieve primal solution.
 
template<typename VectorLike >
void setConstraintImpulseGuessImpl (const Eigen::MatrixBase< VectorLike > &impulse_guess_in)
 
template<typename VectorLike >
void setConstraintVelocityGuessImpl (const Eigen::MatrixBase< VectorLike > &)
 

Public Attributes

std::optional< RefConstVectorXs > impulse_guess
 Optional guess for the primal variable (impulses).
 
VectorXsStorage::RefMapType m_impulse_guess = m_impulse_guess_storage.map()
 
VectorXsStorage m_impulse_guess_storage
 Storage for the optional impulse guess.
 
std::size_t problem_size
 Size of primal/dual variables.
 
VectorXsStorage::RefMapType x = x_storage.map()
 
VectorXsStorage x_storage
 Primal solution. More...
 
VectorXsStorage::RefMapType y = y_storage.map()
 
VectorXsStorage y_storage
 Dual solution.
 

Static Public Attributes

static constexpr int Options = _Options
 

Detailed Description

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

Struct describing the solution of the PGS constraint solver after calling the solve method. Also contains the warmstart of the solution to the constraint problem.

Definition at line 232 of file pgs-solver.hpp.

Member Function Documentation

◆ constraintSizeImpl()

int constraintSizeImpl ( ) const
inline

Definition at line 288 of file pgs-solver.hpp.

◆ retrieveConstraintVelocitiesImpl()

void retrieveConstraintVelocitiesImpl ( const Eigen::MatrixBase< VectorLike > &  constraint_velocities_) const
inline

At the optimum we have y = Gx + g. WARNING: the PGS solver does not take into account desaxce terms for now. It only solves the CCP (not the NCP).

Definition at line 365 of file pgs-solver.hpp.

Member Data Documentation

◆ x_storage

VectorXsStorage x_storage

Primal solution.

Note
Order of storage/map declaration is important! First declare the storage, then the map, otherwise map will point to nothing.

Definition at line 402 of file pgs-solver.hpp.


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