Class JointLimitsECBF

Inheritance Relationships

Base Type

Class Documentation

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

The JointLimitsECBF class implements Joint Limits using Exponential Control Barrier Functions (ECBF) as in the paper “Humanoid Self-Collision Avoidance Using Whole-Body Control with Control Barrier Functions”, by Charles Khazoom, Daniel Gonzalez-Diaz, Yanran Ding, and Sangbae Kim.

Public Types

typedef std::shared_ptr<JointLimitsECBF> Ptr

Public Functions

JointLimitsECBF(XBot::ModelInterface &robot, const AffineHelper &qddot, const Eigen::VectorXd &jointBoundMax, const Eigen::VectorXd &jointBoundMin, const Eigen::VectorXd &jointVelMax, const Eigen::VectorXd &jointAccMax)

JointLimitsECBF constructor.

Parameters
  • robot

  • qddot

  • jointBoundMax – max joint limits

  • jointBoundMin – min joint limits

  • jointVelMax – max joint velocity limits

  • jointAccMax – max joint acceleration limits

virtual void update()

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

void setAlpha1(const Eigen::VectorXd &a1)

setAlpha1 gain applied to joint position limits

Parameters

a1

void setAlpha1(const double a1)
void setAlpha2(const Eigen::VectorXd &a2)

setAlpha2 gain applied to joint position limits

Parameters

a2

void setAlpha2(const double a2)
void setAlpha3(const Eigen::VectorXd &a3)

setAlpha3 gain applied to joint velocity limits

Parameters

a3

void setAlpha3(const double a3)