robotoc
robotoc - efficient ROBOT Optimal Control solvers
Loading...
Searching...
No Matches
robotoc::SplitKKTMatrix Class Reference

The KKT matrix split into a time stage. More...

#include <split_kkt_matrix.hpp>

Public Member Functions

 SplitKKTMatrix (const Robot &robot)
 Construct a split KKT matrix. More...
 
 SplitKKTMatrix ()
 Default constructor. More...
 
 ~SplitKKTMatrix ()=default
 Default destructor. More...
 
 SplitKKTMatrix (const SplitKKTMatrix &)=default
 Default copy constructor. More...
 
SplitKKTMatrixoperator= (const SplitKKTMatrix &)=default
 Default copy operator. More...
 
 SplitKKTMatrix (SplitKKTMatrix &&) noexcept=default
 Default move constructor. More...
 
SplitKKTMatrixoperator= (SplitKKTMatrix &&) noexcept=default
 Default move assign operator. More...
 
void setContactDimension (const int dimf)
 Sets contact status, i.e., set dimension of the contact forces. More...
 
void setSwitchingConstraintDimension (const int dims)
 Sets the dimension of the switching constraint. More...
 
Eigen::Block< Eigen::MatrixXd > Fqq ()
 Jacobian of the state equation (w.r.t. q) w.r.t. q. More...
 
const Eigen::Block< const Eigen::MatrixXd > Fqq () const
 const version of SplitKKTMatrix::Fqq(). More...
 
Eigen::Block< Eigen::MatrixXd > Fqv ()
 Jacobian of the state equation (w.r.t. q) w.r.t. v. More...
 
const Eigen::Block< const Eigen::MatrixXd > Fqv () const
 const version of SplitKKTMatrix::Fqv(). More...
 
Eigen::Block< Eigen::MatrixXd > Fvq ()
 Jacobian of the state equation (w.r.t. v) w.r.t. q. More...
 
const Eigen::Block< const Eigen::MatrixXd > Fvq () const
 const version of SplitKKTMatrix::Fvq(). More...
 
Eigen::Block< Eigen::MatrixXd > Fvv ()
 Jacobian of the state equation (w.r.t. v) to v. More...
 
const Eigen::Block< const Eigen::MatrixXd > Fvv () const
 const version of SplitKKTMatrix::Fvv(). More...
 
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 time interval. More...
 
const Eigen::VectorBlock< const Eigen::VectorXd > fq () const
 const version of SplitKKTMatrix::fq(). More...
 
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 interval. More...
 
const Eigen::VectorBlock< const Eigen::VectorXd > fv () const
 const version of SplitKKTMatrix::fv(). More...
 
Eigen::Block< Eigen::MatrixXd > Phix ()
 Jacobian of the swithcing constraint w.r.t. x. More...
 
const Eigen::Block< const Eigen::MatrixXd > Phix () const
 const version of SwitchingConstraintJacobian::Phix(). More...
 
Eigen::Block< Eigen::MatrixXd > Phiq ()
 Jacobian of the swithcing constraint w.r.t. q. More...
 
const Eigen::Block< const Eigen::MatrixXd > Phiq () const
 const version of SwitchingConstraintJacobian::Phiq(). More...
 
Eigen::Block< Eigen::MatrixXd > Phiv ()
 Jacobian of the swithcing constraint w.r.t. v. More...
 
const Eigen::Block< const Eigen::MatrixXd > Phiv () const
 const version of SwitchingConstraintJacobian::Phiv(). More...
 
Eigen::Block< Eigen::MatrixXd > Phia ()
 Jacobian of the swithcing constraint w.r.t. a. More...
 
const Eigen::Block< const Eigen::MatrixXd > Phia () const
 const version of SwitchingConstraintJacobian::Phia(). More...
 
Eigen::Block< Eigen::MatrixXd > Phiu ()
 Jacobian of the swithcing constraint w.r.t. u. More...
 
const Eigen::Block< const Eigen::MatrixXd > Phiu () const
 const version of SwitchingConstraintJacobian::Phiu(). More...
 
