robotoc
robotoc - efficient ROBOT Optimal Control solvers
Loading...
Searching...
No Matches
backward_riccati_recursion_factorizer.hpp
Go to the documentation of this file.
1#ifndef ROBOTOC_BACKWARD_RICCATI_RECURSION_FACTORIZER_HPP_
2#define ROBOTOC_BACKWARD_RICCATI_RECURSION_FACTORIZER_HPP_
3
4#include "Eigen/Core"
5
11
12
13namespace robotoc {
14
20public:
22 = Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor>;
23
29
34
39
44 const BackwardRiccatiRecursionFactorizer&) = default;
45
50 const BackwardRiccatiRecursionFactorizer&) = default;
51
56 BackwardRiccatiRecursionFactorizer&&) noexcept = default;
57
62 BackwardRiccatiRecursionFactorizer&&) noexcept = default;
63
72 SplitKKTMatrix& kkt_matrix,
73 SplitKKTResidual& kkt_residual);
74
86 const SplitKKTMatrix& kkt_matrix,
88 const bool has_next_sto_phase) const;
89
97 SplitKKTMatrix& kkt_matrix);
98
109 const SplitRiccatiFactorization& riccati_next,
110 SplitKKTMatrix& kkt_matrix, const SplitKKTResidual& kkt_residual,
111 const LQRPolicy& lqr_policy, SplitRiccatiFactorization& riccati);
112
125 const SplitRiccatiFactorization& riccati_next,
126 const SplitKKTMatrix& kkt_matrix, const SplitKKTResidual& kkt_residual,
127 const LQRPolicy& lqr_policy, SplitRiccatiFactorization& riccati,
128 const bool has_next_sto_phase);
129
139 const SplitRiccatiFactorization& riccati_next,
140 const SplitKKTMatrix& kkt_matrix,
141 const SplitKKTResidual& kkt_residual,
143
152 const SplitRiccatiFactorization& riccati_next,
153 const SplitKKTMatrix& kkt_matrix,
154 const SplitKKTResidual& kkt_residual,
156
157private:
158 int dimv_, dimu_;
159 MatrixXdRowMajor AtP_, BtP_;
160 Eigen::MatrixXd GK_;
161 Eigen::VectorXd Pf_;
162
163};
164
165} // namespace robotoc
166
167#endif // ROBOTOC_BACKWARD_RICCATI_RECURSION_FACTORIZER_HPP_
Factorizer of the backward Riccati recursion.
Definition: backward_riccati_recursion_factorizer.hpp:19
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor > MatrixXdRowMajor
Definition: backward_riccati_recursion_factorizer.hpp:22
BackwardRiccatiRecursionFactorizer & operator=(const BackwardRiccatiRecursionFactorizer &)=default
Default copy operator.
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.
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.
BackwardRiccatiRecursionFactorizer(BackwardRiccatiRecursionFactorizer &&) noexcept=default
Default move constructor.
BackwardRiccatiRecursionFactorizer(const Robot &robot)
Constructs a factorizer.
BackwardRiccatiRecursionFactorizer(const BackwardRiccatiRecursionFactorizer &)=default
Default copy constructor.
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.
BackwardRiccatiRecursionFactorizer()
Default constructor.
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 recur...
The state feedback and feedforward policy of LQR subproblem at a time stage.
Definition: lqr_policy.hpp:16
Dynamics and kinematics model of robots. Wraps pinocchio::Model and pinocchio::Data....
Definition: robot.hpp:32
The KKT matrix split into a time stage.
Definition: split_kkt_matrix.hpp:18
KKT residual split into each time stage.
Definition: split_kkt_residual.hpp:18
Riccati factorization matrix and vector for a time stage.
Definition: split_riccati_factorization.hpp:15
Definition: constraint_component_base.hpp:17