aligator  0.6.1
A primal-dual augmented Lagrangian-type solver for nonlinear trajectory optimization.
Loading...
Searching...
No Matches
aligator::WorkspaceTpl< Scalar > Struct Template Reference

Workspace for solver SolverProxDDP. More...

#include <aligator/solvers/proxddp/workspace.hpp>

Inheritance diagram for aligator::WorkspaceTpl< Scalar >:
[legend]
Collaboration diagram for aligator::WorkspaceTpl< Scalar >:
[legend]

Public Types

using StageModel = StageModelTpl<Scalar>
 
using Base = WorkspaceBaseTpl<Scalar>
 
using VecBool = Eigen::Matrix<bool, Eigen::Dynamic, 1>
 
using CstrProxScaler = ConstraintProximalScalerTpl<Scalar>
 
using KnotType = gar::LQRKnotTpl<Scalar>
 
using ConstraintSetProduct = ConstraintSetProductTpl<Scalar>
 
using BlkJacobianType = BlkMatrix<MatrixXs, -1, 2>
 

Public Member Functions

 ALIGATOR_DYNAMIC_TYPEDEFS (Scalar)
 
 WorkspaceTpl ()
 
 WorkspaceTpl (const TrajOptProblemTpl< Scalar > &problem)
 
 WorkspaceTpl (const WorkspaceTpl &)=delete
 
WorkspaceTploperator= (const WorkspaceTpl &)=delete
 
 WorkspaceTpl (WorkspaceTpl &&)=default
 
WorkspaceTploperator= (WorkspaceTpl &&)=default
 
void cycleLeft ()
 
template<typename F >
void configureScalers (const TrajOptProblemTpl< Scalar > &problem, const Scalar &mu, F &&strat)
 
- Public Member Functions inherited from aligator::WorkspaceBaseTpl< Scalar >
 ALIGATOR_DYNAMIC_TYPEDEFS (Scalar)
 
 WorkspaceBaseTpl ()
 
 WorkspaceBaseTpl (const TrajOptProblemTpl< Scalar > &problem)
 
 ~WorkspaceBaseTpl ()=default
 
bool isInitialized () const
 
void cycleLeft ()
 Cycle the workspace data to the left.
 
void cycleAppend (shared_ptr< StageDataTpl< Scalar > > data)
 Same as cycleLeft(), but add a StageDataTpl to problem_data.
 

Public Attributes

gar::LQRProblemTpl< Scalar > lqr_problem
 
std::vector< CstrProxScalercstr_scalers
 
std::vector< VectorXs > shifted_constraints
 Shifted constraints the projection operators should be applied to.
 
std::vector< VectorXs > cstr_lx_corr
 
std::vector< VectorXs > cstr_lu_corr
 
std::vector< BlkJacobianTypecstr_proj_jacs
 Projected path constraint Jacobians (used to symmetrize the LQ subproblem)
 
std::vector< VecBoolactive_constraints
 Masks for active constraint sets.
 
std::vector< ConstraintSetProductcstr_product_sets
 Cartesian products of the constraint sets of each stage.
 
VectorXs stage_inner_crits
 Subproblem termination criterion for each stage.
 
VectorXs stage_cstr_violations
 Constraint violation measures for each stage and constraint.
 
std::vector< VectorXs > stage_infeasibilities
 Stagewise infeasibilities.
 
VectorXs state_dual_infeas
 Dual infeasibility in the states for each stage of the problem.
 
VectorXs control_dual_infeas
 Dual infeasibility in the controls for each stage of the problem.
 
Scalar inner_criterion = 0.
 Overall subproblem termination criterion.
 
std::vector< VectorXs > dyn_slacks
 Dynamical infeasibility gaps.
 
std::size_t nsteps
 Number of steps in the problem.
 
TrajOptDataTpl< Scalar > problem_data
 Problem data.
 
Lagrangian Gradients
std::vector< VectorXs > Lxs
 
std::vector< VectorXs > Lus
 
std::vector< VectorXs > Lvs
 
std::vector< VectorXs > Lds
 
Trial primal-dual step
std::vector< VectorXs > trial_vs
 
std::vector< VectorXs > trial_lams
 
std::vector< VectorXs > trial_us
 
std::vector< VectorXs > trial_xs
 
Lagrange multipliers.
std::vector< VectorXs > lams_plus
 
