1#ifndef ROBOTOC_RICCATI_FACTORIZER_HPP_
2#define ROBOTOC_RICCATI_FACTORIZER_HPP_
107 const
bool has_next_sto_phase);
120 const
bool has_next_sto_phase) const;
149 bool has_floating_base_;
151 double max_dts0_, eps_;
152 Eigen::LLT<Eigen::MatrixXd> llt_, llt_s_;
176 const
bool has_next_sto_phase);
200 const
bool has_prev_sto_phase);
212 const
bool has_next_sto_phase);
234 const
bool sto, const
bool has_next_sto_phase);
Factorizer of the backward Riccati recursion.
Definition: backward_riccati_recursion_factorizer.hpp:19
The state feedback and feedforward policy of LQR subproblem at a time stage.
Definition: lqr_policy.hpp:16
Riccati factorizer.
Definition: riccati_factorizer.hpp:28
RiccatiFactorizer(const RiccatiFactorizer &)=default
Default copy constructor.
RiccatiFactorizer()
Default constructor.
void backwardRiccatiRecursion(const SplitRiccatiFactorization &riccati_next, SplitKKTMatrix &kkt_matrix, SplitKKTResidual &kkt_residual, SplitRiccatiFactorization &riccati, LQRPolicy &lqr_policy)
Performs the backward Riccati recursion.
void setRegularization(const double max_dts0)
Sets the regularization on the STO.
RiccatiFactorizer & operator=(const RiccatiFactorizer &)=default
Default copy operator.
RiccatiFactorizer(RiccatiFactorizer &&) noexcept=default
Default move constructor.
void backwardRiccatiRecursionPhaseTransition(const SplitRiccatiFactorization &riccati, SplitRiccatiFactorization &riccati_m, STOPolicy &sto_policy, const bool has_next_sto_phase) const
Performs the backward Riccati recursion for the phase transition.
RiccatiFactorizer(const Robot &robot, const double max_dts0=0.1)
Constructs a factorizer.
~RiccatiFactorizer()
Destructor.
Dynamics and kinematics model of robots. Wraps pinocchio::Model and pinocchio::Data....
Definition: robot.hpp:32
The state feedback and feedforward policy of the switching time optimization (STO).
Definition: sto_policy.hpp:16
Riccati factorization matrix and vector for the switching constraint.
Definition: split_constrained_riccati_factorization.hpp:17
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
Definition: constraint_component_base.hpp:17
void computeSwitchingTimeDirection(const STOPolicy &sto_policy, SplitDirection &d, const bool has_prev_sto_phase)
Computes the switching time direction.
void computeLagrangeMultiplierDirection(const SplitRiccatiFactorization &riccati, SplitDirection &d, const bool sto, const bool has_next_sto_phase)
Computes the Newton direction of the Lagrange multiplier with respect to the switching constraint.
void computeCostateDirection(const SplitRiccatiFactorization &riccati, SplitDirection &d, const bool sto, const bool has_next_sto_phase)
Computes the Newton direction of the costate.
void forwardRiccatiRecursion(const SplitKKTMatrix &kkt_matrix, const SplitKKTResidual &kkt_residual, const LQRPolicy &lqr_policy, SplitDirection &d, SplitDirection &d_next, const bool sto, const bool has_next_sto_phase)
Performs the forward Riccati recursion and computes the state direction.