Eigen::VectorBlock< Eigen::VectorXd > Phit ()
 Jacobian of the swithcing constraint w.r.t. the switching time. More...
 
const Eigen::VectorBlock< const Eigen::VectorXd > Phit () const
 const version of SwitchingConstraintJacobian::Phit(). More...
 
Eigen::Block< Eigen::MatrixXd > Qqq ()
 Hessian w.r.t. the configuration q and configuration q. More...
 
const Eigen::Block< const Eigen::MatrixXd > Qqq () const
 const version of SplitKKTMatrix::Qqq(). More...
 
Eigen::Block< Eigen::MatrixXd > Qqv ()
 Hessian w.r.t. the configuration q and joint velocity v. More...
 
const Eigen::Block< const Eigen::MatrixXd > Qqv () const
 const version of SplitKKTMatrix::Qqv(). More...
 
Eigen::Block< Eigen::MatrixXd > Qvq ()
 Hessian w.r.t. the joint velocity v and configuration q. More...
 
const Eigen::Block< const Eigen::MatrixXd > Qvq () const
 const version of SplitKKTMatrix::Qvq(). More...
 
Eigen::Block< Eigen::MatrixXd > Qvv ()
 Hessian w.r.t. the joint velocity v and joint velocity v. More...
 
const Eigen::Block< const Eigen::MatrixXd > Qvv () const
 const version of SplitKKTMatrix::Qvv(). More...
 
Eigen::Block< Eigen::MatrixXd > Qqu ()
 Hessian of the Lagrangian with respect to the configuration q and control input torques u. More...
 
const Eigen::Block< const Eigen::MatrixXd > Qqu () const
 const version of SplitKKTMatrix::Qqu(). More...
 
Eigen::Block< Eigen::MatrixXd > Qvu ()
 Hessian of the Lagrangian with respect to the velocity v and control input torques u. More...
 
const Eigen::Block< const Eigen::MatrixXd > Qvu () const
 const version of SplitKKTMatrix::Qvu(). More...
 
Eigen::Block< Eigen::MatrixXd > Qff ()
 Hessian of the Lagrangian with respect to the contact forces f. More...
 
const Eigen::Block< const Eigen::MatrixXd > Qff () const
 const version of SplitKKTMatrix::Qff(). More...
 
Eigen::Block< Eigen::MatrixXd > Qqf ()
 Hessian of the Lagrangian with respect to the configuration and contact forces. More...
 
const Eigen::Block< const Eigen::MatrixXd > Qqf () const
 const version of SplitKKTMatrix::Qqf(). More...
 
Eigen::VectorBlock< Eigen::VectorXd > hq ()
 Derivative of the Hamiltonian w.r.t. the configuration q. More...
 
const Eigen::VectorBlock< const Eigen::VectorXd > hq () const
 const version of SplitKKTMatrix::hq(). More...
 
Eigen::VectorBlock< Eigen::VectorXd > hv ()
 Derivative of the Hamiltonian w.r.t. the velocity v. More...
 
const Eigen::VectorBlock< const Eigen::VectorXd > hv () const
 const version of SplitKKTMatrix::hv(). More...
 
Eigen::VectorBlock< Eigen::VectorXd > hf ()
 Derivative of the Hamiltonian w.r.t. the stack of the contact forces f. More...
 
const Eigen::VectorBlock< const Eigen::VectorXd > hf () const
 const version of SplitKKTMatrix::hf(). More...
 
void setZero ()
 Set the all components zero. More...
 
int dimf () const
 Returns the dimension of the stack of contact forces at the current contact status. More...
 
int dims () const
 Returns the dimension of the stack of the contact forces at the current contact status. More...
 
bool isDimensionConsistent () const
 Checks dimensional consistency of each component. More...
 
bool isApprox (const SplitKKTMatrix &other) const
 Checks the equivalence of two SplitKKTMatrix. More...
 
bool hasNaN () const
 Checks this has at least one NaN. More...
 
void setRandom ()
 Set by random value based on the current contact status. More...
 
void setRandom (const ContactStatus &contact_status)
 Set by random value. Contact status is reset. More...
 
