Collaborative transport methods and warehousing systems

By generating task sets for different types of robots and allocating tasks according to robot status, and utilizing the storage compartment characteristics of large vehicles, batch handling tasks are executed, solving the problem of low handling efficiency in the warehousing process and achieving more efficient material box handling.

CN119568632BActive Publication Date: 2026-04-03HANGZHOU HIKROBOT TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-11-26
Publication Date
2026-04-03

AI Technical Summary

Technical Problem

In existing technologies, it is difficult to further improve the handling efficiency in the warehousing process, especially in the bin handling mode. How to make full use of the advantages of large and small vehicles to improve the overall handling efficiency has become an urgent problem to be solved.

Method used

By generating task sets for different types of robots and allocating tasks according to the robot's status, tasks are first assigned to idle robots. Then, by utilizing the storage compartment features of the large vehicle, batch handling tasks are executed, thereby improving task execution efficiency.

Benefits of technology

By enabling the coordinated operation of the large and small carts, the overall efficiency of material box handling was improved, and the storage compartment characteristics of the large cart were fully utilized to enhance task execution efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119568632B_ABST
    Figure CN119568632B_ABST
Patent Text Reader

Abstract

This application provides a collaborative handling method and a warehousing system, relating to the warehousing field. The method includes: a server assigning loading / unloading tasks to an idle first robot. The server also assigning outbound tasks, originally designated for a second robot, to an idle second robot. If an idle first robot remains, the server assigns the remaining outbound / inbound handling tasks to it. If unassigned outbound / inbound handling tasks remain, the server assigns them to the idle second robot. The server can control the first and / or second robot to execute its assigned handling tasks. This method improves the efficiency of warehousing handling tasks.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of warehousing, and more particularly to a collaborative handling method, apparatus, and server. Background Technology

[0002] In the warehousing sector, the most popular toy handling model is the "large and small trolley collaborative handling" model. In this model, temporary storage spaces are typically added to the shelf below the main storage space. Large trolleys with lifting mechanisms are responsible for moving toy boxes between the temporary storage space and the main storage space. Meanwhile, smaller trolleys, which move at higher speeds, are responsible for moving toy boxes between the buffer space and the workstation.

[0003] This bin handling method effectively automates the warehousing process while reducing manual labor. However, with increasing warehousing demands, improving handling efficiency during the warehousing process has become a pressing issue. Summary of the Invention

[0004] This application provides a collaborative handling method and a warehousing system to improve handling efficiency during the warehousing process.

[0005] Firstly, this application provides a collaborative data transfer method applied to a server, comprising:

[0006] Generate a first set of tasks consisting only of transport tasks performed by the first robot and not assigned, a second set of tasks consisting only of transport tasks performed by the second robot and not assigned, and a third set of tasks consisting of transport tasks that can be performed by both the first and second robots and not assigned.

[0007] After assigning the transport tasks in the first task set to the idle first robot, if there are still idle first robots, then assign the transport tasks in the third task set to the idle first robots.

[0008] After assigning the transport tasks in the second task set to the idle second robot, if there are still idle second robots and there are still unassigned transport tasks in the third task set, then the transport tasks in the third task set are assigned to the idle second robots.

[0009] Control the first robot and / or the second robot to perform the assigned handling task;

[0010] The first robot includes multiple storage compartments; the second robot includes one storage compartment.

[0011] Secondly, this application provides a collaborative handling device applied to a server, comprising:

[0012] The acquisition module is used to generate a first task set consisting of a first task set consisting of a first robot that performs only the first robot and has not been assigned a second task set consisting of a second robot that performs only the second robot and has not been assigned a third task set consisting of a second task set consisting of a first robot and a second robot that can perform the second task and has not been assigned a third task set.

[0013] The allocation module is used to allocate the transportation tasks in the first task set to the idle first robot. If there are still idle first robots, the module allocates the transportation tasks in the third task set to the idle first robot. After allocating the transportation tasks in the second task set to the idle second robot, if there are still idle second robots and there are still unallocated transportation tasks in the third task set, the module allocates the transportation tasks in the third task set to the idle second robot.

[0014] The control module is used to control the first robot and / or the second robot to perform the assigned handling task;

[0015] The first robot includes multiple storage compartments; the second robot includes one storage compartment.

[0016] Thirdly, this application provides a server, including: a memory and a processor;

[0017] The memory is used to store computer programs; the processor is used to execute the first aspect and any possible design of the first aspect of the cooperative transport method according to the computer programs stored in the memory.

[0018] Fourthly, this application provides a computer-readable storage medium storing a computer program, wherein when at least one processor of an electronic device executes the computer program, the electronic device performs the cooperative transport method of the first aspect and any possible design of the first aspect.

[0019] Fifthly, this application provides a computer program product comprising a computer program that, when executed by at least one processor of an electronic device, enables the electronic device to perform the cooperative transport method of the first aspect and any possible design of the first aspect.

[0020] The collaborative handling method and warehousing system provided in this application generate a first task set by acquiring handling tasks that can be performed only by a first robot, a second task set by acquiring handling tasks that can be performed only by a second robot, and a third task set by acquiring handling tasks that can be performed by either the first or second robot. The system first assigns handling tasks from the first task set, which are exclusively for the first robot, to an idle first robot. If, after allocating all handling tasks from the first task set to an idle first robot, there are still idle first robots, then the handling tasks from the third task set are assigned to that idle first robot. Similarly, the system first assigns handling tasks from the second task set to an idle second robot. If, after allocating handling tasks from the second task set, there are still idle second robots, and there are still unassigned handling tasks in the third task set, then the unassigned handling tasks in the third task set are assigned to the idle second robot. After allocating tasks from the first, second, and third task sets, the system controls the first robot and / or the second robot to execute their assigned handling tasks. This achieves the effect of batch execution of outbound / inbound handling tasks by the first handling robot, thereby improving the execution efficiency of handling tasks. Attached Figure Description

[0021] To more clearly illustrate the technical solutions in this application or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0022] Figure 1 This is a schematic diagram of a warehousing scenario provided in an embodiment of this application;

[0023] Figure 2 A flowchart illustrating a collaborative transport method provided in one embodiment of this application;

[0024] Figure 3 A flowchart illustrating a collaborative transport method provided in one embodiment of this application;

[0025] Figure 4 A flowchart illustrating a collaborative transport method provided in one embodiment of this application;

[0026] Figure 5 A flowchart illustrating a collaborative transport method provided in one embodiment of this application;

[0027] Figure 6 This is a schematic diagram of the structure of a collaborative handling device provided in one embodiment of this application;

[0028] Figure 7 This is a schematic diagram of the structure of a collaborative handling device provided in one embodiment of this application;

[0029] Figure 8 This is a schematic diagram of the structure of a collaborative handling device provided in one embodiment of this application;

[0030] Figure 9 A schematic diagram of the hardware structure of a server provided in an embodiment of this application;

[0031] Figure 10 A schematic diagram of the hardware structure of a first robot provided in an embodiment of this application;

[0032] Figure 11 This is a schematic diagram of the hardware structure of a second robot provided in one embodiment of this application. Detailed Implementation

[0033] To make the objectives, technical solutions, and advantages of this application clearer, the technical solutions of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.

[0034] In warehousing, tote box handling is a highly repetitive and physically demanding task. Therefore, with the development of intelligent systems, more and more tote box handling work is being delegated to other handling robots. Currently, a popular tote box handling model is the "large and small trolley collaborative handling" model. Shelves typically have temporary storage spaces added to the level below the existing storage locations. This model requires the use of two handling robots, one large and one small. In colloquial terms, these two handling robots are simply referred to as the large trolley and the small trolley. In this application, these two handling robots are referred to as the first robot and the second robot.