std::vector< VectorXs > lams_pdal
 
std::vector< VectorXs > vs_plus
 
std::vector< VectorXs > vs_pdal
 
Primal-dual steps
std::vector< VectorXs > dxs
 
std::vector< VectorXs > dus
 
std::vector< VectorXs > dvs
 
std::vector< VectorXs > dlams
 
Previous external/proximal iterates
std::vector< VectorXs > prev_xs
 
std::vector< VectorXs > prev_us
 
std::vector< VectorXs > prev_vs
 
std::vector< VectorXs > prev_lams
 
- Public Attributes inherited from aligator::WorkspaceBaseTpl< Scalar >
std::size_t nsteps
 Number of steps in the problem.
 
TrajOptDataTpl< Scalar > problem_data
 Problem data.
 
std::vector< VectorXs > dyn_slacks
 Dynamical infeasibility gaps.
 
std::vector< VectorXs > trial_xs
 
std::vector< VectorXs > trial_us
 

Friends

template<typename T >
std::ostream & operator<< (std::ostream &oss, const WorkspaceTpl< T > &self)
 

Additional Inherited Members

- Protected Attributes inherited from aligator::WorkspaceBaseTpl< Scalar >
bool m_isInitialized
 

Detailed Description

template<typename Scalar>
struct aligator::WorkspaceTpl< Scalar >

Workspace for solver SolverProxDDP.

This struct holds data for the Riccati forward and backward passes, the primal-dual steps, problem data...

Definition at line 30 of file workspace.hpp.

Member Typedef Documentation

◆ StageModel

template<typename Scalar >
using aligator::WorkspaceTpl< Scalar >::StageModel = StageModelTpl<Scalar>

Definition at line 32 of file workspace.hpp.

◆ Base

template<typename Scalar >
using aligator::WorkspaceTpl< Scalar >::Base = WorkspaceBaseTpl<Scalar>

Definition at line 33 of file workspace.hpp.

◆ VecBool

template<typename Scalar >
using aligator::WorkspaceTpl< Scalar >::VecBool = Eigen::Matrix<bool, Eigen::Dynamic, 1>

Definition at line 34 of file workspace.hpp.

◆ CstrProxScaler

template<typename Scalar >
using aligator::WorkspaceTpl< Scalar >::CstrProxScaler = ConstraintProximalScalerTpl<Scalar>

Definition at line 35 of file workspace.hpp.

◆ KnotType

template<typename Scalar >
using aligator::WorkspaceTpl< Scalar >::KnotType = gar::LQRKnotTpl<Scalar>

Definition at line 36 of file workspace.hpp.

◆ ConstraintSetProduct

template<typename Scalar >
using aligator::WorkspaceTpl< Scalar >::ConstraintSetProduct = ConstraintSetProductTpl<Scalar>

Definition at line 37 of file workspace.hpp.

◆ BlkJacobianType

template<typename Scalar >
using aligator::WorkspaceTpl< Scalar >::BlkJacobianType = BlkMatrix<MatrixXs, -1, 2>

Definition at line 38 of file workspace.hpp.

Constructor & Destructor Documentation

◆ WorkspaceTpl() [1/4]

template<typename Scalar >
aligator::WorkspaceTpl< Scalar >::WorkspaceTpl ( )
inline

Definition at line 111 of file workspace.hpp.

◆ WorkspaceTpl() [2/4]

template<typename Scalar >
aligator::WorkspaceTpl< Scalar >::WorkspaceTpl ( const TrajOptProblemTpl< Scalar > & problem)

◆ WorkspaceTpl() [3/4]

template<typename Scalar >
aligator::WorkspaceTpl< Scalar >::WorkspaceTpl ( const WorkspaceTpl< Scalar > & )
delete

◆ WorkspaceTpl() [4/4]

template<typename Scalar >
aligator::WorkspaceTpl< Scalar >::WorkspaceTpl ( WorkspaceTpl< Scalar > && )
default

Member Function Documentation

◆ ALIGATOR_DYNAMIC_TYPEDEFS()

template<typename Scalar >
aligator::WorkspaceTpl< Scalar >::ALIGATOR_DYNAMIC_TYPEDEFS ( Scalar )

◆ operator=() [1/2]