void disp (std::ostream &os) const
 Displays the split KKT matrix onto a ostream. More...
 

Static Public Member Functions

static SplitKKTMatrix Random (const Robot &robot)
 Generates split KKT matrix filled randomly. More...
 
static SplitKKTMatrix Random (const Robot &robot, const ContactStatus &contact_status)
 Generates split KKT matrix filled randomly. More...
 

Public Attributes

Eigen::MatrixXd Fxx
 Jacobian of the state equation w.r.t. the state x. More...
 
Eigen::MatrixXd Fvu
 Jacobian of the state equation (w.r.t. v) w.r.t. u. More...
 
Eigen::VectorXd fx
 Derivative of the discrete time state equation w.r.t. the length of the time interval. More...
 
Eigen::MatrixXd Qxx
 Hessian w.r.t. to the state x and state x. More...
 
Eigen::MatrixXd Qaa
 Hessian w.r.t. the acceleration a and acceleration a. More...
 
Eigen::MatrixXd Qdvdv
 Hessian w.r.t. the impact change in the velocity ddv. More...
 
Eigen::MatrixXd Qxu
 Hessian w.r.t. the state x and the control input torques u. More...
 
Eigen::MatrixXd Quu
 Hessian w.r.t. the control input torques u and the control input torques u. More...
 
double Qtt
 Hessian of the Lagrangian w.r.t. the switching time. More...
 
double Qtt_prev
 Hessian of the Lagrangian w.r.t. the previoius switching time. More...
 
Eigen::VectorXd hx
 Derivative of the Hamiltonian w.r.t. the state. More...
 
Eigen::VectorXd hu
 Derivative of the Hamiltonian w.r.t. the control input. More...
 
Eigen::VectorXd ha
 Derivative of the Hamiltonian w.r.t. the acceleration. More...
 

Friends

std::ostream & operator<< (std::ostream &os, const SplitKKTMatrix &kkt_matrix)
 

Detailed Description

The KKT matrix split into a time stage.

Constructor & Destructor Documentation

◆ SplitKKTMatrix() [1/4]

robotoc::SplitKKTMatrix::SplitKKTMatrix ( const Robot robot)

Construct a split KKT matrix.

Parameters
[in]robotRobot model.

◆ SplitKKTMatrix() [2/4]

robotoc::SplitKKTMatrix::SplitKKTMatrix ( )

Default constructor.

◆ ~SplitKKTMatrix()

robotoc::SplitKKTMatrix::~SplitKKTMatrix ( )
default

Default destructor.

◆ SplitKKTMatrix() [3/4]

robotoc::SplitKKTMatrix::SplitKKTMatrix ( const SplitKKTMatrix )
default

Default copy constructor.

◆ SplitKKTMatrix() [4/4]

robotoc::SplitKKTMatrix::SplitKKTMatrix ( SplitKKTMatrix &&  )
defaultnoexcept

Default move constructor.

Member Function Documentation

◆ dimf()

int robotoc::SplitKKTMatrix::dimf ( ) const
inline

Returns the dimension of the stack of contact forces at the current contact status.

Returns
Dimension of the stack of contact forces.

◆ dims()

int robotoc::SplitKKTMatrix::dims ( ) const
inline

Returns the dimension of the stack of the contact forces at the current contact status.

Returns
Dimension of the stack of the contact forces.

◆ disp()

void robotoc::SplitKKTMatrix::disp ( std::ostream &  os) const

Displays the split KKT matrix onto a ostream.

◆ fq() [1/2]

Eigen::VectorBlock< Eigen::VectorXd > robotoc::SplitKKTMatrix::fq ( )
inline

Derivative of the discrete-time state equation w.r.t. the configuration q w.r.t. the length of the time interval.

Returns
Reference to the vector. Size is Robot::dimv().

◆ fq() [2/2]

const Eigen::VectorBlock< const Eigen::VectorXd > robotoc::SplitKKTMatrix::fq ( ) const
inline

const version of SplitKKTMatrix::fq().

◆ Fqq() [1/2]