[0035] The first robot is the large vehicle. This first robot may include a lifting mechanism. The first robot can use this lifting mechanism to move boxes on the shelf. This moving can include moving boxes placed in the bottom temporary storage position to the upper storage position of the shelf, and moving boxes placed in the upper storage position to the bottom temporary storage position of the shelf.

[0036] The second robot is the cart. This second robot can move the toy boxes placed in the bottom temporary storage location to the workstation, or move the toy boxes from the workstation to the bottom temporary storage location on the shelf. The second robot usually moves much faster than the first robot.

[0037] The first robot typically has multiple storage compartments, each capable of holding multiple material boxes. In this "cooperative transport by large and small vehicles" mode, the second robot's advantages of high transport speed and maneuverability are fully utilized. However, only the lifting mechanism of the first robot is used; its storage compartments are not fully utilized.

[0038] Based on the storage compartments of the first robot, this application proposes a collaborative handling method. This method allows the use of the first robot to handle bin transportation in situations where multiple bins need to be simultaneously moved to the same workstation, or where multiple bins need to be moved from the same workstation to the same shelf. In these cases, one trip using the first robot is equivalent to multiple trips by the second robot. Therefore, this scheduling method can effectively improve the efficiency of bin transportation and fully leverage the advantages of both types of transportation tasks, achieving better collaborative results.

[0039] The following describes exemplary application scenarios of the embodiments of this application.

[0040] Figure 1 The illustration shows a schematic diagram of a warehousing scenario according to an embodiment of this application. As shown, this scenario represents a warehouse. The warehouse may include multiple workstations. The warehouse may also include multiple first robots and multiple second robots.

[0041] It should be noted that this application applies to warehousing scenarios with frequent inbound and outbound operations where tote boxes cannot be stacked. For example, e-commerce warehousing scenarios. Each tote box can store multiple products of the same category. After receiving an order, the warehousing system can determine one or more target tote boxes based on the products required by the order. The warehousing system can assign the outbound task of these one or more target tote boxes to a first robot or a second robot. Packaging personnel can pick the required quantity of products from the target tote box after it has been moved to the workstation. The warehousing system can generate an inbound task based on the picked target tote box and assign it to a first robot or a second robot. The target tote box can then be moved back to the shelf by the first robot or the second robot.

[0042] Optionally, in this warehousing scenario, the warehousing system can connect to multiple terminal devices within the warehousing environment via the Internet of Things (IoT). For example, these terminal devices could be a first robot, a second robot, or entry / exit recording terminals at workstations.

[0043] like Figure 1 As shown, this warehousing scenario may include multiple workstations, multiple shelves, multiple first robots, multiple second robots, and multiple material bins.

[0044] This workstation can store both incoming and outgoing bins. Workers can pick products from the outgoing bins at this workstation. After picking, the worker can set the bin for inbound storage. Optionally, the workstation can also include an online picking station. In this station, a second robot holds the bin until picking is complete.

[0045] The shelving unit can be a single-row or double-row shelving unit. The bottom layer of the shelving unit can include multiple temporary storage locations. Each layer above the bottom layer can include multiple storage locations. Each storage location can hold one material box. Optionally, each material box can correspond to a fixed storage location.

[0046] The first robot in this context refers to the larger robot in the large-small-vehicle cooperative mode. This first robot typically includes N storage compartments, where N is an integer greater than 1. Each storage compartment can hold one material box. The type identifier of this first robot can be denoted as Rbt_Multi. For example, the trajectory of a first robot can be as follows: Figure 1 As shown by the dotted line, the arrow placed along this dotted line specifically indicates the direction of travel for the first robot. This first robot can travel to the right along the shelf. Another first robot can stay on the side of the shelf and move the toy boxes from the bottom shelf to the upper shelf.

[0047] The second robot is the small robot in the combined large and small robot mode. This second robot is smaller in size and can move under the shelves when unloaded. It can only carry one tote box at a time. The type identifier for this second robot can be Rbt_S. For example, as shown in Figure 1, the second robot can travel along the shelf to the left, as indicated by the dashed line and the arrow placed on it, and reach a workstation after turning. This second robot can be used to complete the outbound delivery of tote boxes.

[0048] In such Figure 1 The warehousing scenario shown may include the following handling tasks:

[0049] First, the task of moving the toy bins up and down. This task can be marked as Task_up_down. This task requires moving the toy bins between temporary storage locations and actual storage locations on the shelf. This task can only be performed by the first robot.

[0050] Secondly, the bin receiving task. This task can be marked as Task_stn_in. This task requires moving bins from the workstation to the shelf. There are two implementation modes for this task: one is the combined large and small cart mode, and the other is the large cart mode.

[0051] The combined large and small robot mode can include two parts: the first robot or the second robot moves the toy box from the workstation to the temporary storage location on the shelf, and the first robot moves the toy box from the temporary storage location to the storage location. The first part can be labeled as Task_stn_in_down, and the second part as Task_up_down.

[0052] In the "large cart mode," the first robot directly transports the hopper from the workstation to the storage location. This mode can be tagged as "Task_stn_in_up."

[0053] Third, the bin outbound task. This task can be marked as Task_stn_out. This task requires moving bins from the shelf to the workstation. Corresponding to the bin inbound task, this task also includes two modes: one is the combined large and small cart mode, and the other is the large cart mode.

[0054] The combined large and small robot mode can include two parts: either the first or second robot moves the toy box from the temporary storage location on the shelf to the workstation, and the first robot moves the toy box from the storage location to the temporary storage location. The first part can be labeled as Task_stn_out_down, and the second part as Task_up_down.

[0055] In the "large cart mode," the first robot directly transports the hopper from the storage location to the workstation. This mode can be labeled as Task_stn_out_up.

[0056] In addition, considering that both types of vehicles can perform the material bin outbound and inbound tasks in the large and small vehicle collaborative mode, and that the small vehicles have high mobility and a large number of them, the large and small vehicle collaborative mode is usually used by default.

[0057] Additionally, Task_stn_out_down can include tasks that require dedicated execution by the trolley. These tasks can be marked as Task_stn_out_down_S. When a high-priority task box appears, this task can be Task_stn_out_down_S. Alternatively, when the workstation is an online picking workstation, the trolley must hold the box at the workstation for picking; therefore, the outbound task entering this workstation is Task_stn_out_down_S.

[0058] The technical solutions of this application will be described in detail below with specific embodiments. The following specific embodiments can be combined with each other, and the same or similar concepts or processes may not be described again in some embodiments.

[0059] Figure 2 A flowchart illustrating a collaborative transport method according to an embodiment of this application is shown. Figure 1 Based on the illustrated embodiments, as Figure 2 As shown, with the server of the warehousing system as the executing entity, the method in this embodiment may include the following steps:

[0060] S101. Generate a first task set consisting of handling tasks performed only by the first robot and not assigned, a second task set consisting of handling tasks performed only by the second robot and not assigned, and a third task set consisting of handling tasks that can be performed by both the first and second robots and not assigned. The first robot includes multiple storage compartments; the second robot includes one storage compartment.

[0061] In this embodiment, the server can obtain the warehouse's current handling tasks and generate multiple task sets based on the execution object of the handling tasks. Specifically, the server can obtain handling tasks executed only by the first robot to generate a first task set, handling tasks executed only by the second robot to generate a second task set, and handling tasks that can be executed by either the first or second robot to generate a third task set. Optionally, the handling tasks in the first, second, and third task sets are all unassigned handling tasks.

[0062] Optionally, the handling tasks in the first task set that are performed solely by the first robot can be the up-and-down handling task (Task_up_down). Since the execution of this up-and-down handling task requires the lifting mechanism within the first robot, it can only be performed by the first robot. The handling tasks in the second task set that are performed solely by the second robot can be the second robot's dedicated outbound task (Task_stn_out_down_S). This dedicated outbound task for the second robot can be an outbound task with high time requirements, or an outbound task requiring the second robot to hold the toy box at the workstation to complete the picking. The handling tasks in the third task set that can be performed by either the first or second robot can be outbound tasks other than the second robot's dedicated outbound task, as well as inbound tasks.

