1#ifndef ROBOTOC_SPLIT_KKT_MATRIX_HXX_
2#define ROBOTOC_SPLIT_KKT_MATRIX_HXX_
13 assert(
dimf <= Phit_full_.size());
20 assert(
dims <= Phit_full_.size());
26 return Fxx.topLeftCorner(dimv_, dimv_);
31 return Fxx.topLeftCorner(dimv_, dimv_);
36 return Fxx.topRightCorner(dimv_, dimv_);
41 return Fxx.topRightCorner(dimv_, dimv_);
46 return Fxx.bottomLeftCorner(dimv_, dimv_);
51 return Fxx.bottomLeftCorner(dimv_, dimv_);
56 return Fxx.bottomRightCorner(dimv_, dimv_);
61 return Fxx.bottomRightCorner(dimv_, dimv_);
66 return fx.head(dimv_);
71 return fx.head(dimv_);
76 return fx.tail(dimv_);
81 return fx.tail(dimv_);
86 return Phix_full_.topLeftCorner(dims_, dimx_);
91 return Phix_full_.topLeftCorner(dims_, dimx_);
96 return Phix_full_.topLeftCorner(dims_, dimv_);
101 return Phix_full_.topLeftCorner(dims_, dimv_);
106 return Phix_full_.topRightCorner(dims_, dimv_);
111 return Phix_full_.topRightCorner(dims_, dimv_);
116 return Phia_full_.topLeftCorner(dims_, dimv_);
121 return Phia_full_.topLeftCorner(dims_, dimv_);
126 return Phiu_full_.topLeftCorner(dims_, dimu_);
131 return Phiu_full_.topLeftCorner(dims_, dimu_);
136 return Phit_full_.head(dims_);
141 return Phit_full_.head(dims_);
146 return Qxx.topLeftCorner(dimv_, dimv_);
151 return Qxx.topLeftCorner(dimv_, dimv_);
156 return Qxx.topRightCorner(dimv_, dimv_);
161 return Qxx.topRightCorner(dimv_, dimv_);
166 return Qxx.bottomLeftCorner(dimv_, dimv_);
171 return Qxx.bottomLeftCorner(dimv_, dimv_);
176 return Qxx.bottomRightCorner(dimv_, dimv_);
181 return Qxx.bottomRightCorner(dimv_, dimv_);
186 return Qxu.topLeftCorner(dimv_, dimu_);
191 return Qxu.topLeftCorner(dimv_, dimu_);
196 return Qxu.bottomLeftCorner(dimv_, dimu_);
201 return Qxu.bottomLeftCorner(dimv_, dimu_);
206 return Qff_full_.topLeftCorner(dimf_, dimf_);
211 return Qff_full_.topLeftCorner(dimf_, dimf_);
216 return Qqf_full_.topLeftCorner(dimv_, dimf_);
221 return Qqf_full_.topLeftCorner(dimv_, dimf_);
226 return hx.head(dimv_);
231 return hx.head(dimv_);
236 return hx.tail(dimv_);
241 return hx.tail(dimv_);
246 return hf_full_.head(dimf_);
251 return hf_full_.head(dimf_);
int dimf() const
Returns the dimension of the stack of contact forces at the current contact status.
Definition: split_kkt_matrix.hxx:279
Eigen::Block< Eigen::MatrixXd > Phiu()
Jacobian of the swithcing constraint w.r.t. u.
Definition: split_kkt_matrix.hxx:125
Eigen::Block< Eigen::MatrixXd > Fqq()
Jacobian of the state equation (w.r.t. q) w.r.t. q.
Definition: split_kkt_matrix.hxx:25
Eigen::Block< Eigen::MatrixXd > Fqv()
Jacobian of the state equation (w.r.t. q) w.r.t. v.
Definition: split_kkt_matrix.hxx:35
void setContactDimension(const int dimf)
Sets contact status, i.e., set dimension of the contact forces.
Definition: split_kkt_matrix.hxx:11
Eigen::VectorXd fx
Derivative of the discrete time state equation w.r.t. the length of the time interval.
Definition: split_kkt_matrix.hpp:130
Eigen::MatrixXd Fvu
Jacobian of the state equation (w.r.t. v) w.r.t. u.
Definition: split_kkt_matrix.hpp:124
Eigen::MatrixXd Qaa
Hessian w.r.t. the acceleration a and acceleration a.
Definition: split_kkt_matrix.hpp:281
Eigen::Block< Eigen::MatrixXd > Phix()
Jacobian of the swithcing constraint w.r.t. x.
Definition: split_kkt_matrix.hxx:85
Eigen::MatrixXd Qxu
Hessian w.r.t. the state x and the control input torques u.
Definition: split_kkt_matrix.hpp:291
Eigen::Block< Eigen::MatrixXd > Qqu()
Hessian of the Lagrangian with respect to the configuration q and control input torques u.
Definition: split_kkt_matrix.hxx:185
Eigen::Block< Eigen::MatrixXd > Qff()
Hessian of the Lagrangian with respect to the contact forces f.
Definition: split_kkt_matrix.hxx:205
Eigen::VectorXd hx
Derivative of the Hamiltonian w.r.t. the state.
Definition: split_kkt_matrix.hpp:361
Eigen::Block< Eigen::MatrixXd > Qvv()
Hessian w.r.t. the joint velocity v and joint velocity v.
Definition: split_kkt_matrix.hxx:175
Eigen::MatrixXd Fxx
Jacobian of the state equation w.r.t. the state x.
Definition: split_kkt_matrix.hpp:71
Eigen::VectorBlock< Eigen::VectorXd > fv()
Derivative of the discrete-time state equation w.r.t. the velocity v w.r.t. the length of the time in...
Definition: split_kkt_matrix.hxx:75
Eigen::Block< Eigen::MatrixXd > Phia()
Jacobian of the swithcing constraint w.r.t. a.
Definition: split_kkt_matrix.hxx:115
Eigen::Block< Eigen::MatrixXd > Fvv()
Jacobian of the state equation (w.r.t. v) to v.
Definition: split_kkt_matrix.hxx:55
Eigen::VectorXd hu
Derivative of the Hamiltonian w.r.t. the control input.
Definition: split_kkt_matrix.hpp:388
Eigen::Block< Eigen::MatrixXd > Phiq()
Jacobian of the swithcing constraint w.r.t. q.
Definition: split_kkt_matrix.hxx:95
Eigen::Block< Eigen::MatrixXd > Qqq()
Hessian w.r.t. the configuration q and configuration q.
Definition: split_kkt_matrix.hxx:145
Eigen::Block< Eigen::MatrixXd > Qvu()
Hessian of the Lagrangian with respect to the velocity v and control input torques u.
Definition: split_kkt_matrix.hxx:195
Eigen::MatrixXd Quu
Hessian w.r.t. the control input torques u and the control input torques u.
Definition: split_kkt_matrix.hpp:321
Eigen::Block< Eigen::MatrixXd > Qqf()
Hessian of the Lagrangian with respect to the configuration and contact forces.
Definition: split_kkt_matrix.hxx:215
Eigen::VectorBlock< Eigen::VectorXd > Phit()
Jacobian of the swithcing constraint w.r.t. the switching time.
Definition: split_kkt_matrix.hxx:135
double Qtt
Hessian of the Lagrangian w.r.t. the switching time.
Definition: split_kkt_matrix.hpp:351
void setZero()
Set the all components zero.
Definition: split_kkt_matrix.hxx:255
void setSwitchingConstraintDimension(const int dims)
Sets the dimension of the switching constraint.
Definition: split_kkt_matrix.hxx:18
Eigen::Block< Eigen::MatrixXd > Qqv()
Hessian w.r.t. the configuration q and joint velocity v.
Definition: split_kkt_matrix.hxx:155
Eigen::VectorBlock< Eigen::VectorXd > hq()
Derivative of the Hamiltonian w.r.t. the configuration q.
Definition: split_kkt_matrix.hxx:225
Eigen::Block< Eigen::MatrixXd > Fvq()
Jacobian of the state equation (w.r.t. v) w.r.t. q.
Definition: split_kkt_matrix.hxx:45
Eigen::MatrixXd Qdvdv
Hessian w.r.t. the impact change in the velocity ddv.
Definition: split_kkt_matrix.hpp:286
Eigen::Block< Eigen::MatrixXd > Phiv()
Jacobian of the swithcing constraint w.r.t. v.
Definition: split_kkt_matrix.hxx:105
double Qtt_prev
Hessian of the Lagrangian w.r.t. the previoius switching time.
Definition: split_kkt_matrix.hpp:356
int dims() const
Returns the dimension of the stack of the contact forces at the current contact status.
Definition: split_kkt_matrix.hxx:284
Eigen::VectorBlock< Eigen::VectorXd > hv()
Derivative of the Hamiltonian w.r.t. the velocity v.
Definition: split_kkt_matrix.hxx:235
Eigen::VectorXd ha
Derivative of the Hamiltonian w.r.t. the acceleration.
Definition: split_kkt_matrix.hpp:393
Eigen::VectorBlock< Eigen::VectorXd > fq()
Derivative of the discrete-time state equation w.r.t. the configuration q w.r.t. the length of the ti...
Definition: split_kkt_matrix.hxx:65
Eigen::MatrixXd Qxx
Hessian w.r.t. to the state x and state x.
Definition: split_kkt_matrix.hpp:232
Eigen::Block< Eigen::MatrixXd > Qvq()
Hessian w.r.t. the joint velocity v and configuration q.
Definition: split_kkt_matrix.hxx:165
Eigen::VectorBlock< Eigen::VectorXd > hf()
Derivative of the Hamiltonian w.r.t. the stack of the contact forces f.
Definition: split_kkt_matrix.hxx:245
Definition: constraint_component_base.hpp:17