Eigen::Block< Eigen::MatrixXd > robotoc::SplitKKTMatrix::Fqq ( )
inline

Jacobian of the state equation (w.r.t. q) w.r.t. q.

Returns
Reference to the block of the Jacobian of the constraints. Size is Robot::dimv() x Robot::dimv().

◆ Fqq() [2/2]

const Eigen::Block< const Eigen::MatrixXd > robotoc::SplitKKTMatrix::Fqq ( ) const
inline

const version of SplitKKTMatrix::Fqq().

◆ Fqv() [1/2]

Eigen::Block< Eigen::MatrixXd > robotoc::SplitKKTMatrix::Fqv ( )
inline

Jacobian of the state equation (w.r.t. q) w.r.t. v.

Returns
Reference to the block of the Jacobian of the constraints. Size is Robot::dimv() x Robot::dimv().

◆ Fqv() [2/2]

const Eigen::Block< const Eigen::MatrixXd > robotoc::SplitKKTMatrix::Fqv ( ) const
inline

const version of SplitKKTMatrix::Fqv().

◆ fv() [1/2]

Eigen::VectorBlock< Eigen::VectorXd > robotoc::SplitKKTMatrix::fv ( )
inline

Derivative of the discrete-time state equation w.r.t. the velocity v w.r.t. the length of the time interval.

Returns
Reference to the vector. Size is Robot::dimv().

◆ fv() [2/2]

const Eigen::VectorBlock< const Eigen::VectorXd > robotoc::SplitKKTMatrix::fv ( ) const
inline

const version of SplitKKTMatrix::fv().

◆ Fvq() [1/2]

Eigen::Block< Eigen::MatrixXd > robotoc::SplitKKTMatrix::Fvq ( )
inline

Jacobian of the state equation (w.r.t. v) w.r.t. q.

Returns
Reference to the block of the Jacobian of the constraints. Size is Robot::dimv() x Robot::dimv().

◆ Fvq() [2/2]

const Eigen::Block< const Eigen::MatrixXd > robotoc::SplitKKTMatrix::Fvq ( ) const
inline

const version of SplitKKTMatrix::Fvq().

◆ Fvv() [1/2]

Eigen::Block< Eigen::MatrixXd > robotoc::SplitKKTMatrix::Fvv ( )
inline

Jacobian of the state equation (w.r.t. v) to v.

Returns
Reference to the block of the Jacobian of the constraints. Size is Robot::dimv() x Robot::dimv().

◆ Fvv() [2/2]

const Eigen::Block< const Eigen::MatrixXd > robotoc::SplitKKTMatrix::Fvv ( ) const
inline

const version of SplitKKTMatrix::Fvv().

◆ hasNaN()

bool robotoc::SplitKKTMatrix::hasNaN ( ) const

Checks this has at least one NaN.

Returns
true if this has at least one NaN. false otherwise.

◆ hf() [1/2]

Eigen::VectorBlock< Eigen::VectorXd > robotoc::SplitKKTMatrix::hf ( )
inline

Derivative of the Hamiltonian w.r.t. the stack of the contact forces f.

Returns
Reference to the derivative w.r.t.f. Size is SplitKKTMatrix::dimf().

◆ hf() [2/2]

const Eigen::VectorBlock< const Eigen::VectorXd > robotoc::SplitKKTMatrix::hf ( ) const
inline

const version of SplitKKTMatrix::hf().

◆ hq() [1/2]

Eigen::VectorBlock< Eigen::VectorXd > robotoc::SplitKKTMatrix::hq ( )
inline

Derivative of the Hamiltonian w.r.t. the configuration q.

Returns
Reference to the vector. Size is Robot::dimv().

◆ hq() [2/2]

const Eigen::VectorBlock< const Eigen::VectorXd > robotoc::SplitKKTMatrix::hq ( ) const
inline

const version of SplitKKTMatrix::hq().

◆ hv() [1/2]

Eigen::VectorBlock< Eigen::VectorXd > robotoc::SplitKKTMatrix::hv ( )
inline

Derivative of the Hamiltonian w.r.t. the velocity v.

Returns
Reference to the vector. Size is Robot::dimv().

