aligator
0.9.0
A primal-dual augmented Lagrangian-type solver for nonlinear trajectory optimization.
|
A stagewise-dense Riccati solver. This algorithm uses a dense Bunch-Kaufman factorization at every stage. More...
#include </home/runner/work/aligator/aligator/gar/include/aligator/gar/dense-riccati.hpp>
Public Types | |
using | Scalar = _Scalar |
using | Base = RiccatiSolverBase<Scalar> |
using | BlkMat44 = BlkMatrix<MatrixXs, 4, 4> |
using | BlkRowMat41 = BlkMatrix<RowMatrixXs, 4, 1> |
using | BlkVec4 = BlkMatrix<VectorXs, 4, 1> |
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) | |
RiccatiSolverDense (const LQRProblemTpl< Scalar > &problem) | |
bool | backward (const Scalar mudyn, const Scalar mueq) |
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 | ||
std::vector< BlkMat44 > | kkts | |
std::vector< BlkVec4 > | ffs | |
std::vector< BlkRowMat41 > | fbs | |
std::vector< BlkRowMat41 > | fts | |
std::vector< Eigen::BunchKaufman< MatrixXs > > | ldls | |
std::vector< MatrixXs > | Pxx | |
std::vector< MatrixXs > | Pxt | |
std::vector< MatrixXs > | Ptt | |
std::vector< VectorXs > | px | |
std::vector< VectorXs > | pt | |
struct { | ||
BlkMatrix< MatrixXs, 2, 2 > mat | ||
BlkMatrix< VectorXs, 2, 1 > ff | ||
BlkMatrix< MatrixXs, 2, 1 > fth | ||
Eigen::BunchKaufman< MatrixXs > ldl | ||
} | kkt0 | |
VectorXs | thGrad | |
MatrixXs | thHess | |
Protected Member Functions | |
void | init_factor (const LQRKnotTpl< Scalar > &knot) |
void | initialize () |
Protected Attributes | |
const LQRProblemTpl< Scalar > * | problem_ |
A stagewise-dense Riccati solver. This algorithm uses a dense Bunch-Kaufman factorization at every stage.
Definition at line 17 of file dense-riccati.hpp.
using aligator::gar::RiccatiSolverDense< _Scalar >::Scalar = _Scalar |
Definition at line 19 of file dense-riccati.hpp.
using aligator::gar::RiccatiSolverDense< _Scalar >::Base = RiccatiSolverBase<Scalar> |
Definition at line 21 of file dense-riccati.hpp.
using aligator::gar::RiccatiSolverDense< _Scalar >::BlkMat44 = BlkMatrix<MatrixXs, 4, 4> |
Definition at line 22 of file dense-riccati.hpp.
using aligator::gar::RiccatiSolverDense< _Scalar >::BlkRowMat41 = BlkMatrix<RowMatrixXs, 4, 1> |
Definition at line 23 of file dense-riccati.hpp.
using aligator::gar::RiccatiSolverDense< _Scalar >::BlkVec4 = BlkMatrix<VectorXs, 4, 1> |
Definition at line 24 of file dense-riccati.hpp.
using aligator::gar::RiccatiSolverDense< _Scalar >::KnotType = LQRKnotTpl<Scalar> |
Definition at line 25 of file dense-riccati.hpp.
|
explicit |
aligator::gar::RiccatiSolverDense< _Scalar >::ALIGATOR_DYNAMIC_TYPEDEFS_WITH_ROW_TYPES | ( | Scalar | ) |
|
virtual |
Implements aligator::gar::RiccatiSolverBase< _Scalar >.
|
virtual |
Implements aligator::gar::RiccatiSolverBase< _Scalar >.
void aligator::gar::RiccatiSolverDense< _Scalar >::cycleAppend | ( | const KnotType & | knot | ) |
|
inlinevirtual |
Implements aligator::gar::RiccatiSolverBase< _Scalar >.
Definition at line 55 of file dense-riccati.hpp.
|
inlinevirtual |
Implements aligator::gar::RiccatiSolverBase< _Scalar >.
Definition at line 56 of file dense-riccati.hpp.
|
protected |
|
protected |
std::vector<BlkMat44> aligator::gar::RiccatiSolverDense< _Scalar >::kkts |
Definition at line 27 of file dense-riccati.hpp.
std::vector<BlkVec4> aligator::gar::RiccatiSolverDense< _Scalar >::ffs |
Definition at line 28 of file dense-riccati.hpp.
std::vector<BlkRowMat41> aligator::gar::RiccatiSolverDense< _Scalar >::fbs |
Definition at line 29 of file dense-riccati.hpp.
std::vector<BlkRowMat41> aligator::gar::RiccatiSolverDense< _Scalar >::fts |
Definition at line 30 of file dense-riccati.hpp.
std::vector<Eigen::BunchKaufman<MatrixXs> > aligator::gar::RiccatiSolverDense< _Scalar >::ldls |
Definition at line 31 of file dense-riccati.hpp.
std::vector<MatrixXs> aligator::gar::RiccatiSolverDense< _Scalar >::Pxx |
Definition at line 32 of file dense-riccati.hpp.
std::vector<MatrixXs> aligator::gar::RiccatiSolverDense< _Scalar >::Pxt |
Definition at line 33 of file dense-riccati.hpp.
std::vector<MatrixXs> aligator::gar::RiccatiSolverDense< _Scalar >::Ptt |
Definition at line 34 of file dense-riccati.hpp.
std::vector<VectorXs> aligator::gar::RiccatiSolverDense< _Scalar >::px |
Definition at line 35 of file dense-riccati.hpp.
std::vector<VectorXs> aligator::gar::RiccatiSolverDense< _Scalar >::pt |
Definition at line 36 of file dense-riccati.hpp.
BlkMatrix<MatrixXs, 2, 2> aligator::gar::RiccatiSolverDense< _Scalar >::mat |
Definition at line 38 of file dense-riccati.hpp.
BlkMatrix<VectorXs, 2, 1> aligator::gar::RiccatiSolverDense< _Scalar >::ff |
Definition at line 39 of file dense-riccati.hpp.
BlkMatrix<MatrixXs, 2, 1> aligator::gar::RiccatiSolverDense< _Scalar >::fth |
Definition at line 40 of file dense-riccati.hpp.
Eigen::BunchKaufman<MatrixXs> aligator::gar::RiccatiSolverDense< _Scalar >::ldl |
Definition at line 41 of file dense-riccati.hpp.
struct { ... } aligator::gar::RiccatiSolverDense< _Scalar >::kkt0 |
VectorXs aligator::gar::RiccatiSolverDense< _Scalar >::thGrad |
Definition at line 43 of file dense-riccati.hpp.
MatrixXs aligator::gar::RiccatiSolverDense< _Scalar >::thHess |
Definition at line 44 of file dense-riccati.hpp.
|
protected |
Definition at line 61 of file dense-riccati.hpp.