[0063] Optionally, in this third task set, outbound tasks and inbound tasks can each form two subsets of the third task set.

[0064] Optionally, the first robot can be a robot with a lifting mechanism. Optionally, the first robot may also include a storage compartment. Optionally, the first robot can correspond to the large vehicle in a large-small vehicle cooperative mode.

[0065] Optionally, the second robot can be a small vehicle corresponding to the large and small vehicle cooperative mode. Optionally, the second robot can carry one bin at a time. Optionally, the second robot can pass directly through the bottom of the shelf when not carrying a bin.

[0066] S102. After assigning the transport tasks in the first task set to the idle first robot, if there are still idle first robots, then assign the transport tasks in the third task set to the idle first robots.

[0067] In this embodiment, the server can first obtain an idle first robot and obtain a first robot set or a first robot list. The server can first assign the handling tasks in the first task set that belong to the first robot to the idle first robot. Since the tasks in the first task set can only be executed by the first robot, if the tasks in the first task set are not assigned first, the tasks in the first task set may have to wait for a long time, thereby affecting the overall execution efficiency of the warehouse handling task.

[0068] Once the idle first robot is assigned a transport task from the first task set, it will be removed from that set. If, after the server assigns all transport tasks from the first task set to the idle first robot, there are still first robots remaining in the set, it means there are still idle first robots that have not been assigned any transport tasks. In this case, the server can assign transport tasks from the third task set to the idle first robot. Prioritizing the assignment of transport tasks from the third task set to the first robot can improve the execution efficiency of tasks in the third task set by fully utilizing the first robot's storage compartments, thereby improving the overall execution efficiency of warehouse transport tasks.

[0069] Optionally, if there is no idle first robot, the server can skip step S102 and proceed to step S103.

[0070] S103. After assigning the transport tasks in the second task set to the idle second robot, if there are still idle second robots and there are still unassigned transport tasks in the third task set, then assign the transport tasks in the third task set to the idle second robot.

[0071] In this embodiment, after completing the allocation in step S102, the server can proceed to this allocation step. In this step, the server can first allocate the transport tasks in the second task set to the idle second robots. If, after allocating the transport tasks in the second task set, there are still idle second robots, and there are still unallocated transport tasks in the third task set, the server can allocate the unallocated transport tasks in the third task set to the idle second robots. Otherwise, if all idle second robots are allocated transport tasks from the second task set, the server releases the unallocated transport tasks in the third task set and waits for the next task allocation to regenerate the third task set. Alternatively, if step S102 has already allocated all transport tasks in the third task set to the first transport robot, the server will call the idle second robot again during the next task allocation.

[0072] Alternatively, the server can search for an available second robot from all the second robots registered in the warehousing system.

[0073] Optionally, if there is no available second robot, the server can skip step S103 and proceed to step S104.

[0074] Optionally, the server can determine whether the second robot is idle in a similar way to the first robot, which will not be elaborated here.

[0075] Optionally, the specific implementation of the server assigning the transport tasks in the second task set to the second robot can be similar to the specific implementation of the server assigning the transport tasks in the first task set to the first robot, and will not be elaborated here.

[0076] Optionally, the specific implementation of the server assigning the transport tasks from the third task set to the second robot is similar to the specific implementation of the server assigning the transport tasks from the second task set to the second robot, and will not be described in detail here.

[0077] S104. Control the first robot and / or the second robot to perform the assigned handling task.

[0078] In this embodiment, after the server completes the allocation of tasks in the first task set, the second task set, and the third task set, it can control the first robot and / or the second robot to perform the assigned handling tasks.

[0079] The collaborative handling method provided in this application allows the server to generate a first task set by acquiring handling tasks to be performed only by a first robot, a second task set by acquiring handling tasks to be performed only by a second robot, and a third task set by acquiring handling tasks that can be performed by either the first or second robot. The server can first assign the handling tasks in the first task set, which are exclusive to the first robot, to an idle first robot. If, after assigning all the handling tasks in the first task set to an idle first robot, there is still an idle first robot, the server can assign the handling tasks in the third task set to that idle first robot. Similarly, the server can first assign the handling tasks in the second task set to an idle second robot. If, after assigning the handling tasks in the second task set, there is still an idle second robot, and there are still unassigned handling tasks in the third task set, the server can assign the remaining unassigned handling tasks in the third task set to the idle second robot. After assigning tasks in the first, second, and third task sets, the server can control the first robot and / or the second robot to execute their assigned handling tasks. In this application, by first assigning the handling tasks from the first task set to the first robot and then assigning the handling tasks from the second task set to the second robot, the execution efficiency of warehouse handling tasks is ensured. In this application, by first assigning the handling tasks from the third task set to the first robot and then to the second robot, handling tasks with similar starting points and middle points in the third task set can be batch-executed by the first robot, thus improving the execution efficiency of handling tasks in the third task set. This application further improves the execution efficiency of warehouse handling tasks by combining the above two methods.

[0080] Based on the above embodiments, in order to ensure that the handling efficiency of the handling tasks in the third task set is improved when assigned to the first robot compared to when directly assigned to the second robot, at least one of the following requirements is typically included:

[0081] Firstly, it is required that the number of multiple handling tasks assigned to a first robot each time is the same as the number of storage compartments of that first robot. For example, when the number of storage compartments of the first robot is N, the number of tasks assigned to the first robot each time is also N.

[0082] Secondly, it is required that the distance between the starting points of multiple handling tasks assigned to a first robot each time is within a certain range. For example, these multiple ordinary handling tasks are handling tasks that move goods from the same workstation into the warehouse.

[0083] Third, it requires that the distance between the destinations of multiple handling tasks assigned to a first robot each time be within a certain range. For example, these multiple ordinary handling tasks need to be stored on the same shelf.

[0084] Setting the above three conditions allows the first robot to improve handling efficiency by carrying multiple boxes at once.

[0085] Figure 3 A flowchart illustrating a collaborative transport method according to an embodiment of this application is shown. Figure 1 and Figure 2 Based on the illustrated embodiments, as Figure 3 As shown, with the server as the execution entity, in this embodiment S102, the specific process by which the server assigns the handling tasks from the third task set to the first robot may include:

[0086] S201. Based on the task start point and / or task end point of the transport tasks in the third task set, cluster the transport tasks to obtain at least one task class. The number of transport tasks in each task class is determined by the number of storage compartments of the first robot.

[0087] In this step, the server can obtain the task start point and / or task end point of the handling tasks in the third task set. The server can cluster the handling tasks in the third task set according to the task start point and / or task end point to obtain task classes. Each task class can include multiple handling tasks. The number of handling tasks can be determined according to the number of storage compartments in the first robot. For example, when the first robot includes N storage compartments, the number of handling tasks in each task class can be N. This clustering method can ensure that handling tasks in the same task class have relatively close task start points and / or task end points. For example, in an ideal case, multiple handling tasks in a task class can have the same handling start point and handling end point. That is, the material boxes of multiple handling tasks in the task class are placed on the same shelf, and these multiple material boxes need to be transported to the same workstation.

[0088] Optionally, the clustering method can be a clustering algorithm such as K-means clustering. Optionally, the clustering algorithm can group transport tasks with similar starting points together by calculating the distance between task starting points. And / or, the clustering algorithm can group transport tasks with similar ending points together by calculating the distance between task ending points. After clustering the transport tasks, the server can optimize these task classes based on the number of transport tasks in each class, so that the number of transport tasks in each transport class equals the number of storage compartments. For example, if the number of storage compartments in the first robot is N, the number of transport tasks in that transport class can be N.

[0089] Optionally, the specific process by which the server generates this task class may include:

[0090] Step 1: Using a clustering algorithm, based on the task start point and / or task end point of the transportation tasks in the third task set, cluster the transportation tasks in the third task set to obtain multiple initial classes and the cluster center of each initial class.

[0091] In this step, the server generates a feature vector for each transport task based on the task start and / or task end points in the third task set. The server then uses this feature vector to cluster these transport tasks using a clustering algorithm. The server can obtain multiple initial clusters through clustering. Each initial cluster can include a cluster center. The number of transport tasks in each initial cluster can be determined based on the clustering results.

[0092] For example, the server can cluster inbound tasks (Task_stn_in_down) where the distance between their starting points is less than a threshold D, or cluster outbound tasks (Task_stn_out_down) where the distance between their ending points is less than D. If the number of inbound or outbound tasks in the cluster (Cluster_Num) is greater than or equal to the number of storage compartments (N) in Rbt_Multi, then the resulting task class is valid. If Cluster_Num is greater than N, then ordinary handling tasks that are far from the cluster center are removed from the task class to ensure that the number of ordinary handling tasks in the task class equals N. If Cluster_Num is less than N, then the task class is invalid. The server can then match the processed valid task classes with Rbt_Multi.

[0093] Step 2: If the number of transport tasks in the initial class is greater than the number of storage compartments, then determine the number of storage compartments and transport tasks to form a task class based on the distance between the task start point and / or task end point of each transport task in the initial class and the cluster center. If the number of transport tasks in the initial class is less than the number of storage compartments of the first robot, then no task class is generated.

[0094] In this step, the server can iterate through these initial classes and optimize them to generate task classes containing the number of transport tasks corresponding to the number of storage compartments. Specifically, the server first determines the number of transport tasks in the initial class. If this number is greater than the number of storage compartments, the server can reduce the number of transport tasks in the initial class to generate a task class. If the number is less than the number of storage compartments, the server can directly not generate a task class. If the number is equal to the number of storage compartments, the server can directly generate a task class.

[0095] Optionally, if this number exceeds the number of storage compartments, the server can further process these transport tasks based on the task starting point of each transport task in the initial class. Specific steps may include:

[0096] Step 21: The server can further determine whether the number of transport tasks in the initial class is greater than or equal to twice the number of storage compartments. That is, when the number of storage compartments is N, the server determines whether the number of transport tasks in the initial class is greater than or equal to 2N.

[0097] Step 22: If the number of tasks exceeds 2N, the server can cluster the transport tasks based on their starting points in the initial class. Optionally, this clustering can yield multiple intermediate classes. The number of intermediate classes can be determined based on the ratio of the number of transport tasks to the number of storage compartments in the initial class. For example, if the number of transport tasks in the initial class is 17 and the number of storage compartments is 5, the ratio is 3, and therefore the number of intermediate classes is 3. Further, the server can process each intermediate class, and the specific steps may include:

[0098] Step 221: The server can determine whether the number of transport tasks in each intermediate class is greater than the number of storage slots.

[0099] Step 222: The server can first process the intermediate class whose number of transport tasks equals the number of storage slots. The server can then directly generate a task class based on this intermediate class.

[0100] Step 223: The server can then process intermediate classes where the number of transport tasks exceeds the number of storage compartments. The server can calculate the distance between the starting point of each transport task in the intermediate class and the cluster center of the intermediate class. Based on the number of storage compartments, the server can select multiple transport tasks from these multiple transport tasks to form a task class. The server can treat transport tasks not included in a task class as free transport tasks.

[0101] Step 224: Finally, the server can process intermediate classes where the number of transport tasks is less than the number of storage slots. The server can sort these intermediate classes according to the number of transport tasks in descending order. The server can sequentially traverse and process the sorted intermediate classes. When the server obtains an intermediate class, the steps for processing that intermediate class may include:

[0102] Step 2241: The server can calculate the distance between the starting point of each free transport task and the cluster center of the intermediate class based on the free transport tasks generated in step 222.

[0103] Step 2242: If the distance is less than or equal to a preset first distance threshold, the server can add the free transfer task to the intermediate class. If the distance is greater than the preset first distance threshold, the free transfer task continues to exist as a free task class.

[0104] Step 2243: If the number of transport tasks in the intermediate class after adding the free transport task is equal to the number of storage slots, then the server generates a task class according to step 222.

[0105] Step 2244: If the number of transport tasks in the intermediate class after adding the free transport task is greater than the number of storage slots, the server generates a task class according to step 223 and treats the transport tasks that have not been added to the task class as free transport tasks.

[0106] Step 2245: If the number of transport tasks in the intermediate class after adding the free transport task is less than the number of storage slots, the server will not generate a task class and will treat the transport tasks in the intermediate class as free transport tasks.

[0107] S202, Calculate the cost of the first idle robot and the cost of the second task for each task class.

[0108] In this step, the task classes obtained by the server may include cluster centers. The server can obtain the first robot that is still idle. The server can pair the idle first robot with the task class, and then calculate the second task cost between each first robot and each task class.

[0109] Optionally, if the first robot is not assigned a transport task, the server can select the transport task closest to the first robot's current position based on the starting point of any unselected transport tasks in the task class, and add the distance between the first robot and the transport task to the accumulated distance. This process is repeated until all transport tasks in the task class are selected, at which point the cost of the second task is determined based on the accumulated distance.

[0110] For example, when the task class includes 5 handling tasks, these 5 handling tasks can be labeled as Task 1, Task 2, Task 3, Task 4, and Task 5, respectively. The server can first calculate the distance from the starting point of each of the 5 handling tasks to the current position of the first robot. Assuming that the starting point of Task 1 is closest to the current position of the first robot, the server can first add the distance from the current position of the first robot to the starting point of Task 1 to the accumulated distance. Optionally, the distance from the starting point of Task 1 to the current position of the first robot is the distance traveled by the first robot from its current position to the starting point of the task, according to the planned path of the warehouse area. Then, the server can calculate the distance from the starting point of Task 1 to the starting points of the other 4 handling tasks. Assuming that the starting point of Task 2 is closest to the starting point of Task 1, the server can add the distance from the starting point of Task 2 to the starting point of Task 1 to the accumulated distance. Then, the server can calculate the distance from the starting point of Task 2 to the starting points of the other 3 handling tasks. Assuming the distance from the starting point of Task 2 to the starting point of Task 3 is the shortest, the server can add this distance to the accumulated distance. Then, the server can calculate the distances from the starting point of Task 3 to the starting points of the other two transport tasks. Assuming the distance from the starting point of Task 3 to the starting point of Task 4 is the shortest, the server can add this distance to the accumulated distance. Finally, the server can add the distance from the starting point of Task 4 to the starting point of Task 5. The server can then determine the cost of the second task based on the final accumulated distances.

[0111] Optionally, the server can directly use the accumulated distance as the cost of the second task. Alternatively, the server can convert the accumulated distance into the travel time of the first robot, and then determine the cost of the second task based on the travel time.

[0112] Optionally, if the first robot has already been assigned a transport task, the server can select the transport task closest to the first robot's current position based on the starting point of any unselected transport tasks in the task class, and add the distance between the first robot and the transport task to the accumulated distance. This process is repeated until all transport tasks in the task class are selected. Then, the cost of the second task is determined based on the accumulated distance and the pending execution time. The pending execution time is determined based on the expected execution time of the assigned transport tasks and the execution time of the assigned transport tasks. Specifically, after calculating the accumulated distance, the server can determine the travel time based on this accumulated distance. The server can use the sum of this travel time and the pending execution time as the cost of the second task.

[0113] S203. Based on the second task cost, complete the pairing of the task class and the first robot. Each storage compartment of the first robot is used to store a target bin for one handling task instruction within the task class.