◆ hv() [2/2]

const Eigen::VectorBlock< const Eigen::VectorXd > robotoc::SplitKKTMatrix::hv ( ) const
inline

const version of SplitKKTMatrix::hv().

◆ isApprox()

bool robotoc::SplitKKTMatrix::isApprox ( const SplitKKTMatrix other) const

Checks the equivalence of two SplitKKTMatrix.

Parameters
[in]otherOther object.
Returns
true if this and other is same. false otherwise.

◆ isDimensionConsistent()

bool robotoc::SplitKKTMatrix::isDimensionConsistent ( ) const

Checks dimensional consistency of each component.

Returns
true if the dimension is consistent. false if not.

◆ operator=() [1/2]

SplitKKTMatrix & robotoc::SplitKKTMatrix::operator= ( const SplitKKTMatrix )
default

Default copy operator.

◆ operator=() [2/2]

SplitKKTMatrix & robotoc::SplitKKTMatrix::operator= ( SplitKKTMatrix &&  )
defaultnoexcept

Default move assign operator.

◆ Phia() [1/2]

Eigen::Block< Eigen::MatrixXd > robotoc::SplitKKTMatrix::Phia ( )
inline

Jacobian of the swithcing constraint w.r.t. a.

Returns
Reference to the Jacobian. Size is ImpactStatus::dimf() x Robot::dimv().

◆ Phia() [2/2]

const Eigen::Block< const Eigen::MatrixXd > robotoc::SplitKKTMatrix::Phia ( ) const
inline

const version of SwitchingConstraintJacobian::Phia().

◆ Phiq() [1/2]

Eigen::Block< Eigen::MatrixXd > robotoc::SplitKKTMatrix::Phiq ( )
inline

Jacobian of the swithcing constraint w.r.t. q.

Returns
Reference to the Jacobian. Size is ImpactStatus::dimf() x Robot::dimv().

◆ Phiq() [2/2]

const Eigen::Block< const Eigen::MatrixXd > robotoc::SplitKKTMatrix::Phiq ( ) const
inline

const version of SwitchingConstraintJacobian::Phiq().

◆ Phit() [1/2]

Eigen::VectorBlock< Eigen::VectorXd > robotoc::SplitKKTMatrix::Phit ( )
inline

Jacobian of the swithcing constraint w.r.t. the switching time.

Returns
Reference to the time Jacobian vector. Size is ImpactStatus::dimf().

◆ Phit() [2/2]

const Eigen::VectorBlock< const Eigen::VectorXd > robotoc::SplitKKTMatrix::Phit ( ) const
inline

const version of SwitchingConstraintJacobian::Phit().

◆ Phiu() [1/2]

Eigen::Block< Eigen::MatrixXd > robotoc::SplitKKTMatrix::Phiu ( )
inline

Jacobian of the swithcing constraint w.r.t. u.

Returns
Reference to the Jacobian. Size is ImpactStatus::dimf() x Robot::dimu().

◆ Phiu() [2/2]

const Eigen::Block< const Eigen::MatrixXd > robotoc::SplitKKTMatrix::Phiu ( ) const
inline

const version of SwitchingConstraintJacobian::Phiu().

◆ Phiv() [1/2]

Eigen::Block< Eigen::MatrixXd > robotoc::SplitKKTMatrix::Phiv ( )
inline

Jacobian of the swithcing constraint w.r.t. v.

Returns
Reference to the Jacobian. Size is ImpactStatus::dimf() x Robot::dimv().

◆ Phiv() [2/2]

const Eigen::Block< const Eigen::MatrixXd > robotoc::SplitKKTMatrix::Phiv ( ) const
inline

const version of SwitchingConstraintJacobian::Phiv().

◆ Phix() [1/2]

Eigen::Block< Eigen::MatrixXd > robotoc::SplitKKTMatrix::Phix ( )
inline

Jacobian of the swithcing constraint w.r.t. x.

Returns
Reference to the Jacobian. Size is ImpactStatus::dimf() x 2 * Robot::dimv().

◆ Phix() [2/2]

