robotoc
robotoc - efficient ROBOT Optimal Control solvers
|
Factorizer of the backward Riccati recursion. More...
#include <backward_riccati_recursion_factorizer.hpp>
Public Types | |
using | MatrixXdRowMajor = Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor > |
Public Member Functions | |
BackwardRiccatiRecursionFactorizer (const Robot &robot) | |
Constructs a factorizer. More... | |
BackwardRiccatiRecursionFactorizer () | |
Default constructor. More... | |
~BackwardRiccatiRecursionFactorizer () | |
Destructor. More... | |
BackwardRiccatiRecursionFactorizer (const BackwardRiccatiRecursionFactorizer &)=default | |
Default copy constructor. More... | |
BackwardRiccatiRecursionFactorizer & | operator= (const BackwardRiccatiRecursionFactorizer &)=default |
Default copy operator. More... | |
BackwardRiccatiRecursionFactorizer (BackwardRiccatiRecursionFactorizer &&) noexcept=default | |
Default move constructor. More... | |
BackwardRiccatiRecursionFactorizer & | operator= (BackwardRiccatiRecursionFactorizer &&) noexcept=default |
Default move assign operator. More... | |
void | factorizeKKTMatrix (const SplitRiccatiFactorization &riccati_next, SplitKKTMatrix &kkt_matrix, SplitKKTResidual &kkt_residual) |
Factorizes the split KKT matrix and split KKT residual of a time stage for the backward Riccati recursion. More... | |
void | factorizeHamiltonian (const SplitRiccatiFactorization &riccati_next, const SplitKKTMatrix &kkt_matrix, SplitRiccatiFactorization &riccati, const bool has_next_sto_phase) const |
Factorizes the derivatives of the Hamiltonian of a time stage for the backward Riccati recursion. More... | |
void | factorizeKKTMatrix (const SplitRiccatiFactorization &riccati_next, SplitKKTMatrix &kkt_matrix) |
Factorizes the split KKT matrix and split KKT residual of this impact stage for the backward Riccati recursion. More... | |
void | factorizeRiccatiFactorization (const SplitRiccatiFactorization &riccati_next, SplitKKTMatrix &kkt_matrix, const SplitKKTResidual &kkt_residual, const LQRPolicy &lqr_policy, SplitRiccatiFactorization &riccati) |
Factorizes the Riccati factorization matrix and vector. More... | |
void | factorizeSTOFactorization (const SplitRiccatiFactorization &riccati_next, const SplitKKTMatrix &kkt_matrix, const SplitKKTResidual &kkt_residual, const LQRPolicy &lqr_policy, SplitRiccatiFactorization &riccati, const bool has_next_sto_phase) |
Factorizes the STO factorization vector and scalars. More... | |
void | factorizeRiccatiFactorization (const SplitRiccatiFactorization &riccati_next, const SplitKKTMatrix &kkt_matrix, const SplitKKTResidual &kkt_residual, SplitRiccatiFactorization &riccati) |
Factorizes the Riccati factorization matrix and vector. More... | |
void | factorizeSTOFactorization (const SplitRiccatiFactorization &riccati_next, const SplitKKTMatrix &kkt_matrix, const SplitKKTResidual &kkt_residual, SplitRiccatiFactorization &riccati) |
Factorizes the STO factorization vector and scalars. More... | |
Factorizer of the backward Riccati recursion.
using robotoc::BackwardRiccatiRecursionFactorizer::MatrixXdRowMajor = Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor> |
robotoc::BackwardRiccatiRecursionFactorizer::BackwardRiccatiRecursionFactorizer | ( | const Robot & | robot | ) |
Constructs a factorizer.
[in] | robot | Robot model. |
robotoc::BackwardRiccatiRecursionFactorizer::BackwardRiccatiRecursionFactorizer | ( | ) |
Default constructor.
robotoc::BackwardRiccatiRecursionFactorizer::~BackwardRiccatiRecursionFactorizer | ( | ) |
Destructor.
|
default |
Default copy constructor.
|
defaultnoexcept |
Default move constructor.
void robotoc::BackwardRiccatiRecursionFactorizer::factorizeHamiltonian | ( | const SplitRiccatiFactorization & | riccati_next, |
const SplitKKTMatrix & | kkt_matrix, | ||
SplitRiccatiFactorization & | riccati, | ||
const bool | has_next_sto_phase | ||
) | const |
Factorizes the derivatives of the Hamiltonian of a time stage for the backward Riccati recursion.
[in] | riccati_next | Riccati factorization of the next time stage. |
[in] | kkt_matrix | Split KKT matrix of this time stage. |
[in,out] | riccati | Riccati factorization of time time stage. |
[in] | has_next_sto_phase | Flag for wheather this phase has the next phase involving the STO problem. |
void robotoc::BackwardRiccatiRecursionFactorizer::factorizeKKTMatrix | ( | const SplitRiccatiFactorization & | riccati_next, |
SplitKKTMatrix & | kkt_matrix | ||
) |
Factorizes the split KKT matrix and split KKT residual of this impact stage for the backward Riccati recursion.
[in] | riccati_next | Riccati factorization of the next time stage. |
[in,out] | kkt_matrix | Split KKT matrix of this impact stage. |
void robotoc::BackwardRiccatiRecursionFactorizer::factorizeKKTMatrix | ( | const SplitRiccatiFactorization & | riccati_next, |
SplitKKTMatrix & | kkt_matrix, | ||
SplitKKTResidual & | kkt_residual | ||
) |
Factorizes the split KKT matrix and split KKT residual of a time stage for the backward Riccati recursion.
[in] | riccati_next | Riccati factorization of the next time stage. |
[in,out] | kkt_matrix | Split KKT matrix of this time stage. |
[in,out] | kkt_residual | Split KKT residual of this time stage. |
void robotoc::BackwardRiccatiRecursionFactorizer::factorizeRiccatiFactorization | ( | const SplitRiccatiFactorization & | riccati_next, |
const SplitKKTMatrix & | kkt_matrix, | ||
const SplitKKTResidual & | kkt_residual, | ||
SplitRiccatiFactorization & | riccati | ||
) |
Factorizes the Riccati factorization matrix and vector.
[in] | riccati_next | Riccati factorization of the next time stage. |
[in] | kkt_matrix | Split KKT matrix of this impact stage. |
[in] | kkt_residual | Split KKT residual of this impact stage. ImpactBackwardRiccatiRecursionFactorizer::factorizeKKTMatrix(). |
[out] | riccati | The Riccati factorization of this impact stage. |
void robotoc::BackwardRiccatiRecursionFactorizer::factorizeRiccatiFactorization | ( | const SplitRiccatiFactorization & | riccati_next, |
SplitKKTMatrix & | kkt_matrix, | ||
const SplitKKTResidual & | kkt_residual, | ||
const LQRPolicy & | lqr_policy, | ||
SplitRiccatiFactorization & | riccati | ||
) |
Factorizes the Riccati factorization matrix and vector.
[in] | riccati_next | Riccati factorization of the next time stage. |
[in,out] | kkt_matrix | Split KKT matrix of this time stage. |
[in] | kkt_residual | Split KKT residual of this time stage. |
[in] | lqr_policy | The state feedback control policy of the LQR subproblem. |
[out] | riccati | The Riccati factorization of this time stage. |
void robotoc::BackwardRiccatiRecursionFactorizer::factorizeSTOFactorization | ( | const SplitRiccatiFactorization & | riccati_next, |
const SplitKKTMatrix & | kkt_matrix, | ||
const SplitKKTResidual & | kkt_residual, | ||
const LQRPolicy & | lqr_policy, | ||
SplitRiccatiFactorization & | riccati, | ||
const bool | has_next_sto_phase | ||
) |
Factorizes the STO factorization vector and scalars.
[in] | riccati_next | Riccati factorization of the next time stage. |
[in] | kkt_matrix | Split KKT matrix of this time stage. |
[in] | kkt_residual | Split KKT residual of this time stage. |
[in] | lqr_policy | The state feedback control policy of the LQR subproblem. |
[in,out] | riccati | The Riccati factorization of this time stage. |
[in] | has_next_sto_phase | Flag for wheather this phase has the next phase involving the STO problem. |
void robotoc::BackwardRiccatiRecursionFactorizer::factorizeSTOFactorization | ( | const SplitRiccatiFactorization & | riccati_next, |
const SplitKKTMatrix & | kkt_matrix, | ||
const SplitKKTResidual & | kkt_residual, | ||
SplitRiccatiFactorization & | riccati | ||
) |
Factorizes the STO factorization vector and scalars.
[in] | riccati_next | Riccati factorization of the next time stage. |
[in] | kkt_matrix | Split KKT matrix of this time stage. |
[in] | kkt_residual | Split KKT residual of this time stage. |
[in,out] | riccati | The Riccati factorization of this time stage. |
|
defaultnoexcept |
Default move assign operator.
|
default |
Default copy operator.