Struct VelocityLimit

Inheritance Relationships

Base Type

Struct Documentation

struct VelocityLimit : public roboplan::Constraints

Velocity limit constraint for inverse kinematics.

Implements joint velocity constraints to ensure velocities stay within robot limits. The constraint is formulated as: l <= G*dq <= u where G is an identity matrix, l = -dt*v_max, and u = dt*v_max.

Public Functions

VelocityLimit(const Oink &oink, double dt, const Eigen::VectorXd &v_max)

Constructor with dimension validation.

Parameters:
  • oink – The Oink solver this constraint will be used with (provides num_variables).

  • dt – Time step for the velocity integration (seconds)

  • v_max – Maximum velocity vector for each group joint (rad/s or m/s). Size must equal oink.num_variables.

virtual int getNumConstraints(const Scene &scene) const override

Get the number of constraint rows (number_variables)

Parameters:

scene – The scene containing robot state and model

Returns:

Number of constraint rows

virtual tl::expected<void, std::string> computeQpConstraints(const Scene &scene, Eigen::Ref<Eigen::MatrixXd> constraint_matrix, Eigen::Ref<Eigen::VectorXd> lower_bounds, Eigen::Ref<Eigen::VectorXd> upper_bounds) const override

Compute QP constraint matrices for velocity limits.

Parameters:
  • scene – The scene containing robot state and model

  • constraint_matrix – Output constraint matrix G (number_variables × number_variables)

  • lower_bounds – Output lower bounds vector (number_variables)

  • upper_bounds – Output upper bounds vector (number_variables)

Returns:

void on success, error message on failure

Public Members

double dt
Eigen::VectorXd v_max
int num_variables