Inverted Approach
Introduction
This article describes why, when and how to apply Inverted Approach to one or more layers on the pallet. Further, the benefits and drawbacks of the functionality are discussed to better explain its purpose.
Table of Contents
What is Inverted Approach
The name ‘Inverted Approach' is referring to the logic of two actions when palletizing:
In which order the boxes will be placed within a layer on a pallet.
I. e. which box in the pattern is placed on the pallet first, which is placed last, and every box in between.With Inverted approach enabled, Pally will start with the box in the corner of the pallet front, closest to the robot.
With Inverted approach disabled, Pally will start with the box in the corner of the pallet front, furthest from the robot.
In which direction the next box should approach the previously palletized boxes.
I. e. what direction towards the current spot on the pallet to use in the robot path.With Inverted Approach enabled, Pally will place the boxes on the pallet moving towards the pallet front, and towards the robot.
With Inverted Approach disabled, Pally will place the boxes on the pallet moving towards the pallet front, away from the robot.
Â
Example 1: Inverted Approach Disabled
In the image below, a snippet from Pally Pallet Builder demonstrates a pallet pattern not using Inverted Approach. Note the position of the first box and the Approach Direction visualized by the arrows marked in red.
Â
Example 2: Inverted Approach Enabled
In the image below, a snippet from Pally Pallet Builder demonstrates a pallet pattern using Inverted Approach. Note the position of the first box and the Approach Direction visualized by the arrows marked in red.
Â
When and Why to Use Different Approach Directions
This chapter will be based on the two above examples, and highlights the benefits of the different approach directions and why they outweigh potential drawbacks, depending on the situation.
Inverted Approach Disabled
In Example 1, a pallet layer is planned with Inverted Approach disabled. This provides a very logical way of stacking the pallet, as the pattern places the boxes in a specific order that avoids having to lift the next box over any of the already palletized boxes within the layer. This is beneficial when palletizing the higher layers of a pallet. Not having to lifte the boxes around the previously palletized boxes might save time as the path can be shorter. Also it increases available reach, which might make the station able to stack additional layers of a box type without adding a lifting column to the system.
The benefits of disabling Inverted Approach are highest when palletizing layers which are taller than the robot should joint and the conveyor. A rule of thumb for disabling Inverted Approach is when palletizing layers above the gripper position at ‘Box Free Height’.
Inverted Approach Enabled
In Example 2, a pallet layer is planned with Inverted Approach enabled. This might seem illogical as the robot will have to lift the boxes over previously placed boxes, but it brings a very important benefit; more space to move the product close to the robot and the conveyor. This is often a clever trade off for the lower layers on a pallet, as it takes little more time to lift the boxes above the other boxes in the layer, and for bigger boxes it might actually save time providing a more effective collision free path.
The benefits of enabling Inverted Approach are highest when palletizing layers which are lower than the robot should joint and the conveyor. A rule of thumb for enabling Inverted Approach is when palletizing layers below the gripper position at ‘Box Free Height’.
Quick way to Enable and Disable Inverted Approach
When clicking the three vertical dots on a layer type you will be presented with the option to activate or deactivate the Inverted Approach (default is deactivated)
Â
Inverted Approach is deactivated for the selected layer type
NOTE: this button will change the approach type for all layers with the same layer type!
Â
Inverted Approach is activated for the selected layer type
NOTE: this button will change the approach type for all layers with the same layer type!
In the pallet pattern .json file
In the example .json file below, layer type 3 has Inverted Approach enabled, while layer type 4 has not.
This is configured at line 155-156 and 285-286 respectively for the layers.
{
    "name": "ApproachDirectionDemo",
    "description": "Layer type: 3 inverted - Layer type 4 not inverted",
    "dimensions": {
        "height": 1000,
        "width": 800,
        "length": 1200,
        "palletHeight": 144
    },
    "productDimensions": {
        "weight": 7000,
        "height": 250,
        "width": 220,
        "length": 310
    },
    "maxGrip": 1,
    "labelOrientation": null,
    "guiSettings": {
        "PPB_VERSION_NO": "2.3.1",
        "boxPadding": 0,
        "units": "metric",
        "overhangSides": 0,
        "overhangEnds": 0,
        "altLayout": "mirror"
    },
    "dateModified": "1997-08-29T02:14:00.036Z",
    "layerTypes": [
        {
            "name": "Layer type: 3",
            "class": "layer",
            "pattern": [
                {
                    "x": 135,
                    "y": 180,
                    "r": [
                        0,
                        180
                    ],
                    "g": [],
                    "f": 1
                },
                {
                    "x": 135,
                    "y": 490,
                    "r": [
                        0,
                        180
                    ],
                    "g": [],
                    "f": 1
                },
                {
                    "x": 135,
                    "y": 800,
                    "r": [
                        0,
                        180
                    ],
                    "g": [],
                    "f": 1
                },
                {
                    "x": 355,
                    "y": 180,
                    "r": [
                        0,
                        180
                    ],
                    "g": [],
                    "f": 1
                },
                {
                    "x": 355,
                    "y": 490,
                    "r": [
                        0,
                        180
                    ],
                    "g": [],
                    "f": 1
                },
                {
                    "x": 355,
                    "y": 800,
                    "r": [
                        0,
                        180
                    ],
                    "g": [],
                    "f": 1
                }
            ],
            "altPattern": [
                {
                    "x": 665,
                    "y": 180,
                    "r": [
                        0,
                        180
                    ],
                    "g": [],
                    "f": 1
                },
                {
                    "x": 665,
                    "y": 490,
                    "r": [
                        0,
                        180
                    ],
                    "g": [],
                    "f": 1
                },
                {
                    "x": 665,
                    "y": 800,
                    "r": [
                        0,
                        180
                    ],
                    "g": [],
                    "f": 1
                },
                {
                    "x": 445,
                    "y": 180,
                    "r": [
                        0,
                        180
                    ],
                    "g": [],
                    "f": 1
                },
                {
                    "x": 445,
                    "y": 490,
                    "r": [
                        0,
                        180
                    ],
                    "g": [],
                    "f": 1
                },
                {
                    "x": 445,
                    "y": 800,
                    "r": [
                        0,
                        180
                    ],
                    "g": [],
                    "f": 1
                }
            ],
            "approach": "inverse",
            "altApproach": "inverse"
        },
        {
            "name": "Layer type: 4",
            "class": "layer",
            "pattern": [
                {
                    "x": 355,
                    "y": 180,
                    "r": [
                        0,
                        180
                    ],
                    "g": [],
                    "f": 1
                },
                {
                    "x": 355,
                    "y": 490,
                    "r": [
                        0,
                        180
                    ],
                    "g": [],
                    "f": 1
                },
                {
                    "x": 355,
                    "y": 800,
                    "r": [
                        0,
                        180
                    ],
                    "g": [],
                    "f": 1
                },
                {
                    "x": 135,
                    "y": 180,
                    "r": [
                        0,
                        180
                    ],
                    "g": [],
                    "f": 1
                },
                {
                    "x": 135,
                    "y": 490,
                    "r": [
                        0,
                        180
                    ],
                    "g": [],
                    "f": 1
                },
                {
                    "x": 135,
                    "y": 800,
                    "r": [
                        0,
                        180
                    ],
                    "g": [],
                    "f": 1
                }
            ],
            "altPattern": [
                {
                    "x": 445,
                    "y": 180,
                    "r": [
                        0,
                        180
                    ],
                    "g": [],
                    "f": 1
                },
                {
                    "x": 445,
                    "y": 490,
                    "r": [
                        0,
                        180
                    ],
                    "g": [],
                    "f": 1
                },
                {
                    "x": 445,
                    "y": 800,
                    "r": [
                        0,
                        180
                    ],
                    "g": [],
                    "f": 1
                },
                {
                    "x": 665,
                    "y": 180,
                    "r": [
                        0,
                        180
                    ],
                    "g": [],
                    "f": 1
                },
                {
                    "x": 665,
                    "y": 490,
                    "r": [
                        0,
                        180
                    ],
                    "g": [],
                    "f": 1
                },
                {
                    "x": 665,
                    "y": 800,
                    "r": [
                        0,
                        180
                    ],
                    "g": [],
                    "f": 1
                }
            ],
            "approach": "null",
            "altApproach": "null"
        }
    ],
    "layers": [
        "Layer type: 3",
        "Layer type: 4"
    ]
}
Â
Â