An automatic generation method for cross-hatching arrays
By using an automatic generation method for interlaced palletizing arrays, the coordinates of the object placement points are automatically calculated, solving the problems of low efficiency and insufficient stability in existing technologies, and realizing an efficient and stable palletizing process.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- 伯朗特机器人股份有限公司
- Filing Date
- 2023-05-11
- Publication Date
- 2026-05-26
AI Technical Summary
In existing technologies, the automatic generation of palletizing arrays for standard box-shaped items is inefficient and lacks stability. For complex-shaped objects, manual instruction is required for the placement points, which reduces production efficiency.
The method of automatically generating a staggered stacking array is adopted. By inputting the placement pattern and basic parameters, the coordinates of the placement point of each object are automatically calculated. Only the placement starting point needs to be taught, avoiding the need for manual teaching of the position of each item.
It improves palletizing efficiency and enhances the stability of the pallet to a certain extent, reducing the need for manual teaching.
Smart Images

Figure CN116587271B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of robotic palletizing technology, specifically to a method for automatically generating a horizontal and vertical interlaced palletizing array. Background Technology
[0002] With the rapid development of robotics technology, robots are being used more and more widely in palletizing. Automated palletizing systems play an important role in improving palletizing efficiency, reducing production costs, and minimizing manual labor intensity in industrial production, and the automatic generation of palletizing arrays is a key technology for achieving automated palletizing.
[0003] Palletizing arrays refer to the collection of placement points for each item. Currently, automatic generation technology for single-style palletizing arrays has been achieved for standard box-shaped items. However, this type of stacking arrangement lacks stability and is prone to tipping over during transportation. To improve the stability of stacking, complex palletizing arrays can be used. However, placement points for complex-style items often require manual instruction, reducing production efficiency. Summary of the Invention
[0004] In view of the problems existing in the prior art, the purpose of this invention is to provide an automatic generation method for cross-row and cross-row palletizing arrays, which improves palletizing efficiency and enhances the stability of the pallet.
[0005] To achieve the above objectives, the technical solution adopted by the present invention is as follows:
[0006] A method for automatically generating a staggered palletizing array, the method comprising the following steps:
[0007] Step 1: Input the placement pattern and basic parameters of the palletizing array;
[0008] The arrangement pattern of the palletizing array is as follows: objects are placed horizontally and vertically, and the placement order is from left to right along the X-axis of the palletizing area, arranged in rows; odd-numbered layers are placed horizontally first and then vertically, and even-numbered layers are placed vertically first and then horizontally, and a row of horizontal objects and a row of vertical objects are considered as one row.
[0009] The basic parameters for determining the palletizing array include: the number of rows in the palletizing array (row), the geometric parameters of the objects (length L, width W, and height H), the number of objects in a horizontal row (num_x_h), the number of objects in a vertical row (num_x_v), the placement gap of the objects in the X-axis direction (delta_x), the placement gap in the Y-axis direction (delta_y), and the starting point for the placement of the objects (start_h).
[0010] Step 2: Determine the placement parameters of the palletizing array based on its placement pattern and basic parameters;
[0011] Step 3: Determine the layer number, arrangement method, and order of the nth object in the palletizing array;
[0012] Step 4: Calculate the coordinates of the nth object placement point.
[0013] Step 2 is described in detail below:
[0014] Step 2.1: Calculate the starting point start_v for the placement of the first vertical object on the odd-numbered layer;
[0015] Relative to the starting point of the horizontal object's placement, start_h, the difference in the X direction of start_v is -0.5*(LW), and the difference in the Y direction is delta_y+0.5*(L+w).
[0016] Step 2.2: Calculate the difference sequence x_array_h of the X-coordinates of the horizontally placed objects: the difference in X-coordinates between two adjacent horizontally placed objects is delta_x+L. The difference in X-coordinates between the first horizontally placed object and the starting point start_h is zero. The difference in X-coordinates between the second horizontally placed object and the starting point start_h is delta_x+L, and so on. The difference in X-coordinates between the last horizontally placed object and the starting point is (num_x_h-1)*(delta_x+L).
[0017] Step 2.3: Calculate the difference sequence y_array_h of the horizontally placed objects in the Y direction: the difference in the Y coordinate of two adjacent horizontally placed objects is 2*delta_y+L+W. The difference in the Y coordinate between the first row of objects and the starting point start_h is zero. The difference in the Y coordinate between the second row of objects and the starting point start_h is 2*delta_y+L+W, and so on. The difference in the Y coordinate between the last row of objects and the starting point start_h is (row-1)*(2*delta_y+L+W).
[0018] Step 2.4: Calculate the difference sequence x_array_v of the X-coordinates of the vertically placed objects: the difference in X-coordinates between two adjacent vertically placed objects is delta_x+W. The difference in X-coordinates between the first object and the starting point start_v is zero. The difference in X-coordinates between the second object and the starting point start_v is delta_x+W, and so on. The difference in X-coordinates between the last object and the starting point is (num_x_v-1)*(delta_x+W).
[0019] Step 2.5: Calculate the difference sequence y_array_v of the vertically placed objects in the Y direction: the difference in the Y coordinate of two adjacent vertically placed objects is 2*delta_y+W+L. The difference in the X coordinate between the first vertically placed object and the starting point start_v is zero. The difference in the X coordinate between the second vertically placed object and the starting point start_v is delta_x+W, and so on. The difference in the X coordinate between the last object and the starting point start_v is (row-1)*(2*delta_y+W+L).
[0020] Step 3 specifically involves:
[0021] Given the row number y of the nth object in space, the column number x of the current row, and the layer number z (x, y, z start from 0), determine whether the layer where the object is located is an odd or even layer, and whether it is arranged horizontally or vertically: the number of objects in each layer cont = row * (num_x_h + num_x_v), the layer number z of the object is n / cont, and the order of the objects in the current layer cont_n = n / cont remainder;
[0022] If cont_n is 0, z = z-1, y = row-1, the odd / even layer flag s1 = the remainder of z / 2, s1 = 0, the current layer is an odd layer, x = num_x_v-1, the horizontal / vertical flag s2 = 1, the objects are arranged vertically; s1 = 1, the current layer is an even layer, x = num_x_h-1, s2 = 0, the objects are arranged horizontally.
[0023] If cont_n is not 0, calculate the remainder of s1=z / 2, calculate the quotient of the row number y=cont_n / (num_x_h+num_x_v) of the current layer where the object is located, and calculate the remainder of the order of the object in the current row cont_r=cont_n / (num_x_h+num_x_v);
[0024] If cont_r=0, s1=0, x=num_x_h-1, s2=0, the objects are arranged horizontally; if cont_r=0, s1=1, x=num_x_v-1, s2=1.
[0025] If cont_r != 0, s1 = 0, check if cont_r is greater than num_x_h. If cont_r > num_x_h, x = cont_r - num_x_h - 1, s2 = 1; otherwise, cont_r <num_x_h,x=cont_r-1,s2=0;
[0026] If cont_r != 0, s1= 1. Determine if cont_r is greater than num_x_v. If cont_r > num_x_v, x = cont_r - num_x_v - 1, s2= 1. Otherwise, x = cont_r - 1, s2= 0.
[0027] Step 4 specifically involves:
[0028] If s1=0 and s2=0, the difference in X-direction coordinates of point relative to start_h is delta_x_point, which is the (x+1)th position of x_array_h, and the difference in Y-direction coordinates of point relative to start_h is delta_y_point, which is the (y+1)th position of y_array_h.
[0029] If s1=0 and s2=1, the difference in X-direction coordinates of point relative to start_v, delta_x_point, is the (x+1)th position of x_array_v, and the difference in Y-direction coordinates of point relative to start_v, delta_y_point, is the (y+1)th position of y_array_v;
[0030] If s1=1, s2=1, the difference in X-direction coordinates of point relative to start_v is delta_x_point, which is the (x+1)th position of x_array_v, and the difference in Y-direction coordinates of point relative to start_v is delta_y_point, which is the (y+1)th position of y_array_v minus (W+delta_y).
[0031] If s1=1 and s2=0, the difference in X-direction coordinates of point relative to start_h is delta_x_point, which is the (x+1)th position of x_array_h. The difference in Y-direction coordinates of point relative to start_h is delta_y_point, which is the (y+1)th position of y_array_h plus L+delta_y.
[0032] With the above solution, the present invention can automatically determine the specific placement position of each object as long as the palletizing type and related parameters are determined before use. During the palletizing process, it is only necessary to teach the starting position of the material placement, without the need for manual teaching of the placement point position of each item. This improves the palletizing efficiency and enhances the stability of the pallet to a certain extent. Attached Figure Description
[0033] Figure 1 This is a schematic diagram of the palletizing array pattern and placement order of the present invention;
[0034] Figure 2 This is a schematic diagram of the coordinate system and object parameters for the palletizing area. Detailed Implementation
[0035] This invention discloses an automatic generation method for cross-row and cross-row palletizing arrays, which includes the following steps:
[0036] Step 1: Input the placement pattern and basic parameters of the palletizing array;
[0037] The arrangement pattern of the palletizing array is as follows: objects are placed horizontally and vertically, and the placement order is from left to right along the X-axis of the palletizing area, arranged in rows in sequence; odd-numbered layers are placed horizontally first and then vertically, and even-numbered layers are placed vertically first and then horizontally, and a row of horizontal objects and a row of vertical objects are considered as one row.
[0038] The basic parameters for determining the palletizing array include: the number of rows in the palletizing array (row), the geometric parameters of the objects (length L, width W, and height H), the number of objects in a horizontal row (num_x_h), the number of objects in a vertical row (num_x_v), the placement gap of the objects in the X-axis direction (delta_x), the placement gap in the Y-axis direction (delta_y), and the starting point for the placement of the objects (start_h).
[0039] Step 2: Determine the placement parameters of the palletizing array based on its arrangement style and basic parameters. Details are as follows:
[0040] Step 2.1: Calculate the starting point start_v for the placement of the first vertical object on the odd-numbered layer;
[0041] Relative to the starting point of the horizontal object's placement, start_h, the difference in the X direction of start_v is -0.5*(LW), and the difference in the Y direction is delta_y+0.5*(L+w).
[0042] Step 2.2: Calculate the difference sequence x_array_h of the X-coordinates of the horizontally placed objects: the difference in X-coordinates between two adjacent horizontally placed objects is delta_x+L. The difference in X-coordinates between the first horizontally placed object and the starting point start_h is zero. The difference in X-coordinates between the second horizontally placed object and the starting point start_h is delta_x+L, and so on. The difference in X-coordinates between the last horizontally placed object and the starting point is (num_x_h-1)*(delta_x+L).
[0043] Step 2.3: Calculate the difference sequence y_array_h of the horizontally placed objects in the Y direction: the difference in the Y coordinate of two adjacent horizontally placed objects is 2*delta_y+L+W. The difference in the Y coordinate between the first row of objects and the starting point start_h is zero. The difference in the Y coordinate between the second row of objects and the starting point start_h is 2*delta_y+L+W, and so on. The difference in the Y coordinate between the last row of objects and the starting point start_h is (row-1)*(2*delta_y+L+W).
[0044] Step 2.4: Calculate the difference sequence x_array_v of the X-coordinates of the vertically placed objects: the difference in X-coordinates between two adjacent vertically placed objects is delta_x+W. The difference in X-coordinates between the first object and the starting point start_v is zero. The difference in X-coordinates between the second object and the starting point start_v is delta_x+W, and so on. The difference in X-coordinates between the last object and the starting point is (num_x_v-1)*(delta_x+W).
[0045] Step 2.5: Calculate the difference sequence y_array_v of the vertically placed objects in the Y direction: the difference in the Y coordinate of two adjacent vertically placed objects is 2*delta_y+W+L. The difference in the X coordinate between the first vertically placed object and the starting point start_v is zero. The difference in the X coordinate between the second vertically placed object and the starting point start_v is delta_x+W, and so on. The difference in the X coordinate between the last object and the starting point start_v is (row-1)*(2*delta_y+W+L).
[0046] Step 3: Determine the layer number, arrangement method, and order of the nth object in the palletizing array;
[0047] Given the row number y of the nth object in space, the column number x of the current row, and the layer number z (x, y, z start from 0), determine whether the layer where the object is located is an odd or even layer, and whether it is arranged horizontally or vertically: the number of objects in each layer cont = row * (num_x_h + num_x_v), the layer number z of the object is n / cont, and the order of the objects in the current layer cont_n = n / cont remainder;
[0048] If cont_n is 0, z = z-1, y = row-1, the odd / even layer flag s1 = the remainder of z / 2, s1 = 0, the current layer is an odd layer, x = num_x_v-1, the horizontal / vertical flag s2 = 1, the objects are arranged vertically; s1 = 1, the current layer is an even layer, x = num_x_h-1, s2 = 0, the objects are arranged horizontally.
[0049] If cont_n is not 0, calculate the remainder of s1=z / 2, calculate the quotient of the row number y=cont_n / (num_x_h+num_x_v) of the current layer where the object is located, and calculate the remainder of the order of the object in the current row cont_r=cont_n / (num_x_h+num_x_v).
[0050] If cont_r=0, s1=0, x=num_x_h-1, s2=0, the objects are arranged horizontally; if cont_r=0, s1=1, x=num_x_v-1, s2=1.
[0051] If cont_r != 0, s1 = 0, check if cont_r is greater than num_x_h. If cont_r > num_x_h, x = cont_r - num_x_h - 1, s2 = 1; otherwise, cont_r <num_x_h,x=cont_r-1,s2=0。
[0052] If cont_r != 0, s1= 1. Determine if cont_r is greater than num_x_v. If cont_r > num_x_v, x = cont_r - num_x_v - 1, s2= 1. Otherwise, x = cont_r - 1, s2= 0.
[0053] Step 4: Calculate the coordinates of the nth object's placement point.
[0054] If s1=0 and s2=0, the difference in X-direction coordinates of point relative to start_h is delta_x_point, which is the (x+1)th position of x_array_h, and the difference in Y-direction coordinates of point relative to start_h is delta_y_point, which is the (y+1)th position of y_array_h.
[0055] If s1=0 and s2=1, the difference in X-direction coordinates of point relative to start_v, delta_x_point, is the (x+1)th position of x_array_v, and the difference in Y-direction coordinates of point relative to start_v, delta_y_point, is the (y+1)th position of y_array_v;
[0056] If s1=1, s2=1, the difference in X-direction coordinates of point relative to start_v is delta_x_point, which is the (x+1)th position of x_array_v, and the difference in Y-direction coordinates of point relative to start_v is delta_y_point, which is the (y+1)th position of y_array_v minus (W+delta_y).
[0057] If s1=1 and s2=0, the difference in X-direction coordinates of point relative to start_h is delta_x_point, which is the (x+1)th position of x_array_h. The difference in Y-direction coordinates of point relative to start_h is delta_y_point, which is the (y+1)th position of y_array_h plus L+delta_y.
[0058] In summary, this invention can automatically determine the specific placement position of each object as long as the palletizing type and related parameters are determined before use. During the palletizing process, only the starting position of the material placement needs to be taught, without the need for manual teaching of the placement point position of each item. This improves palletizing efficiency and enhances the stability of the pallet to a certain extent.
[0059] The above description is merely an embodiment of the present invention and does not constitute any limitation on the technical scope of the present invention. Therefore, any minor modifications, equivalent changes, and alterations made to the above embodiments based on the technical essence of the present invention shall still fall within the scope of the technical solution of the present invention.
Claims
1. A method for automatically generating a horizontal and vertical staggered palletizing array, characterized in that: The method includes the following steps: Step 1: Input the placement pattern and basic parameters of the palletizing array; The arrangement pattern of the palletizing array is as follows: objects are placed horizontally and vertically, and the placement order is from left to right along the X-axis of the palletizing area, arranged in rows; odd-numbered layers are placed horizontally first and then vertically, and even-numbered layers are placed vertically first and then horizontally, and a row of horizontal objects and a row of vertical objects are considered as one row. The basic parameters for determining the palletizing array include: the number of rows in the palletizing array (row), the geometric parameters of the objects (length L, width W, and height H), the number of objects in a horizontal row (num_x_h), the number of objects in a vertical row (num_x_v), the placement gap of the objects in the X-axis direction (delta_x), the placement gap in the Y-axis direction (delta_y), and the starting point for the placement of the objects (start_h). Step 2: Determine the placement parameters of the palletizing array based on its placement pattern and basic parameters; Step 3: Determine the layer number, arrangement method, and order of the nth object in the palletizing array; Step 4: Calculate the coordinates of the nth object's placement point. Step 2 is described in detail below: Step 2.1: Calculate the starting point start_v for the placement of the first vertical object on the odd-numbered layer; Relative to the starting point of the horizontal object's placement, start_h, the difference in the X direction of start_v is -0.5*(LW), and the difference in the Y direction is delta_y+0.5*(L+w). Step 2.2: Calculate the difference sequence x_array_h of the X-coordinates of the horizontally placed objects: the difference in X-coordinates between two adjacent horizontally placed objects is delta_x+L. The difference in X-coordinates between the first horizontally placed object and the starting point start_h is zero. The difference in X-coordinates between the second horizontally placed object and the starting point start_h is delta_x+L, and so on. The difference in X-coordinates between the last horizontally placed object and the starting point is (num_x_h-1)*(delta_x+L). Step 2.3: Calculate the difference sequence y_array_h of the horizontally placed objects in the Y direction: the difference in the Y coordinate of two adjacent horizontally placed objects is 2*delta_y+L+W. The difference in the Y coordinate between the first row of objects and the starting point start_h is zero. The difference in the Y coordinate between the second row of objects and the starting point start_h is 2*delta_y+L+W, and so on. The difference in the Y coordinate between the last row of objects and the starting point start_h is (row-1)*(2*delta_y+L+W). Step 2.4: Calculate the difference sequence x_array_v of the X-coordinates of the vertically placed objects: the difference in X-coordinates between two adjacent vertically placed objects is delta_x+W. The difference in X-coordinates between the first object and the starting point start_v is zero. The difference in X-coordinates between the second object and the starting point start_v is delta_x+W, and so on. The difference in X-coordinates between the last object and the starting point is (num_x_v-1)*(delta_x+W). Step 2.5: Calculate the difference sequence y_array_v of the vertically placed objects in the Y direction: the difference in the Y coordinate of two adjacent vertically placed objects is 2*delta_y+W+L, the difference in the X coordinate between the first vertically placed object and the starting point start_v is zero, the difference in the X coordinate between the second vertically placed object and the starting point start_v is delta_x+W, and so on, the difference in the X coordinate between the last row of objects and the starting point start_v is (row-1)*(2*delta_y+W+L); Step 3 specifically involves: Given the row number y of the nth object in space, the column number x of the current row, and the layer number z (x, y, z start from 0), determine whether the layer where the object is located is an odd or even layer, and whether it is arranged horizontally or vertically: the number of objects in each layer cont = row * (num_x_h + num_x_v), the layer number z of the object is n / cont, and the order of the objects in the current layer cont_n = n / cont remainder; If cont_n is 0, z = z-1, y = row-1, the odd / even layer flag s1 = the remainder of z / 2, s1 = 0, the current layer is an odd layer, x = num_x_v-1, the horizontal / vertical flag s2 = 1, the objects are arranged vertically; s1 = 1, the current layer is an even layer, x = num_x_h-1, s2 = 0, the objects are arranged horizontally. If cont_n is not 0, calculate the remainder of s1=z / 2, calculate the quotient of the row number y=cont_n / (num_x_h+num_x_v) of the current layer where the object is located, and calculate the remainder of the order of the object in the current row cont_r=cont_n / (num_x_h+num_x_v); If cont_r=0, s1=0, x=num_x_h-1, s2=0, the objects are arranged horizontally; if cont_r=0, s1=1, x=num_x_v-1, s2=1. If cont_r != 0, s1 = 0, check if cont_r is greater than num_x_h. If cont_r > num_x_h, x = cont_r - num_x_h - 1, s2 = 1; otherwise, cont_r <num_x_h,x=cont_r-1,s2=0; If cont_r != 0, s1= 1, check if cont_r is greater than num_x_v. If cont_r > num_x_v, x = cont_r - num_x_v - 1, s2= 1; otherwise, x = cont_r - 1, s2= 0. Step 4 specifically involves: If s1=0 and s2=0, the difference in X-direction coordinates of point relative to start_h is delta_x_point, which is the (x+1)th position of x_array_h, and the difference in Y-direction coordinates of point relative to start_h is delta_y_point, which is the (y+1)th position of y_array_h. If s1=0 and s2=1, the difference in X-direction coordinates of point relative to start_v, delta_x_point, is the (x+1)th position of x_array_v, and the difference in Y-direction coordinates of point relative to start_v, delta_y_point, is the (y+1)th position of y_array_v; If s1=1, s2=1, the difference in X-direction coordinates of point relative to start_v is delta_x_point, which is the (x+1)th position of x_array_v, and the difference in Y-direction coordinates of point relative to start_v is delta_y_point, which is the (y+1)th position of y_array_v minus (W+delta_y). If s1=1 and s2=0, the difference in X-direction coordinates of point relative to start_h is delta_x_point, which is the (x+1)th position of x_array_h. The difference in Y-direction coordinates of point relative to start_h is delta_y_point, which is the (y+1)th position of y_array_h plus L+delta_y.