Skip to main content

Module joint_velocity_limits

Module joint_velocity_limits 

Source
Expand description

Position-dependent joint velocity limits read from the robot’s URDF.

Port of libfranka 0.21.2 include/franka/joint_velocity_limits.h and src/joint_velocity_limits.cpp. libfranka parses the URDF returned by the GetRobotModel command with tinyxml2; this port uses roxmltree, because the <position_based_velocity_limits> element is a vendor extension that urdf-rs drops.

The limits are the same curves that the (deprecated) crate::rate_limiting::compute_upper_limits_joint_velocity hardcodes for the FR3, with the parameters taken from the URDF instead:

upper(q) = min(max_velocity, max(0, -velocity_offset + sqrt(max(0, 2 * deceleration_limit * (upper_position_limit - q))))) - tolerance
lower(q) = max(-max_velocity, min(0,  velocity_offset - sqrt(max(0, 2 * deceleration_limit * (q - lower_position_limit))))) + tolerance

Structs§

JointVelocityLimitsConfig
Position-based joint velocity limit parameters for all seven joints.
PositionBasedJointVelocityLimitConstants
Position-based joint velocity limit constants for a single joint, read from the URDF.

Constants§

NUM_JOINTS
Number of joints. Port of JointVelocityLimitsConfig::kNumJoints.