const Eigen::Block< const Eigen::MatrixXd > robotoc::SplitKKTMatrix::Phix ( ) const
inline

const version of SwitchingConstraintJacobian::Phix().

◆ Qff() [1/2]

Eigen::Block< Eigen::MatrixXd > robotoc::SplitKKTMatrix::Qff ( )
inline

Hessian of the Lagrangian with respect to the contact forces f.

Returns
Reference to the Hessian. Size is ContactStatus::dimf() x ContactStatus::dimf().

◆ Qff() [2/2]

const Eigen::Block< const Eigen::MatrixXd > robotoc::SplitKKTMatrix::Qff ( ) const
inline

const version of SplitKKTMatrix::Qff().

◆ Qqf() [1/2]

Eigen::Block< Eigen::MatrixXd > robotoc::SplitKKTMatrix::Qqf ( )
inline

Hessian of the Lagrangian with respect to the configuration and contact forces.

Returns
Reference to the Hessian. Size is Robot::dimv() x ContactStatus::dimf().

◆ Qqf() [2/2]

const Eigen::Block< const Eigen::MatrixXd > robotoc::SplitKKTMatrix::Qqf ( ) const
inline

const version of SplitKKTMatrix::Qqf().

◆ Qqq() [1/2]

Eigen::Block< Eigen::MatrixXd > robotoc::SplitKKTMatrix::Qqq ( )
inline

Hessian w.r.t. the configuration q and configuration q.

Returns
Reference to the Hessian. Size is Robot::dimv() x Robot::dimv().

◆ Qqq() [2/2]

const Eigen::Block< const Eigen::MatrixXd > robotoc::SplitKKTMatrix::Qqq ( ) const
inline

const version of SplitKKTMatrix::Qqq().

◆ Qqu() [1/2]

Eigen::Block< Eigen::MatrixXd > robotoc::SplitKKTMatrix::Qqu ( )
inline

Hessian of the Lagrangian with respect to the configuration q and control input torques u.

Returns
Reference to the Hessian. Size is Robot::dimu() x Robot::dimv().

◆ Qqu() [2/2]

const Eigen::Block< const Eigen::MatrixXd > robotoc::SplitKKTMatrix::Qqu ( ) const
inline

const version of SplitKKTMatrix::Qqu().

◆ Qqv() [1/2]

Eigen::Block< Eigen::MatrixXd > robotoc::SplitKKTMatrix::Qqv ( )
inline

Hessian w.r.t. the configuration q and joint velocity v.

Returns
Reference to the Hessian. Size is Robot::dimv() x Robot::dimv().

◆ Qqv() [2/2]

const Eigen::Block< const Eigen::MatrixXd > robotoc::SplitKKTMatrix::Qqv ( ) const
inline

const version of SplitKKTMatrix::Qqv().

◆ Qvq() [1/2]

Eigen::Block< Eigen::MatrixXd > robotoc::SplitKKTMatrix::Qvq ( )
inline

Hessian w.r.t. the joint velocity v and configuration q.

Returns
Reference to the Hessian. Size is Robot::dimv() x Robot::dimv().

◆ Qvq() [2/2]

const Eigen::Block< const Eigen::MatrixXd > robotoc::SplitKKTMatrix::Qvq ( ) const
inline

const version of SplitKKTMatrix::Qvq().

◆ Qvu() [1/2]

Eigen::Block< Eigen::MatrixXd > robotoc::SplitKKTMatrix::Qvu ( )
inline

Hessian of the Lagrangian with respect to the velocity v and control input torques u.

Returns
Reference to the Hessian. Size is Robot::dimu() x Robot::dimv().

◆ Qvu() [2/2]

const Eigen::Block< const Eigen::MatrixXd > robotoc::SplitKKTMatrix::Qvu ( ) const
inline

const version of SplitKKTMatrix::Qvu().

◆ Qvv() [1/2]

Eigen::Block< Eigen::MatrixXd > robotoc::SplitKKTMatrix::Qvv ( )
inline

Hessian w.r.t. the joint velocity v and joint velocity v.

Returns
Reference to the Hessian. Size is Robot::dimv() x Robot::dimv().

