Robot palletizing method, device, storage medium and computer equipment

By stacking target objects into target rows and target layers according to the target direction, the problem of complex robot palletizing algorithms and large computational load is solved, and efficient space utilization and automatic mixing operations are achieved.

CN117429886BActive Publication Date: 2026-04-21SHANGHAI JIEKA ROBOT TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
SHANGHAI JIEKA ROBOT TECH CO LTD
Filing Date
2023-11-28
Publication Date
2026-04-21

AI Technical Summary

Technical Problem

Existing technologies employ complex and computationally intensive robotic palletizing algorithms, resulting in wasted pallet space and the inability to perform automated mixing operations.

Method used

The method involves first stacking the target objects into target rows, and then stacking the target rows into target layers. By obtaining the dimensions of the target objects and the pallet, the target orientation is determined, and the objects are stacked according to the target orientation to form target rows and target layers. A robot is then used to place the objects based on their coordinates within the pallet.

Benefits of technology

This approach reduces the complexity of the palletizing algorithm while maintaining high utilization, thereby improving palletizing efficiency and space utilization.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117429886B_ABST
    Figure CN117429886B_ABST
Patent Text Reader

Abstract

This invention discloses a robotic palletizing method, apparatus, storage medium, and computer device. The method includes: acquiring the length, width, and height of a target object, and the length, width, and height of a pallet; determining a target direction, wherein the target direction is any one of the following: a first direction parallel to the length of the pallet, and a second direction parallel to the width of the pallet; palletizing the target objects according to the target direction to form target rows, wherein the length of the target row does not exceed the dimension of the pallet in the target direction, and the target objects within the target row have the same pallet orientation; palletizing the target rows within the pallet, and determining the coordinates of the target objects within the pallet; sending the coordinates of the target objects within the pallet to the robot, wherein the robot places the target objects on the pallet according to the coordinates of the target objects within the pallet. This invention solves the technical problems of complex palletizing algorithms and high computational load in related technologies.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of robotics, and more specifically, to a robotic palletizing method, apparatus, storage medium, and computer equipment. Background Technology

[0002] Currently, the depalletizing and palletizing of cardboard boxes is widely used in the logistics warehousing industry and internal enterprise logistics. Using robots for depalletizing and palletizing cardboard boxes is a convenient and efficient method. During the palletizing process, robots generally use online teaching to generate pallet shapes, which is a cumbersome process that consumes a lot of time. Furthermore, the lack of a reasonable palletizing planning algorithm can lead to wasted pallet space or the inability to perform automatic mixing operations.

[0003] The palletizing algorithms used in related technologies are complex and computationally intensive, making them unsuitable for guiding palletizing operations in practical applications.

[0004] There is currently no effective solution to the above problems. Summary of the Invention

[0005] This invention provides a robotic palletizing method, apparatus, storage medium, and computer device to at least solve the technical problems of complex palletizing algorithms and high computational load in related technologies.

[0006] According to one aspect of the present invention, a robotic palletizing method is provided, comprising: acquiring the length, width, and height of a target object, and the length, width, and height of a pallet; determining a target direction, wherein the target direction is any one of the following directions: a first direction parallel to the length of the pallet, and a second direction parallel to the width of the pallet; palletizing the target objects according to the target direction to form target rows, wherein the length of the target rows does not exceed the dimension of the pallet in the target direction, and the target objects within the target rows have the same pallet orientation; palletizing the target rows within the pallet, and determining the coordinates of the target objects within the pallet; sending the coordinates of the target objects within the pallet to a robot, wherein the robot places the target objects in the pallet according to the coordinates of the target objects within the pallet.

[0007] Optionally, stacking the target row within a pallet and determining the coordinates of the target object within the pallet includes: determining the width of the target layer as the dimension of the pallet perpendicular to the target direction, wherein the direction perpendicular to the target direction is a first direction or a second direction; stacking the target row along its long side with the width of the target layer as a constraint, with the goal of maximizing space utilization within the target layer; and stacking the target layer within the pallet in a third direction parallel to the height of the pallet, thereby determining the coordinates of the target object within the pallet.

[0008] Optionally, with the goal of maximizing space utilization within the target layer and the width of the target layer as a constraint, target rows are stacked by aligning their long sides to form a target layer. This includes: sorting target rows into a target row sequence based on their widths; determining the width of the target row to be stacked according to the target row sequence; determining the difference between the width of the target layer and the sum of the widths of the already stacked target rows as the target width difference; stacking the target row to be stacked by aligning its long side with the already stacked target rows if the width of the target row to be stacked does not exceed the target width difference; stacking the first target row whose width does not exceed the target width difference with the long side of the already stacked target rows in the target rows to be stacked according to the target row sequence; or, if no target row whose width does not exceed the target width difference is detected in the target rows to be stacked, the stacking of the current target layer is completed.

[0009] Optionally, with the goal of maximizing space utilization within the target layer and the width of the target layer as a constraint, the target rows are stacked by aligning their long sides to form a target layer. This further includes: determining the difference between the width of the target layer and the sum of the widths of the already stacked target rows as the target width difference; generating a first random number, wherein the first random number is used to determine the width of the target row in the current stack; determining the width of the target row corresponding to the first random number as the width of the target row in the current stack based on a predetermined correspondence between the range of the first random number and the width of the target row; if the width of the target row in the current stack does not exceed the target width difference, stacking the target row in the current stack with the long sides of the already stacked target rows by aligning them; if the width of the target row in the current stack exceeds the target width difference, repeatedly generating a second random number within a range outside the range corresponding to the first random number, and determining the width of the target row corresponding to the second random number, until a target row with a width not exceeding the target width difference is determined, and then stacking the target row with a width not exceeding the target width difference with the long sides of the already stacked target rows by aligning them; or, if the width of all target rows exceeds the target width difference, the stacking of the current target layer is completed.