[0114] In this step, similar to the first task cost, the server can pair the task class with the first robot based on the second task cost. That is, the server can assign all the handling tasks in a task class to a first robot. Once a task class is assigned to a first robot, the first robot can place the material boxes corresponding to all the handling tasks in that task class into the storage compartments, thereby enabling the simultaneous execution of all handling tasks in that task class.

[0115] The collaborative handling method provided in this application allows the server to obtain the task start point and / or task end point of handling tasks in a third task set. The server can then cluster the handling tasks in the third task set based on these start and / or end points to obtain task classes. The server can also obtain a first robot that is currently idle. The server can pair the idle first robot with the task classes, thereby calculating a second task cost between each first robot and each task class. The server can then pair the task class with the first robot based on the second task cost. In this application, by calculating the second task cost, the pairing between task classes and first robots is achieved, improving the correlation between multiple handling tasks assigned to the first robot.

[0116] Figure 4 A flowchart illustrating a collaborative transport method according to an embodiment of this application is shown. Figures 1 to 3 Based on the illustrated embodiments, as Figure 4 As shown, the specific steps by which the server assigns the handling tasks from the first task set to the first robot may include:

[0117] S301. Assemble the first set of idle robots.

[0118] In this step, the server can obtain all the available first robots and form a first robot set.

[0119] In one example, the specific method by which the server determines whether the first robot is an idle first robot can include any of the following:

[0120] Step 1: The server can determine whether the first robot has been assigned a transport task. If the first robot has not been assigned a transport task, the server can determine that the first robot is idle. Otherwise, if the first robot has been assigned a transport task, the server can continue to determine whether the transport task is idle through Step 2.

[0121] Step 2: If the first robot has been assigned a transport task, the server can obtain the execution time of that task. This execution time is the time still needed to complete the task. If the execution time is less than a first threshold, it means the task is about to be completed, and the server can determine that the first robot is an idle robot. Otherwise, if the execution time is greater than or equal to the first threshold, it means the task will take a longer time to complete, and the first robot is not an idle robot.

[0122] The pending execution time is determined based on the expected execution time and the already executed time of the assigned transport tasks. Specifically, the server can determine the expected execution time of the transport task assigned to the first robot. This expected execution time is the total duration expected to complete the transport task. The server can also determine the already executed time of the transport task based on the execution progress of the first robot. The server can determine the pending execution time of the transport task based on the difference between the expected execution time and the already executed time.

[0123] Alternatively, the server can search for an available first robot from all the first robots registered in the warehousing system.

[0124] S302. Calculate the first task cost for each first robot in the first robot set and each transport task in the first task set.

[0125] In this step, the server can combine each first robot in the first robot set with each transport task in the first task set, and calculate the first task cost of the first robot relative to the transport task. Optionally, this task cost can be uniformly converted into a time dimension. For example, when the first robot set contains 3 idle first robots and the first task set contains 5 transport tasks, the server can calculate 15 first task costs.

[0126] Optionally, in the above process, after the server determines a first robot and a transport task, the calculation process for the first task cost of the first robot and the transport task can be as follows:

[0127] First, if the first robot is not assigned a transport task, the cost of the first task is determined based on the current position of the first robot and the starting point of the transport task.

[0128] Specifically, if the first robot is not assigned a handling task, it can directly proceed to the task's starting point to perform the task after being assigned one. Therefore, the server can obtain the first robot's current location. The server can also obtain the task's starting point. Based on the internal roads of the warehouse environment, the server can determine the path from the first robot's current location to the task's starting point and calculate the travel time required for the first robot to reach the task's starting point based on that path. The server can determine the cost of the first task based on this travel time. Optionally, the server can directly use the travel time as the cost of the first task. Alternatively, the server can calculate the cost of the first task based on the travel time using preset calculation methods such as normalization or indexing. Optionally, the path of the first robot can be as follows: Figure 1 The dashed lines in the diagram represent the routes traveled along workstations or shelves.

[0129] Secondly, if the first robot has been assigned a transport task, the cost of the first task is determined based on the waiting time of the first robot, the end point of the assigned transport task, and the start point of the transport task.

[0130] Specifically, if the first robot has been assigned a transport task, it needs to wait for the assigned task to be completed before proceeding to the task's starting point to execute the new task. Therefore, the server can obtain the first robot's pending execution time. This pending execution time is the time required to complete the assigned transport task. When the first robot completes the assigned transport task, it can be located at the task's endpoint. Therefore, the server can determine the path from the task's endpoint to its starting point based on the task's endpoint and starting point, and calculate the travel time required for the first robot to travel along this path. The server can then determine the cost of the first task based on this travel time. Optionally, the server can directly use this travel time as the cost of the first task. Alternatively, the server can calculate the cost of the first task based on the travel time using preset calculation methods such as normalization or indexing.

[0131] S303. Based on the cost of the first task, complete the pairing of the first robot in the first robot set with the transport task in the first task set.

[0132] In this step, the server can match the first robot with the transport task according to a preset selection strategy and the first task cost. Optionally, the selection strategy can be a greedy strategy. That is, the server can select the minimum first task cost each time according to the greedy strategy and pair the first robot corresponding to the first task cost with the transport task corresponding to the first task cost. The server can repeat the selection process of the minimum first task cost until all the first robots in the first robot set are assigned transport tasks, or all the transport tasks in the first task set are assigned to the first robots. Optionally, the selection strategy can also be a strategy of minimizing the total cost. That is, the server can enumerate the matching methods of the first robot and the transport task, calculate the sum of the first task costs corresponding to each matching method, and select the matching method with the sum of the first task costs as the final matching method of the first robot and the transport task.

[0133] Optionally, based on a greedy strategy, the pairing process between the first robot and the transport tasks in the first task set can be as follows:

[0134] Step 1: Iterate through the costs of the first task in ascending order. Each cost of the first task corresponds to a first robot and a transport task.

[0135] In this step, the server can sort all the costs of the first tasks in ascending order. Each cost of a first task can correspond to a first robot and a transport task. The server can then iterate through the sorted costs of the first tasks.

[0136] Step 2: If the first robot corresponding to the first task cost has already been assigned a transport task, or the transport task corresponding to the first task cost has already been assigned to the first robot, then skip the first task cost. If the first robot corresponding to the first task cost has not been assigned a transport task, and the transport task corresponding to the first task cost has not been assigned to the first robot, then assign the transport task corresponding to the first task cost to the first robot corresponding to the first task cost.

[0137] In this step, after obtaining a first task cost, the server can determine whether the first robot corresponding to the first task cost has been assigned a transport task, or whether the transport task corresponding to the first task cost has been assigned to the first robot.

[0138] If the first robot corresponding to the first task cost has already been assigned a transport task, or if the transport task corresponding to the first task cost has already been assigned to the first robot, the server can skip the first task cost and continue to traverse the next first task cost.

[0139] If neither the first robot nor the transport task corresponding to the first task cost has been assigned, the server can pair the first robot and the transport task. The paired first robot and transport task represent the first robot being assigned the transport task, and the transport task being assigned to the first robot.

[0140] The server can repeat the above process until all the costs of the first task have been traversed.

[0141] The collaborative handling method provided in this application allows the server to acquire all available first robots and form a first robot set. The server can then combine each first robot in the first robot set with each handling task in the first task set, and calculate the first task cost of each first robot relative to the handling task. Based on a preset selection strategy and the first task cost, the server can match the first robot with the handling task. In this application, by matching based on the first task cost, the server can achieve better allocation between the handling task and the first robot, reducing the cost for the first robot to perform these handling tasks and improving the execution efficiency of warehouse handling tasks.

[0142] Based on the above embodiments, the server can also determine the allocation ratio according to the ratio of the total number of handling tasks to the number of assigned handling tasks. If the allocation ratio is less than a preset threshold, the server can generate an alarm message. The alarm message indicates that an anomaly has occurred in the allocation of handling tasks. The server can send this alarm message so that the administrator can view the task allocation status and determine whether there are any anomalies in the execution of the warehouse handling task and in the allocation of the handling task.

