pinocchio 4.1.0
A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
Loading...
Searching...
No Matches
ADMMSolverResultTpl< _Scalar, _Options > Struct Template Reference

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

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

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

Public Types

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

Public Member Functions

 ADMMSolverResultTpl ()
 Default constructor.
 ADMMSolverResultTpl (const ADMMSolverResultTpl &other)
 Copy constructor.
void clearConstraintImpulseGuessImpl ()
void clearConstraintVelocityGuessImpl ()
int constraintSizeImpl () const
ADMMSolverResultTpl & operator= (const ADMMSolverResultTpl &other)
 Assignment operator.
void resetImpl ()
 Reset the results.
void resize (std::size_t problem_size_)
 Resize the primal/dual/desaxce 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 retrieveDesaxceTerm (const Eigen::MatrixBase< VectorLike > &desaxce_term_) const
 Retrieve Desaxce term of solution.
template<typename VectorLike>
void retrieveDualSolution (const Eigen::MatrixBase< VectorLike > &dual_solution_) const
 Retrieve dual solution. At the optimum we have Gx + g + desaxce - z = 0.
template<typename VectorLike>
void retrieveNonProjectedPrimalSolution (const Eigen::MatrixBase< VectorLike > &non_projected_primal_solution_) const
 Retrieve non-projected primal 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 > &velocity_guess_in)

Public Attributes

std::size_t delassus_decomposition_update_count
 Number of delassus decompositions.
VectorXsStorage::RefMapType desaxce = desaxce_storage.map()
VectorXsStorage desaxce_storage
 Desaxce term of the solution.
std::optional< RefConstVectorXs > impulse_guess
 Optional guess for the primal variable (impulses).
Scalar mu_prox
 Value of ADMM proximal term.
std::size_t problem_size
 Size of primal/dual variables.
Scalar rho
 Value of ADMM rho term.
Scalar spectral_rho_power
 Value of ADMM spectral rule rho power at the solution. This is relevant only if SPECTRAL was selected as an update rule.
std::optional< RefConstVectorXs > velocity_guess
 Optional guess for the dual variable (velocities).
VectorXsStorage::RefMapType x = x_storage.map()
VectorXsStorage x_storage
 Non-projected primal solution.
VectorXsStorage::RefMapType y = y_storage.map()
VectorXsStorage y_storage
 Primal solution projected onto constraints.
VectorXsStorage::RefMapType z = z_storage.map()
VectorXsStorage z_storage
 Dual solution.

Static Public Attributes

static constexpr int Options = _Options

Protected Attributes

VectorXsStorage::RefMapType m_impulse_guess = m_impulse_guess_storage.map()
VectorXsStorage m_impulse_guess_storage
 Storage for the optional impulse guess.
VectorXsStorage::RefMapType m_velocity_guess = m_velocity_guess_storage.map()
VectorXsStorage m_velocity_guess_storage
 Storage for the optional velocity guess.

Detailed Description

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

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

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

Member Typedef Documentation

◆ Base

template<typename _Scalar, int _Options>
typedef ConstraintSolverResultBase<Self> Base

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

◆ RefConstVectorXs

template<typename _Scalar, int _Options>
typedef Eigen::Ref<const VectorXs> RefConstVectorXs

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

◆ Scalar

template<typename _Scalar, int _Options>
typedef _Scalar Scalar

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

◆ Self

template<typename _Scalar, int _Options>
typedef ADMMSolverResultTpl Self

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

◆ VectorXs

template<typename _Scalar, int _Options>
typedef Eigen::Matrix<Scalar, Eigen::Dynamic, 1, Options> VectorXs

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

◆ VectorXsStorage

template<typename _Scalar, int _Options>
typedef internal::EigenStorageTpl<VectorXs> VectorXsStorage

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

Constructor & Destructor Documentation

◆ ADMMSolverResultTpl() [1/2]

template<typename _Scalar, int _Options>
ADMMSolverResultTpl()
inline

Default constructor.

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

◆ ADMMSolverResultTpl() [2/2]

template<typename _Scalar, int _Options>
ADMMSolverResultTpl(const ADMMSolverResultTpl< _Scalar, _Options > &other)
inline

Copy constructor.

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

Member Function Documentation

◆ clearConstraintImpulseGuessImpl()

template<typename _Scalar, int _Options>
void clearConstraintImpulseGuessImpl()
inline

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

◆ clearConstraintVelocityGuessImpl()

template<typename _Scalar, int _Options>
void clearConstraintVelocityGuessImpl()
inline

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

◆ constraintSizeImpl()

template<typename _Scalar, int _Options>
int constraintSizeImpl()const
inline

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

◆ operator=()

template<typename _Scalar, int _Options>
ADMMSolverResultTpl & operator=(const ADMMSolverResultTpl< _Scalar, _Options > &other)
inline

Assignment operator.

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

◆ resetImpl()

template<typename _Scalar, int _Options>
void resetImpl()
inline

Reset the results.

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

◆ resize()

template<typename _Scalar, int _Options>
void resize(std::size_tproblem_size_)
inline

Resize the primal/dual/desaxce vectors of the solution.

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

◆ retrieveConstraintImpulsesImpl()