[0010] Optionally, determining the target direction includes: generating a third random number; determining the stacking direction corresponding to the third random number as the target direction based on a predetermined correspondence between a second random number range and a stacking direction, wherein the third random number range includes a first sub-range and a second sub-range, and the correspondence between the second random number range and the stacking direction includes: the first sub-range corresponds to the first direction, and the second sub-range corresponds to the second direction.

[0011] Optionally, the target objects are stacked according to the target direction to form a target row, including: determining the size of the pallet in the target direction as the length of the target row, wherein the target row includes a first target row and / or a second target row; determining the length of the target object as the width of the first target row, with the goal of maximizing the space utilization within the first target row and the length of the target row as a constraint, stacking the target objects with their wide sides together to form the first target row; and / or, determining the width of the target object as the width of the second target row, with the goal of maximizing the space utilization within the second target row and the length of the target row as a constraint, stacking the target objects with their long sides together to form the second target row.

[0012] Optionally, the target row is stacked in the pallet, and the coordinates of the target object in the pallet are determined, including: establishing a pallet coordinate system based on the length, width and height of the pallet; stacking the target row in the pallet to obtain the position of the target object relative to the pallet; and determining the coordinates of a preset reference point of the target object in the pallet coordinate system based on the position of the target object relative to the pallet, thereby obtaining the coordinates of the target object in the pallet.

[0013] According to another aspect of the present invention, a robotic palletizing device is also provided, comprising: an acquisition module for acquiring the length, width, and height of a target object, and the length, width, and height of a pallet; a first determination module for determining a target direction, wherein the target direction is any one of the following directions: a first direction parallel to the length of the pallet, and a second direction parallel to the width of the pallet; a palletizing module for palletizing the target objects according to the target direction to form target rows, wherein the length of the target rows does not exceed the dimension of the pallet in the target direction, and the target objects within the target rows have the same palletizing orientation; a second determination module for palletizing the target rows within the pallet and determining the coordinates of the target objects within the pallet; and a sending module for sending the coordinates of the target objects within the pallet to a robot, wherein the robot places the target objects in the pallet according to the coordinates of the target objects within the pallet.

[0014] According to another aspect of the present invention, a non-volatile storage medium is also provided, the non-volatile storage medium including a stored program, wherein, when the program is running, the device where the non-volatile storage medium is located is controlled to execute any of the above-described robotic palletizing methods.

[0015] According to another aspect of the present invention, a computer device is also provided, the computer device including a processor for running a program, wherein the program executes any of the above-described robotic palletizing methods during runtime.

[0016] In this embodiment of the invention, the target objects are first stacked into target rows, then stacked into target layers, and finally stacked on a pallet. The process involves obtaining the length, width, and height of the target objects, as well as the length, width, and height of the pallet; determining the target direction, which can be any of the following: a first direction parallel to the length of the pallet, or a second direction parallel to the width of the pallet; stacking the target objects according to the target direction to form target rows, wherein the length of the target rows does not exceed the dimensions of the pallet in the target direction, and the stacking orientation of the target objects within the target rows is the same; stacking the target rows on the pallet and determining the coordinates of the target objects within the pallet; sending the coordinates of the target objects within the pallet to a robot, which then places the target objects on the pallet based on their coordinates. This achieves the goal of stacking target objects on pallets with high utilization using a relatively simple algorithm, thereby reducing the complexity of the stacking algorithm while ensuring high utilization, and solving the technical problems of complex and computationally intensive stacking algorithms in related technologies. Attached Figure Description

[0017] The accompanying drawings, which are included to provide a further understanding of the invention and form part of this application, illustrate exemplary embodiments of the invention and, together with their description, serve to explain the invention and do not constitute an undue limitation thereof. In the drawings:

[0018] Figure 1 A hardware block diagram of a computer terminal for implementing a robotic palletizing method is shown.

[0019] Figure 2 This is a flowchart illustrating the robotic palletizing method provided according to an embodiment of the present invention;

[0020] Figure 3 This is a schematic diagram of the target layer provided by an optional embodiment of the present invention;

[0021] Figure 4 This is a structural block diagram of a robotic palletizing device provided according to an optional embodiment of the present invention. Detailed Implementation

[0022] To enable those skilled in the art to better understand the present invention, the technical solutions of the present invention will be clearly and completely described below with reference to the accompanying drawings of the embodiments of the present invention. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort should fall within the scope of protection of the present invention.

[0023] It should be noted that the terms "first," "second," etc., in the specification, claims, and accompanying drawings of this invention are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such data can be interchanged where appropriate so that the embodiments of the invention described herein can be implemented in orders other than those illustrated or described herein. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover a non-exclusive inclusion; for example, a process, method, system, product, or apparatus that comprises a series of steps or units is not necessarily limited to those steps or units explicitly listed, but may include other steps or units not explicitly listed or inherent to such processes, methods, products, or apparatus.

[0024] According to an embodiment of the present invention, a method embodiment for robotic palletizing is provided. It should be noted that the steps shown in the flowchart in the accompanying drawings can be executed in a computer system such as a set of computer-executable instructions. Furthermore, although a logical order is shown in the flowchart, in some cases, the steps shown or described may be executed in a different order than that shown here.