[0143] Figure 5 A flowchart illustrating a collaborative transport method according to an embodiment of this application is shown. Figures 1 to 4 Based on the illustrated embodiments, as Figure 5 As shown, with the first robot as the executing entity, the method in this embodiment may include the following steps:

[0144] S401. If the handling task is a vertical handling task, then in response to the handling task, control the first robot to move the toy box placed in the temporary storage location on the shelf to the storage location, or move the toy box placed in the storage location on the shelf to the temporary storage location. The temporary storage location is located at the bottom of the shelf, and the storage location is located at any position on the shelf starting from the second layer. In response to this specific handling task,

[0145] In this embodiment, when the handling task is a vertical movement task, the first robot can move the toy box up and down on the shelf. This dedicated handling task can be Task_up_down. Based on this handling task, the first robot can move the toy box from the temporary storage location to the storage location, or vice versa. The temporary storage location is located at the bottom layer of the shelf. Storage locations begin from the second layer of the shelf.

[0146] Optionally, before performing the vertical transport, the first robot may also move the starting point of the transport task in response to the transport task. Optionally, the starting point is the shelf where the toy box to be transported by the transport task is located.

[0147] S402. If the handling task is an outbound task or an inbound task, then in response to the received multiple handling tasks, control the first robot to move multiple boxes from at least one workstation to at least one storage location on at least one shelf, or move multiple boxes from at least one storage location on at least one shelf to at least one workstation.

[0148] In this embodiment, the first robot can also receive multiple handling tasks. These multiple handling tasks are handling tasks within a single task class. The number of handling tasks received by the first robot can be determined based on the number of storage compartments on the first robot. These handling tasks can be outbound or inbound tasks. For example, when a first robot has N storage compartments, it can receive N outbound tasks from a single task class, or N inbound tasks from a single task class.

[0149] Optionally, the workstations corresponding to the multiple handling tasks are typically the same. Alternatively, the distance between the multiple workstations corresponding to the multiple handling tasks is typically less than a second distance threshold. Optionally, the shelves corresponding to the multiple handling tasks can be the same. Alternatively, the distance between the multiple shelves corresponding to the multiple handling tasks is typically less than a third distance threshold.

[0150] In one example, the specific process by which the first robot responds to the multiple handling tasks may include:

[0151] Step 1: The first robot can calculate the third distance from its current position to the starting point of multiple unhandled handling tasks.

[0152] Step 2: The first robot can select the transport task corresponding to the smallest third distance as the current transport task.

[0153] Step 3: The first robot can travel to the starting point of the current handling task.

[0154] Step 4: The first robot can pick up the material box corresponding to the handling task and store it in the storage compartment to complete the handling task.

[0155] Step 5: Determine if all moving tasks have been completed. If yes, proceed to Step 6; otherwise, return to Step 1.

[0156] Step 6: The first robot can calculate the fourth distance from its current position to the task endpoint of multiple unplaced transport tasks.

[0157] Step 7: The first robot can select the transport task corresponding to the smallest fourth distance as the current transport task.

[0158] Step 8: The first robot can travel to the destination of the current handling task.

[0159] Step 9: The first robot can retrieve the material box corresponding to the handling task from the storage cell and place it at the location indicated by the handling task to complete the placement of the handling task.

[0160] Step 10: Determine if all multiple handling tasks have been completed. If yes, proceed to Step 11; otherwise, return to Step 6.

[0161] Step 11: End the execution of the multiple handling tasks and return to the standby area.

[0162] Optionally, the first robot can sort the second number of bins according to their weight. The first robot can place these bins in the storage compartment from top to bottom in order of lightest to heaviest. That is, the upper bins are lighter than the lower bins.

[0163] It is important to note that S401 and S402 are related as OR. In actual operation, the first robot can execute either S401 or S402. If the first robot executes S401, even if it is assigned the task of S402, it can only continue executing S402 after S401 is completed. The reverse is also true.

[0164] The collaborative handling method provided in this application, by controlling the first robot to perform ordinary handling tasks, fully improves the utilization of the first robot and increases the handling efficiency of the entire warehouse.

[0165] Based on the above embodiments, with the second robot as the executing entity, the tasks performed by the second robot may include:

[0166] The second robot receives the handling task. In response to the handling task, the second robot controls itself to move the toy box placed in the temporary storage location on the shelf to the workstation, or to move the toy box placed in the workstation to the temporary storage location on the shelf.

[0167] Figure 6 A schematic diagram of a collaborative handling device according to an embodiment of this application is shown, as follows: Figure 6 As shown, the collaborative transport device 10 of this embodiment is used to implement the operation corresponding to the server in any of the above method embodiments. The collaborative transport device 10 of this embodiment includes:

[0168] The acquisition module 11 is used to generate a first task set consisting of a transport task executed only by the first robot and not assigned, a second task set consisting of a transport task executed only by the second robot and not assigned, and a third task set consisting of a transport task that can be executed by both the first robot and the second robot and not assigned.

[0169] The allocation module 12 is used to allocate the transportation tasks in the first task set to the idle first robot. If there is still an idle first robot, it will allocate the transportation tasks in the third task set to the idle first robot. After allocating the transportation tasks in the second task set to the idle second robot, if there is still an idle second robot and there are still unallocated transportation tasks in the third task set, it will allocate the transportation tasks in the third task set to the idle second robot.

[0170] Control module 13 is used to control the first robot and / or the second robot to perform the assigned handling tasks;

[0171] The first robot includes multiple storage compartments; the second robot includes one storage compartment.

[0172] Optionally, module 12 is used for:

[0173] The idle first robots are grouped into a first robot set;

[0174] Calculate the first task cost for each first robot in the first robot set and each transport task in the first task set;

[0175] Based on the cost of the first task, complete the pairing of the first robot in the first robot set with the transport task in the first task set.

[0176] Optionally, the idle first robot includes any of the following:

[0177] The first robot was not assigned a transport task;

[0178] The first robot has been assigned a transport task, and the execution time of the assigned transport task is less than a first threshold; wherein, the execution time is the amount of time still needed to complete the transport task.

[0179] Optionally, module 12 is used for:

[0180] If the first robot is not assigned a transport task, the cost of the first task is determined based on the current position of the first robot and the starting point of the transport task.

[0181] If the first robot has been assigned a transport task, the cost of the first task is determined based on the waiting time of the first robot, the end point of the assigned transport task, and the start point of the transport task.

[0182] Optionally, module 12 is used for:

[0183] The first task cost is iterated in ascending order; each first task cost corresponds to a first robot and a transport task.

[0184] If the first robot corresponding to the first task cost has already been assigned a transport task, or if the transport task corresponding to the first task cost has already been assigned to the first robot, then skip the first task cost.

[0185] If the first robot corresponding to the first task cost is not assigned a transport task, and the transport task corresponding to the first task cost is not assigned to the first robot, then the transport task corresponding to the first task cost will be assigned to the first robot corresponding to the first task cost.

[0186] Optionally, module 12 is used for:

[0187] Based on the task start point and / or task end point of the transport tasks in the third task set, the transport tasks are clustered to obtain at least one task class; wherein, the number of transport tasks in the task class is determined according to the number of storage compartments of the first robot;

[0188] Calculate the cost of the first idle robot and the cost of the second task for each task class;

[0189] Based on the second task cost, the task class and the first robot are paired; wherein, each storage compartment of the first robot is used to store a target bin for a handling task instruction in the task class.

[0190] Optionally, module 12 is used for:

[0191] Using a clustering algorithm, the transportation tasks in the third task set are clustered according to the task start point and / or task end point, resulting in multiple initial classes and the cluster center of each initial class.

