robotoc
robotoc - efficient ROBOT Optimal Control solvers
Loading...
Searching...
No Matches
unconstr_riccati_factorizer.hpp
Go to the documentation of this file.
1#ifndef ROBOTOC_UNCONSTR_RICCATI_FACTORIZER_HPP_
2#define ROBOTOC_UNCONSTR_RICCATI_FACTORIZER_HPP_
3
4#include "Eigen/Core"
5#include "Eigen/LU"
6
14
15#include <limits>
16#include <cmath>
17
18
19namespace robotoc {
20
26public:
32
37
42
47
52 const UnconstrRiccatiFactorizer&) = default;
53
58
63 UnconstrRiccatiFactorizer&&) noexcept = default;
64
76 const double dt, SplitKKTMatrix& kkt_matrix,
77 SplitKKTResidual& kkt_residual,
79 LQRPolicy& lqr_policy);
80
90 void forwardRiccatiRecursion(const SplitKKTResidual& kkt_residual,
91 const double dt, const LQRPolicy& lqr_policy,
92 SplitDirection& d, SplitDirection& d_next) const;
93
100 SplitDirection& d);
101
102private:
103 int dimv_;
104 Eigen::LLT<Eigen::MatrixXd> llt_;
106
107};
108
109} // namespace robotoc
110
111#endif // ROBOTOC_UNCONSTR_RICCATI_FACTORIZER_HPP_
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
Newton direction of the solution to the optimal control problem split into a time stage.
Definition: split_direction.hpp:20
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
Factorizer of the backward Riccati recursion of a time stage.
Definition: unconstr_backward_riccati_recursion_factorizer.hpp:19
Riccati factorizer for a time stage.
Definition: unconstr_riccati_factorizer.hpp:25
static void computeCostateDirection(const SplitRiccatiFactorization &riccati, SplitDirection &d)
Computes the Newton direction of the costate vector.
UnconstrRiccatiFactorizer(const UnconstrRiccatiFactorizer &)=default
Default copy constructor.
UnconstrRiccatiFactorizer(const Robot &robot)
Constructs a factorizer.
UnconstrRiccatiFactorizer()
Default constructor.
void forwardRiccatiRecursion(const SplitKKTResidual &kkt_residual, const double dt, const LQRPolicy &lqr_policy, SplitDirection &d, SplitDirection &d_next) const
Performs forward Riccati recursion and computes state direction.
UnconstrRiccatiFactorizer & operator=(const UnconstrRiccatiFactorizer &)=default
Default copy operator.
UnconstrRiccatiFactorizer(UnconstrRiccatiFactorizer &&) noexcept=default
Default move constructor.
void backwardRiccatiRecursion(const SplitRiccatiFactorization &riccati_next, const double dt, SplitKKTMatrix &kkt_matrix, SplitKKTResidual &kkt_residual, SplitRiccatiFactorization &riccati, LQRPolicy &lqr_policy)
Performs the backward Riccati recursion.
Definition: constraint_component_base.hpp:17