Class JointLimitsInvariance

Inheritance Relationships

Base Type

Class Documentation

class JointLimitsInvariance : public OpenSoT::Constraint<Eigen::MatrixXd, Eigen::VectorXd>

The JointLimits class implements bounds on joints positions using internally the GenericConstraint and affine variables.

It is a variation of the joint limits presented in the paper: “Invariance control design for nonlinear control affine systems under hard state constraints”, by: J. Wolff and M.Buss

Public Types

typedef std::shared_ptr<JointLimitsInvariance> Ptr

Public Functions

JointLimitsInvariance(const Eigen::VectorXd &jointBoundMax, const Eigen::VectorXd &jointBoundMin, const Eigen::VectorXd &jointAccMax, XBot::ModelInterface &robot, const double dt)

JointLimitsInvariance constructor.

Note

the model needs to be updated with joint positions and velocities!

Parameters
  • jointBoundMax – max joint limits

  • jointBoundMin – min joint limits

  • jointAccMax – max joint acceleration

  • robot – model

  • dt

virtual void update()

Updates the A, b, Aeq, beq, Aineq, b*Bound matrices.

void setJointAccMax(const Eigen::VectorXd &jointAccMax)

setJointAccMax updates joint acceleration limits

Parameters

jointAccMax

bool setPStepAheadPredictor(const double p)

setPStepAheadPredictor

Parameters

p – step predictor coefficient <= 1

Returns

false if p > 1