Skip to content

Waypoint Queue

Summary

The Waypont Queue is an advanced drag&bot functionality to queue several waypoints of multiple function blocks before executing them together. This enables chaining of movements for shorter cycle times.

Movements in drag&bot are usually executed directly with the function block execution. This leads to the issue that blending between different function blocks usually does not work, as there is a short delay before the second function block is executed.

However its possible to delay the execution of the movement until a later time in the program execution. This feature is called Waypoint Queue. If the option Add to Waypoint Queue is selected in a Move Function Block, the movement is not executed at once, but the waypoints are added to a queue in the background. This option is provided by the following Function Blocks:

  • Move Cartesian
  • Move Cartesian Relative
  • Move Joints
  • Move Joints - 7 Axes

After buffering the waypoints the Function Blocks will return at once and the program flow continues. The buffered waypoints then can be executed together with the Function Block Waypoint Queue - Move. Internally they are sent as one trajectory to the robot. The Waypoint Queue is cleared on each program start or with the Function Block Waypoint Queue - Clear.

The Waypoint Queue allows the following possibilities, which are not possible when the Function Blocks are executed at once:

  • Blending and shorter delay of execution
    • between several Move Cartesian Function Blocks
    • between Move Cartesian and Move Joints Function Blocks
    • across Subprograms and control Function Blocks, like Condition, etc.
  • Better optimization of cycle times

Warning

The Waypoint Queue is a very advanced feature, which changes the robot movement compared to the obvious program flow. Its highly recommended to develop the program first without using the Waypoint Queue, test this program and activate the Motion Queue later for optimization of cycle times.

Also be aware that using specific Function Blocks alongside the motion queue might change the movement behavior. Especially the following Function Blocks change the program behavior when executed between the waypoint buffering and its execution, compared to direct waypoint execution.

  • Get Flange Pose
  • Get TCP Pose
  • Get Joint States
  • Change Robot TCP