1#ifndef ROBOTOC_SPLIT_RICCATI_FACTORIZATION_HPP_
2#define ROBOTOC_SPLIT_RICCATI_FACTORIZATION_HPP_
67 Eigen::Block<Eigen::MatrixXd>
Pqq() {
68 return P.topLeftCorner(dimv_, dimv_);
71 const Eigen::Block<const Eigen::MatrixXd>
Pqq()
const {
72 return P.topLeftCorner(dimv_, dimv_);
75 Eigen::Block<Eigen::MatrixXd>
Pqv() {
76 return P.topRightCorner(dimv_, dimv_);
79 const Eigen::Block<const Eigen::MatrixXd>
Pqv()
const {
80 return P.topRightCorner(dimv_, dimv_);
83 Eigen::Block<Eigen::MatrixXd>
Pvq() {
84 return P.bottomLeftCorner(dimv_, dimv_);
87 const Eigen::Block<const Eigen::MatrixXd>
Pvq()
const {
88 return P.bottomLeftCorner(dimv_, dimv_);
91 Eigen::Block<Eigen::MatrixXd>
Pvv() {
92 return P.bottomRightCorner(dimv_, dimv_);
95 const Eigen::Block<const Eigen::MatrixXd>
Pvv()
const {
96 return P.bottomRightCorner(dimv_, dimv_);
99 Eigen::VectorBlock<Eigen::VectorXd>
sq() {
100 return s.head(dimv_);
103 const Eigen::VectorBlock<const Eigen::VectorXd>
sq()
const {
104 return s.head(dimv_);
107 Eigen::VectorBlock<Eigen::VectorXd>
sv() {
108 return s.tail(dimv_);
111 const Eigen::VectorBlock<const Eigen::VectorXd>
sv()
const {
112 return s.tail(dimv_);
180 Eigen::Block<Eigen::MatrixXd>
M();
182 const Eigen::Block<const Eigen::MatrixXd>
M()
const;
184 Eigen::VectorBlock<Eigen::VectorXd>
m();
186 const Eigen::VectorBlock<const Eigen::VectorXd>
m()
const;
188 Eigen::VectorBlock<Eigen::VectorXd>
mt();
190 const Eigen::VectorBlock<const Eigen::VectorXd>
mt()
const;
192 Eigen::VectorBlock<Eigen::VectorXd>
mt_next();
194 const Eigen::VectorBlock<const Eigen::VectorXd>
mt_next()
const;
218 void disp(std::ostream& os)
const;
224 Eigen::MatrixXd M_full_;
225 Eigen::VectorXd m_full_, mt_full_, mt_next_full_;
226 int dimv_, dimx_, dims_;
Dynamics and kinematics model of robots. Wraps pinocchio::Model and pinocchio::Data....
Definition: robot.hpp:32
Riccati factorization matrix and vector for a time stage.
Definition: split_riccati_factorization.hpp:15
double iota
Riccati factorization w.r.t. the switching time.
Definition: split_riccati_factorization.hpp:174
double rho
Riccati factorization w.r.t. the switching time.
Definition: split_riccati_factorization.hpp:164
Eigen::Block< Eigen::MatrixXd > Pqq()
Definition: split_riccati_factorization.hpp:67
Eigen::Block< Eigen::MatrixXd > Pqv()
Definition: split_riccati_factorization.hpp:75
Eigen::VectorBlock< Eigen::VectorXd > sv()
Definition: split_riccati_factorization.hpp:107
int dims() const
Definition: split_riccati_factorization.hxx:68
Eigen::VectorXd psi_x
Riccati factorization vector w.r.t. the switching time. Size is 2 * Robot::dimv().
Definition: split_riccati_factorization.hpp:119
SplitRiccatiFactorization & operator=(const SplitRiccatiFactorization &)=default
Default copy operator.
const Eigen::Block< const Eigen::MatrixXd > Pvq() const
Definition: split_riccati_factorization.hpp:87
Eigen::VectorXd Phi
Riccati factorization vector w.r.t. the switching time. Size is 2 * Robot::dimv().
Definition: split_riccati_factorization.hpp:149
Eigen::VectorBlock< Eigen::VectorXd > mt()
Definition: split_riccati_factorization.hxx:93
void setRandom()
Definition: split_riccati_factorization.hxx:134
double chi
Riccati factorization w.r.t. the switching time.
Definition: split_riccati_factorization.hpp:159
Eigen::Block< Eigen::MatrixXd > M()
Definition: split_riccati_factorization.hxx:73
void disp(std::ostream &os) const
Displays the split Riccati factorization onto a ostream.
const Eigen::Block< const Eigen::MatrixXd > Pvv() const
Definition: split_riccati_factorization.hpp:95
bool hasNaN() const
Checks this object has at least one NaN.
Definition: split_riccati_factorization.hxx:180
void setConstraintDimension(const int dims=0)
Definition: split_riccati_factorization.hxx:61
const Eigen::VectorBlock< const Eigen::VectorXd > sq() const
Definition: split_riccati_factorization.hpp:103
Eigen::Block< Eigen::MatrixXd > Pvq()
Definition: split_riccati_factorization.hpp:83
const Eigen::Block< const Eigen::MatrixXd > Pqq() const
Definition: split_riccati_factorization.hpp:71
Eigen::VectorBlock< Eigen::VectorXd > sq()
Definition: split_riccati_factorization.hpp:99
Eigen::VectorBlock< Eigen::VectorXd > mt_next()
Definition: split_riccati_factorization.hxx:103
Eigen::VectorXd psi_u
Riccati factorization vector w.r.t. the switching time. Size is Robot::dimu().
Definition: split_riccati_factorization.hpp:125
~SplitRiccatiFactorization()
Destructor.
Definition: split_riccati_factorization.hxx:57
Eigen::VectorXd Psi
Riccati factorization vector w.r.t. the switching time. Size is 2 * Robot::dimv().
Definition: split_riccati_factorization.hpp:131
static SplitRiccatiFactorization Random(const Robot &robot)
Definition: split_riccati_factorization.hxx:202
Eigen::VectorBlock< Eigen::VectorXd > m()
Definition: split_riccati_factorization.hxx:83
Eigen::Block< Eigen::MatrixXd > Pvv()
Definition: split_riccati_factorization.hpp:91
Eigen::MatrixXd P
Riccati factorization matrix. Size is 2 * Robot::dimv() x 2 * Robot::dimv().
Definition: split_riccati_factorization.hpp:60
const Eigen::Block< const Eigen::MatrixXd > Pqv() const
Definition: split_riccati_factorization.hpp:79
bool isApprox(const SplitRiccatiFactorization &other) const
Checks the equivalence of two SplitRiccatiFactorization.
Definition: split_riccati_factorization.hxx:156
double xi
Riccati factorization w.r.t. the switching time.
Definition: split_riccati_factorization.hpp:154
SplitRiccatiFactorization(const SplitRiccatiFactorization &)=default
Default copy constructor.
Eigen::VectorXd phi_u
Riccati factorization vector w.r.t. the switching time. Size is Robot::dimu().
Definition: split_riccati_factorization.hpp:143
Eigen::VectorXd phi_x
Riccati factorization vector w.r.t. the switching time. Size is 2 * Robot::dimv().
Definition: split_riccati_factorization.hpp:137
Eigen::VectorXd s
Riccati factorization vector. Size is 2 * Robot::dimv().
Definition: split_riccati_factorization.hpp:65
SplitRiccatiFactorization(SplitRiccatiFactorization &&) noexcept=default
Default move constructor.
const Eigen::VectorBlock< const Eigen::VectorXd > sv() const
Definition: split_riccati_factorization.hpp:111
friend std::ostream & operator<<(std::ostream &os, const SplitRiccatiFactorization &riccati)
void setZero()
Definition: split_riccati_factorization.hxx:113
SplitRiccatiFactorization()
Default constructor.
Definition: split_riccati_factorization.hxx:33
double eta
Riccati factorization w.r.t. the switching time.
Definition: split_riccati_factorization.hpp:169
Definition: constraint_component_base.hpp:17