template<typename Scalar >
WorkspaceTpl & aligator::WorkspaceTpl< Scalar >::operator= ( const WorkspaceTpl< Scalar > & )
delete

◆ operator=() [2/2]

template<typename Scalar >
WorkspaceTpl & aligator::WorkspaceTpl< Scalar >::operator= ( WorkspaceTpl< Scalar > && )
default

◆ cycleLeft()

template<typename Scalar >
void aligator::WorkspaceTpl< Scalar >::cycleLeft ( )

◆ configureScalers()

template<typename Scalar >
template<typename F >
void aligator::WorkspaceTpl< Scalar >::configureScalers ( const TrajOptProblemTpl< Scalar > & problem,
const Scalar & mu,
F && strat )
inline

Definition at line 127 of file workspace.hpp.

Friends And Related Symbol Documentation

◆ operator<<

template<typename Scalar >
template<typename T >
std::ostream & operator<< ( std::ostream & oss,
const WorkspaceTpl< T > & self )
friend

Member Data Documentation

◆ lqr_problem

template<typename Scalar >
gar::LQRProblemTpl<Scalar> aligator::WorkspaceTpl< Scalar >::lqr_problem

Definition at line 44 of file workspace.hpp.

◆ cstr_scalers

template<typename Scalar >
std::vector<CstrProxScaler> aligator::WorkspaceTpl< Scalar >::cstr_scalers

Definition at line 45 of file workspace.hpp.

◆ Lxs

template<typename Scalar >
std::vector<VectorXs> aligator::WorkspaceTpl< Scalar >::Lxs

Definition at line 49 of file workspace.hpp.

◆ Lus

template<typename Scalar >
std::vector<VectorXs> aligator::WorkspaceTpl< Scalar >::Lus

Definition at line 50 of file workspace.hpp.

◆ Lvs

template<typename Scalar >
std::vector<VectorXs> aligator::WorkspaceTpl< Scalar >::Lvs

Definition at line 51 of file workspace.hpp.

◆ Lds

template<typename Scalar >
std::vector<VectorXs> aligator::WorkspaceTpl< Scalar >::Lds

Definition at line 52 of file workspace.hpp.

◆ trial_vs

template<typename Scalar >
std::vector<VectorXs> aligator::WorkspaceTpl< Scalar >::trial_vs

Definition at line 59 of file workspace.hpp.

◆ trial_lams

template<typename Scalar >
std::vector<VectorXs> aligator::WorkspaceTpl< Scalar >::trial_lams

Definition at line 60 of file workspace.hpp.

◆ lams_plus

template<typename Scalar >
std::vector<VectorXs> aligator::WorkspaceTpl< Scalar >::lams_plus

Definition at line 65 of file workspace.hpp.

◆ lams_pdal

template<typename Scalar >
std::vector<VectorXs> aligator::WorkspaceTpl< Scalar >::lams_pdal

Definition at line 66 of file workspace.hpp.

◆ vs_plus

template<typename Scalar >
std::vector<VectorXs> aligator::WorkspaceTpl< Scalar >::vs_plus

Definition at line 67 of file workspace.hpp.

◆ vs_pdal

template<typename Scalar >
std::vector<VectorXs> aligator::WorkspaceTpl< Scalar >::vs_pdal

Definition at line 68 of file workspace.hpp.

◆ shifted_constraints

template<typename Scalar >
std::vector<VectorXs> aligator::WorkspaceTpl< Scalar >::shifted_constraints

Shifted constraints the projection operators should be applied to.

Definition at line 72 of file workspace.hpp.

◆ cstr_lx_corr

template<typename Scalar >
std::vector<VectorXs> aligator::WorkspaceTpl< Scalar >::cstr_lx_corr

Definition at line 73 of file workspace.hpp.

◆ cstr_lu_corr

template<typename Scalar >
std::vector<VectorXs> aligator::WorkspaceTpl< Scalar >::cstr_lu_corr

Definition at line 74 of file workspace.hpp.

◆ cstr_proj_jacs

template<typename Scalar >
std::vector<BlkJacobianType> aligator::WorkspaceTpl< Scalar >::cstr_proj_jacs

Projected path constraint Jacobians (used to symmetrize the LQ subproblem)

Definition at line 76 of file workspace.hpp.

◆ active_constraints

template<typename Scalar >
std::vector<VecBool> aligator::WorkspaceTpl< Scalar >::active_constraints