◆ Qvv() [2/2]

const Eigen::Block< const Eigen::MatrixXd > robotoc::SplitKKTMatrix::Qvv ( ) const
inline

const version of SplitKKTMatrix::Qvv().

◆ Random() [1/2]

static SplitKKTMatrix robotoc::SplitKKTMatrix::Random ( const Robot robot)
static

Generates split KKT matrix filled randomly.

Returns
Split KKT matrix filled randomly.
Parameters
[in]robotRobot model.

◆ Random() [2/2]

static SplitKKTMatrix robotoc::SplitKKTMatrix::Random ( const Robot robot,
const ContactStatus contact_status 
)
static

Generates split KKT matrix filled randomly.

Returns
Split KKT matrix filled randomly.
Parameters
[in]robotRobot model.
[in]contact_statusContact status.

◆ setContactDimension()

void robotoc::SplitKKTMatrix::setContactDimension ( const int  dimf)
inline

Sets contact status, i.e., set dimension of the contact forces.

Parameters
[in]dimfThe dimension of the contact. Must be non-negative.

◆ setRandom() [1/2]

void robotoc::SplitKKTMatrix::setRandom ( )

Set by random value based on the current contact status.

◆ setRandom() [2/2]

void robotoc::SplitKKTMatrix::setRandom ( const ContactStatus contact_status)

Set by random value. Contact status is reset.

Parameters
[in]contact_statusContact status.

◆ setSwitchingConstraintDimension()

void robotoc::SplitKKTMatrix::setSwitchingConstraintDimension ( const int  dims)
inline

Sets the dimension of the switching constraint.

Parameters
[in]dimsThe dimension of the switching constraint. Must be non-negative.

◆ setZero()

void robotoc::SplitKKTMatrix::setZero ( )
inline

Set the all components zero.

Friends And Related Function Documentation

◆ operator<<

std::ostream & operator<< ( std::ostream &  os,
const SplitKKTMatrix kkt_matrix 
)
friend

Member Data Documentation

◆ Fvu

Eigen::MatrixXd robotoc::SplitKKTMatrix::Fvu

Jacobian of the state equation (w.r.t. v) w.r.t. u.

◆ fx

Eigen::VectorXd robotoc::SplitKKTMatrix::fx

Derivative of the discrete time state equation w.r.t. the length of the time interval.

◆ Fxx

Eigen::MatrixXd robotoc::SplitKKTMatrix::Fxx

Jacobian of the state equation w.r.t. the state x.

◆ ha

Eigen::VectorXd robotoc::SplitKKTMatrix::ha

Derivative of the Hamiltonian w.r.t. the acceleration.

◆ hu

Eigen::VectorXd robotoc::SplitKKTMatrix::hu

Derivative of the Hamiltonian w.r.t. the control input.

◆ hx

Eigen::VectorXd robotoc::SplitKKTMatrix::hx

Derivative of the Hamiltonian w.r.t. the state.

◆ Qaa

Eigen::MatrixXd robotoc::SplitKKTMatrix::Qaa

Hessian w.r.t. the acceleration a and acceleration a.

◆ Qdvdv

Eigen::MatrixXd robotoc::SplitKKTMatrix::Qdvdv

Hessian w.r.t. the impact change in the velocity ddv.

◆ Qtt

double robotoc::SplitKKTMatrix::Qtt

Hessian of the Lagrangian w.r.t. the switching time.

◆ Qtt_prev

double robotoc::SplitKKTMatrix::Qtt_prev

Hessian of the Lagrangian w.r.t. the previoius switching time.

◆ Quu

Eigen::MatrixXd robotoc::SplitKKTMatrix::Quu

Hessian w.r.t. the control input torques u and the control input torques u.

◆ Qxu

Eigen::MatrixXd robotoc::SplitKKTMatrix::Qxu

Hessian w.r.t. the state x and the control input torques u.

◆ Qxx

Eigen::MatrixXd robotoc::SplitKKTMatrix::Qxx

Hessian w.r.t. to the state x and state x.


The documentation for this class was generated from the following files: