Class JointLimitsECBF
Defined in File JointLimitsECBF.h
Inheritance Relationships
Base Type
public OpenSoT::Constraint< Eigen::MatrixXd, Eigen::VectorXd >
(Template Class Constraint)
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)
-
typedef std::shared_ptr<JointLimitsECBF> Ptr