template<typename _Scalar, int _Options>
template<typename VectorLike>
void retrieveConstraintImpulsesImpl(const Eigen::MatrixBase< VectorLike > &constraint_impulses_)const
inline

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

◆ retrieveConstraintVelocitiesImpl()

template<typename _Scalar, int _Options>
template<typename VectorLike>
void retrieveConstraintVelocitiesImpl(const Eigen::MatrixBase< VectorLike > &constraint_velocities_)const
inline
Note
At the optimum we have Gx + g + desaxce - z = 0. We have sigma = Gx + g and z = Gx + g + desaxce, thus sigma = z - desaxce,

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

◆ retrieveDesaxceTerm()

template<typename _Scalar, int _Options>
template<typename VectorLike>
void retrieveDesaxceTerm(const Eigen::MatrixBase< VectorLike > &desaxce_term_)const
inline

Retrieve Desaxce term of solution.

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

◆ retrieveDualSolution()

template<typename _Scalar, int _Options>
template<typename VectorLike>
void retrieveDualSolution(const Eigen::MatrixBase< VectorLike > &dual_solution_)const
inline

Retrieve dual solution. At the optimum we have Gx + g + desaxce - z = 0.

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

◆ retrieveNonProjectedPrimalSolution()

template<typename _Scalar, int _Options>
template<typename VectorLike>
void retrieveNonProjectedPrimalSolution(const Eigen::MatrixBase< VectorLike > &non_projected_primal_solution_)const
inline

Retrieve non-projected primal solution.

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

◆ retrievePrimalSolution()

template<typename _Scalar, int _Options>
template<typename VectorLike>
void retrievePrimalSolution(const Eigen::MatrixBase< VectorLike > &primal_solution_)const
inline

Retrieve primal solution.

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

◆ setConstraintImpulseGuessImpl()

template<typename _Scalar, int _Options>
template<typename VectorLike>
void setConstraintImpulseGuessImpl(const Eigen::MatrixBase< VectorLike > &impulse_guess_in)
inline

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

◆ setConstraintVelocityGuessImpl()

template<typename _Scalar, int _Options>
template<typename VectorLike>
void setConstraintVelocityGuessImpl(const Eigen::MatrixBase< VectorLike > &velocity_guess_in)
inline

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

Member Data Documentation

◆ delassus_decomposition_update_count

template<typename _Scalar, int _Options>
std::size_t delassus_decomposition_update_count

Number of delassus decompositions.

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

◆ desaxce

template<typename _Scalar, int _Options>
VectorXsStorage::RefMapType desaxce = desaxce_storage.map()

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

◆ desaxce_storage

template<typename _Scalar, int _Options>
VectorXsStorage desaxce_storage

Desaxce term of the solution.

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

◆ impulse_guess

template<typename _Scalar, int _Options>
std::optional<RefConstVectorXs> impulse_guess

Optional guess for the primal variable (impulses).

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

◆ m_impulse_guess

template<typename _Scalar, int _Options>
VectorXsStorage::RefMapType m_impulse_guess = m_impulse_guess_storage.map()
protected

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

◆ m_impulse_guess_storage

template<typename _Scalar, int _Options>
VectorXsStorage m_impulse_guess_storage
protected

Storage for the optional impulse guess.

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

◆ m_velocity_guess

template<typename _Scalar, int _Options>
VectorXsStorage::RefMapType m_velocity_guess = m_velocity_guess_storage.map()
protected

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

◆ m_velocity_guess_storage

template<typename _Scalar, int _Options>
VectorXsStorage m_velocity_guess_storage
protected

Storage for the optional velocity guess.

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

◆ mu_prox

template<typename _Scalar, int _Options>
Scalar mu_prox

Value of ADMM proximal term.

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

◆ Options

template<typename _Scalar, int _Options>
int Options = _Options
staticconstexpr

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

◆ problem_size

template<typename _Scalar, int _Options>
std::size_t problem_size

Size of primal/dual variables.

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

◆ rho

template<typename _Scalar, int _Options>
Scalar rho

Value of ADMM rho term.

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

◆ spectral_rho_power

template<typename _Scalar, int _Options>
Scalar spectral_rho_power

Value of ADMM spectral rule rho power at the solution. This is relevant only if SPECTRAL was selected as an update rule.

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

◆ velocity_guess

template<typename _Scalar, int _Options>
std::optional<RefConstVectorXs> velocity_guess

Optional guess for the dual variable (velocities).

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

◆ x

template<typename _Scalar, int _Options>
VectorXsStorage::RefMapType x = x_storage.map()

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

◆ x_storage

template<typename _Scalar, int _Options>
VectorXsStorage x_storage

Non-projected 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 699 of file admm-solver.hpp.

◆ y

template<typename _Scalar, int _Options>
VectorXsStorage::RefMapType y = y_storage.map()

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

◆ y_storage

template<typename _Scalar, int _Options>
VectorXsStorage y_storage

Primal solution projected onto constraints.

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

◆ z

template<typename _Scalar, int _Options>
VectorXsStorage::RefMapType z = z_storage.map()

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

◆ z_storage

template<typename _Scalar, int _Options>
VectorXsStorage z_storage

Dual solution.

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


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