Pally General - Gripper Orientation at Pickup
To achieve better reach or performance, the program can automatically calculate and utilize the gripper rotated by +90, -90, or 180 degrees at the pickup position. The rotations are relative to the default calibrated orientation (forward). This may be necessary to reach the pallet corners or avoid collision with the base frame.
The allowed orientations can be configured. You can instruct the optimizer to enforce the default orientation, choose between front and back, or choose between front, back, left, or right. Pally will calculate the best optimized grip for each box if enabled.
You can set the allowed orientations in the Pally software.
None: front (the gripper direction at the calibrated pick position), especially useful for mechanical grippers
2-Way: front and back
4-Way: front, back, left, right
You can choose gripper orientation for each box in MyRobot.cloud when generating the pattern.
Gripper optimizer can be configured at run-time via the variable rf_grip_rot, which is an array of 5 elements.
The first element is the number of allowed orientations n,
The next n elements are the allowed orientations in degrees.
0: calibrated orientation
90: right orientation
-180: backwards orientation
-90: left orientation
Example:
rf_grip_rot = [3, 0, -90, 90, 0]This will tell the optimizer to choose a gripper rotation between front, left, and right (back is not allowed)
If you want to limit the allowed gripper rotation to left and right, you need to use the following Example:
rf_grip_rot = [2, 90, -90, 0, 0]If you want to use this in a particular pattern, the best place for this script line is the BeforeZone callback. Here you can check the name of the pattern, and set rf_grip_rot accordingly.
Please note: rf_grip_rot is used as a default value to initialize the optimizer, but gripper rotation in the pattern file has priority. If you have set the enforced gripper rotation in the pattern JSON file for one or more box positions, this will override rf_grip_rot. You can always enforce any gripper rotation(s) in the pattern file, independent of the default gripper optimizer settings.
Rotation direction
Pally will automatically choose the rotation direction between picking up and placing the box, as well as the rotation direction between placing the box and picking up the following box. This is done to avoid Wrist 3 errors, where the robot rotates more than 360 degrees, and a protective stop is triggered to stop the palletizing operation.
This automatic rotation direction can not be overruled.
You can reduce rotation by locking gripper orientation and box orientation, but you can not set a desired rotation direction.
Gripper-to-box edge alignment
To avoid accidental multi-picking, the front edge of the gripper is default aligned with the rear edge of the (last) product being picked. This is especially important when boxes are smaller than the gripper. In this case, the gripper is not aligned centered above the box, which is a common misunderstanding when using Pally for the first time.
If you want to always pick the product in the center, you can turn off the edge alignment.
Since Pally version 3.2, it is possible to deactivate the edge alignment feature by setting a variable in the initial node: rf_gripper_align_to_edges = False. This will enforce the gripper centered above the box.
Picking the box from one side
Sometimes it makes more sense to pick the box from the side.
This works well in Pally. The easiest way to do this is to calibrate an ‘imaginary’ pick position somewhere above the box and then use a few custom Move commands in BeforeGrab and AfterGrab callbacks to move the robot between the imaginary pick point and the real pick point (from above the box to the side).
And back again to the imaginary pick position where the box is beneath the gripper, as you can see in the picture below.
Pally then handles the rest.
Adding these custom movements can be more challenging if you have a project with a big difference in box sizes.