[0192] If the number of transport tasks in the initial class is greater than the number of storage cells, then the number of storage cells is determined based on the distance between the starting point and / or the ending point of each transport task in the initial class and the cluster center. The transport tasks form a task class.

[0193] If the number of transport tasks in the initial class is less than the number of storage compartments of the first robot, then no task class will be generated.

[0194] Optionally, module 12 is used for:

[0195] Based on the starting point of the unselected transport task in the task class, select the transport task that is closest to the current position of the first robot, and add the distance between the first robot and the transport task to the accumulated distance;

[0196] Repeat the above process until all transport tasks in the task class are selected, then determine the cost of the second task based on the accumulated distance.

[0197] Optionally, module 12 is used for:

[0198] Based on the starting point of the unselected transport task in the task class, select the transport task that is closest to the current position of the first robot, and add the distance between the first robot and the transport task to the accumulated distance;

[0199] Repeat the above process until all transport tasks in the task class are selected, then determine the cost of the second task based on the accumulated distance and the time to be executed.

[0200] The execution time is the remaining time required to complete the transport task.

[0201] Optionally, module 11 is used for:

[0202] The transport task in the first task set is the vertical transport task of the first robot;

[0203] The handling tasks in the second task set are the exclusive outbound tasks for the second robot;

[0204] The handling tasks in the third task set include inbound tasks and outbound tasks other than the exclusive outbound tasks of the second robot.

[0205] Optionally, the control module 13 is used for:

[0206] The allocation ratio is determined based on the ratio of the total number of handling tasks to the number of assigned handling tasks.

[0207] If the allocation ratio is less than the preset threshold, an alarm message will be generated, indicating that the allocation of the material handling task has become abnormal.

[0208] The collaborative handling device 10 provided in this application embodiment can execute the above method embodiment. Its specific implementation principle and technical effect can be found in the above method embodiment, and will not be repeated here.

[0209] Figure 7A schematic diagram of a collaborative handling device according to an embodiment of this application is shown, as follows: Figure 7 As shown, the collaborative handling device 20 of this embodiment is used to implement the operation corresponding to the first robot in any of the above method embodiments. The collaborative handling device 20 of this embodiment includes:

[0210] Module 21 is used to receive up and down transport tasks;

[0211] The processing module 22 is used to respond to the up and down handling task and control the first robot to move the material box placed in the temporary storage position of the shelf to the storage position, or to move the material box placed in the storage position of the shelf to the temporary storage position; wherein the temporary storage position is located at the bottom of the shelf, and the storage position is located at any position of the shelf starting from the second layer.

[0212] or,

[0213] Module 21 is used to receive multiple outbound / inbound handling tasks;

[0214] The response module 22 is used to control the first robot to move multiple boxes from a storage location on at least one shelf to at least one workstation in response to multiple outbound handling tasks; or, in response to multiple inbound handling tasks, to control the first robot to move multiple boxes from at least one workstation to a storage location on at least one shelf; wherein the number of outbound / inbound handling tasks is determined according to the number of storage compartments of the first robot.

[0215] Optionally, response module 22 is also used for:

[0216] Based on the weight of the second number of bins, the bins are placed from top to bottom in the storage compartment of the first robot, in order from lightest to heaviest.

[0217] The collaborative handling device 20 provided in this application embodiment can execute the above method embodiment. Its specific implementation principle and technical effect can be found in the above method embodiment, and will not be repeated here.

[0218] Figure 8 A schematic diagram of a collaborative handling device according to an embodiment of this application is shown, as follows: Figure 8 As shown, the collaborative handling device 30 of this embodiment is used to implement the operation corresponding to the second robot in any of the above method embodiments. The collaborative handling device 30 of this embodiment includes:

[0219] Module 31 is used to receive transport tasks;

[0220] The processing module 32 is used to control the second robot to move the bins placed in the temporary storage position of the shelf to the workstation in response to the handling task, or to move the bins placed in the workstation to the temporary storage position of the shelf.

[0221] The collaborative handling device 30 provided in this application embodiment can execute the above method embodiment. Its specific implementation principle and technical effect can be found in the above method embodiment, and will not be repeated here.

[0222] Figure 9 A schematic diagram of the hardware structure of a server according to an embodiment of this application is shown. Figure 9 As shown, the server 40 is used to implement the operations corresponding to the server in any of the above method embodiments. The server 40 in this embodiment may include: a memory 41, a processor 42, and a communication interface 44.

[0223] Memory 41 is used to store computer programs.

[0224] The processor 42 is used to execute a computer program stored in the memory to implement the cooperative transport method in the above embodiments.

[0225] Alternatively, the memory 41 can be either standalone or integrated with the processor 42.

[0226] The communication interface 44 can be connected to the processor 41 via the bus 43. The processor 42 can control the communication interface 44 to realize the function of communication with IoT devices such as the first robot and the second robot.

[0227] The electronic device provided in this embodiment can be used to execute the above-described collaborative transport method. Its implementation method and technical effects are similar, and will not be described again here.

[0228] Figure 10 A schematic diagram of the hardware structure of a first robot according to an embodiment of this application is shown. Figure 10 As shown, the server 50 is used to implement the operation corresponding to the first robot in any of the above method embodiments. The server 50 in this embodiment may include: a memory 51, a processor 52, a communication interface 54, a storage compartment 55, and a lifting mechanism 56.

[0229] Memory 51 is used to store computer programs.

[0230] The processor 52 is used to execute a computer program stored in the memory to implement the cooperative transport method in the above embodiments.

[0231] Alternatively, the memory 51 can be either standalone or integrated with the processor 52.

[0232] The communication interface 54 can be connected to the processor 51 via the bus 53. The processor 52 can control the communication interface 54 to realize the function of communication with the server.

[0233] Storage compartments 55 are evenly distributed from top to bottom on the main body of the first robot. Each storage compartment can be used to store one material bin. The number of storage compartments is related to the height of the main body of the first robot.

[0234] The lifting mechanism 56 can lift the robotic arm of the first robot, thereby enabling the picking and placing of hoppers at different heights.

[0235] The electronic device provided in this embodiment can be used to execute the above-described collaborative transport method. Its implementation method and technical effects are similar, and will not be described again here.

[0236] Figure 11 A schematic diagram of the hardware structure of a second robot according to an embodiment of this application is shown. Figure 11 As shown, the server 60 is used to implement the operation corresponding to the second robot in any of the above method embodiments. The server 60 in this embodiment may include: a memory 61, a processor 62, and a communication interface 64.

[0237] Memory 61 is used to store computer programs.

[0238] The processor 62 is used to execute a computer program stored in the memory to implement the cooperative transport method in the above embodiments.

[0239] Alternatively, the memory 61 can be either standalone or integrated with the processor 62.

[0240] The communication interface 64 can be connected to the processor 61 via the bus 63. The processor 62 can control the communication interface 64 to realize the function of communication with the server.

[0241] The electronic device provided in this embodiment can be used to execute the above-described collaborative transport method. Its implementation method and technical effects are similar, and will not be described again here.

[0242] This application also provides a warehousing system. The warehousing system may include a server, at least one first robot, and at least one second robot. The server can implement the above-described... Figures 2 to 4 The method described in the embodiment is such that the first robot can implement the above-described method. Figure 5 The method described in the embodiment is shown.

[0243] This application also provides a computer-readable storage medium storing a computer program, which, when executed by a processor, is used to implement the methods provided in the various embodiments described above.

[0244] The computer-readable storage medium can be a computer storage medium or a communication medium. A communication medium includes any medium that facilitates the transfer of a computer program from one location to another. A computer storage medium can be any available medium accessible to a general-purpose or special-purpose computer. For example, a computer-readable storage medium is coupled to a processor, enabling the processor to read information from and write information to the computer-readable storage medium. Of course, the computer-readable storage medium can also be a component of the processor. The processor and the computer-readable storage medium can reside in an Application Specific Integrated Circuit (ASIC). Alternatively, the ASIC can reside in a user equipment. Of course, the processor and the computer-readable storage medium can also exist as discrete components in a communication device.