Masks for active constraint sets.

Definition at line 78 of file workspace.hpp.

◆ cstr_product_sets

template<typename Scalar >
std::vector<ConstraintSetProduct> aligator::WorkspaceTpl< Scalar >::cstr_product_sets

Cartesian products of the constraint sets of each stage.

Definition at line 80 of file workspace.hpp.

◆ dxs

template<typename Scalar >
std::vector<VectorXs> aligator::WorkspaceTpl< Scalar >::dxs

Definition at line 84 of file workspace.hpp.

◆ dus

template<typename Scalar >
std::vector<VectorXs> aligator::WorkspaceTpl< Scalar >::dus

Definition at line 85 of file workspace.hpp.

◆ dvs

template<typename Scalar >
std::vector<VectorXs> aligator::WorkspaceTpl< Scalar >::dvs

Definition at line 86 of file workspace.hpp.

◆ dlams

template<typename Scalar >
std::vector<VectorXs> aligator::WorkspaceTpl< Scalar >::dlams

Definition at line 87 of file workspace.hpp.

◆ prev_xs

template<typename Scalar >
std::vector<VectorXs> aligator::WorkspaceTpl< Scalar >::prev_xs

Definition at line 92 of file workspace.hpp.

◆ prev_us

template<typename Scalar >
std::vector<VectorXs> aligator::WorkspaceTpl< Scalar >::prev_us

Definition at line 93 of file workspace.hpp.

◆ prev_vs

template<typename Scalar >
std::vector<VectorXs> aligator::WorkspaceTpl< Scalar >::prev_vs

Definition at line 94 of file workspace.hpp.

◆ prev_lams

template<typename Scalar >
std::vector<VectorXs> aligator::WorkspaceTpl< Scalar >::prev_lams

Definition at line 95 of file workspace.hpp.

◆ stage_inner_crits

template<typename Scalar >
VectorXs aligator::WorkspaceTpl< Scalar >::stage_inner_crits

Subproblem termination criterion for each stage.

Definition at line 99 of file workspace.hpp.

◆ stage_cstr_violations

template<typename Scalar >
VectorXs aligator::WorkspaceTpl< Scalar >::stage_cstr_violations

Constraint violation measures for each stage and constraint.

Definition at line 101 of file workspace.hpp.

◆ stage_infeasibilities

template<typename Scalar >
std::vector<VectorXs> aligator::WorkspaceTpl< Scalar >::stage_infeasibilities

Stagewise infeasibilities.

Definition at line 103 of file workspace.hpp.

◆ state_dual_infeas

template<typename Scalar >
VectorXs aligator::WorkspaceTpl< Scalar >::state_dual_infeas

Dual infeasibility in the states for each stage of the problem.

Definition at line 105 of file workspace.hpp.

◆ control_dual_infeas

template<typename Scalar >
VectorXs aligator::WorkspaceTpl< Scalar >::control_dual_infeas

Dual infeasibility in the controls for each stage of the problem.

Definition at line 107 of file workspace.hpp.

◆ inner_criterion

template<typename Scalar >
Scalar aligator::WorkspaceTpl< Scalar >::inner_criterion = 0.

Overall subproblem termination criterion.

Definition at line 109 of file workspace.hpp.

◆ dyn_slacks

template<typename Scalar >
std::vector<VectorXs> aligator::WorkspaceBaseTpl< Scalar >::dyn_slacks

Dynamical infeasibility gaps.

Definition at line 32 of file workspace-base.hpp.

◆ nsteps

template<typename Scalar >
std::size_t aligator::WorkspaceBaseTpl< Scalar >::nsteps

Number of steps in the problem.

Definition at line 21 of file workspace-base.hpp.

◆ problem_data

template<typename Scalar >
TrajOptDataTpl<Scalar> aligator::WorkspaceBaseTpl< Scalar >::problem_data

Problem data.

Definition at line 23 of file workspace-base.hpp.

◆ trial_us

template<typename Scalar >
std::vector<VectorXs> aligator::WorkspaceBaseTpl< Scalar >::trial_us

Definition at line 28 of file workspace-base.hpp.

◆ trial_xs

template<typename Scalar >
std::vector<VectorXs> aligator::WorkspaceBaseTpl< Scalar >::trial_xs

Definition at line 27 of file workspace-base.hpp.


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