Skip to main content

Module rate_limiting

Module rate_limiting 

Source
Expand description

Rate limiting for torques, joint positions/velocities and Cartesian poses/velocities.

Port of libfranka 0.21.2 include/franka/rate_limiting.h and src/rate_limiting.cpp. The C++ overload set franka::limitRate is spelled out here as separate functions, since Rust has no overloading:

C++Rust
limitRate(max_derivatives, commanded, last)limit_rate_torques
limitRate(upper, lower, acc, jerk, v, v_last, a_last)limit_rate_joint_velocity
limitRate(upper, lower, acc, jerk, q, q_last, v_last, a_last)limit_rate_joint_position
the array<double, 7> variants of the two abovelimit_rate_joint_velocities, limit_rate_joint_positions
limitRate(..., O_dP_EE_c, ...)limit_rate_cartesian_velocity
limitRate(..., O_T_EE_c, ...)limit_rate_cartesian_pose

Where the C++ throws std::invalid_argument, these functions return crate::error::FrankaError::InvalidArgument with the same message text.

The implementation is split by the quantity being limited (torque, joint, cartesian), but those modules are private: every function is re-exported here, so the public paths are franka::rate_limiting::limit_rate_* and nothing else.

Modules§

fer
Rate limits of the Franka Emika Robot (FER, FCI v5), ported from libfranka 0.9.2 include/franka/rate_limiting.h.

Constants§

DELTA_T
Sample time constant. Port of franka::kDeltaT.
FACTOR_CARTESIAN_ROTATION_POSE_INTERFACE
Factor for the definition of rotational limits using the Cartesian pose interface.
JOINT_POSITION_LIMITS
Joint position limits (lower, upper), rad: the <limit> of joint1..7 in the FR3 URDF of libfranka’s test suite (test/fr3.urdf, the crate’s tests/data/fr3.urdf).
JOINT_VELOCITY_LIMITS_TOLERANCE
Tolerance value for joint velocity limits to deal with numerical errors and data losses.
LIMIT_EPS
Epsilon value for checking limits. Port of franka::kLimitEps.
MAX_ELBOW_ACCELERATION
Maximum elbow acceleration. Port of franka::kMaxElbowAcceleration.
MAX_ELBOW_JERK
Maximum elbow jerk. Port of franka::kMaxElbowJerk.
MAX_ELBOW_VELOCITY
Maximum elbow velocity. Port of franka::kMaxElbowVelocity.
MAX_JOINT_ACCELERATION
Maximum joint acceleration. Port of franka::kMaxJointAcceleration.
MAX_JOINT_JERK
Maximum joint jerk. Port of franka::kMaxJointJerk.
MAX_ROTATIONAL_ACCELERATION
Maximum rotational acceleration. Port of franka::kMaxRotationalAcceleration.
MAX_ROTATIONAL_JERK
Maximum rotational jerk. Port of franka::kMaxRotationalJerk.
MAX_ROTATIONAL_VELOCITY
Maximum rotational velocity. Port of franka::kMaxRotationalVelocity.
MAX_TORQUE_RATE
Maximum torque rate. Port of franka::kMaxTorqueRate.
MAX_TRANSLATIONAL_ACCELERATION
Maximum translational acceleration. Port of franka::kMaxTranslationalAcceleration.
MAX_TRANSLATIONAL_JERK
Maximum translational jerk. Port of franka::kMaxTranslationalJerk.
MAX_TRANSLATIONAL_VELOCITY
Maximum translational velocity. Port of franka::kMaxTranslationalVelocity.
MIN_ELBOW_VELOCITY
Minimum elbow velocity. Port of franka::kMinElbowVelocity.
NORM_EPS
Epsilon value for limiting Cartesian accelerations/jerks or not. Port of franka::kNormEps.
TOL_NUMBER_PACKETS_LOST
Number of packets lost considered for the definition of velocity limits.

Functions§

compute_lower_limits_joint_velocity
Computes the minimum joint velocity based on joint position.
compute_upper_limits_joint_velocity
Computes the maximum joint velocity based on joint position.
limit_rate_cartesian_pose
Limits the rate of a desired Cartesian pose considering the limits provided.
limit_rate_cartesian_velocity
Limits the rate of a desired Cartesian velocity considering the limits provided.
limit_rate_joint_position
Limits the rate of a desired joint position considering the limits provided.
limit_rate_joint_positions
Limits the rate of desired joint positions considering the limits provided.
limit_rate_joint_velocities
Limits the rate of desired joint velocities considering the limits provided.
limit_rate_joint_velocity
Limits the rate of a desired joint velocity considering the limits provided.
limit_rate_torques
Limits the rate of an input vector of per-joint commands considering the maximum allowed time derivatives.