aligator  0.10.0
A primal-dual augmented Lagrangian-type solver for nonlinear trajectory optimization.
Loading...
Searching...
No Matches
aligator::gar::ProximalRiccatiSolver< _Scalar > Class Template Reference

A Riccati-like solver for the proximal LQ subproblem in ProxDDP. More...

#include </home/runner/work/aligator/aligator/gar/include/aligator/gar/proximal-riccati.hpp>

Inheritance diagram for aligator::gar::ProximalRiccatiSolver< _Scalar >:
[legend]
Collaboration diagram for aligator::gar::ProximalRiccatiSolver< _Scalar >:
[legend]

Public Types

using Scalar = _Scalar
 
using Base = RiccatiSolverBase<Scalar>
 
using StageFactorVec = std::vector<StageFactor<Scalar>>
 
using Impl = ProximalRiccatiKernel<Scalar>
 
using StageFactorType = StageFactor<Scalar>
 
using value_t = typename StageFactorType::value_t
 
using kkt0_t = typename Impl::kkt0_t
 
using KnotType = LQRKnotTpl<Scalar>
 
- Public Types inherited from aligator::gar::RiccatiSolverBase< _Scalar >
using Scalar = _Scalar
 
using LQRKnot = LQRKnotTpl<double>
 

Public Member Functions

 ALIGATOR_DYNAMIC_TYPEDEFS_WITH_ROW_TYPES (Scalar)
 
 ProximalRiccatiSolver (const LQRProblemTpl< Scalar > &problem)
 
bool backward (const Scalar mudyn, const Scalar mueq)
 Backward sweep.
 
bool forward (std::vector< VectorXs > &xs, std::vector< VectorXs > &us, std::vector< VectorXs > &vs, std::vector< VectorXs > &lbdas, const std::optional< ConstVectorRef > &theta=std::nullopt) const
 
void cycleAppend (const KnotType &knot)
 
VectorRef getFeedforward (size_t i)
 
RowMatrixRef getFeedback (size_t i)
 
- Public Member Functions inherited from aligator::gar::RiccatiSolverBase< _Scalar >
 ALIGATOR_DYNAMIC_TYPEDEFS_WITH_ROW_TYPES (Scalar)
 
virtual void cycleAppend (const LQRKnot &knot)=0
 
virtual void collapseFeedback ()
 
virtual ~RiccatiSolverBase ()=default
 

Public Attributes

StageFactorVec datas
 
kkt0_t kkt0
 
VectorXs thGrad
 
MatrixXs thHess
 

Protected Attributes

const LQRProblemTpl< Scalar > * problem_
 

Detailed Description

template<typename _Scalar>
class aligator::gar::ProximalRiccatiSolver< _Scalar >

A Riccati-like solver for the proximal LQ subproblem in ProxDDP.

Definition at line 11 of file proximal-riccati.hpp.

Member Typedef Documentation

◆ Scalar

template<typename _Scalar >
using aligator::gar::ProximalRiccatiSolver< _Scalar >::Scalar = _Scalar

Definition at line 13 of file proximal-riccati.hpp.

◆ Base

template<typename _Scalar >
using aligator::gar::ProximalRiccatiSolver< _Scalar >::Base = RiccatiSolverBase<Scalar>

Definition at line 15 of file proximal-riccati.hpp.

◆ StageFactorVec

template<typename _Scalar >
using aligator::gar::ProximalRiccatiSolver< _Scalar >::StageFactorVec = std::vector<StageFactor<Scalar>>

Definition at line 16 of file proximal-riccati.hpp.

◆ Impl

template<typename _Scalar >
using aligator::gar::ProximalRiccatiSolver< _Scalar >::Impl = ProximalRiccatiKernel<Scalar>

Definition at line 19 of file proximal-riccati.hpp.

◆ StageFactorType

template<typename _Scalar >
using aligator::gar::ProximalRiccatiSolver< _Scalar >::StageFactorType = StageFactor<Scalar>

Definition at line 20 of file proximal-riccati.hpp.

◆ value_t

template<typename _Scalar >
using aligator::gar::ProximalRiccatiSolver< _Scalar >::value_t = typename StageFactorType::value_t

Definition at line 21 of file proximal-riccati.hpp.

◆ kkt0_t

template<typename _Scalar >
using aligator::gar::ProximalRiccatiSolver< _Scalar >::kkt0_t = typename Impl::kkt0_t

Definition at line 22 of file proximal-riccati.hpp.

◆ KnotType

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

Definition at line 23 of file proximal-riccati.hpp.

Constructor & Destructor Documentation

◆ ProximalRiccatiSolver()

template<typename _Scalar >
aligator::gar::ProximalRiccatiSolver< _Scalar >::ProximalRiccatiSolver ( const LQRProblemTpl< Scalar > & problem)
explicit

Member Function Documentation

◆ ALIGATOR_DYNAMIC_TYPEDEFS_WITH_ROW_TYPES()

template<typename _Scalar >
aligator::gar::ProximalRiccatiSolver< _Scalar >::ALIGATOR_DYNAMIC_TYPEDEFS_WITH_ROW_TYPES ( Scalar )

◆ backward()

template<typename _Scalar >
bool aligator::gar::ProximalRiccatiSolver< _Scalar >::backward ( const Scalar mudyn,
const Scalar mueq )
virtual

Backward sweep.

Implements aligator::gar::RiccatiSolverBase< _Scalar >.

◆ forward()

template<typename _Scalar >
bool aligator::gar::ProximalRiccatiSolver< _Scalar >::forward ( std::vector< VectorXs > & xs,
std::vector< VectorXs > & us,
std::vector< VectorXs > & vs,
std::vector< VectorXs > & lbdas,
const std::optional< ConstVectorRef > & theta = std::nullopt ) const
virtual

◆ cycleAppend()

template<typename _Scalar >
void aligator::gar::ProximalRiccatiSolver< _Scalar >::cycleAppend ( const KnotType & knot)

◆ getFeedforward()

template<typename _Scalar >
VectorRef aligator::gar::ProximalRiccatiSolver< _Scalar >::getFeedforward ( size_t i)
inlinevirtual

Implements aligator::gar::RiccatiSolverBase< _Scalar >.

Definition at line 35 of file proximal-riccati.hpp.

◆ getFeedback()

template<typename _Scalar >
RowMatrixRef aligator::gar::ProximalRiccatiSolver< _Scalar >::getFeedback ( size_t i)
inlinevirtual

Implements aligator::gar::RiccatiSolverBase< _Scalar >.

Definition at line 36 of file proximal-riccati.hpp.

Member Data Documentation

◆ datas

template<typename _Scalar >
StageFactorVec aligator::gar::ProximalRiccatiSolver< _Scalar >::datas

Definition at line 17 of file proximal-riccati.hpp.

◆ kkt0

template<typename _Scalar >
kkt0_t aligator::gar::ProximalRiccatiSolver< _Scalar >::kkt0

Definition at line 38 of file proximal-riccati.hpp.

◆ thGrad

template<typename _Scalar >
VectorXs aligator::gar::ProximalRiccatiSolver< _Scalar >::thGrad

Definition at line 39 of file proximal-riccati.hpp.

◆ thHess

template<typename _Scalar >
MatrixXs aligator::gar::ProximalRiccatiSolver< _Scalar >::thHess

Definition at line 40 of file proximal-riccati.hpp.

◆ problem_

template<typename _Scalar >
const LQRProblemTpl<Scalar>* aligator::gar::ProximalRiccatiSolver< _Scalar >::problem_
protected

Definition at line 43 of file proximal-riccati.hpp.


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