aligator  0.16.0
A versatile and efficient C++ library for real-time constrained 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 KnotType = gar::LqrKnotTpl<Scalar>
using ConstraintSetProduct = ConstraintSetProductTpl<Scalar>
using BlkJacobianType = BlkMatrix<MatrixXs, -1, 2>
using allocator_type = ::aligator::polymorphic_allocator

Public Member Functions

 ALIGATOR_DYNAMIC_TYPEDEFS (Scalar)
 WorkspaceTpl ()
 WorkspaceTpl (const allocator_type &alloc)
 WorkspaceTpl (const TrajOptProblemTpl< Scalar > &problem, const allocator_type &alloc={})
 WorkspaceTpl (const WorkspaceTpl &)=delete
WorkspaceTploperator= (const WorkspaceTpl &)=delete
 WorkspaceTpl (WorkspaceTpl &&)=default
WorkspaceTploperator= (WorkspaceTpl &&)=default
void cycleAppend (const TrajOptProblemTpl< Scalar > &problem, shared_ptr< StageDataTpl< Scalar > > data)
allocator_type get_allocator () const
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< VectorXs > shifted_constraints
 Shifted constraints the projection operators should be applied to.
std::vector< BlkJacobianTypecstr_proj_jacs
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
Trial primal-dual step
std::vector< VectorXs > trial_vs
std::vector< VectorXs > trial_lams
std::vector< VectorXs > trial_us
std::vector< VectorXs > trial_xs
Path constraint AL multipliers.
std::vector< VectorXs > lams_plus
std::vector< VectorXs > vs_plus
std::vector< VectorXs > vs_pdal
Right-hand sides (with projection) for primal-dual system
std::vector< VectorXs > cstr_lx_corr
std::vector< VectorXs > cstr_lu_corr
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
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

std::ostream & operator<< (std::ostream &oss, const WorkspaceTpl &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 27 of file workspace.hpp.

Member Typedef Documentation

◆ StageModel

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

Definition at line 29 of file workspace.hpp.

◆ Base

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

Definition at line 30 of file workspace.hpp.

◆ VecBool

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

Definition at line 31 of file workspace.hpp.

◆ KnotType

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

Definition at line 32 of file workspace.hpp.

◆ ConstraintSetProduct

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

Definition at line 33 of file workspace.hpp.

◆ BlkJacobianType

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

Definition at line 34 of file workspace.hpp.

◆ allocator_type

template<typename Scalar>
using aligator::WorkspaceTpl< Scalar >::allocator_type = ::aligator::polymorphic_allocator

Definition at line 40 of file workspace.hpp.

Constructor & Destructor Documentation

◆ WorkspaceTpl() [1/5]

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

Definition at line 109 of file workspace.hpp.

◆ WorkspaceTpl() [2/5]

template<typename Scalar>
aligator::WorkspaceTpl< Scalar >::WorkspaceTpl(const allocator_type &alloc)
inlineexplicit

Definition at line 111 of file workspace.hpp.

◆ WorkspaceTpl() [3/5]

template<typename Scalar>
aligator::WorkspaceTpl< Scalar >::WorkspaceTpl(const TrajOptProblemTpl< Scalar > &problem,
const allocator_type &alloc = {} )
explicit

◆ WorkspaceTpl() [4/5]

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

◆ WorkspaceTpl() [5/5]

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

◆ cycleAppend()

template<typename Scalar>
void aligator::WorkspaceTpl< Scalar >::cycleAppend(const TrajOptProblemTpl< Scalar > &problem,
shared_ptr< StageDataTpl< Scalar > >data )

◆ get_allocator()

template<typename Scalar>
allocator_type aligator::WorkspaceTpl< Scalar >::get_allocator()const
inline

Definition at line 126 of file workspace.hpp.

◆ operator<<

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

Definition at line 128 of file workspace.hpp.

Member Data Documentation

◆ lqr_problem

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

Definition at line 42 of file workspace.hpp.

◆ Lxs

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

Definition at line 46 of file workspace.hpp.

◆ Lus

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

Definition at line 47 of file workspace.hpp.

◆ Lvs

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

Definition at line 48 of file workspace.hpp.

◆ trial_vs

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

Definition at line 55 of file workspace.hpp.

◆ trial_lams

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

Definition at line 56 of file workspace.hpp.

◆ lams_plus

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

Definition at line 62 of file workspace.hpp.

◆ vs_plus

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

Definition at line 63 of file workspace.hpp.

◆ vs_pdal

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

Definition at line 64 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 68 of file workspace.hpp.

◆ cstr_lx_corr

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

Definition at line 71 of file workspace.hpp.

◆ cstr_lu_corr

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

Definition at line 72 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 75 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 77 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 79 of file workspace.hpp.

◆ dxs

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

Definition at line 83 of file workspace.hpp.

◆ dus

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

Definition at line 84 of file workspace.hpp.

◆ dvs

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

Definition at line 85 of file workspace.hpp.

◆ dlams

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

Definition at line 86 of file workspace.hpp.

◆ prev_xs

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

Definition at line 91 of file workspace.hpp.

◆ prev_us

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

Definition at line 92 of file workspace.hpp.

◆ prev_vs

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

Definition at line 93 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 97 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 99 of file workspace.hpp.

◆ stage_infeasibilities

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

Stagewise infeasibilities.

Definition at line 101 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 103 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 105 of file workspace.hpp.

◆ inner_criterion

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

Overall subproblem termination criterion.

Definition at line 107 of file workspace.hpp.

◆ dyn_slacks

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

Dynamical infeasibility gaps.

Definition at line 33 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 22 of file workspace-base.hpp.

◆ problem_data

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

Problem data.

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

◆ trial_us

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

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

◆ trial_xs

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

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


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