SetJointVelLimit#
The SetJointVelLimit overrides the default joint velocity limits. Unlike the
SetJointVel command, which sets a target velocity for velocity moves, SetJointVelLimit acts as
an upper bound (maximum allowed joint velocity) and affects movements generated by all Move*
commands (including the MoveLinVel* ones).
Changing the joint velocity limit with SetJointVelLimit does not modify the valid input ranges
of any other API calls. For example, you can still invoke SetJointVel with a value higher than
the configured joint velocity limit; the robot will simply apply the lower of the two limits at runtime.
This makes it possible to use SetJointVelLimit to globally cap robot velocity (for safety
purposes or for testing at reduced speeds) without needing to adjust all existing SetJointVel
or SetCartLinVel instructions in a program.
It also affects the acceleration durations, as explained below.
SetJointVelLimit can be used to:
Limit the robot velocity in all scenarios (joint moves, linear moves, velocity moves);
Achieve quicker short movements due to reduced acceleration times when the joint velocity limit is lowered.
Syntax#
SetJointVelLimit(p)
Arguments#
p: percentage of the top rated joint velocities, ranging from 0.001 to 100.
Default values#
The default settings are applied whenever the robot is activated or reactivated.
By default, p = 100
Further details#
Note
When SetJointVelLimit is reduced below 100%, the robot also shortens its acceleration phases. At lower
top velocities, long acceleration ramps are unnecessary, the robot is able to reach the target velocity sooner.
This results in optimized cycle times for applications requiring short movements, where quicker accelerations
are more beneficial than high top velocities.
For example, SetJointVelLimit(50) halves all acceleration durations.
Since it affects acceleration duration, it also affects blending (which duration always matches acceleration).
Usage restrictions#
This command is added to the robot’s motion queue and can only be executed when the robot is ready for motion, not in an error state and when no safety signal conditions are present. Otherwise, the robot will report one of the following:
[1005][The robot is not activated.]
[1011][The robot is already in error.]
Cyclic protocols#
In cyclic protocols, the SetJointVelLimit command is represented by
MotionCommandID 33. See Section 4.2 for more details.