[0025] The method embodiment provided in Embodiment 1 of this application can be executed on a mobile terminal, computer terminal, or similar computing device. Figure 1 A hardware block diagram of a computer terminal for implementing a robotic palletizing method is shown. Figure 1 As shown, the computer terminal 10 may include one or more processors (shown as 102a, 102b, ..., 102n in the figure) (the processor may include, but is not limited to, a microprocessor MCU or a programmable logic device FPGA, etc.) and a memory 104 for storing data. In addition, it may also include: a display, an input / output interface (I / O interface), a universal serial bus (USB) port (which may be included as one of the ports of a BUS bus), a network interface, a power supply, and / or a camera. Those skilled in the art will understand that... Figure 1 The structure shown is for illustrative purposes only and does not limit the structure of the aforementioned electronic device. For example, computer terminal 10 may also include... Figure 1 The more or fewer components shown, or having the same Figure 1 The different configurations shown.

[0026] It should be noted that the aforementioned one or more processors and / or other data processing circuits are generally referred to herein as "data processing circuits". These data processing circuits may be implemented wholly or partially as software, hardware, firmware, or any other combination thereof. Furthermore, the data processing circuits may be a single, independent processing module, or may be wholly or partially integrated into any other element in the computer terminal 10. As involved in the embodiments of this application, the data processing circuits serve as processor control (e.g., selection of a variable resistor termination path connected to an interface).

[0027] The memory 104 can be used to store software programs and modules of application software, such as the program instructions / data storage device corresponding to the robot palletizing method in this embodiment of the invention. The processor executes various functional applications and data processing by running the software programs and modules stored in the memory 104, thereby implementing the robot palletizing method of the aforementioned application. The memory 104 may include high-speed random access memory, and may also include non-volatile memory, such as one or more magnetic storage devices, flash memory, or other non-volatile solid-state memory. In some instances, the memory 104 may further include memory remotely located relative to the processor, and these remote memories can be connected to the computer terminal 10 via a network. Examples of such networks include, but are not limited to, the Internet, corporate intranets, local area networks, mobile communication networks, and combinations thereof.

[0028] The display may be, for example, a touchscreen liquid crystal display (LCD) that allows the user to interact with the user interface of the computer terminal 10.

[0029] Figure 2 This is a flowchart illustrating the robotic palletizing method provided according to an embodiment of the present invention, as shown below. Figure 2 As shown, the method includes the following steps:

[0030] Step S202: Obtain the length, width, and height of the target object, as well as the length, width, and height of the pallet.

[0031] In this step, the target object can be a shipping container, and the pallet can be a larger container that needs to be filled by the target object. Palletizing involves placing smaller objects within a fixed volume of space. Therefore, before palletizing begins, it is necessary to obtain the dimensions of the target object and the pallet.

[0032] Step S204: Determine the target direction, wherein the target direction is any one of the following directions: a first direction parallel to the length of the pallet, and a second direction parallel to the width of the pallet.

[0033] Step S206: Stack the target objects according to the target direction to form a target row, wherein the length of the target row does not exceed the size of the pallet in the target direction, and the target objects in the target row have the same stacking orientation.

[0034] In the above two steps, Figure 3 This is a schematic diagram of the target layer provided by an optional embodiment of the present invention, such as... Figure 3 As shown, the present invention first stacks the target objects into multiple rows according to the target direction, that is, obtains multiple target rows, i.e. Figure 3 The target rows are defined as Target Row 1, Target Row 2, and Target Row 3, where the length of each target row does not exceed the dimension of the pallet in the target direction. Within each target row, target objects can be stacked in the same direction, meaning their long sides are joined together, and the width of the resulting target row is equal to the length of the target object. Alternatively, the widths of the target objects can be joined together, and the width of the resulting target row is equal to the width of the target object. Therefore, multiple target rows can have different widths.

[0035] Step S208: Stack the target row in the pallet and determine the coordinates of the target object in the pallet.

[0036] In this step, multiple stacked target rows can be placed into a pallet to obtain the method of placing the target object into the pallet, thereby determining the coordinates of the target object within the pallet.

[0037] Step S210: The coordinates of the target object within the pallet are sent to the robot, wherein the robot stacks the target object in the pallet according to the coordinates of the target object within the pallet.

[0038] In this step, the coordinates of the target object within the pallet can be sent to the robot, which can then stack the target object on the pallet.

[0039] Through the above steps, the goal of stacking target objects in pallets with high utilization can be achieved using a relatively simple algorithm. This achieves the technical effect of reducing the complexity of the palletizing algorithm while ensuring high utilization, and thus solves the technical problems of complex and computationally intensive palletizing algorithms in related technologies.

[0040] As an optional embodiment, stacking target objects according to a target direction to form target rows includes: determining the size of the pallet in the target direction as the length of the target row, wherein the target row includes a first target row and / or a second target row; determining the length of the target object as the width of the first target row, with the goal of maximizing the space utilization within the first target row and the length of the target row as a constraint, stacking the target objects with their wide sides together to form the first target row; and / or, determining the width of the target object as the width of the second target row, with the goal of maximizing the space utilization within the second target row and the length of the target row as a constraint, stacking the target objects with their long sides together to form the second target row.

