Grid
General
The Grid Node helps processing items ordered in form of a Grid with a single Node.
With the repeated execution of this Node, it will move the Robot to every Pose on the defined Grid.
The Grid Node is suitable for equally-spaced items of the same size.
Grid setup
The individual Grid positions, also called items, are automatically computed from Pose A, B, C (optional), D and the number of rows and columns.
To define the Grid, follow the subsequent instructions:
- Define origin of the Grid: Pose A
Move the Robot to the Pose and press Apply Current Pose - 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 - 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 - 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

Grid processing
- First the Approach Movement brings the Robot to the Approach Pose, a secure Pose above the Grid, before the Before Item Approach output is triggered.
- After that the Robot moves in Cartesian space to the Item (Movement to Item).
- At the Grid 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 Grid.
Additionally the Every N Iterations output is triggered every N iterations if specified.
If all Grid positions are processed, the After Completion output is triggered to continue the Flow.
Approach Pose
The Approach Pose defines an optional Joint Movement to a secure position above the Grid. 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 Grid position. All the different scenarios can be seen in the figure below.
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.
Grid Offsets
A start and end offset of the Grid 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.

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

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.
Every N Iterations

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.
The iterations reset after the Node is finished.
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.
