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))))) + toleranceStructs§
- Joint
Velocity Limits Config - Position-based joint velocity limit parameters for all seven joints.
- Position
Based Joint Velocity Limit Constants - Position-based joint velocity limit constants for a single joint, read from the URDF.
Constants§
- NUM_
JOINTS - Number of joints. Port of
JointVelocityLimitsConfig::kNumJoints.