[0245] Specifically, the computer-readable storage medium can be implemented by any type of volatile or non-volatile storage device or a combination thereof, such as Static Random-Access Memory (SRAM), Electrically Erasable Programmable Read-Only Memory (EEPROM), Erasable Programmable Read Only Memory (EPROM), Programmable Read-Only Memory (PROM), Read-Only Memory (ROM), magnetic storage, flash memory, magnetic disk, or optical disk. The storage medium can be any available medium accessible to general-purpose or special-purpose computers.

[0246] This application also provides a computer program product comprising a computer program stored in a computer-readable storage medium. At least one processor of the device can read the computer program from the computer-readable storage medium, and the at least one processor executes the computer program to cause the device to implement the methods provided in the various embodiments described above.

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

[0248] The modules can be physically separate, for example, installed in different locations within a single device, installed on different devices, distributed across multiple network units, or distributed across multiple processors. Alternatively, the modules can be integrated, for example, installed in the same device, or integrated into a single codebase. The modules can exist in hardware form, software form, or a combination of both. This application can select some or all of the modules to achieve the objectives of this embodiment based on actual needs.

[0249] When the various modules are implemented as integrated software functional modules, they can be stored in a computer-readable storage medium. The aforementioned software functional modules, stored in a storage medium, include several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) or processor to execute some steps of the methods of the various embodiments of this application.

[0250] It should be understood that although the steps in the flowcharts of the above embodiments are shown sequentially according to the arrows, these steps are not necessarily executed in the order indicated by the arrows. Unless explicitly stated herein, there is no strict order restriction on the execution of these steps, and they can be executed in other orders. Moreover, at least some of the steps in the figures may include multiple sub-steps or multiple stages. These sub-steps or stages are not necessarily completed at the same time, but can be executed at different times, and their execution order is not necessarily sequential, but can be performed alternately or in turn with other steps or at least some of the sub-steps or stages of other steps.

[0251] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of this application, and not to limit them. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some or all of the technical features. These modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of this application.

Claims

1. A collaborative transport method, characterized in that, Applied to a server, the method includes: Generate a first set of tasks consisting only of transport tasks performed by the first robot and not assigned, a second set of tasks consisting only of transport tasks performed by the second robot and not assigned, and a third set of tasks consisting of transport tasks that can be performed by both the first and second robots and not assigned. After assigning the transport tasks in the first task set to the idle first robot, if there are still idle first robots, then assign the transport tasks in the third task set to the idle first robots. After assigning the transport tasks in the second task set to the idle second robot, if there are still idle second robots and there are still unassigned transport tasks in the third task set, then the transport tasks in the third task set are assigned to the idle second robots. Control the first robot and / or the second robot to perform the assigned handling task; The first robot includes multiple storage compartments; the second robot includes one storage compartment.

2. The method according to claim 1, characterized in that, Assigning the transport tasks from the first task set to the idle first robot specifically includes: The idle first robots are grouped into a first robot set; Calculate the first task cost for each of the first robots in the first robot set and each of the transport tasks in the first task set; Based on the first task cost, the first robot in the first robot set is paired with the transport task in the first task set.

3. The method according to claim 2, characterized in that, The idle first robot includes any of the following: The first robot was not assigned a transport task; The first robot has been assigned a transport task, and the execution time of the assigned transport task is less than a first threshold; wherein the execution time is the amount of time still needed to complete the transport task.

4. The method according to claim 3, characterized in that, Calculating the first task cost between each of the first robots in the first robot set and each of the transport tasks in the first task set specifically includes: If the first robot is not assigned a transport task, the cost of the first task is determined based on the current position of the first robot and the starting point of the transport task. If the first robot has been assigned a transport task, the cost of the first task is determined based on the waiting time of the first robot, the end point of the assigned transport task, and the start point of the transport task.

5. The method according to claim 2, characterized in that, Based on the first task cost, pairing the first robot in the first robot set with the transport task in the first task set is completed, specifically including: The first task cost is iterated in ascending order; each first task cost corresponds to a first robot and a transport task. If the first robot corresponding to the first task cost has been assigned a handling task, or if the handling task corresponding to the first task cost has been assigned to the first robot, then skip the first task cost. If the first robot corresponding to the first task cost is not assigned a transport task, and the transport task corresponding to the first task cost is not assigned to the first robot, then the transport task corresponding to the first task cost is assigned to the first robot corresponding to the first task cost.

6. The method according to claim 1, characterized in that, Assigning transport tasks from the third task set to the idle first robot specifically includes: Based on the task start point and / or task end point of the transport tasks in the third task set, the transport tasks are clustered to obtain at least one task class; wherein, the number of transport tasks in the task class is determined according to the number of storage compartments of the first robot; Calculate the second task cost for each of the idle first robots and each of the task classes; Based on the second task cost, the pairing of the task class and the first robot is completed; wherein each of the storage compartments of the first robot is used to store a target bin of one of the handling tasks in the task class.

7. The method according to claim 6, characterized in that, Based on the task start point and / or task end point of the transportation tasks in the third task set, the transportation tasks are clustered to obtain at least one task class, specifically including: Using a clustering algorithm, the transportation tasks in the third task set are clustered according to the task start point and / or task end point, to obtain multiple initial classes and the cluster center of each initial class. If the number of transport tasks in the initial class is greater than the number of storage compartments, then the number of storage compartments and transport tasks that make up the task class are determined based on the distance between the task start point and / or the task end point of each transport task in the initial class and the cluster center. If the number of transport tasks in the initial class is less than the number of storage compartments of the first robot, then the task class is not generated.

8. The method according to claim 6, characterized in that, If the first robot is not assigned a transport task, calculate the cost of the second task for each idle first robot and each task class, specifically including: Based on the task starting point of the unselected transport task in the task class, select the transport task that is closest to the current position of the first robot, and add the distance between the first robot and the transport task to the accumulated distance; Repeat the above process until all the transport tasks in the task class are selected, then determine the cost of the second task based on the accumulated distance.

9. The method according to claim 6, characterized in that, If the first robot has been assigned a transport task, calculate the cost of the second task for each idle first robot and each task class, specifically including: Based on the task starting point of the unselected transport task in the task class, select the transport task that is closest to the current position of the first robot, and add the distance between the first robot and the transport task to the accumulated distance; The above process is repeated until all the transport tasks in the task class are selected, at which point the cost of the second task is determined based on the accumulated distance and the time to be executed. The pending execution time is the amount of time required to complete the transport task.

10. The method according to any one of claims 1-9, characterized in that, The method further includes: The handling tasks in the first task set are the vertical handling tasks of the first robot; The handling tasks in the second task set are the dedicated outbound tasks for the second robot; The handling tasks in the third task set include inbound tasks and outbound tasks other than the dedicated outbound tasks of the second robot.

11. The method according to any one of claims 1-9, characterized in that, The method further includes: The allocation ratio is determined based on the ratio of the total number of handling tasks to the number of assigned handling tasks. If the allocation ratio is less than a preset threshold, an alarm message is generated, indicating that the allocation of the handling task has become abnormal.

12. A server, characterized in that, The server includes: a memory and a processor; The memory is used to store a computer program; the processor is used to implement the method as described in any one of claims 1 to 11 according to the computer program stored in the memory.

13. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program that, when executed by a processor, is used to implement the method as described in any one of claims 1 to 11.

14. A computer program product, characterized in that, The computer program product includes a computer program that, when executed by a processor, implements the method described in any one of claims 1 to 11.

Citation Information

Patent Citations

  • Task allocation method and device, server and storage medium

    CN113673887A

  • Goods sorting method and apparatus, and electronic device and readable storage medium

    WO2024104426A1