Skip to main content

Palletizing

General

The Palletizing Node helps process items arranged in form of a Pallet (3-dimensional grid) with a single Node.
With the repeated execution of this Node, it will move the Robot to every Pose on the defined Pallet.
The Palletizing Node is suitable for equally-spaced items of the same size.

Palletizing setup

The individual Pallet positions, also called items, are automatically computed from Pose A, B, C (optional), D, E and the number of rows, columns and layers.
To define the Pallet, follow the subsequent instructions:

  1. Define origin of the Pallet: Pose A
    Move the Robot to the Pose and press Apply Current Pose
  2. Define Pose B
    Either move the Robot to the desired Pose and press Apply Current Pose or type in the position offset and the absolute orientation manually
  3. Optional: define Pose C
    Defining this Pose is optional and can be used to increase accuracy.
    Either move the Robot to the desired Pose and press Apply Current Pose or type in the position offset and the absolute orientation manually
  4. Define Pose D
    Either move the Robot to the desired Pose and press Apply Current Pose or type in the position offset and the absolute orientation manually
  5. Define Pose E
    Either move the Robot to the desired Pose and press Apply Current Pose or type in the position offset and the absolute orientation manually

palletizing instructions

Parameterization of the pallet

It is possible to use the Configure Pallet Widget in the Dashboard to configure the Palletizing Node to work with new box sizes, without needing to re-teach anything. The Palletizing Node will automatically compute the size of your current box and pallet, based on the number of rows and columns, as well as the points A, B and D. In order for the Configure Pallet Widget to work correctly you have to make sure the following requirements are fulfilled:

  1. The pallet is fully loaded. The boxes should fill the entire pallet. There should be no large gaps between the boxes.
  2. Columns are defined between A→B. Rows are between A→D.
  3. The vector between A→E should point straight up, in the direction of the ceiling.
  4. The vectors between A→B and A→D are mostly perpendicular. The Configure Pallet Widget will apply a correction if the vectors are not perfectly perpendicular.
  5. The boxes are gripped at their center. The parameterization assumes that the Tool Center Point of the Robot is at the center of the box, when you teach the Poses A, B and D.

Note: We recommend not to switch between using the Configure Pallet Widget in the Dashboard and the Palletizing Node in the Flow Editor. Should it be necessary to switch between the Configure Palletizing Nodes Widget and the Palletizing Node, take the following into account:

  • In the Widget you typed in a box dimension that does not fill the pallet entirely, the Widget has correctly computed the new number of rows and columns, as well as all Poses A, B and D. You then access the Palletizing Node in your Flow and make changes to it. This will start a new automatic computation of the pallet dimensions. These pallet dimensions are based on the new box size you entered in the Configure Pallet Widget and lead to a smaller pallet. A pop-up warning you of these automatic re-computations will appear. Here you can choose to decline or accept the newly computed pallet dimensions. Please decline the new dimensions if they do not represent the actual size of your pallet.
  • In the Widget you changed the palletizing order from column-wise to row-wise, the Widget correctly applied the changes. You then access the Palletizing Node in your Flow and make changes to it. The Palletizing Node will always try to set the palletizing order back to its original form, namely to column-wise. A pop-up warning you of this automatic recomputation will appear. You can decide to either accept or decline.

Palletizing processing

  • First the Approach Movement brings the Robot to the Approach Pose, a secure Pose above the Pallet, before the Before Item Approach output is triggered.
  • After that the Robot moves in Cartesian space to the Item (Movement to Item).
  • At the Pallet position, the At Item output is triggered, which can be used, for example, to pick the item.
    Note: only Relative Movements should be done at this output.
  • Afterward the Robot moves again to the Approach Pose and triggers the Process Item output.
    This output might be useful to place the previously picked item somewhere else.

These steps are repeated for every Item on the Pallet.
Additionally, the Every N Iterations output is triggered every N iterations if specified.
If all Pallet positions are processed, the After Completion output is triggered to continue the Flow.