[0041] Optionally, target objects can be stacked to form multiple target rows, wherein the length of each target row does not exceed the dimension of the pallet in the target direction. Multiple target rows may include a first target row and a second target row. A first target row refers to a target row in which target objects are stacked facing the same direction, with their long sides touching, and as many target objects as possible are placed within the target row; the width of the resulting target row is the length of the target objects. Alternatively, the widths of the target objects can be touching, and as many target objects as possible are placed within the target row; the width of the resulting target row is the width of the target objects. Therefore, the width of multiple target rows can be either the width or the length of the target objects.

[0042] It should be noted that when placing multiple target objects within a target row, you can first determine the orientation of the target objects. For example, determine that the long sides of the target objects are placed together. This will determine that the width of the target row is equal to the length of the target objects. Then, you can determine the volume of the target row. Based on the volume of the target row and the volume of the target objects, you can calculate the number of target objects that can be placed within the target row with the maximum space utilization.

[0043] As an optional embodiment, stacking the target row within a pallet and determining the coordinates of the target object within the pallet includes: determining the width of the target layer as the dimension of the pallet perpendicular to the target direction, wherein the perpendicular direction to the target direction is a first direction or a second direction; stacking the target row along its long side with the width of the target layer as a constraint, with the goal of maximizing space utilization within the target layer; and stacking the target layer within the pallet in a third direction parallel to the height of the pallet, thereby determining the coordinates of the target object within the pallet.

[0044] Optionally, if the target direction is determined to be the first direction or the second direction, the target objects are stacked into multiple target rows along the target direction. The next step may be to stack multiple target rows into multiple target layers by aligning the long sides of the target rows in the direction perpendicular to the target direction, with the goal of maximizing the space utilization within the target layer and the width of the target layer as a constraint.

[0045] As an optional embodiment, with the goal of maximizing space utilization within the target layer and constrained by the width of the target layer, target rows are stacked by aligning their long sides to form a target layer. This includes: sorting target rows into a target row sequence based on their widths; determining the width of the target row to be stacked according to the target row sequence; determining the difference between the width of the target layer and the sum of the widths of the already stacked target rows as the target width difference; stacking the target row to be stacked with the long sides of the already stacked target rows if the width of the target row to be stacked does not exceed the target width difference; stacking the target row to be stacked with the long sides of the already stacked target rows if the width of the target row to be stacked exceeds the target width difference if the width of the target row to be stacked exceeds the target width difference; or, if it is detected that there is no target row with a width not exceeding the target width difference among the target rows to be stacked, the stacking of the current target layer is completed.

[0046] Optionally, in the process of stacking multiple target rows into a target layer, the space of the multiple target rows in the target direction can be disregarded, and only the space of the pallet in the vertical target direction can be considered. The palletizing method that maximizes the length utilization of the width of the multiple target rows in the vertical target direction can be considered. Specifically, the multiple target rows can be sorted according to their width, in descending order of width. Then, the multiple target rows are placed into the pallet in sequence with their long sides touching. Before placing them, the target rows already stacked in the current target layer are identified, and it is checked whether the current target layer can still accommodate the current target row. If it cannot, the target row with the largest width that can be placed can be found according to the sequence and placed into the current target layer, until the current target layer can no longer accommodate any target rows.

[0047] As an optional embodiment, with the goal of maximizing space utilization within the target layer and the width of the target layer as a constraint, the target rows are stacked by aligning their long sides to form a target layer. This further includes: determining the difference between the width of the target layer and the sum of the widths of the already stacked target rows as the target width difference; generating a first random number, wherein the first random number is used to determine the width of the target row currently being stacked; determining the width of the target row corresponding to the first random number as the width of the target row currently being stacked based on a predetermined correspondence between the range of the first random number and the width of the target row; if the width of the target row currently being stacked does not exceed the target width difference, aligning the target row of the current stack with the long sides of the already stacked target rows for stacking; if the width of the target row of the current stack exceeds the target width difference, repeatedly generating a second random number within a range outside the range corresponding to the first random number, and determining the width of the target row corresponding to the second random number, until a target row with a width not exceeding the target width difference is determined, and aligning the target row with the long sides of the already stacked target rows for stacking; or, if it is detected that the width of all target rows exceeds the target width difference, the stacking of the current target layer is completed.

[0048] Optionally, when considering the space of the pallet in the vertical target direction and the palletizing method that maximizes the length utilization of multiple target rows in the vertical target direction, the width of the target row in the current palletizing can be determined in the form of a random number, and multiple target rows can be placed in the pallet with their long sides touching. Specifically, a range of random numbers can be set according to the width of the target row. Then, during arrangement, a random number can be generated first, and the width of the target row corresponding to this random number can be used as the width of the target row in the current palletizing. Before placing it, the target rows already palletized in the current target layer are identified, and it is checked whether the current target layer can still accommodate the current target row. If it cannot, a new random number can be generated outside the range of the previously generated random number to find a target row that can fit and place it in the current target layer, until the current target layer can no longer accommodate any target rows.

[0049] As an optional embodiment, determining the target direction includes: generating a third random number; determining the stacking direction corresponding to the third random number as the target direction based on a predetermined correspondence between a second random number range and a stacking direction, wherein the third random number range includes a first sub-range and a second sub-range, and the correspondence between the second random number range and the stacking direction includes: the first sub-range corresponds to a first direction, and the second sub-range corresponds to a second direction.

