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 above | limit_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>ofjoint1..7in the FR3 URDF of libfranka’s test suite (test/fr3.urdf, the crate’stests/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.