pallet execution

Approach Pose

The Approach Pose defines an optional Joint Movement to a secure position above the Pallet. The movement will be executed before approaching the item and before processing the item.

Movement to Item

If the Approach Movement is defined, the movement starts from the Approach Pose, otherwise from the current Robot Pose. The Robot moves along the Item Approach Trajectory (if defined) to the Pallet position. All the different scenarios can be seen in the figure below.

item approach trajectory

Item Approach Trajectory

The Item Approach Trajectory is defined by relative movements toward the Item Pose with respect to the Robot’s Base Coordinate System. In the example above (left) there are two movements defined:

  • Movement 1: x,y,z = 0,100,0
  • Movement 2: x,y,z = 100,0,0

The relative movements are used to calculate the Cartesian waypoints (cyan 1, 2). The blending radii defined by the movements act on the computed waypoint accordingly. For example, the Blending Radius of the first movement acts on the first computed waypoint, i.e. the movement from the Approach Pose to 1 and the movement from 1 to 2 is blended with that Blending Radius.

Pallet Offsets

A start and end offset of the Pallet can be defined to only execute a section of it. The offset can be defined by providng the Start and End Box indices at Selected Boxes section in the Node. The black colored items are executed whereas the white ones are ignored. A Full Pallet or Current Layer scope can aditionally be chosen to palletize all boxes or only the currently selected layer reflected by the layer slider.

palletizing offset

Palletize Top to Bottom

With this switch you can define whether you want to process your pallet from bottom to top (palletizing) or from top to bottom (depalletizing).

Reverse Item Approach Trajectory

This option will make the Robot execute the Item Approach Trajectory in reverse after each item. Note that the reversed Item Approach Trajectory will be executed after the At Item branch and before the Process Item branch.

Trigger externally

trigger externally

If Trigger externally is turned on, the Node will not trigger itself again after an item is processed. In this case, it waits until it gets triggered by the Node that comes right before.

This is helpful if you want to e.g. use a Stack Node to grab items, and then use another Stack/Grid/Palletizing Node behind (on the Process Item output) to put those items on another Stack/Grid/Pallet.

trigger externally

Every N Iterations

branch every

If Branch every is turned on, the Node activates the <Every N iterations> output, where you can run some extra Nodes after a number of iterations.

For example, if you have a soldering application and after every 10th item you need to get some fresh soldering tin, then you can just enable the Branch every toggle and specify 10 as iterations. Then you build the Flow to get more soldering tin on the now available Every 10 Iterations output.

note

The iterations reset after the Node is finished.

Edit Pallet Variables

By clicking on the Edit Pallet Variables button you can open a dialog that allows you to specify different Variables that will be helpful for you to better control the palletizing process. Currently, there are three Variables that you can access: Next Item, Current Layer, and Current Center Point.

Next item

You can optionally set a Next item Variable. The Node will then always process the item with the number that matches the current value of the Variable. You will have to alter the Variable in every iteration manually, e.g. with a Variable Node.

To finish the Node, you can simply set the Variable to a value that is outside the defined offsets.
It will then execute the After Completion branch.

next item

Current Layer

The Current Layer Variable is an integer that tells you in which layer the palletizing process is currently in. Setting this Variable is optional. Note that the value of this Variable is computed by the Palletizing Node, so you should only use it, but do not overwrite the Variable manually. The Palletizing Node will compute the current layer for you and write the value into the Current Layer Variable. You can then use that Variable in your Flow, for example in a Condition Node.

Current Pallet Height

The Current Pallet Height Variable is a Float Variable that tells you how height the current layer is. Setting this Variable is optional. Note that the value of this Variable is computed by the Palletizing Node, so you should only use it, but do not overwrite the Variable manually. The Palletizing Node will compute the current height for you and write the value into the Current Pallet Height Variable. For example, the Current Pallet Height can be used in a Pose Variable Expression in order to construct a Pose that you can then use in a Cartesian Movement Node in order to place an Interlayer.