[0050] Optionally, the target direction can be determined using random numbers. Specifically, a range of random numbers can be set, random numbers can be generated, and the direction corresponding to the random number within that range can be used as the target direction. For example, the target direction can be a first direction and a second direction, so a third random number range can be set, including the first and second sub-ranges, where the first sub-range corresponds to the first direction and the second sub-range corresponds to the second direction. For example, the third random number range can be set to 0 to 1, the first sub-range to 0 to 0.5, and the second sub-range to 0.5 to 1. When the generated random number is 0.2, the first direction is determined as the target direction.

[0051] As an optional embodiment, stacking the target row within a pallet and determining the coordinates of the target object within the pallet includes: establishing a pallet coordinate system based on the length, width, and height of the pallet; stacking the target row within the pallet to obtain the position of the target object relative to the pallet; and determining the coordinates of a preset reference point of the target object in the pallet coordinate system based on the position of the target object relative to the pallet, thereby obtaining the coordinates of the target object within the pallet.

[0052] Optionally, after the target row is stacked on the pallet, the coordinates of the stacked target object can be determined and sent to the robot. The preset reference point can be a vertex of the target object.

[0053] It should be noted that, for the sake of simplicity, the foregoing method embodiments are all described as a series of actions. However, those skilled in the art should understand that the present invention is not limited to the described order of actions, because according to the present invention, some steps can be performed in other orders or simultaneously. Furthermore, those skilled in the art should also understand that the embodiments described in the specification are preferred embodiments, and the actions and modules involved are not necessarily essential to the present invention.

[0054] Through the above description of the embodiments, those skilled in the art can clearly understand that the robotic palletizing method according to the above embodiments can be implemented by means of software plus necessary general-purpose hardware platform. Of course, it can also be implemented by hardware, but in many cases the former is a better implementation method. Based on this understanding, the technical solution of the present invention, or the part that contributes to the prior art, can be embodied in the form of a software product. This computer software product is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disk) and includes several instructions to cause a terminal device (which may be a mobile phone, computer, server, or network device, etc.) to execute the methods described in the various embodiments of the present invention.

[0055] According to embodiments of the present invention, a robotic palletizing apparatus for implementing the above-described robotic palletizing method is also provided. Figure 4This is a structural block diagram of a robotic palletizing device provided according to an embodiment of the present invention, such as... Figure 4 As shown, the robot palletizing device includes: an acquisition module 41, a first determination module 42, a palletizing module 43, a second determination module 44, and a sending module 45. The robot palletizing device will be described below.

[0056] The module 41 is used to acquire the length, width, and height of the target object, as well as the length, width, and height of the pallet. The first determining module 42, connected to the acquiring module 41, is used to determine the target direction, which is any one of the following: a first direction parallel to the length of the pallet, or a second direction parallel to the width of the pallet. The palletizing module 43, connected to the first determining module 42, is used to palletize the target objects according to the target direction to form target rows, wherein the length of the target rows does not exceed the dimensions of the pallet in the target direction, and the target objects within the target rows have the same palletizing orientation. The second determining module 44, connected to the palletizing module 43, is used to palletize the target rows within the pallet and determine the coordinates of the target objects within the pallet. The sending module 45, connected to the second determining module 44, is used to send the coordinates of the target objects within the pallet to the robot, wherein the robot places the target objects on the pallet according to their coordinates.

[0057] It should be noted that the aforementioned acquisition module 41, first determination module 42, palletizing module 43, second determination module 44, and sending module 45 correspond to steps S202 to S210 in the embodiments. Multiple modules implement the same instances and application scenarios as their corresponding steps, but are not limited to the content disclosed in the above embodiments. It should also be noted that the aforementioned modules, as part of the device, can run on the computer terminal 10 provided in the embodiments.

[0058] Embodiments of the present invention may provide a computer device. Optionally, in this embodiment, the computer device may be located in at least one of a plurality of network devices in a computer network. The computer device includes a memory and a processor.

[0059] The memory can be used to store software programs and modules, such as the program instructions / modules corresponding to the robot palletizing method and apparatus in this embodiment of the invention. The processor executes various functional applications and data processing by running the software programs and modules stored in the memory, thereby realizing the robot palletizing method described above. The memory may include high-speed random access memory, and may also include non-volatile memory, such as one or more magnetic storage devices, flash memory, or other non-volatile solid-state memory. In some instances, the memory may further include memory remotely located relative to the processor, and these remote memories can be connected to a computer terminal via a network. Examples of such networks include, but are not limited to, the Internet, corporate intranets, local area networks, mobile communication networks, and combinations thereof.

[0060] The processor can invoke information and application programs stored in the memory via a transmission device to perform the following steps: obtaining the length, width, and height of the target object, and the length, width, and height of the pallet; determining the target orientation, wherein the target orientation is any one of the following: a first orientation parallel to the length of the pallet, and a second orientation parallel to the width of the pallet; stacking the target objects according to the target orientation to form target rows, wherein the length of the target row does not exceed the dimension of the pallet in the target orientation, and the stacking orientation of the target objects within the target row is the same; stacking the target rows within the pallet, and determining the coordinates of the target objects within the pallet; sending the coordinates of the target objects within the pallet to the robot, wherein the robot stacks the target objects in the pallet according to the coordinates of the target objects within the pallet.

[0061] Optionally, stacking the target row within a pallet and determining the coordinates of the target object within the pallet includes: determining the width of the target layer as the dimension of the pallet perpendicular to the target direction, wherein the direction perpendicular to the target direction is a first direction or a second direction; stacking the target row along its long side with the width of the target layer as a constraint, with the goal of maximizing space utilization within the target layer; and stacking the target layer within the pallet in a third direction parallel to the height of the pallet, thereby determining the coordinates of the target object within the pallet.

