Robot palletizing method, device, storage medium and computer equipment
By determining the target direction and using an algorithm that maximizes space utilization, the robotic palletizing method simplifies the palletizing process, improves space utilization, and solves the problems of algorithm complexity and high computational load in existing technologies.
Patent Information
- Application Number
- CN202311609050.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-11-28
- Publication Date
- 2025-12-12
- Estimated Expiration
- 2043-11-28
AI Technical Summary
Existing technologies employ complex and computationally intensive robotic palletizing algorithms, resulting in wasted pallet space and the inability to perform automated mixing operations.
By acquiring the dimensions of the target object and the pallet, the target direction is determined. With the goal of maximizing the space utilization within the target row and the dimensions of the pallet in the target direction as constraints, the target object is stacked according to the target direction to form the target row. The coordinates of the target object within the pallet are then determined and sent to the robot for placement.
It achieves a reduction in the complexity of the palletizing algorithm while ensuring high utilization, improves palletizing efficiency, and solves the problem of complex computational complexity.
Smart Images

Figure CN117465994B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of robots, in particular to a robot stacking method and device, a storage medium and computer equipment. BACKGROUND
[0002] At present, there is a wide range of paper box material unstacking and stacking applications in the logistics and warehousing industry and enterprise internal logistics. Using robots to unstack and stack paper boxes is a convenient and efficient means. In the stacking process, the robot generally generates a stack shape through online teaching, which is tedious and time-consuming, and lacks a reasonable stacking planning algorithm, which can cause tray space waste or prevent automatic mixed stacking operations.
[0003] The stacking algorithm in the related art is complex and has a large amount of calculation, and cannot guide the stacking operation in actual applications.
[0004] In view of the above problems, no effective solution has been proposed so far. SUMMARY
[0005] The embodiments of the present application provide a robot stacking method, device, storage medium and computer equipment to at least solve the technical problems of complex stacking algorithm and large amount of calculation in the related art.
[0006] According to an aspect of the embodiments of the present application, a robot stacking method is provided, including: obtaining the length, width and height of a target object, and the length, width and height of a stacking tray; determining a target direction, wherein the target direction is any one of the following directions: a first direction parallel to the length of the stacking tray, and a second direction parallel to the width of the stacking tray; stacking the target object in the target direction to form a target row, with the maximum space utilization rate of the target row as the target and the size of the stacking tray in the target direction as the constraint; stacking the target row in the stacking tray and determining the coordinates of the target object in the stacking tray; and sending the coordinates of the target object in the stacking tray to a robot, wherein the robot stacks the target object in the stacking tray according to the coordinates of the target object in the stacking tray.
[0007] Optionally, the stacking the target objects in the target direction to form the target row, with the target of maximizing the space utilization in the target row and the constraint of the size of the stack in the target direction, comprises: determining the size of the stack in the target direction as the length of the target row; determining a plurality of stacking modes according to the length and width of the target object and with the length of the target row as the constraint, wherein the plurality of stacking modes are modes of stacking the target objects in the target direction to form the target row; determining the space utilization of each of the plurality of stacking modes; and stacking the target objects into the target row by using the stacking mode with the highest space utilization.
[0008] Optionally, the determining the plurality of stacking modes according to the length and width of the target object and with the length of the target row as the constraint comprises: determining the number of target objects placed side by side in a first orientation and the number of target objects placed side by side in a second orientation in a direction perpendicular to the target direction in the target row according to the length and width of the target object, wherein the direction perpendicular to the target direction is the first direction or the second direction, the first orientation is that the length of the target object is parallel to the target direction, and the second orientation is that the width of the target object is parallel to the target direction; and sequentially stacking the target objects in the first orientation or the second orientation to form the target row by using the following steps: determining the orientation of a previously stacked target object and a count value of target objects placed in succession in the orientation of the previously stacked target object, wherein the orientation of the previously stacked target object is the first orientation or the second orientation; determining whether the count value reaches a first number, wherein the first number is the number of target objects placed side by side in the orientation of the previously stacked target object; placing a currently stacked target object in the orientation of the previously stacked target object when the count value does not reach the first number; generating a first random number and determining the orientation of the currently stacked target object according to the first random number when the count value reaches the first number, wherein the orientation of the currently stacked target object is the first orientation or the second orientation; and placing the currently stacked target object according to the orientation of the currently stacked target object.
[0009] Optionally, the generating the first random number, and determining the orientation of the target object in the current stacking according to the first random number comprises: determining a first difference value as a length in the length of the target row that is not occupied by the stacked target object; generating the first random number; determining, according to a predetermined correspondence between a first random number range and the orientation of the target object, the orientation of the target object corresponding to the first random number as a third orientation, wherein the third orientation is the first orientation or the second orientation; determining a second difference value as a length that the target object stacked in the third orientation should occupy in the target row; in a case where the first difference value exceeds the second difference value, determining the orientation of the target object in the current stacking as the third orientation; in a case where the first difference value does not exceed the second difference value, determining a third difference value as a length that the target object stacked in an orientation perpendicular to the third orientation should occupy in the target row; and in a case where the first difference value exceeds the third difference value, determining the orientation of the target object in the current stacking as the orientation perpendicular to the third orientation.
[0010] Optionally, the stacking the target row in the stacking tray and determining the coordinates of the target object in the stacking tray comprises: determining a width of the stacking tray in a direction perpendicular to the target direction as the width of the target layer, wherein the direction perpendicular to the target direction is the first direction or the second direction; determining a second number of target layers in which the target row is stacked according to the width of the target layer; fitting and stacking the long side of the target row into a target layer according to the second number; and stacking the target layer in the stacking tray in a third direction parallel to the height of the stacking tray to determine the coordinates of the target object in the stacking tray.
[0011] Optionally, the determining the target direction comprises: generating a third random number; and determining, according to a predetermined correspondence between a second random number range and a stacking direction, the stacking direction corresponding to the third random number as the target direction, wherein the second random number range comprises a first sub-range and a second sub-range, and the correspondence between the second random number range and the stacking direction comprises: the first sub-range corresponds to the first direction, and the second sub-range corresponds to the second direction.
[0012] Optionally, the stacking the target row in the stacking tray and determining the coordinates of the target object in the stacking tray comprises: establishing a stacking tray coordinate system according to the length, width and height of the stacking tray; stacking the target row in the stacking tray to obtain a position of the target object relative to the stacking tray; and determining coordinates of a preset reference point of the target object in the stacking tray coordinate system according to the position of the target object relative to the stacking tray to obtain the coordinates of the target object in the stacking tray.
[0013] According to another aspect of the embodiments of the present application, a robot stacking device is also provided, comprising: an acquisition module configured to acquire a length, a width and a height of a target object, and a length, a width and a height of a stacking tray; a first determination module configured to determine a target direction, wherein the target direction is any one of a first direction parallel to the length of the stacking tray, and a second direction parallel to the width of the stacking tray; a stacking module configured to stack the target object in the target direction to form a target row, with a maximum space utilization in the target row as a target, and a dimension of the stacking tray in the target direction as a constraint; a second determination module configured to determine coordinates of the target object in the stacking tray after the target row is stacked in the stacking tray; and a sending module configured to send the coordinates of the target object in the stacking tray to a robot, wherein the robot stacks the target object in the stacking tray according to the coordinates of the target object in the stacking tray.
[0014] According to still another aspect of the embodiments of the present application, a non-volatile storage medium is also provided, comprising a stored program, wherein the program, when executed, controls a device in which the non-volatile storage medium is located to perform any one of the robot stacking methods described above.
[0015] According to still another aspect of the embodiments of the present application, a computer device is also provided, comprising a processor configured to execute a program, wherein the program, when executed, performs any one of the robot stacking methods described above.
[0016] In the embodiments of the present application, the target object is first stacked into a target row, and then the target row is stacked into a target layer, and finally the target object is stacked in the stacking tray, by acquiring a length, a width and a height of a target object, and a length, a width and a height of a stacking tray; determining a target direction, wherein the target direction is any one of a first direction parallel to the length of the stacking tray, and a second direction parallel to the width of the stacking tray; stacking the target object in the target direction to form a target row, with a maximum space utilization in the target row as a target, and a dimension of the stacking tray in the target direction as a constraint; stacking the target row in the stacking tray to determine coordinates of the target object in the stacking tray; and sending the coordinates of the target object in the stacking tray to a robot, wherein the robot stacks the target object in the stacking tray according to the coordinates of the target object in the stacking tray, which achieves the purpose of stacking the target object in the stacking tray with a relatively simple algorithm and a high utilization rate, thereby realizing the technical effect of reducing the complexity of the stacking algorithm under the condition of ensuring a high utilization rate, and further solving the technical problems of a complex stacking algorithm and a large amount of calculation in the related art. BRIEF DESCRIPTION OF DRAWINGS
[0017] The accompanying drawings, which are included to provide a further understanding of the application and are incorporated in and constitute a part of this application, illustrate embodiments of the application and together with the description serve to explain the application. In the drawings:
[0018] Figure 1 A hardware structure block diagram of a computer terminal for implementing the robot stacking method is shown;
[0019] Figure 2 A flowchart of the robot stacking method according to an embodiment of the application is shown;
[0020] Figure 3 A schematic diagram of a target layer according to an optional embodiment of the application is shown;
[0021] Figure 4 A structure block diagram of a robot stacking device according to an optional embodiment of the application is shown. DETAILED DESCRIPTION
[0022] In order to make the personnel in the art better understand the application scheme, the technical scheme in the embodiments of the application will be described clearly and completely below in conjunction with the drawings in the embodiments of the application. Obviously, the described embodiments are only a part of the embodiments of the application, rather than all the embodiments. Based on the embodiments in the application, all other embodiments obtained by those skilled in the art without creative labor should belong to the protection scope of the application.
[0023] It should be noted that the terms "first", "second", and the like in the specification and claims of the application and the above-described drawings are used to distinguish similar objects, and do not have to be used to describe a specific order or sequence. It should be understood that the data used in this way can be interchanged under appropriate circumstances, so that the embodiments of the application described herein can be implemented in an order other than those illustrated or described herein. In addition, the terms "include" and "have" and any variations thereof are intended to cover non-exclusive inclusion, for example, a process, method, system, product or device that includes a series of steps or units does not have to be limited to those steps or units clearly listed, but can include other steps or units that are not clearly listed or inherent to these processes, methods, products or devices.
[0024] According to an embodiment of the application, a robot stacking method embodiment is provided. It should be noted that the steps shown in the flowchart of the drawings can be executed in a computer system such as a set of computer executable instructions, and although a logical order is shown in the flowchart, in some cases, the steps shown or described herein can be executed in an order different from that shown herein.
[0025] The method provided in the embodiment one of the application can be executed in a mobile terminal, a computer terminal or similar computing device. Figure 1 A hardware structure block diagram of a computer terminal for implementing the robot stacking method is shown. As shown in the figure, Figure 1 The computer terminal 10 can include one or more processors (the processor can include but is not limited to a microprocessor MCU or a programmable logic device FPGA processing device) (shown as 102a, 102b, …, 102n in the figure), a memory 104 for storing data. In addition, it can also include a display, an input / output interface (I / O interface), a universal serial bus (USB) port (which can be included as one of the ports of the BUS bus), a network interface, a power supply and / or a camera. Those skilled in the art can understand that, Figure 1 The structure shown is only schematic, which does not limit the structure of the above-mentioned electronic device. For example, the computer terminal 10 can include more or fewer components than those shown in the figure, or have a different configuration from that shown in the figure. Figure 1 Figure 1
[0026] It should be noted that the one or more processors and / or other data processing circuits described above can be referred to herein as "data processing circuits" in general. The data processing circuit can be embodied in whole or in part as software, hardware, firmware or any other combination. In addition, the data processing circuit can be a single independent processing module, or all or part of any one of the other elements combined into the computer terminal 10. As referred to in the embodiments of the application, the data processing circuit controls as a processor (for example, the selection of the variable resistance terminal path connected with the interface).
[0027] The memory 104 can be used to store software programs and modules of application software, such as program instructions / data storage devices corresponding to the robot stacking method of the embodiments of the application. The processor executes various functional applications and data processing by running the software programs and modules stored in the memory 104, that is, implements the robot stacking method of the above-mentioned application program. The memory 104 can include a high-speed random access memory, and can also include a non-volatile memory, such as one or more magnetic storage devices, flash memory or other non-volatile solid-state memory. In some examples, the memory 104 can further include a memory remotely arranged with respect to the processor, which can be connected to the computer terminal 10 through a network. Examples of the above-mentioned network include but are not limited to the Internet, an intranet, a local area network, a mobile communication network and a combination thereof.
[0028] The display can be, for example, a touch screen type liquid crystal display (LCD), which can enable 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: With the goal of maximizing the space utilization within the target row and the dimensions of the pallet in the target direction as constraints, the target objects are stacked in the target direction to form the target row.
[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. Figure 3 The target direction is the x-direction, the first direction is the y-direction, the second direction is the x-direction, and multiple target rows are... 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. When stacking within each target row, the goal is to maximize the space utilization within that row, constrained by the dimension of the pallet in the target direction. Therefore, the widths of multiple target rows can be consistent.
[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 objects in the stack tray can be sent to the robot, and the robot can be used to stack the target objects in the stack tray.
[0039] Through the above steps, the target objects can be stacked in the stack tray with high utilization rate by using a relatively simple algorithm, thereby achieving the technical effect of reducing the complexity of the stacking algorithm under the condition of ensuring high utilization rate, and further solving the technical problems of complex stacking algorithm and large amount of calculation in the related art.
[0040] As an optional embodiment, the target objects are stacked according to the target direction to form a target row, with the maximum space utilization in the target row as the target and the size of the stack tray in the target direction as the constraint, including: determining the size of the stack tray in the target direction as the length of the target row; determining a plurality of stacking modes according to the length and width of the target objects and with the length of the target row as the constraint, wherein the plurality of stacking modes are the modes of stacking the target objects according to the target direction to form the target row; determining the space utilization of each of the plurality of stacking modes; and stacking the target objects into the target row by using the stacking mode with the highest space utilization.
[0041] Optionally, in the process of stacking the target objects to obtain the target row, the target objects in the target row can not be placed according to a fixed orientation, that is, in the same target row, there can be target rows placed vertically or target rows placed horizontally. The plurality of stacking modes in the target row can be determined first, and then the target objects can be uniformly stacked into the target row by using the stacking mode with the highest space utilization.
[0042] As an optional embodiment, according to the length and width of the target objects, and taking the length of the target row as a constraint, a plurality of stacking modes are determined, including: according to the length and width of the target objects, determining the number of target objects placed side by side in a first orientation and the number of target objects placed side by side in a second orientation in a direction perpendicular to the target direction in the target row, wherein the direction perpendicular to the target direction is the first direction or the second direction, the first orientation is that the length of the target object is parallel to the target direction, and the second orientation is that the width of the target object is parallel to the target direction; and using the following steps to sequentially stack the target objects in the first orientation or the second orientation to form the target row: determining the orientation of a previously stacked target object, and determining a count value of target objects placed in succession in the orientation of the previously stacked target object, wherein the orientation of the previously stacked target object is the first orientation or the second orientation; determining whether the count value reaches a first number, wherein the first number is the number of target objects placed side by side in the orientation of the previously stacked target object; in the case that the count value does not reach the first number, placing a currently stacked target object in the orientation of the previously stacked target object; in the case that the count value reaches the first number, generating a first random number, and determining the orientation of the currently stacked target object according to the first random number, wherein the orientation of the currently stacked target object is the first orientation or the second orientation; and placing the currently stacked target object according to the orientation of the currently stacked target object.
[0043] Optionally, in the case that the placement direction of the target objects in the same target row can be transverse or longitudinal, there can be a plurality of placement methods. The maximum number of target objects placed side by side in the target row in the transverse direction can be determined, and then the maximum number of target objects placed side by side in the target row in the longitudinal direction can be determined, as shown in FIG. 6, the number of target objects placed side by side in the target row in the longitudinal direction is 1, and the number of target objects placed side by side in the target row in the transverse direction is 2. In the specific placement of a target row, the orientation of a previously stacked target object can be determined, and a count value of target objects placed in succession in the orientation of the previously stacked target object can be determined; it is determined whether the count value reaches the number of target objects placed side by side in the orientation of the previously stacked target object, that is, if the orientation of the previously stacked target object is transverse, it is determined whether the previously stacked target object is the first target object placed in the transverse direction, and if the count value is less than 2, the currently stacked target object is also placed in the transverse direction. Figure 3
[0044] As an optional embodiment, the generating the first random number, determining the orientation of the target object in the current stacking according to the first random number comprises: determining a first difference value as a length of the target row that is not occupied by the target objects that have been stacked; generating the first random number; determining, according to a predetermined correspondence between the first random number range and the orientation of the target object, the orientation of the target object corresponding to the first random number as a third orientation, wherein the third orientation is the first orientation or the second orientation; determining a second difference value as a length of the target object that should be occupied in the target row according to the third orientation; in the case that the first difference value exceeds the second difference value, determining the orientation of the target object in the current stacking as the third orientation; in the case that the first difference value does not exceed the second difference value, determining a third difference value as a length of the target object that should be occupied in the target row according to an orientation perpendicular to the third orientation; and in the case that the first difference value exceeds the third difference value, determining the orientation of the target object in the current stacking as the orientation perpendicular to the third orientation.
[0045] Optionally, when placing a certain target row, the orientation of the target object in the current stacking can be determined in the form of a random number. For example, a first random number can be generated, the third random number range can be set as 0 to 1, the first sub-range can be set as 0 to 0.5, and the second sub-range can be set as 0.5 to 1. When the generated random number is 0.2, the first direction is determined as the target direction.
[0046] As an optional embodiment, the stacking the target row in the stacking tray and determining the coordinates of the target object in the stacking tray comprises: determining a width of the target layer as a size of the stacking tray in a direction perpendicular to the target direction, wherein the direction perpendicular to the target direction is the first direction or the second direction; determining a second number of the target rows stacked in the target layer according to the width of the target layer; fitting the long edges of the target rows to the target layer according to the second number; and stacking the target layer in the stacking tray in a third direction parallel to the height of the stacking tray to determine the coordinates of the target object in the stacking tray.
[0047] Optionally, in the process of stacking the plurality of target rows into the target layer, the space of the plurality of target rows in the target direction can not be considered, and only the space of the stacking tray in the direction perpendicular to the target direction is considered. The stacking method that maximizes the length utilization of the width of the plurality of target rows in the direction perpendicular to the target direction is considered. Specifically, since the width of the target row is fixed, the maximum number of target rows arranged in the current target layer can be determined according to the size of the stacking tray in the direction perpendicular to the target direction. Then, the long edges of the target rows are fitted to the target layer according to the determined maximum number, and the target layer is stacked in the stacking tray in the third direction parallel to the height of the stacking tray.
[0048] As an optional embodiment, the target direction is determined, including: generating a third random number; determining, according to a correspondence between a predetermined second random number range and the stacking direction, that a stacking direction corresponding to the third random number is the target 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.
[0049] Optionally, the target direction can be determined in the manner of a random number, specifically, a random number range can be set, a random number can be generated, and a direction corresponding to the random number is taken as the target direction according to the range in which the random number is located. For example, the target direction can be the first direction and the second direction, so a third random number range including a first sub-range and a second sub-range can be set, wherein 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 as 0 to 1, the first sub-range can be set as 0 to 0.5, and the second sub-range can be set as 0.5 to 1, when the generated random number is 0.2, the first direction is determined as the target direction.
[0050] As an optional embodiment, the target row is stacked in the stacking tray, and the coordinate of the target object in the stacking tray is determined, including: establishing a stacking tray coordinate system according to the length, width and height of the stacking tray; stacking the target row in the stacking tray to obtain the position of the target object relative to the stacking tray; determining the coordinate of a preset reference point of the target object in the stacking tray coordinate system according to the position of the target object relative to the stacking tray to obtain the coordinate of the target object in the stacking tray.
[0051] Optionally, after the target row is stacked in the stacking tray, the coordinate of the target object that has been stacked in the stacking tray coordinate system can be determined, and the coordinate can be sent to the robot. The preset reference point can be a vertex of the target object.
[0052] It should be noted that, for the foregoing method embodiments, in order to simply describe, they are all expressed as a series of action combinations, but those skilled in the art should know that the present application is not limited to the action sequence described, because according to the present application, certain steps can be performed in other sequences or simultaneously. Secondly, those skilled in the art should know that the embodiments described in the specification all belong to preferred embodiments, and the actions and modules involved are not necessarily necessary for the present application.
[0053] Through the description of the above embodiments, those skilled in the art can clearly understand that the robot stacking method according to the above embodiments can be realized by means of software and necessary general hardware platform, of course, it can also be realized by hardware, but in many cases, the former is a better embodiment. Based on such understanding, the technical solutions of the present application can be embodied in the form of a software product, which is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disk) and includes a plurality of instructions for causing a terminal device (which can be a mobile phone, computer, server, or network device) to execute the method described in each embodiment of the present application.
[0054] According to the embodiments of the present application, a robot stacking device for implementing the above robot stacking method is also provided, Figure 4 is a structural diagram of the robot stacking device provided by the embodiments of the present application, as Figure 4 shown, the robot stacking device includes an acquisition module 41, a first determination module 42, a stacking module 43, a second determination module 44, and a sending module 45, which will be described below.
[0055] The acquisition module 41 is configured to acquire the length, width, and height of the target object, and the length, width, and height of the stacking tray; the first determination module 42 is connected with the acquisition module 41 and configured to determine a target direction, wherein the target direction is any one of the following directions: a first direction parallel to the length of the stacking tray, and a second direction parallel to the width of the stacking tray; the stacking module 43 is connected with the first determination module 42 and configured to stack the target object in the target direction to form a target row, with the maximum space utilization rate in the target row as the target and the size of the stacking tray in the target direction as the constraint; the second determination module 44 is connected with the stacking module 43 and configured to determine the coordinates of the target object in the stacking tray after stacking the target row in the stacking tray; and the sending module 45 is connected with the second determination module 44 and configured to send the coordinates of the target object in the stacking tray to a robot, wherein the robot stacks the target object in the stacking tray according to the coordinates of the target object in the stacking tray.
[0056] It should be noted that the above acquisition module 41, first determination module 42, stacking module 43, second determination module 44, and sending module 45 correspond to steps S202 to S210 in the embodiments, and the multiple modules have the same instances and application scenarios as the corresponding steps, but are not limited to the contents disclosed in the above embodiments. It should be noted that the above modules, as part of the device, can run in the computer terminal 10 provided in the embodiments.
[0057] Embodiments of the present application can provide a computer device. Optionally, in the embodiments, the computer device can be located in at least one of the network devices of the computer network. The computer device comprises a memory and a processor.
[0058] The memory can be configured to store software programs and modules, such as the program instructions / modules corresponding to the robot stacking method and device in the embodiments of the present application. The processor can execute various functional applications and data processing by running the software programs and modules stored in the memory, i.e., implement the robot stacking method described above. The memory can include a high-speed random access memory, and can further include a non-volatile memory, such as one or more magnetic storage devices, flash memories, or other non-volatile solid-state memories. In some examples, the memory can further include a memory remotely arranged with respect to the processor, which can be connected to the computer terminal through a network. Examples of the network include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network, and a combination thereof.
[0059] The processor can call the information and application programs stored in the memory through the 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 stacking tray; determining a target direction, wherein the target direction is any one of the following directions: a first direction parallel to the length of the stacking tray, and a second direction parallel to the width of the stacking tray; stacking the target objects in the target direction to form a target row, with the maximum space utilization in the target row as the target and the size of the stacking tray in the target direction as the constraint; stacking the target row in the stacking tray and determining the coordinates of the target objects in the stacking tray; and sending the coordinates of the target objects in the stacking tray to the robot, wherein the robot stacks the target objects in the stacking tray according to the coordinates of the target objects in the stacking tray.
[0060] Optionally, stacking the target objects in the target direction to form a target row, with the maximum space utilization in the target row as the target and the size of the stacking tray in the target direction as the constraint, comprises: determining the size of the stacking tray in the target direction as the length of the target row; determining a plurality of stacking modes according to the length and width of the target object and with the length of the target row as the constraint, wherein the plurality of stacking modes are the modes of stacking the target objects in the target direction to form the target row; determining the space utilization of each of the plurality of stacking modes; and stacking the target objects into the target row by using the stacking mode with the highest space utilization.
[0061] Optionally, according to the length and width of the target objects, and taking the length of the target row as a constraint, a plurality of stacking modes are determined, including: according to the length and width of the target objects, determining the number of target objects placed side by side in a first orientation and the number of target objects placed side by side in a second orientation in a direction perpendicular to a target direction in the target row, wherein the direction perpendicular to the target direction is the first direction or the second direction, the first orientation is that the length of the target object is parallel to the target direction, and the second orientation is that the width of the target object is parallel to the target direction; and using the following steps to sequentially stack the target objects in the first orientation or the second orientation to form the target row: determining the orientation of a previous stacked target object, and determining a count value of target objects placed in succession in the orientation of the previous stacked target object, wherein the orientation of the previous stacked target object is the first orientation or the second orientation; determining whether the count value reaches a first number, wherein the first number is the number of target objects placed side by side in the orientation of the previous stacked target object; in a case where the count value does not reach the first number, placing a current stacked target object in the orientation of the previous stacked target object; in a case where the count value reaches the first number, generating a first random number, and determining the orientation of the current stacked target object according to the first random number, wherein the orientation of the current stacked target object is the first orientation or the second orientation; and placing the current stacked target object according to the orientation of the current stacked target object.
[0062] Optionally, the determining of the orientation of the current stacked target object according to the first random number includes: determining a first difference value as a length of the length of the target row that is not occupied by the stacked target objects; generating the first random number; determining, according to a predetermined correspondence between a first random number range and the orientation of the target object, the orientation of the target object corresponding to the first random number as a third orientation, wherein the third orientation is the first orientation or the second orientation; determining a second difference value as a length of the target row that should be occupied by the target object stacked in the third orientation; in a case where the first difference value exceeds the second difference value, determining the orientation of the current stacked target object as the third orientation; in a case where the first difference value does not exceed the second difference value, determining a third difference value as a length of the target row that should be occupied by the target object stacked in an orientation perpendicular to the third orientation; and in a case where the first difference value exceeds the third difference value, determining the orientation of the current stacked target object as the orientation perpendicular to the third orientation.
[0063] Optionally, the target row is stacked in the stacking tray, and the coordinates of the target object in the stacking tray are determined by: determining that the size of the stacking tray in the direction perpendicular to the target direction is the width of the target layer, wherein the direction perpendicular to the target direction is the first direction or the second direction; determining the second quantity of the target row in the target layer according to the width of the target layer; and stacking the long side of the target row into the target layer according to the second quantity; and stacking the target layer in the stacking tray in the third direction parallel to the height of the stacking tray to determine the coordinates of the target object in the stacking tray.
[0064] Optionally, the target direction is determined by: generating a third random number; and determining, according to a correspondence relationship between a predetermined second random number range and the stacking direction, that the stacking direction corresponding to the third random number is the target direction, wherein the third random number range includes a first sub-range and a second sub-range, and the correspondence relationship between the second random number range and the stacking direction includes that the first sub-range corresponds to the first direction and the second sub-range corresponds to the second direction.
[0065] Optionally, the target row is stacked in the stacking tray, and the coordinates of the target object in the stacking tray are determined by: establishing a stacking tray coordinate system according to the length, width and height of the stacking tray; stacking the target row in the stacking tray to obtain the position of the target object relative to the stacking tray; and determining the coordinates of a preset reference point of the target object in the stacking tray coordinate system according to the position of the target object relative to the stacking tray to obtain the coordinates of the target object in the stacking tray.
[0066] By adopting the embodiment of the application, a robot stacking scheme is provided. The target object is first stacked into a target row, and then the target row is stacked into a target layer, and finally the target object is stacked in a stacking tray. The length, width and height of the target object and the length, width and height of the stacking tray are obtained. The target direction is determined, wherein the target direction is any one of the following directions: a first direction parallel to the length of the stacking tray, and a second direction parallel to the width of the stacking tray. The target object is stacked according to the target direction to form the target row, with the maximum space utilization rate of the target row as the target and the size of the stacking tray in the target direction as the constraint. The target row is stacked in the stacking tray, and the coordinates of the target object in the stacking tray are determined. The coordinates of the target object in the stacking tray are sent to a robot, and the robot stacks the target object in the stacking tray according to the coordinates of the target object in the stacking tray. The technical effect of stacking the target object in the stacking tray with high utilization rate by using a relatively simple algorithm is achieved, the technical problem of a complex stacking algorithm and large calculation amount in the related art is solved, and the technical effect of reducing the complexity of the stacking algorithm under the condition of ensuring high utilization rate is achieved.
[0067] Those skilled in the art can understand that all or part of the steps in the above-mentioned various methods of the embodiments can be completed by instructing the terminal device related hardware through a program, and the program can be stored in a non-volatile storage medium, which can include a flash disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk, etc.
[0068] The embodiments of the present application also provide a non-volatile storage medium. Optionally, in the embodiments, the non-volatile storage medium can be used to save the program code executed by the robot stacking method provided by the embodiments.
[0069] Optionally, in the embodiments, the non-volatile storage medium can be located in any one of the computer terminals in the computer terminal group in the computer network, or in any one of the mobile terminals in the mobile terminal group.
[0070] Optionally, in the embodiments, 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 stacking tray; determining a target direction, wherein the target direction is any one of the following directions: a first direction parallel to the length of the stacking tray, and a second direction parallel to the width of the stacking tray; stacking the target objects in the target direction to form a target row, with the maximum space utilization in the target row as the target and the size of the stacking tray in the target direction as the constraint; stacking the target row in the stacking tray and determining the coordinates of the target objects in the stacking tray; and sending the coordinates of the target objects in the stacking tray to a robot, wherein the robot stacks the target objects in the stacking tray according to the coordinates of the target objects in the stacking tray.
[0071] Optionally, stacking the target objects in the target direction to form a target row, with the maximum space utilization in the target row as the target and the size of the stacking tray in the target direction as the constraint, includes: determining the size of the stacking tray in the target direction as the length of the target row; determining a plurality of stacking modes according to the length and width of the target object and with the length of the target row as the constraint, wherein the plurality of stacking modes are the modes of stacking the target objects in the target direction to form the target row; determining the space utilization of each of the plurality of stacking modes; and stacking the target objects into the target row by using the stacking mode with the highest space utilization.
[0072] Optionally, according to the length and width of the target objects, and taking the length of the target row as a constraint, a plurality of stacking modes are determined, including: according to the length and width of the target objects, determining the number of target objects placed side by side in a first orientation and the number of target objects placed side by side in a second orientation in a direction perpendicular to a target direction in the target row, wherein the direction perpendicular to the target direction is the first direction or the second direction, the first orientation is that the length of the target object is parallel to the target direction, and the second orientation is that the width of the target object is parallel to the target direction; and using the following steps to sequentially stack the target objects in the first orientation or the second orientation to form the target row: determining the orientation of a previous stacked target object, and determining a count value of target objects placed in succession in the orientation of the previous stacked target object, wherein the orientation of the previous stacked target object is the first orientation or the second orientation; determining whether the count value reaches a first number, wherein the first number is the number of target objects placed side by side in the orientation of the previous stacked target object; in a case where the count value does not reach the first number, placing a current stacked target object in the orientation of the previous stacked target object; in a case where the count value reaches the first number, generating a first random number, and determining the orientation of the current stacked target object according to the first random number, wherein the orientation of the current stacked target object is the first orientation or the second orientation; and placing the current stacked target object according to the orientation of the current stacked target object.
[0073] Optionally, the determining of the orientation of the current stacked target object according to the first random number includes: determining a first difference value as a length of the length of the target row that is not occupied by the stacked target objects; generating the first random number; determining, according to a predetermined correspondence between a first random number range and the orientation of the target object, the orientation of the target object corresponding to the first random number as a third orientation, wherein the third orientation is the first orientation or the second orientation; determining a second difference value as a length of the target row that should be occupied by the target object stacked in the third orientation; in a case where the first difference value exceeds the second difference value, determining the orientation of the current stacked target object as the third orientation; in a case where the first difference value does not exceed the second difference value, determining a third difference value as a length of the target row that should be occupied by the target object stacked in an orientation perpendicular to the third orientation; and in a case where the first difference value exceeds the third difference value, determining the orientation of the current stacked target object as the orientation perpendicular to the third orientation.
[0074] Optionally, the target row is stacked in the stack tray, and the coordinates of the target object in the stack tray are determined, including: determining that the size of the stack tray in a direction perpendicular to the target direction is the width of the target layer, wherein the direction perpendicular to the target direction is the first direction or the second direction; determining the second quantity of the target row in the target layer according to the width of the target layer; and stacking the long side of the target row into the target layer according to the second quantity; and stacking the target layer in the stack tray in a third direction parallel to the height of the stack tray, and determining the coordinates of the target object in the stack tray.
[0075] Optionally, the target direction is determined, including: generating a third random number; and determining, according to a correspondence relationship between a predetermined second random number range and the stacking direction, that the stacking direction corresponding to the third random number is the target direction, wherein the third random number range includes a first sub-range and a second sub-range, and the correspondence relationship 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 row is stacked in the stack tray, and the coordinates of the target object in the stack tray are determined, including: establishing a stack tray coordinate system according to the length, width and height of the stack tray; stacking the target row in the stack tray to obtain the position of the target object relative to the stack tray; and determining the coordinates of a preset reference point of the target object in the stack tray coordinate system according to the position of the target object relative to the stack tray, to obtain the coordinates of the target object in the stack tray.
[0077] The above-mentioned sequence numbers of the embodiments of the application are only for description, and do not represent the advantages and disadvantages of the embodiments.
[0078] In the above-mentioned embodiments of the application, the description of each embodiment has its own emphasis, and the parts not described in detail in a certain embodiment can be referred to the related description of other embodiments.
[0079] In the several embodiments provided by the present application, it should be understood that the disclosed technology can be implemented in other ways. Of course, the unit embodiment described above is only schematic. For example, the division of the units can be different, and each unit or some features can be combined or integrated into another system, or some features can be ignored or not implemented. In addition, the displayed or discussed mutual coupling or direct coupling or communication connection between each represented or discussed element can be indirect coupling or communication connection through some interface, and can be electrically or other form.
[0080] The units described as separate components can or can not be physically separate, and the components shown as units can or can not be physical units, that is, they can be located in one place, or can be distributed on multiple units. Part or all of the units can be selected according to actual needs to achieve the purpose of the embodiment scheme.
[0081] In addition, each functional unit in each embodiment of the present application can be integrated in one processing unit, or each unit can be physically present separately, or two or more units can be integrated in one unit. The integrated unit can be realized in the form of hardware or in the form of a software functional unit.
[0082] When the integrated unit is realized in the form of 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 solutions of the present application, essentially or the part that contributes to the prior art, or all or part of the technical solutions can be embodied in the form of a software product. The computer software product is stored in a storage medium, including a number of instructions to make a computer device (which can be a personal computer, a server, or a network device, etc.) execute all or part of the steps of the method described in each embodiment of the present application. The foregoing storage medium includes: a U disk, a read-only memory (ROM, Read-Only Memory), a random access memory (RAM, Random Access Memory), a mobile hard disk, a magnetic disk or an optical disk, and various media that can store program codes.
[0083] The above is only the preferred embodiment of the present application. It should be noted that for those skilled in the art, without departing from the principles of the present application, a number of improvements and refinements can be made, and these improvements and refinements should be considered as the protection scope of the present application.
Claims
1. A robotic palletizing method, characterized by, The method comprises the following steps: acquiring the length, width and height of the target object and the length, width and height of the 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, a second direction parallel to the width of the pallet; stacking the target objects in the target direction to form a target row, with the maximum space utilization in the target row as the target and the size of the pallet in the target direction as the constraint; stacking the target row in the pallet and determining the coordinates of the target objects in the pallet; sending the coordinates of the target objects in the pallet to a robot, wherein the robot stacks the target objects in the pallet according to the coordinates of the target objects in the pallet. The method further comprises the following steps: determining the number of target objects placed side by side in a first orientation and the number of target objects placed side by side in a second orientation in a direction perpendicular to the target direction in the target row according to the length and width of the target objects, wherein the direction perpendicular to the target direction is the first direction or the second direction, the first orientation is that the length of the target object is parallel to the target direction, and the second orientation is that the width of the target object is parallel to the target direction; and sequentially stacking the target objects in the first orientation or the second orientation to form the target row by the following steps: determining the orientation of a previously stacked target object and counting the number of target objects placed continuously in the orientation of the previously stacked target object, wherein the orientation of the previously stacked target object is the first orientation or the second orientation; determining whether the count value reaches a first number, wherein the first number is the number of target objects placed side by side in the orientation of the previously stacked target object; placing a currently stacked target object in the orientation of the previously stacked target object when the count value does not reach the first number; generating a first random number and determining the orientation of the currently stacked target object according to the first random number when the count value reaches the first number, wherein the orientation of the currently stacked target object is the first orientation or the second orientation; and placing the currently stacked target object in the orientation thereof.
2. The method of claim 1, wherein, The step of stacking the target objects in the target direction to form the target row comprises the following steps: determining the size of the pallet in the target direction as the length of the target row; determining a plurality of stacking modes according to the length and width of the target objects and the length of the target row, wherein the plurality of stacking modes are modes of stacking the target objects in the target direction to form the target row; determining the space utilization of each of the plurality of stacking modes; stacking the target objects in the target row by using the stacking mode with the highest space utilization.
3. The method of claim 1, wherein, The generating the first random number, and determining the orientation of the target object in the current stacking according to the first random number, comprises: determining a first difference value as a length of the target row not occupied by the stacked target object; generating the first random number; determining the orientation of the target object corresponding to the first random number as a third orientation according to a predetermined correspondence between a first random number range and the orientation of the target object, wherein the third orientation is the first orientation or the second orientation; determining a second difference value as a length of the target object stacked in the third orientation that should be occupied in the target row; in a case where the first difference value exceeds the second difference value, determining the orientation of the target object in the current stacking as the third orientation; in a case where the first difference value does not exceed the second difference value, determining a third difference value as a length of the target object stacked in an orientation perpendicular to the third orientation that should be occupied in the target row; and in a case where the first difference value exceeds the third difference value, determining the orientation of the target object in the current stacking as the orientation perpendicular to the third orientation.
4. The method of claim 1, wherein, The stacking the target row in the stacking tray and determining the coordinates of the target object in the stacking tray, comprises: determining a target layer width as a dimension of the stacking tray in a direction perpendicular to the target direction, wherein the direction perpendicular to the target direction is the first direction or the second direction; determining a second number of the target layer in which the target row is stacked according to the target layer width; stacking the target row in the target layer according to the second number to form the target layer; stacking the target layer in the stacking tray in a third direction parallel to the height of the stacking tray to determine the coordinates of the target object in the stacking tray.
5. The method of claim 1, wherein, The determining the target direction, comprises: generating a third random number; determining a stacking direction corresponding to the third random number as the target direction according to a predetermined correspondence between a second random number range and the stacking direction, wherein the second random number range comprises a first sub-range and a second sub-range, and the correspondence between the second random number range and the stacking direction comprises: the first sub-range corresponds to the first direction, and the second sub-range corresponds to the second direction.
6. The method according to any one of claims 1 to 5, characterized in that, The stacking the target row in the stacking tray and determining the coordinates of the target object in the stacking tray, comprises: establishing a stacking tray coordinate system according to the length, width and height of the stacking tray; stacking the target row in the stacking tray to obtain a position of the target object relative to the stacking tray; determining coordinates of a preset reference point of the target object in the stacking tray coordinate system according to the position of the target object relative to the stacking tray to obtain the coordinates of the target object in the stacking tray.
7. A robotic palletizing device, characterized by, comprises: an acquisition module configured to acquire a length, a width and a height of a target object, and a length, a width and a height of a stacking tray; a first determination module configured to determine a target direction, wherein the target direction is any one of the following directions: a first direction parallel to a length of the stacking tray, and a second direction parallel to a width of the stacking tray; The stacking module is configured to stack the target objects in the target direction to form the target row, with the maximum space utilization of the target row as a target and the size of the target objects in the target direction as a constraint. The second determining module is configured to determine the coordinates of the target objects in the stacking tray after the target objects are stacked in the stacking tray. The sending module is configured to send the coordinates of the target objects in the stacking tray to a robot, and the robot stacks the target objects in the stacking tray according to the coordinates of the target objects in the stacking tray. The device is further configured to determine the number of target objects placed side by side in a first orientation and the number of target objects placed side by side in a second orientation in a direction perpendicular to the target direction in the target row according to the length and width of the target objects, and sequentially stack the target objects in the target row in the first orientation or the second orientation by determining the orientation of a previously stacked target object and a count value of target objects placed continuously in the orientation of the previously stacked target object, wherein the orientation of the previously stacked target object is the first orientation or the second orientation, determining whether the count value reaches a first number, wherein the first number is the number of target objects placed side by side in the orientation of the previously stacked target object, placing a currently stacked target object in the orientation of the previously stacked target object when the count value does not reach the first number, generating a first random number to determine the orientation of the currently stacked target object according to the first random number when the count value reaches the first number, wherein the orientation of the currently stacked target object is the first orientation or the second orientation, and placing the currently stacked target object in the orientation thereof.
8. A non-volatile storage medium, comprising: The non-volatile storage medium includes a stored program, wherein the program controls the device in which the non-volatile storage medium is located to perform the robot stacking method of any one of claims 1 to 6 when the program is running.
9. A computer device, comprising: It includes: a memory and a processor, the memory stores a computer program; the processor is configured to execute the computer program stored in the memory, and the computer program makes the processor execute the robot stacking method of any one of claims 1 to 6 when running.
Citation Information
Patent Citations
Stacking method and stacking device
CN114580206A