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.