[0062] Optionally, with the goal of maximizing space utilization within the target layer and the width of the target layer as a constraint, target rows are stacked by aligning their long sides to form a target layer. This includes: sorting target rows into a target row sequence based on their widths; determining the width of the target row to be stacked according to the target row sequence; determining the difference between the width of the target layer and the sum of the widths of the already stacked target rows as the target width difference; stacking the target row to be stacked by aligning its long side with the already stacked target rows if the width of the target row to be stacked does not exceed the target width difference; stacking the first target row whose width does not exceed the target width difference with the long side of the already stacked target rows in the target rows to be stacked according to the target row sequence; or, if no target row whose width does not exceed the target width difference is detected in the target rows to be stacked, the stacking of the current target layer is completed.

[0063] Optionally, with the goal of maximizing space utilization within the target layer and the width of the target layer as a constraint, the target rows are stacked by aligning their long sides to form a target layer. This further includes: determining the difference between the width of the target layer and the sum of the widths of the already stacked target rows as the target width difference; generating a first random number, wherein the first random number is used to determine the width of the target row in the current stack; determining the width of the target row corresponding to the first random number as the width of the target row in the current stack based on a predetermined correspondence between the range of the first random number and the width of the target row; if the width of the target row in the current stack does not exceed the target width difference, stacking the target row in the current stack with the long sides of the already stacked target rows by aligning them; if the width of the target row in the current stack exceeds the target width difference, repeatedly generating a second random number within a range outside the range corresponding to the first random number, and determining the width of the target row corresponding to the second random number, until a target row with a width not exceeding the target width difference is determined, and then stacking the target row with a width not exceeding the target width difference with the long sides of the already stacked target rows by aligning them; or, if the width of all target rows exceeds the target width difference, the stacking of the current target layer is completed.

[0064] Optionally, determining the target direction includes: generating a third random number; determining the stacking direction corresponding to the third random number as the target direction based on a predetermined correspondence between a second random number range and a stacking direction, wherein the third random number range includes a first sub-range and a second sub-range, and the correspondence between the second random number range and the stacking direction includes: the first sub-range corresponds to the first direction, and the second sub-range corresponds to the second direction.

[0065] Optionally, the target objects are stacked according to the target direction to form a target row, including: determining the size of the pallet in the target direction as the length of the target row, wherein the target row includes a first target row and / or a second target row; determining the length of the target object as the width of the first target row, with the goal of maximizing the space utilization within the first target row and the length of the target row as a constraint, stacking the target objects with their wide sides together to form the first target row; and / or, determining the width of the target object as the width of the second target row, with the goal of maximizing the space utilization within the second target row and the length of the target row as a constraint, stacking the target objects with their long sides together to form the second target row.

[0066] Optionally, the target row is stacked in the pallet, and the coordinates of the target object in the pallet are determined, including: establishing a pallet coordinate system based on the length, width and height of the pallet; stacking the target row in the pallet to obtain the position of the target object relative to the pallet; and determining the coordinates of a preset reference point of the target object in the pallet coordinate system based on the position of the target object relative to the pallet, thereby obtaining the coordinates of the target object in the pallet.

[0067] This invention provides a robotic palletizing scheme. By acquiring the length, width, and height of the target object, as well as the length, width, and height of the pallet; determining the target direction, which can be any of the following: a first direction parallel to the length of the pallet, or a second direction parallel to the width of the pallet; palletizing the target objects according to the target direction to form target rows, wherein the length of the target row does not exceed the dimension of the pallet in the target direction, and the target objects within the target row have the same pallet orientation; palletizing the target rows within the pallet, and determining the coordinates of the target objects within the pallet; sending the coordinates of the target objects within the pallet to the robot, wherein the robot, based on the coordinates of the target objects within the pallet, places the target objects on the pallet. This achieves the goal of placing target objects on the pallet with high utilization using a relatively simple algorithm, thereby reducing the complexity of the palletizing algorithm while ensuring high utilization, and thus solving the technical problems of complex and computationally intensive palletizing algorithms in related technologies.

[0068] Those skilled in the art will understand that all or part of the steps in the various methods of the above embodiments can be implemented by a program instructing the hardware related to the terminal device. The program can be stored in a non-volatile storage medium, which may include: flash drive, read-only memory (ROM), random access memory (RAM), disk or optical disk, etc.

[0069] Embodiments of the present invention also provide a non-volatile storage medium. Optionally, in this embodiment, the aforementioned non-volatile storage medium can be used to store the program code executed by the robotic palletizing method provided in the above embodiments.

[0070] Optionally, in this embodiment, the non-volatile storage medium may be located in any computer terminal in a group of computer terminals in a computer network, or in any mobile terminal in a group of mobile terminals.

[0071] Optionally, in this embodiment, the non-volatile storage medium is configured to store program code for performing the following steps: obtaining the length, width, and height of the target object, and the length, width, and height of the pallet; determining the target direction, wherein the target direction is any one of the following directions: a first direction parallel to the length of the pallet, and a second direction parallel to the width of the pallet; stacking the target objects according to the target direction to form target rows, wherein the length of the target row does not exceed the dimension of the pallet in the target direction, and the stacking orientation of the target objects within the target row is the same; stacking the target rows within the pallet, and determining the coordinates of the target objects within the pallet; sending the coordinates of the target objects within the pallet to the robot, wherein the robot stacks the target objects in the pallet according to the coordinates of the target objects within the pallet.

