The NexDroid-Controller function library provides a palletizing process package that enables rapid implementation of array palletizing.
The NexDroid palletizing process package offers two types of palletizing: full palletizing and simple palletizing. Full palletizing provides comprehensive palletizing parameters to cover a wide range of palletizing scenarios, while simple palletizing is easy to understand and all you need for rapidly implementing array palletizing.
The process package provides multiple process numbers for distinguishing and storing different stack data. In this example, we use process number 1.
1. Enable Simple Palletizing
- First use the
int NRC_Pallet_SetUsePalletType(int id, int type);function interface to set the palletizing type of process number 1 to simple palletizing mode- A type of 0 indicates simple palletizing
NRC_Pallet_SetUsePalletType(1, 0);
2. Calibrating the Stack Workpiece Positions
- Simple palletizing requires only four points to define the stack workpiece positions: start workpiece point, column end, row end, and height end
- For array palletizing, the start workpiece point and the height end are the same point, so only three points are needed
- The
int NRC_GetCurrentPos(NRC_COORD coord, NRC_Position& position);function interface retrieves the robot's current position - The
int NRC_Pallet_SetSimplePosParm(int id, int posType, NRC_Position pos);function interface sets the simple palletizing position data - First move the robot to the start workpiece position, align the gripper with the workpiece, retrieve and record the robot's current position, and then set that position as the start workpiece point
- Since the start workpiece point and the height end are the same point in array palletizing, this position can also be set as the height end
NRC_Position startPos;
NRC_GetCurrentPos(NRC_MCS, startPos);
NRC_Pallet_SetSimplePosParm(1, 0, startPos);
NRC_Pallet_SetSimplePosParm(1, 3, startPos);
- Next, move the robot to the workpiece position at the column end, align the gripper with that workpiece, retrieve the current position, and set it as the column end point
NRC_Position columnPos;
NRC_GetCurrentPos(NRC_MCS, columnPos);
NRC_Pallet_SetSimplePosParm(1, 1, columnPos);
- Then move the robot to the workpiece position at the row end, align the gripper with that workpiece, retrieve the current position, and set it as the row end point
NRC_Position rowPos;
NRC_GetCurrentPos(NRC_MCS, rowPos);
NRC_Pallet_SetSimplePosParm(1, 2, rowPos);
3. Setting the Auxiliary Point and Entry Point
- To prevent the workpiece in the gripper from colliding with the stacked workpieces or the surrounding environment during palletizing, you can set an auxiliary point and an entry point to avoid obstacles
- The auxiliary point automatically offsets as the workpiece position changes, and the entry point rises as the stack layer increases
- When calibrating, you only need to calibrate the auxiliary point and entry point for the start workpiece; the process package automatically computes the offsets
- The calibration method is the same as for the other positions: move to the target position, retrieve the current position, and then set it in the corresponding palletizing data
NRC_Position auxiliaryPos;
NRC_GetCurrentPos(NRC_MCS, auxiliaryPos);
NRC_Pallet_SetSimplePosParm(1, 4, auxiliaryPos);
......
NRC_Position entryPos;
NRC_GetCurrentPos(NRC_MCS, entryPos);
NRC_Pallet_SetSimplePosParm(1, 5, entryPos);
4. Setting the Workpiece Count
- Use the
int NRC_Pallet_SetSimpleNumParm(int id, int numX, int numY, int numZ);function interface to set the number of workpieces in the stack- numX, numY, and numZ represent the number of workpieces in the stack along the pallet's X, Y, and Z directions, i.e., the number of rows, columns, and layers
- In this example, the number of layers is 1, and we use 10 rows by 5 columns
NRC_Pallet_SetSimpleNumParm(1, 10, 5, 1)





