aligator  0.16.0
A versatile and efficient C++ library for real-time constrained 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 <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 allocator_type = ::aligator::polymorphic_allocator
using Kernel = ProximalRiccatiKernel<Scalar>
using StageFactorType = typename Kernel::StageFactorType
using CostToGo = typename StageFactorType::CostToGo
using kkt0_t = typename Kernel::kkt0_t
using KnotType = LqrKnotTpl<Scalar>
Public Types inherited from aligator::gar::RiccatiSolverBase< _Scalar >
using Scalar = _Scalar
using LqrKnot = LqrKnotTpl<Scalar>

Public Member Functions

 ALIGATOR_DYNAMIC_TYPEDEFS_WITH_ROW_TYPES (Scalar)
 ProximalRiccatiSolver (const LqrProblemTpl< Scalar > &problem)
bool backward (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)
 Cycle the solver data, given the specs from a given new knot.
VectorRef getFeedforward (size_t i)
RowMatrixRef getFeedback (size_t i)
allocator_type get_allocator () const
Public Member Functions inherited from aligator::gar::RiccatiSolverBase< _Scalar >
 ALIGATOR_DYNAMIC_TYPEDEFS_WITH_ROW_TYPES (Scalar)
virtual void collapseFeedback ()
virtual ~RiccatiSolverBase ()=default

Public Attributes

std::pmr::vector< StageFactor< Scalar > > datas
kkt0_t kkt0
ArenaMatrix< VectorXs > thGrad
ArenaMatrix< 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 12 of file proximal-riccati.hpp.

Member Typedef Documentation

◆ Scalar

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

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

◆ Base

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

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

◆ allocator_type

template<typename _Scalar>
using aligator::gar::ProximalRiccatiSolver< _Scalar >::allocator_type = ::aligator::polymorphic_allocator

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

◆ Kernel

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

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

◆ StageFactorType

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

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

◆ CostToGo

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

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

◆ kkt0_t

template<typename _Scalar>
using aligator::gar::ProximalRiccatiSolver< _Scalar >::kkt0_t = typename Kernel::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 Scalarmueq)
virtual

◆ 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)
virtual

Cycle the solver data, given the specs from a given new knot.

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

◆ getFeedforward()

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

◆ getFeedback()

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

◆ get_allocator()

template<typename _Scalar>
allocator_type aligator::gar::ProximalRiccatiSolver< _Scalar >::get_allocator()const
inline

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

Member Data Documentation

◆ datas

template<typename _Scalar>
std::pmr::vector<StageFactor<Scalar> > aligator::gar::ProximalRiccatiSolver< _Scalar >::datas

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

◆ kkt0

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

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

◆ thGrad

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

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

◆ thHess

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

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

◆ problem_

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

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


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