[0072] Optionally, stacking the target row within a pallet and determining the coordinates of the target object within the pallet includes: determining the width of the target layer as the dimension of the pallet perpendicular to the target direction, wherein the direction perpendicular to the target direction is a first direction or a second direction; stacking the target row along its long side with the width of the target layer as a constraint, with the goal of maximizing space utilization within the target layer; and stacking the target layer within the pallet in a third direction parallel to the height of the pallet, thereby determining the coordinates of the target object within the pallet.

[0073] Optionally, with the goal of maximizing space utilization within the target layer and the width of the target layer as a constraint, target rows are stacked by aligning their long sides to form a target layer. This includes: sorting target rows into a target row sequence based on their widths; determining the width of the target row to be stacked according to the target row sequence; determining the difference between the width of the target layer and the sum of the widths of the already stacked target rows as the target width difference; stacking the target row to be stacked by aligning its long side with the already stacked target rows if the width of the target row to be stacked does not exceed the target width difference; stacking the first target row whose width does not exceed the target width difference with the long side of the already stacked target rows in the target rows to be stacked according to the target row sequence; or, if no target row whose width does not exceed the target width difference is detected in the target rows to be stacked, the stacking of the current target layer is completed.

[0074] Optionally, with the goal of maximizing space utilization within the target layer and the width of the target layer as a constraint, the target rows are stacked by aligning their long sides to form a target layer. This further includes: determining the difference between the width of the target layer and the sum of the widths of the already stacked target rows as the target width difference; generating a first random number, wherein the first random number is used to determine the width of the target row in the current stack; determining the width of the target row corresponding to the first random number as the width of the target row in the current stack based on a predetermined correspondence between the range of the first random number and the width of the target row; if the width of the target row in the current stack does not exceed the target width difference, stacking the target row in the current stack with the long sides of the already stacked target rows by aligning them; if the width of the target row in the current stack exceeds the target width difference, repeatedly generating a second random number within a range outside the range corresponding to the first random number, and determining the width of the target row corresponding to the second random number, until a target row with a width not exceeding the target width difference is determined, and then stacking the target row with a width not exceeding the target width difference with the long sides of the already stacked target rows by aligning them; or, if the width of all target rows exceeds the target width difference, the stacking of the current target layer is completed.

[0075] Optionally, determining the target direction includes: generating a third random number; determining the stacking direction corresponding to the third random number as the target direction based on a predetermined correspondence between a second random number range and a stacking direction, wherein the third random number range includes a first sub-range and a second sub-range, and the correspondence between the second random number range and the stacking direction includes: the first sub-range corresponds to the first direction, and the second sub-range corresponds to the second direction.

[0076] Optionally, the target objects are stacked according to the target direction to form a target row, including: determining the size of the pallet in the target direction as the length of the target row, wherein the target row includes a first target row and / or a second target row; determining the length of the target object as the width of the first target row, with the goal of maximizing the space utilization within the first target row and the length of the target row as a constraint, stacking the target objects with their wide sides together to form the first target row; and / or, determining the width of the target object as the width of the second target row, with the goal of maximizing the space utilization within the second target row and the length of the target row as a constraint, stacking the target objects with their long sides together to form the second target row.

[0077] Optionally, the target row is stacked in the pallet, and the coordinates of the target object in the pallet are determined, including: establishing a pallet coordinate system based on the length, width and height of the pallet; stacking the target row in the pallet to obtain the position of the target object relative to the pallet; and determining the coordinates of a preset reference point of the target object in the pallet coordinate system based on the position of the target object relative to the pallet, thereby obtaining the coordinates of the target object in the pallet.

[0078] The sequence numbers of the above embodiments of the present invention are for descriptive purposes only and do not represent the superiority or inferiority of the embodiments.

[0079] In the above embodiments of the present invention, the descriptions of each embodiment have different focuses. For parts not described in detail in a certain embodiment, please refer to the relevant descriptions of other embodiments.

[0080] In the several embodiments provided in this application, it should be understood that the disclosed technical content can be implemented in other ways. The device embodiments described above are merely illustrative; for example, the division of units can be a logical functional division, and in actual implementation, there may be other division methods. For instance, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the displayed or discussed mutual coupling, direct coupling, or communication connection may be through some interfaces; the indirect coupling or communication connection between units or modules may be electrical or other forms.

[0081] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.

[0082] Furthermore, the functional units in the various embodiments of the present invention can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.

[0083] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a non-volatile storage medium. Based on this understanding, the technical solution of the present invention, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of the present invention. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, read-only memory (ROM), random access memory (RAM), portable hard drives, magnetic disks, or optical disks.

[0084] The above description is only a preferred embodiment of the present invention. It should be noted that for those skilled in the art, several improvements and modifications can be made without departing from the principle of the present invention, and these improvements and modifications should also be considered within the scope of protection of the present invention.

Claims

1. A robotic palletizing method, characterized in that, include: Get the length, width, and height of the target object, as well as the length, width, and height of the pallet; Determine the target direction, wherein the target direction is any one of the following directions: a first direction parallel to the length of the pallet, and a second direction parallel to the width of the pallet; The target objects are stacked according to the target direction to form a target row, wherein the length of the target row does not exceed the size of the pallet in the target direction, and the target objects in the target row have the same stacking orientation; The target row is stacked in the pallet, and the coordinates of the target object in the pallet are determined. The coordinates of the target object within the pallet are sent to the robot, wherein the robot stacks the target object in the pallet according to the coordinates of the target object within the pallet; The step of stacking the target row within the pallet and determining the coordinates of the target object within the pallet includes: determining the width of the target layer as the dimension of the pallet perpendicular to the target direction, wherein the perpendicular direction to the target direction is either the first direction or the second direction; stacking the target rows with their long sides aligned to form the target layer, with the width of the target layer as a constraint and the space utilization rate within the target layer as the objective; stacking the target layer within the pallet in a third direction parallel to the height of the pallet, and determining the coordinates of the target object within the pallet. The step of stacking the target rows with their long sides aligned, aiming to maximize space utilization within the target layer and constraining the width of the target layer, to form the target layer, includes: determining the difference between the width of the target layer and the width of the stacked target rows as the target width difference; generating a first random number, wherein the first random number is used to determine the width of the target row in the current stack; determining the width of the target row corresponding to the first random number as the width of the target row in the current stack based on a predetermined correspondence between the first random number range and the width of the target row; and ensuring that the width of the target row in the current stack does not exceed the target width difference. In the case where the width of the current target row is greater than the target width difference, a second random number is repeatedly generated within a range outside the range corresponding to the first random number, and the width of the target row corresponding to the second random number is determined until a target row with a width not exceeding the target width difference is determined, and the target row with a width not exceeding the target width difference is stacked with the long side of the already stacked target row; or, if the width of the target row is detected to exceed the target width difference, the stacking of the current target layer is completed.

2. The method according to claim 1, characterized in that, Determining the target direction includes: Generate a third random number; Based on the predetermined correspondence between the second random number range and the stacking direction, the stacking direction corresponding to the third random number is determined as the target direction. The third random number range includes a first sub-range and a second sub-range. The correspondence between the second random number range and the stacking direction includes: the first sub-range corresponds to the first direction, and the second sub-range corresponds to the second direction.

3. The method according to claim 1, characterized in that, The step of stacking the target objects according to the target direction to form a target row includes: The dimension of the pallet in the target direction is determined to be the length of the target row, wherein the target row includes a first target row and / or a second target row; The length of the target object is determined to be the width of the first target row. With the goal of maximizing the space utilization within the first target row and the length of the target row as a constraint, the wide edges of the target objects are aligned and stacked to form the first target row. And / or, determine the width of the target object as the width of the second target row, take the maximum space utilization within the second target row as the objective, and take the length of the target row as a constraint, and stack the long sides of the target objects together to form the second target row.

4. The method according to any one of claims 1 to 3, characterized in that, The step of stacking the target row within the pallet and determining the coordinates of the target object within the pallet includes: Establish a pallet coordinate system based on the length, width, and height of the pallet; The target row is stacked in the pallet to obtain the position of the target object relative to the pallet; Based on the position of the target object relative to the pallet, the coordinates of the preset reference point of the target object in the pallet coordinate system are determined, and the coordinates of the target object within the pallet are obtained.

5. A robotic palletizing device, characterized in that, include: The acquisition module is used to acquire the length, width, and height of the target object, as well as the length, width, and height of the pallet. The first determining module is used to determine the target direction, wherein the target direction is any one of the following directions: a first direction parallel to the length of the pallet, and a second direction parallel to the width of the pallet; A palletizing module is used to palletize the target objects according to the target direction to form a target row, wherein the length of the target row does not exceed the size of the pallet in the target direction, and the target objects in the target row have the same palletizing orientation; The second determining module is used to stack the target row in the pallet and determine the coordinates of the target object in the pallet; A sending module is used to send the coordinates of the target object within the pallet to the robot, wherein the robot stacks the target object in the pallet according to the coordinates of the target object within the pallet; The second determining module is further configured to determine the width of the target layer as the dimension of the pallet in the direction perpendicular to the target direction, wherein the direction perpendicular to the target direction is either the first direction or the second direction; with the goal of maximizing the space utilization within the target layer and with the width of the target layer as a constraint, the long sides of the target rows are aligned and stacked to form the target layer; in a third direction parallel to the height of the pallet, the target layer is stacked within the pallet, and the coordinates of the target object within the pallet are determined; The second determining module is further configured to: determine the difference between the width of the target layer and the width of the already stacked target row as the target width difference; generate a first random number, wherein the first random number is used to determine the width of the target row of the current stacking; determine the width of the target row corresponding to the first random number as the width of the target row of the current stacking based on a predetermined correspondence between the first random number range and the width of the target row; if the width of the target row of the current stacking does not exceed the target width difference, stack the target row of the current stacking with the long side of the already stacked target row; if the width of the target row of the current stacking exceeds the target width difference, repeatedly generate a second random number within a range outside the range corresponding to the first random number, and determine the width of the target row corresponding to the second random number, until a target row with a width not exceeding the target width difference is determined, and stack the target row with a width not exceeding the target width difference with the long side of the already stacked target row; or, if it is detected that the width of all target rows exceeds the target width difference, complete the stacking of the current target layer.

6. A non-volatile storage medium, characterized in that, The non-volatile storage medium includes a stored program, wherein, when the program is executed, it controls the device containing the non-volatile storage medium to perform the robotic palletizing method according to any one of claims 1 to 4.

7. A computer device, characterized in that, include: Memory and processor The memory stores computer programs; The processor is configured to execute a computer program stored in the memory, wherein when the computer program is executed, the processor performs the robotic palletizing method according to any one of claims 1 to 4.

Citation Information

Patent Citations

  • Stacking method, stacking device, computer readable storage medium and electronic equipment

    CN108275293A