Robot scheduling method and apparatus
Patent Information
- Application Number
- CN202211249762.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-10-12
- Publication Date
- 2026-10-30
- Estimated Expiration
- 2042-10-12
AI Technical Summary
另外,机器人数量是有限的,各区域的机器人分布情况与各区域产生的任务量之间的不适配情况,导致调度过程中经常可能会出现任务少的区域,机器人数量充裕,而任务多的区域,机器人数量紧缺的情况,未能充分利用机器人数量资源,任务的执行效率不足
[0018]根据本发明实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现所述机器人调度方法的步骤。
Smart Images

Figure CN117933581B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of game design technology, and in particular to a robot scheduling method. The invention also relates to a robot scheduling device, a computing device, and a computer-readable storage medium. Background Technology
[0002] With the development of robotics technology, more and more schedulable robots are being used in industries such as freight, warehousing, logistics, and catering, greatly facilitating human production and life. However, at the same time, the increasing number of robots and the amount of tasks they need to perform have brought new challenges to robot scheduling across multiple areas in a given scenario. Due to the continuous increase in the number of robots, the time required to determine the target robot for task execution in a single poll also increases, and task execution efficiency often does not increase linearly with the increase in site area.
[0003] Currently, task generation is determined by the hit mechanism, and task generation is non-uniformly distributed across different areas of a given scenario. For example, a given scenario may have three areas (Area 1, Area 2, and Area 3). Area 1 needs to perform tasks related to moving household goods, Area 2 needs to perform tasks related to moving electronic products, and Area 3 needs to perform tasks related to moving food. During electronic product promotion periods, Area 2 has a higher hit probability, resulting in a larger number of moving tasks. Furthermore, the number of robots is limited, and the mismatch between the robot distribution across areas and the amount of tasks generated in each area often leads to situations where areas with fewer tasks have an abundance of robots, while areas with more tasks have a shortage of robots. This fails to fully utilize robot resources and results in insufficient task execution efficiency. Therefore, there is an urgent need for a robot scheduling method that can fully utilize robot resources and improve task execution efficiency. Summary of the Invention
[0004] In view of this, embodiments of the present invention provide a robot scheduling method to address the technical deficiencies existing in the prior art. Embodiments of the present invention also provide a robot scheduling apparatus, a computing device, and a computer-readable storage medium.
[0005] According to a first aspect of the present invention, a robot scheduling method is provided, comprising:
[0006] Get the global average number of tasks to be executed for a specified scenario, and the local average number of tasks to be executed for each region. The specified scenario is pre-divided into multiple regions.
[0007] Based on the global average number of tasks to be executed and the local average number of tasks to be executed in each region, predict the global task execution loss for a specified scenario.
[0008] Determine the robot cross-region scheduling strategy based on the global task execution loss;
[0009] By utilizing a cross-regional robot scheduling strategy, target robots in a specified scenario can be scheduled across regions.
[0010] According to a second aspect of the present invention, a robot scheduling apparatus is provided, comprising:
[0011] The acquisition module is configured to acquire the global average number of tasks to be executed in a specified scenario, as well as the local average number of tasks to be executed in each region. The specified scenario is pre-divided into multiple regions.
[0012] The prediction module is configured to predict the global task execution loss for a specified scenario based on the global average number of tasks to be executed and the local average number of tasks to be executed in each region.
[0013] The determination module is configured to determine the robot's cross-regional scheduling strategy based on the global task execution loss;
[0014] The scheduling module is configured to use a cross-regional robot scheduling strategy to schedule target robots in a specified scenario across regions.
[0015] According to a third aspect of the present invention, a computing device is provided, comprising:
[0016] Memory and processor;
[0017] The memory is used to store computer-executable instructions, and the processor executes the computer-executable instructions to implement the steps of the robot scheduling method.
[0018] According to a fourth aspect of the present invention, a computer-readable storage medium is provided that stores computer-executable instructions which, when executed by a processor, implement the steps of the robot scheduling method.
[0019] According to a fifth aspect of the present invention, a chip is provided that stores a computer program, which, when executed by the chip, implements the steps of the robot scheduling method.
[0020] The robot scheduling method provided by this invention obtains the global average number of tasks to be executed in a specified scenario and the local average number of tasks to be executed in each region. Based on the global average number of tasks to be executed and the local average number of tasks to be executed in each region, the global task execution loss of the specified scenario is predicted. Based on the global task execution loss, a cross-regional robot scheduling strategy is determined. Using the cross-regional robot scheduling strategy, target robots in the specified scenario are scheduled across regions. By predicting the global task execution loss of the specified scenario using the global average number of tasks to be executed and the local average number of tasks to be executed, the loss value when the robots execute the tasks under the current allocation of tasks in each region is obtained. This loss value is then used as reference data to obtain a corresponding cross-regional robot scheduling strategy with a more ideal robot distribution in each region as the target, so as to make full use of robot resources and improve task execution efficiency. Attached Figure Description
[0021] Figure 1 This is a schematic diagram of the system structure of a robot scheduling system provided in an embodiment of the present invention;
[0022] Figure 2 This is a flowchart of a robot scheduling method provided in an embodiment of the present invention;
[0023] Figure 3 This is a schematic diagram of a specific scenario in a robot scheduling method provided by an embodiment of the present invention;
[0024] Figure 4 This is a schematic diagram of another specified scenario in a robot scheduling method provided by an embodiment of the present invention;
[0025] Figure 5 This is a schematic diagram of a robot cross-region scheduling strategy under the iterative termination condition in a robot scheduling method provided by an embodiment of the present invention;
[0026] Figure 6 This is a schematic diagram of another specified scenario in a robot scheduling method provided by an embodiment of the present invention;
[0027] Figure 7 This is a schematic diagram of another specified scenario in a robot scheduling method provided by an embodiment of the present invention;
[0028] Figure 8 This is a schematic diagram of a robot cross-regional scheduling method provided in an embodiment of the present invention;
[0029] Figure 9 This is a task quantity and robot distribution map of a specified scene in a robot scheduling method provided by an embodiment of the present invention;
[0030] Figure 10This is a schematic diagram of an analysis model in a robot scheduling method provided by an embodiment of the present invention;
[0031] Figure 11 This is a schematic diagram of a target analysis model in a robot scheduling method provided by an embodiment of the present invention;
[0032] Figure 12 This is a schematic diagram of a cross-regional transfer channel in a robot scheduling method provided by an embodiment of the present invention;
[0033] Figure 13 This is a schematic diagram of robot scheduling in a robot scheduling method provided by an embodiment of the present invention;
[0034] Figure 14 This is a schematic diagram of a robot increment value in a robot scheduling method provided by an embodiment of the present invention;
[0035] Figure 15 This is a schematic diagram of another cross-regional transfer channel in a robot scheduling method provided by an embodiment of the present invention;
[0036] Figure 16 This is a schematic diagram of another cross-regional transfer channel in a robot scheduling method provided by an embodiment of the present invention;
[0037] Figure 17 This is a flowchart of a task execution method provided in an embodiment of the present invention;
[0038] Figure 18 This is a schematic diagram of a robot remote scheduling technique in the prior art;
[0039] Figure 19 This is a schematic diagram of a robot deadlock in the prior art;
[0040] Figure 20 This is a schematic diagram of a roadway task execution method provided in an embodiment of the present invention;
[0041] Figure 21 This is a schematic diagram of a task switching method in a task execution method according to an embodiment of the present invention;
[0042] Figure 22 This is a flowchart of a robot scheduling method applied to a warehousing scenario according to an embodiment of the present invention;
[0043] Figure 23 This is a schematic diagram of the structure of a robot scheduling device according to an embodiment of the present invention;
[0044] Figure 24 This is a structural block diagram of a computing device provided in an embodiment of the present invention. Detailed Implementation
[0045] Numerous specific details are set forth in the following description to provide a full understanding of the invention. However, the invention can be practiced in many other ways different from those described herein, and those skilled in the art can make similar extensions without departing from the spirit of the invention. Therefore, the invention is not limited to the specific embodiments disclosed below.
[0046] The terminology used in one or more embodiments of the present invention is for the purpose of describing particular embodiments only and is not intended to limit the scope of the invention. The singular forms “a,” “the,” and “the” used in one or more embodiments of the invention and the appended claims are also intended to include the plural forms unless the context clearly indicates otherwise. It should also be understood that the term “and / or” used in one or more embodiments of the invention refers to and includes any or all possible combinations of one or more associated listed items.
[0047] It should be understood that although the terms first, second, etc., may be used to describe various information in one or more embodiments of the present invention, such information should not be limited to these terms. These terms are only used to distinguish information of the same type from one another. For example, first may also be referred to as second without departing from the scope of one or more embodiments of the present invention, and similarly, second may also be referred to as first.
[0048] First, the terminology used in one or more embodiments of the present invention will be explained.
[0049] Robot scheduling: The scheduling rules are set through the robot scheduling terminal to achieve robot scheduling.
[0050] This invention provides a robot scheduling method. The invention also relates to a robot scheduling device, a computing device, and a computer-readable storage medium, which will be described in detail in the following embodiments.
[0051] Figure 1A schematic diagram of the system structure of a robot scheduling system according to an embodiment of the present invention is shown. The robot scheduling system provided in this embodiment includes robots 102 in each area and a robot scheduling terminal 101; the robot scheduling terminal 101 executes program code of scheduling rules to perform motion scheduling for the robots 102 in each area. In the multi-robot motion scheduling method provided in this embodiment, the robots 102 in each area move by receiving program code of scheduling rules sent by the robot scheduling terminal 101. The aforementioned robot scheduling terminal 101 can be any electronic product capable of human-computer interaction with a user, such as a PC (Personal Computer), mobile phone, Pocket PC, tablet computer, etc.
[0052] The robot scheduler 101 first obtains the global average number of tasks to be executed in the specified scenario and the local average number of tasks to be executed in each region. Then, based on the global average number of tasks to be executed and the local average number of tasks to be executed in each region, it predicts the global task execution loss in the specified scenario. Based on the global task execution loss, it determines the robot cross-region scheduling strategy. Finally, it uses the robot cross-region scheduling strategy to schedule the robot 102 in the specified scenario across regions.
[0053] The specific robot scheduling method will be described in detail in subsequent embodiments.
[0054] Figure 2 The flowchart of a robot scheduling method according to an embodiment of the present invention is shown, which specifically includes the following steps:
[0055] Step S202: Obtain the global average number of tasks to be executed in the specified scenario, and the local average number of tasks to be executed in each region, wherein the specified scenario is pre-divided into multiple regions.
[0056] The execution entity of this invention is a robot scheduler, and the application scenario is a specified scenario including multiple regions. In this invention, based on the number of tasks generated in each region of the specified scenario, the current deployment of the number of robots is evaluated to obtain a more ideal global robot deployment. After determining the more ideal global robot deployment, a cross-regional robot scheduling strategy is used to achieve cross-regional robot scheduling.
[0057] The robot scheduling method provided in this embodiment of the invention is executed by a robot scheduling terminal that can schedule robots in various areas.
[0058] The specified scene is pre-divided into multiple areas, each of which is assigned a generated task to be executed, and robots are distributed in each area.
[0059] The specified scenario refers to a physical environment where robots are dispatched to perform tasks in multiple areas, such as logistics warehousing, factory handling, and restaurant / shopping mall scenarios. Multiple areas refer to the task execution areas within the specified scenario where tasks are generated and robots are deployed. Examples include sorting, shelving, and descrambling areas in a logistics warehousing scenario; various factory areas in a factory handling scenario; areas in a restaurant; and receiving areas in a shopping mall. These areas generate tasks to be performed (sorting, shelving, descrambling, handling, food delivery, and receiving / handling tasks), and all of these tasks can be performed by deployed robots.
[0060] The global average number of tasks to be executed is the average number of tasks to be executed for a single robot in a specified scenario. The local average number of tasks to be executed is the average number of tasks to be executed for a single robot in each region. By using the global average number of tasks to be executed and the local average number of tasks to be executed, the difference between the number of tasks to be executed in a given region and the global average can be reflected. This indicates whether the number of robots deployed to that region is suitable for the number of tasks to be executed in that region, providing a data reference for subsequently determining the cross-regional robot scheduling strategy.
[0061] To obtain the global average number of tasks to be executed in a specified scenario, and the local average number of tasks to be executed in each region, the specific method is to calculate the global average number of tasks to be executed in the specified scenario, the total number of robots, the total number of tasks to be executed in each region, and the current distribution of robots in each region.
[0062] For example, in a specified scenario, there are 1000 tasks to be executed, and 12 robots are pre-deployed. The specified scenario includes 3 areas (Area 1, Area 2, and Area 3). Area 1 has 500 tasks to be executed and 4 robots are pre-deployed there; Area 2 has 300 tasks to be executed and 4 robots are pre-deployed there; and Area 3 has 200 tasks to be executed and 4 robots are pre-deployed there. Therefore, the global average number of tasks to be executed is 1000 divided by 12, which is 83. The local average number of tasks in Area 1 is 500 divided by 4, which is 125.
[0063] By obtaining the global average number of tasks to be executed in a specified scenario, as well as the local average number of tasks to be executed in each region, a data foundation is laid for subsequent prediction of the global task execution loss in the specified scenario.
[0064] Step S204: Based on the global average number of tasks to be executed and the local average number of tasks to be executed in each region, predict the global task execution loss for the specified scenario.
[0065] The global task execution loss in a given scenario represents the efficiency loss in executing tasks under different robot distributions within that scenario. Predicting the global task execution loss reflects the efficiency difference in task execution between different robot distributions and an ideal distribution. Generally, the global task execution loss is caused by unreasonable robot deployment in the given scenario, resulting in some areas having tasks executed quickly while others remain in a waiting state for extended periods.
[0066] Based on the global average number of tasks to be executed and the local average number of tasks to be executed in each region, the global task execution cost for a specified scenario is predicted. Specifically, based on the global average number of tasks to be executed and the local average number of tasks to be executed in each region, the local task execution cost for each region is determined. Based on the task execution cost for each region, the global task execution cost for the specified scenario is predicted. The local task execution cost for each region is the difference between the local average number of tasks to be executed in that region and the global average number of tasks to be executed.
[0067] Continuing with the example above, the global average number of tasks to be executed is 83, the local average number of tasks in region 1 is 125, the local average number of tasks in region 2 is 75, and the local average number of tasks in region 3 is 50. The local task execution loss in region 1 is determined to be 125 minus 83, which is 42. The local task execution loss in region 2 is determined to be 83 minus 75, which is 8. The local task execution loss in region 3 is determined to be 83 minus 50, which is 33. Therefore, the global task execution loss is 83.
[0068] Based on the global average number of tasks to be executed and the local average number of tasks to be executed in each region, the global task execution loss of a specified scenario is predicted, and it is determined whether the robot is currently in an ideal state distribution, providing reference data for subsequently determining the robot cross-regional scheduling strategy.
[0069] Step S206: Determine the robot cross-region scheduling strategy based on the global task execution loss.
[0070] The robot cross-region scheduling strategy is the execution strategy for scheduling robots across different regions. For example, if the current robot distribution information is (region 1: 2 robots; region 2: 3 robots; region 3: 1 robot), and the more ideal robot target distribution information is (region 1: 1 robot; region 2: 2 robots; region 3: 3 robots), the corresponding robot cross-region scheduling strategy could be: schedule 1 robot from region 1 to region 2, and then schedule 2 robots from region 2 to region 3. Another possible strategy is: schedule 1 robot from region 1 to region 3, and then schedule 1 robot from region 2 to region 3.
[0071] Based on the global task execution loss, a cross-regional robot scheduling strategy is determined. Specifically, this involves determining the robot target distribution information based on the global task execution loss, and then determining the cross-regional robot scheduling strategy based on this information. Furthermore, determining the robot target distribution information based on the global task execution loss can be achieved by using a neural network model to calculate the robot target distribution information (which can further determine the cross-regional robot scheduling strategy); alternatively, it can be achieved by performing cross-regional pre-scheduling on robots in each region based on the global task execution loss, obtaining the global task execution loss after cross-regional pre-scheduling, comparing the global task execution loss with the global task execution loss after cross-regional pre-scheduling, and determining the robot distribution information with the lower loss as the robot target distribution information.
[0072] Continuing with the example above, based on the global task execution loss of 83, after cross-regional scheduling of robots in each region, the target distribution information of robots is determined as (Region 1: 6; Region 2: 4; Region 3: 2). Based on the target distribution information of robots (Region 1: 6; Region 2: 4; Region 3: 2), the cross-regional scheduling strategy of robots is determined: the 2 robots in Region 3 are scheduled to Region 1.
[0073] Step S208: Utilize the robot cross-region scheduling strategy to perform cross-region scheduling of the target robot in the specified scenario.
[0074] The robot cross-region scheduling strategy is used to schedule target robots in a specified scenario across regions. Specifically, based on the positional relationship between regions, the cross-region transfer channel corresponding to the robot cross-region scheduling strategy is determined, and the target robot in the specified scenario is scheduled across regions based on the cross-region transfer channel.
[0075] Continuing the example above, the positional relationships between the regions are as follows: Region 1, Region 2, and Region 3 are connected sequentially, while Region 1 and Region 3 are not directly connected. Based on these positional relationships, the cross-regional transfer channel corresponding to the robot cross-regional scheduling strategy (scheduling the two robots in Region 3 to Region 1) is determined to be: Region 3 – Region 2 – Region 1. Based on this cross-regional transfer channel, the two robots in Region 3 are scheduled to Region 1 via Region 2.
[0076] In this embodiment of the invention, by obtaining the global average number of tasks to be executed in a specified scenario and the local average number of tasks to be executed in each region, the global task execution loss of the specified scenario is predicted based on the global average number of tasks to be executed and the local average number of tasks to be executed in each region. Based on the global task execution loss, a robot cross-region scheduling strategy is determined, and the target robot in the specified scenario is scheduled across regions using the robot cross-region scheduling strategy. By predicting the global task execution loss of the specified scenario using the global average number of tasks to be executed and the local average number of tasks to be executed, the loss value when the robot executes the tasks under the current allocation of tasks to be executed in each region is obtained. This loss value is then used as reference data to obtain a corresponding robot cross-region scheduling strategy with a more ideal robot distribution in each region as the target, so as to make full use of robot resources and improve task execution efficiency.
[0077] Optionally, step S204 includes the following specific steps:
[0078] Based on the global average number of tasks to be executed and the local average number of tasks to be executed in each region, predict the object idle information of each region.
[0079] Calculate the global task execution overhead for a specified scenario based on the object idle information in each region.
[0080] The object idle information for each region represents the difference between the current robot distribution and the ideal robot target distribution in that region. This object idle information also represents a local task execution loss, characterizing the efficiency loss in executing the task under different robot distributions in each region. By predicting the local task execution loss for each region, the efficiency difference in task execution under different robot distributions compared to the ideal distribution is reflected. The specific calculation formula is shown in Formula 1:
[0081] I = (Ni - Ng) 2 ×m Formula 1
[0082] Where I represents the idle information of objects in a certain area, Ni represents the local average number of tasks to be executed in that area, Ng represents the global average number of tasks to be executed, and m represents the number of robots deployed in that area. By squaring, the influence of the positive and negative signs is eliminated.
[0083] When Ni-Ng is positive, it indicates that the number of robots deployed in that area is insufficient, resulting in an average number of tasks to be executed per robot in that area being greater than the average number of tasks to be executed per robot globally. When Ni-Ng is negative, it indicates that the number of robots deployed in that area is excessive, resulting in an average number of tasks to be executed per robot in that area being less than the average number of tasks to be executed per robot globally.
[0084] Based on the object idle information of each region, the global task execution cost for a specified scenario is calculated. Specifically, the idle information of each region is summed to obtain the global task execution cost for the specified scenario. The specific summation formula is shown in Formula 2:
[0085]
[0086] Where Loss represents the global task execution cost of a specified scenario, which is divided into n regions, I i This represents the object idle information in the i-th region of the specified scene. Ni represents the local average number of tasks to be executed in this region, Ng represents the global average number of tasks to be executed, and m represents the number of robots deployed in this region. The effect of positive and negative values is eliminated by squaring.
[0087] Figure 3 The diagram illustrates a specific scenario in a robot scheduling method according to an embodiment of the present invention. Figure 4 This diagram illustrates another specific scenario in a robot scheduling method provided by an embodiment of the present invention.
[0088] For example, such as Figure 3 As shown, the specified scene is divided into region 1 and region 2. The global average number of tasks to be executed in the specified scene is 21. Region 1 has 8 tasks to be executed and contains 1 robot: Robot 1. Region 2 has 15 tasks to be executed and contains no robots. According to Formula 1, the idle information of objects in region 1 is calculated as (8-21). 2 According to Formula 2, the result is calculated as follows: Figure 3 The global task execution overhead for the specified scenario is (8-21). 2 Relocate robot 1 from area 1 to area 2. For example... Figure 4 As shown, the global average number of tasks to be executed in the specified scenario is 21, the number of tasks to be executed in region 1 is 8, there are no robots in region 1, the number of tasks to be executed in region 2 is 15, and region 2 has 1 robot: robot 1. According to formula 1, the idle information of objects in region 2 is calculated to be (15-21). 2 According to Formula 2, the result is calculated as follows: Figure 4 The global task execution overhead for the specified scenario is (15-21). 2 .
[0089] Based on the global average number of tasks to be executed and the local average number of tasks to be executed in each region, the idle information of objects in each region is predicted. Based on this idle information, the global task execution loss for a given scenario is calculated. By predicting the idle information of objects in each region, a more detailed discrepancy between the current robot distribution information and the ideal robot target distribution information in each region is determined. This allows for the calculation of the global task execution loss for a given scenario, providing more accurate reference data for subsequently determining cross-region robot scheduling strategies, improving the effectiveness of cross-region robot scheduling, making fuller use of robot resources, and increasing task execution efficiency.
[0090] Optionally, step S206 includes the following specific steps:
[0091] With the global task execution loss as the optimization objective, a cross-regional robot scheduling strategy is determined.
[0092] Global task execution loss characterizes the efficiency loss of executing tasks in all regions of the world under the current robot distribution. Therefore, by optimizing global task execution loss, we can make the current robot distribution information as close as possible to the ideal robot target distribution information, ensuring that the number of robots in each region is neither too many nor too few.
[0093] With global task execution cost as the optimization objective, a cross-regional robot scheduling strategy is determined. Specifically, iterative cross-regional scheduling of robots in each region is performed, and the corresponding cross-regional scheduling strategy is determined when the iteration termination condition is met. Cross-regional scheduling involves virtual scheduling of robots in each region of a specified scene without actual execution. Iterative cross-regional pre-scheduling involves repeating cross-regional pre-scheduling if the iteration termination condition is not met. The iteration termination condition is a criterion for determining whether the global task execution cost corresponding to the current cross-regional scheduling has reached the optimization objective. This condition can be the number of iterations, the target global task execution cost (global task execution cost threshold), or upper and lower limits on the number of robots in each region, etc., and is not limited here.
[0094] Figure 5 This diagram illustrates a robot cross-region scheduling strategy under iteration termination conditions in a robot scheduling method provided by an embodiment of the present invention.
[0095] For example, such as Figure 5As shown, the left figure shows the location information and the amount of tasks to be executed between each region. The iteration termination condition is limited to the upper limit of the number of robots in each region being 2. Then, the robot target distribution information after scheduling is obtained in each region in the right figure is obtained. It can be understood that in regions with a large amount of tasks to be executed, 2 robots are scheduled to execute; in regions with a medium amount of tasks to be executed, 1 robot is scheduled to execute; and in regions with a small amount of tasks to be executed, no robots are scheduled.
[0096] For example, the iteration termination condition is the number of iterations, specifically 3 times. Iterative cross-region scheduling of robots in each region is performed. The global task execution loss of the first iteration is 120, the global task execution loss of the second iteration is 110, and the global task execution loss of the third iteration is 100. The robot cross-region scheduling strategy corresponding to the third iteration is determined.
[0097] With global task execution overhead as the optimization objective, a cross-regional robot scheduling strategy is determined. This strategy is based on a robot distribution that more closely approximates the ideal state, improving the effectiveness of cross-regional robot scheduling, making fuller use of robot resources, and enhancing task execution efficiency.
[0098] Optionally, with the global task execution loss as the optimization objective, a cross-regional robot scheduling strategy is determined, including the following specific steps:
[0099] Determine the current robot distribution information in each area of the specified scene, as well as the current local average number of tasks to be executed in each area;
[0100] Based on the current distribution information of robots in each region, cross-regional pre-scheduling is performed on the robots in each region, and the target local average number of tasks to be executed in each region is calculated after cross-regional pre-scheduling.
[0101] Based on the global average number of tasks to be executed, the current local average number of tasks to be executed in each region, and the target local average number of tasks to be executed, predict the current global task execution loss and the target global task execution loss for a specified scenario;
[0102] Compare the execution cost of the target global task with the execution cost of the current global task;
[0103] If the execution cost of the target global task is lower than the execution cost of the current global task, determine the robot cross-region scheduling strategy corresponding to the cross-region pre-scheduling.
[0104] Cross-region scheduling of robots involves virtual scheduling of robots in different regions of a specified scene without actually executing the cross-region scheduling. By performing cross-region pre-scheduling, the target distribution information of the robots after pre-scheduling is obtained. The average local task load in each region is calculated, and the current global task execution loss and the global task execution loss after cross-region pre-scheduling are determined. Comparing these two values determines whether the global task execution loss has been optimized after pre-scheduling compared to before intervention, thus determining the cross-region scheduling strategy for the robots. Cross-region pre-scheduling can be iterative, continuing until a preset iteration stopping condition is met, at which point the corresponding cross-region scheduling strategy is determined.
[0105] The current robot distribution information refers to the distribution of the number of robots in each region. The current local average number of tasks to be executed is the average number of tasks to be executed for a single robot in each region. The target local average number of tasks to be executed is the average number of tasks to be executed for a single robot in each region after cross-region scheduling. The current global task execution loss characterizes the efficiency loss in executing tasks under the current robot distribution in each region. The target global task execution loss characterizes the efficiency loss in executing tasks under the distribution of robots in each region after cross-region scheduling.
[0106] Determine the current robot distribution information in each area of the specified scene, as well as the current local average number of tasks to be executed in each area. Specifically, determine the number of robots in each area of the specified scene, and the current local average number of tasks to be executed in each area.
[0107] Based on the current robot distribution information of each region, cross-regional pre-scheduling is performed on the robots in each region. The target local average number of tasks to be executed in each region after cross-regional pre-scheduling is calculated. Specifically, based on the current robot distribution information of each region, cross-regional pre-scheduling is performed on the robots in each region to obtain the target distribution information of the robots in each region after cross-regional pre-scheduling. Based on the target distribution information of the robots in each region, the target local average number of tasks to be executed in each region after cross-regional pre-scheduling is calculated. Further, based on the target distribution information of the robots in each region, the target local average number of tasks to be executed in each region after cross-regional pre-scheduling is calculated by taking the total number of tasks to be executed in each region and the number of robots in each region after cross-regional pre-scheduling.
[0108] Based on the global average number of pending tasks, the current local average number of pending tasks in each region, and the target local average number of pending tasks, the current global task execution cost and the target global task execution cost for a specified scenario are predicted. Specifically, based on the global average number of pending tasks and the current local average number of pending tasks in each region, the current object idle information for each region is predicted. Based on the current object idle information for each region, the current global task execution cost for the specified scenario is calculated. Similarly, based on the global average number of pending tasks and the target local average number of pending tasks in each region, the target object idle information for each region is predicted. Based on the target object idle information for each region, the target global task execution cost for the specified scenario is calculated. The formula for calculating object idle information is shown in Formula 1 above and will not be repeated here. The formula for calculating global task execution cost is shown in Formula 2 above and will not be repeated here.
[0109] Specifically, the execution code of this embodiment is as follows:
[0110] sortRegionByAverageTasksPerRobot(copyRegions); / / List
[0111] int iterationCount = 0;
[0112] while(iterationCount<256){
[0113] boolean mark=singleRobotTransferAttempt(copyRegions,
[0114] globalAverage); / /
[0115] if(mark){
[0116] sortRegionByAverageTasksPerRobot(copyRegions); / /
[0117] }
[0118] else{
[0119] break; / /
[0120] }
[0121] iterationCount++;
[0122] }
[0123] The execution code for a single robot is as follows:
[0124] private static boolean singleRobotTransferAttempt(List <innerregion>
[0125] regions,double globalAverage){
[0126] boolean mark = false;
[0127] for(int i = 0; i <regions.size()-1;i++){
[0128] InnerRegion robotOutRegion=regions.get(i);
[0129] for(int j = 1; j <regions.size()-i;j++){
[0130] InnerRegion robotInRegion=regions.get(regions.size()-j);
[0131] if(canSingleRobotTransfer(robotOutRegion,robotInRegion,
[0132] globalAverage)<0){
[0133] mark = true;
[0134] singleRobotTransferExecution(robotOutRegion,robotInRegion);
[0135] break;
[0136] }
[0137] }
[0138] if(mark){
[0139] break;
[0140] }
[0141] }
[0142] return mark;
[0143] }
[0144] Figure 6 This diagram illustrates another specific scenario in a robot scheduling method provided by an embodiment of the present invention. Figure 7 This diagram illustrates another specific scenario in a robot scheduling method provided by an embodiment of the present invention.
[0145] For example, such as Figure 6 As shown, the specified scene is divided into region 1 and region 2. The global average number of tasks to be executed in the specified scene is 21, and the number of tasks to be executed in region 1 is 28. Region 1 has two robots: Robot 1 and Robot 2. The local average number of tasks to be executed in region 1 is 14, and the number of tasks to be executed in region 2 is 35. Region 2 has one robot: Robot 3, and the local average number of tasks to be executed in region 2 is 35. Using the above formula 2, the following is calculated: Figure 6 The global task execution overhead for the specified scenario is (14-21). 2 ×2+(35-21) 2 Move robot 2 from region 1 to region 2. Using formula 2 above, calculate... Figure 7 The global task execution overhead for the specified scenario is (28-21). 2 +(17.5-21) 2 ×2, through comparison Figure 7 Target global task execution overhead and Figure 6 The current global task execution cost is calculated. Figure 7 and Figure 6 The difference in global task execution overhead for the specified scenario is -220.5, indicating that... Figure 6 The global task execution overhead in the specified scenario is lower than Figure 5 The global task execution overhead in the specified scenario, i.e., according to Figure 7 Robot distribution information is used to deploy robots in areas 1 and 2.
[0146] By calculating the local average number of tasks to be executed and the global average number of tasks to be executed before and after cross-region scheduling, the global task execution loss before and after cross-region pre-scheduling is determined. Then, by comparing the global task execution loss before and after cross-region pre-scheduling, the corresponding robot cross-region scheduling strategy is determined when the global task execution loss after cross-region pre-scheduling is smaller. This ensures that the determined robot cross-region scheduling strategy is close to the ideal robot distribution, improving the effectiveness of robot cross-region scheduling, making fuller use of robot resources, and improving task execution efficiency.
[0147] Optionally, step S208 includes the following specific steps:
[0148] Determine the current robot distribution information in each area of the specified scenario, as well as the robot target distribution information in each area corresponding to the robot cross-area scheduling strategy;
[0149] Based on the current robot distribution information and robot target distribution information of each region, calculate the incremental information of each region;
[0150] Based on the incremental information of each region, the outflow and inflow regions within each region are determined;
[0151] Identify the inter-regional transfer channels from each outflow area to the inflow area;
[0152] Based on the cross-regional transfer channel, target robots in a specified scenario are scheduled across regions.
[0153] Typically, after steps S202 to S206, the robot cross-regional scheduling strategy is determined, which indicates that the robot target distribution information after cross-regional scheduling is inconsistent with the current robot distribution information. Figure 8 The diagram illustrates a cross-regional robot scheduling method according to an embodiment of the present invention.
[0154] like Figure 8 As shown, the left figure represents the current robot distribution information, the middle figure represents the total number of tasks to be executed in each region, and the right figure represents the robot target distribution information after cross-region scheduling. Based on the total number of tasks to be executed in each region in the middle figure, the current robot distribution information in the left figure is converted into the robot target distribution information in the right figure.
[0155] The current distribution information of robots in each region is the current number distribution information of robots in each region, and the target distribution information of robots in each region is the number distribution information of robots in each region after the cross-regional scheduling of robots is completed.
[0156] The incremental information for each region is the difference in the number of robots before and after cross-regional scheduling. It can be a positive or negative value.
[0157] Based on the current robot distribution information and robot target distribution information of each region, the incremental information of each region is calculated. Specifically, the difference between the current robot distribution information and the robot target distribution information of each region is determined as the incremental information of each region.
[0158] Based on the incremental information of each region, the outflow and inflow regions within each region are determined. Specifically, the outflow and inflow regions are determined based on the positive or negative values of the incremental information of each region. Furthermore, regions with positive incremental information are identified as inflow regions, and regions with negative incremental information are identified as outflow regions.
[0159] The cross-regional transfer channels from each outflow area to the inflow area are determined by taking each outflow area as the starting point of the cross-regional transfer and each inflow area as the ending point of the cross-regional transfer.
[0160] For example, the current distribution information of robots in each region is: Region 1: 2; Region 2: 1; Region 3: 3. After completing the cross-regional robot scheduling, the target distribution information of robots in each region is: Region 1: 0; Region 2: 1; Region 3: 5. The difference between the current robot distribution information and the target robot distribution information in each region is determined as the incremental information of each region: Region 1: -2; Region 2: 0; Region 3: +2. Region 3 with positive incremental information is determined as the inflow region, and Region 1 with negative incremental information is determined as the outflow region. Taking the outflow region (Region 1) as the starting point of the cross-regional transfer and the inflow region (Region 3) as the ending point of the cross-regional transfer, the cross-regional transfer channel from the outflow region to the inflow region is determined as (Region 1 - Region 2 - Region 3). The two target robots in Region 1 are scheduled across regions and transferred to Region 3 through the cross-regional transfer channel "Region 1 - Region 2 - Region 3".
[0161] The system determines the current robot distribution information in each region of a specified scenario, as well as the target robot distribution information in each region corresponding to the cross-regional scheduling strategy. Based on the current and target robot distribution information, incremental information for each region is calculated. Then, based on this incremental information, outflow and inflow regions within each region are determined. Cross-regional transfer channels from each outflow region to the inflow region are then identified. Based on these transfer channels, target robots in the specified scenario are scheduled across regions. By calculating incremental information for each region based on the current and target robot distribution information, and further determining the outflow and inflow regions, cross-regional transfer channels are obtained for cross-regional scheduling, ensuring the accuracy and effectiveness of cross-regional scheduling.
[0162] Optionally, the cross-regional transfer channels from each outflow area to the inflow area are determined, including the following specific steps:
[0163] Based on each outflow and inflow area, an analysis model is constructed. The analysis model includes the first resource loss of transferring robots from each outflow area to the adjacent inflow area, and the second resource loss of transferring robots in the transfer area. The transfer area is the area between the outflow area and the inflow area used for transferring robots.
[0164] Based on the analysis model, and using a preset resource loss optimization algorithm, the cross-regional transfer channels from each outflow area to the inflow area are determined.
[0165] The analysis model is a cross-regional transfer channel analysis model with added constraints. Directly obtaining the cross-regional scheduling strategy based on the current robot distribution information and the robot target distribution information has certain problems when facing large-scale specified scenarios. For example, transferring a robot from an outflow area to an inflow area where the outflow and inflow areas are geographically far apart consumes significant resources; therefore, it's necessary to transfer robots from adjacent areas of the inflow area whenever possible. Another example is transferring two robots from an outflow area to an inflow area and then one robot from the inflow area back to the outflow area; such bidirectional transfers consume meaningless resources, so transferring robots from the inflow area to the outflow area should be avoided. Furthermore, if there are five robots deployed in an outflow area, the maximum number of robots that can be transferred to other areas should not exceed five, thus the maximum number of robots that can be transferred to other areas should not exceed the number of robots in the outflow area.
[0166] Specifically, the limiting conditions in the embodiments of the present invention are as follows:
[0167] (1) The outflow area is the region where the number of target robots in the robot target distribution information exceeds the number of current robots in the robot current distribution information. Robots from other areas cannot be transferred to the outflow area. The maximum number of robots that can flow out of the outflow area is the current number of robots minus the number of target robots, thus ensuring that robots from the outflow area flow purely to other areas without excessive outflow.
[0168] (2) The inflow area is the region where the number of target robots in the robot target distribution information is lower than the number of current robots in the robot current distribution information. Robots cannot be transferred to other areas in the inflow area. The maximum number of robots that can flow into the inflow area is the number of target robots minus the number of current robots, thus ensuring that robots from other areas flow into the inflow area purely and without excessive inflow.
[0169] (3) The transfer area is the area in which the number of target robots in the robot target distribution information is equal to the number of current robots in the robot current distribution information. The transfer area can be entered or exited, but it is restricted to direct entry from the exit area and direct exit to the inflow area. It cannot be entered or exited from other transfer areas.
[0170] (4) The maximum number of robots that can leave an outflow area is no greater than the current number of robots. For example, if the current number of robots in an outflow area is 1, even if the current number of robots minus the target number of robots is 3, only 1 robot can leave.
[0171] The first resource consumption is the pre-set resource consumption value for transferring robots from the outflow area to the adjacent inflow area, and all first resource consumption values are the same. The second resource consumption is the pre-set resource loss value for the transfer robot in the transfer area, and the second resource consumption is equal to the first resource consumption.
[0172] The pre-defined resource consumption optimization algorithm specifically sets up three special regions: a virtual inflow region, a virtual outflow region, and a virtual pool region. The virtual inflow region is a virtual upstream of the inflow region. The maximum number of robots that can flow from the virtual inflow region to the outflow region is the target number of robots minus the current number of robots. Only actual sources can flow to the virtual pool. Combined with a polynomial-time minimum resource consumption algorithm, it achieves efficient cross-regional transfer channels from each outflow region to the inflow region even when the number of outflow regions is extremely large. The virtual pool region can serve as a virtual transfer region when outflow and inflow regions are not adjacent, enabling robot transfer. However, the third resource consumption for transferring from the outflow region to the virtual pool region is greater than the first and second resource consumption, ensuring that robots preferentially transfer directly to the inflow region through adjacent outflow regions or through the transfer region.
[0173] The following uses Figure 9 The inflow area, outflow area, and transfer area are described. Figure 9 This diagram illustrates the task load and robot distribution in a specified area within a robot scheduling method according to an embodiment of the present invention. For example... Figure 9 As shown, the specified scene is divided into 12 regions (regions 0-11), with a total of 25 robots. The maximum number of robots that each region can accommodate is configured to be 5 (this can also be configured individually for each region), and the maximum number of robots that can leave each region is configured to be 5 (this can also be configured individually for each region). Based on the total number of tasks to be executed in each region and the current distribution information of robots in each region, according to steps S202 to S206, a cross-regional robot scheduling strategy is determined, and the target robot distribution information for each region is obtained. Among them, the number of tasks to be executed in region 2 remains unchanged before and after cross-regional scheduling, so it is a transfer region; the number of target robots in regions 0, 1, 6, 8, 9, and 11 exceeds the current number of robots, so they are outflow regions; the number of target robots in regions 3, 4, 5, 7, and 10 is lower than the current number of robots, so they are inflow regions.
[0174] The following uses Figure 10 The analysis model is explained in detail, and the cross-regional transfer channel is determined using a preset resource loss optimization algorithm. Figure 10 This diagram illustrates an analysis model in a robot scheduling method according to an embodiment of the present invention. Figure 10 As shown, the first resource consumption between the outflow area and the inflow area is set to 10, the second resource consumption between the outflow area and the transfer area is set to 10, and the third resource consumption between the outflow area and the virtual pool area is set to 12. The number of robots transferred from the virtual inflow area to the outflow area is the target number of robots minus the current number of robots, and the resource consumption for transferring from the virtual inflow area to the outflow area is 0. The number of robots transferred from the inflow area to the virtual outflow area is the target number of robots minus the current number of robots, and the resource consumption for transferring from the inflow area to the virtual outflow area is also 0. For example, for area 0, the number of robots (1) transferred from the virtual inflow area to the outflow area is the target number of robots (2) minus the current number of robots (1), and the resource consumption is 0. The number of robots transferred from area 0 to the virtual pool area is also 1, and the resource consumption is 12. For region 9, the number of robots transferred from the virtual inflow region to the outflow region (3) is the target number of robots (5) minus the current number of robots (2), and the resource consumption is 0. The number of robots transferred from region 9 to region 10 is also 3, and the first resource consumption is 10. The number of robots transferred from region 10 to the virtual outflow region is also 3, and the resource consumption is 0. For the virtual pool region, since the total number of robots transferred from region 0, region 1, region 6, region 8, region 9 and region 11 is 9, the resource consumption is 0. The total number of robots transferred from the virtual pool region to the virtual outflow region is also 9, and the resource consumption is 0. For region 11, its adjacent regions are region 8 and region 10, but region 10 is an inflow region and region 8 is an outflow region, so only region 10 is connected and region 8 is not connected (it is impossible to transfer robots from region 8 to region 11).
[0175] Through the Figure 10 The analysis model in the middle is organized and analyzed to obtain Figure 11 Target analysis model Figure 11 This diagram illustrates a target analysis model in a robot scheduling method according to an embodiment of the present invention. Figure 11 As shown, the target analysis model is the one that minimizes resource consumption. The calculated resource consumption of the target analysis model with minimum resource consumption is (1*10*6+2*12+1*12), which equals 96.
[0176] according to Figure 11 Given a defined inter-regional transfer channel with minimal resource consumption, the robot distribution after scheduling is as follows: Figure 12 As shown, Figure 12 This diagram illustrates a cross-regional transfer channel in a robot scheduling method according to an embodiment of the present invention. Two robots are transferred from region 0 to region 9 via a virtual pool; one robot is transferred from region 1 to region 11 via a virtual pool; one robot is transferred from region 0 to region 3; one robot is transferred from region 1 to region 4; one robot is transferred from region 6 to region 7; one robot is transferred from region 8 to region 7; one robot is transferred from region 8 to region 5; and one robot is transferred from region 9 to region 10. Figure 12 The cross-regional transfer channel yields a robot cross-regional scheduling scheme with minimal resource consumption.
[0177] Based on the analysis model, a preset resource consumption optimization algorithm is used to determine the cross-regional transfer channels from each outflow area to the inflow area. Specifically, based on the analysis model, a target analysis model is determined using the preset resource consumption optimization algorithm. The target analysis model is the analysis model with the minimum resource consumption. Based on the target analysis model, the cross-regional transfer channels from each outflow area to the inflow area are determined.
[0178] Based on the outflow and inflow areas, an analysis model is constructed. Using this model and a pre-defined resource consumption optimization algorithm, the cross-regional transfer channels from each outflow area to the inflow area are determined. This improves the applicability of the robot scheduling method in scenarios with a large number of designated areas, increases scheduling efficiency, and reduces resource consumption.
[0179] Optionally, the cross-regional transfer channels from each outflow area to the inflow area are determined, including the following specific steps:
[0180] Obtain the incremental value for each outflow region;
[0181] Based on the incremental values of each outflow area in ascending order, the inter-regional transfer channels between each outflow area and the adjacent inflow area are determined sequentially.
[0182] For inflow areas where no cross-regional transfer channel has been determined, the cross-regional transfer channel from the outflow area to the inflow area is determined based on the neighbor relationships of each area.
[0183] Determining cross-region scheduling strategies directly based on current and target robot distribution information presents certain challenges when dealing with large-scale, specific scenarios. For example, transferring robots from an outflow area to an inflow area where the two areas are geographically distant consumes significant resources. Therefore, it's advisable to transfer robots from adjacent areas of the inflow area whenever possible. Conversely, transferring two robots from an outflow area to an inflow area and then one robot from the inflow area back to the outflow area is a wasteful two-way transfer, thus avoiding transferring robots from the inflow area to the outflow area. Furthermore, if an outflow area has five robots, the maximum number of robots that can be transferred to other areas should not exceed five, meaning the maximum number of robots that can be transferred to other areas should not exceed the number of robots in the outflow area.
[0184] Therefore, under the above constraints, the robot target distribution is not necessarily the actual robot distribution after cross-region scheduling, such as... Figure 13 As shown, Figure 13 This diagram illustrates a robot scheduling method according to an embodiment of the present invention. A specified scenario includes three regions: Region A, Region B, and Region C. Region A has 2 robots deployed, Region B has 1 robot deployed, and Region C has 3 robots deployed. After ideal cross-region scheduling, the target robot distribution is: 0 robots deployed in Region A, 1 robot deployed in Region B, and 5 robots deployed in Region C. The actual cross-region scheduling involves: transferring 1 robot from Region A to Region B, and transferring 1 robot from Region B to Region C. After cross-region scheduling, the actual robot distribution is: 1 robot deployed in Region A, 1 robot deployed in Region B, and 4 robots deployed in Region C.
[0185] Regarding the aforementioned issue, determining the cross-regional transfer channel from the outflow area to the inflow area is a problem. In this embodiment of the invention, by obtaining the incremental values of each outflow area, and sequentially determining the cross-regional transfer channels from each outflow area to the adjacent inflow area according to the ascending order of the incremental values, the problem is solved by determining the cross-regional transfer channel from the outflow area to the inflow area via the transfer robot, based on the neighbor relationships of each area. The specific explanation is as follows:
[0186] The increment value for each outflow area represents the number of robots transferred from that outflow area to other areas. A negative increment value indicates that the area is an outflow area, a positive increment value indicates that the area is an inflow area, and an increment value of zero indicates that the area is a transfer area or a non-scheduled area. Non-scheduled areas are areas where no cross-area robot scheduling has occurred.
[0187] Figure 14 The diagram illustrates a robot increment value in a robot scheduling method according to an embodiment of the present invention.
[0188] right Figure 8 The left figure represents the current robot distribution information, and the right figure represents the robot target distribution information after cross-regional scheduling. This yields the robot increment value distribution for each region, as shown below. Figure 14 As shown in the diagram. Regions with an increment value of -1 represent outflow regions, where 1 robot needs to be transferred to another region; regions with an increment value of 1 represent inflow regions, where 1 robot needs to be transferred from another region; and regions with an increment value of 0 represent transfer regions and non-scheduled regions. Based on the ascending order of the increment values of each outflow region, the cross-regional transfer channels between each outflow region and its adjacent inflow region are determined sequentially, resulting in the cross-regional transfer channels between each outflow region and its adjacent inflow region, as shown below. Figure 15 As shown. Figure 15 This diagram illustrates another cross-regional transfer channel in a robot scheduling method according to an embodiment of the present invention. Directly adjacent outflow and inflow areas have cross-regional transfer channels. For inflow areas where no cross-regional transfer channel has been determined, a cross-regional transfer channel is determined based on the neighbor relationships of each area, allowing robots to be transferred from the outflow area to the inflow area via a transfer area. For example... Figure 16 As shown. Figure 16 This diagram illustrates another cross-regional transfer channel in a robot scheduling method according to an embodiment of the present invention. Figure 15 Based on the determination of the inter-regional transfer channels between adjacent outflow and inflow areas, the transfer areas are determined from the areas with an increment value of 0 according to the neighbor relationships of each area, so that the inflow and outflow areas for which no inter-regional transfer channels have been determined can obtain the corresponding inter-regional transfer channels.
[0189] Based on the neighbor relationships of each region, the cross-regional transfer channel from the outflow region to the inflow region via the transfer robot in the transfer area is determined. Specifically, based on the neighbor relationships of each region, the target region that is adjacent to both the outflow region and the inflow region is determined as the transfer region, thus obtaining the cross-regional transfer channel from the outflow region to the inflow region via the transfer robot in the transfer region. The target region is a region with an incremental value of zero.
[0190] For example, region 4 is the outflow region and region 2 is the inflow region. The target regions {region 1 and region 5} that are adjacent to both the outflow region and the inflow region are determined as the transfer regions, thus obtaining the cross-region transfer channels of region 4-region 1-region 2 and region 4-region 5-region 2.
[0191] The algorithm obtains the incremental values of each outflow region and determines the cross-regional transfer channels from each outflow region to the adjacent inflow region in ascending order of incremental values. For inflow regions where no cross-regional transfer channel is determined, the cross-regional transfer channel from the outflow region to the inflow region via the transfer area is determined based on the neighbor relationships of each region. This solves the problem of difficulty in determining cross-regional transfer channels due to the difference between the target robot distribution and the actual robot distribution under the constraints of a specified scenario, thus improving the applicability and efficiency of the robot scheduling method.
[0192] Optionally, for inflow areas where the cross-regional transfer channel is not determined, after determining the cross-regional transfer channel from the outflow area to the inflow area via the transfer area robot based on the neighbor relationships of each area, the following specific steps are also included:
[0193] If there is a target outflow area with more remaining robots than the preset number, then a cross-regional transfer channel is determined to randomly transfer robots from the target outflow area to an adjacent area.
[0194] Because the designated scenario is divided into multiple areas, there is an uneven distribution of these areas, resulting in an excessive number of robots in some areas. Even with the aforementioned cross-area scheduling, there are still too many robots, leading to an insufficient number of robots in other areas and underutilization of robot resources. Therefore, it is necessary to modify the cross-area scheduling strategy to obtain a cross-area transfer channel that can resolve the above extreme situation.
[0195] Remaining robots refer to robots that left the area but were transferred to other areas. The preset number is a threshold for the number of remaining robots set in advance for each area. If the number of remaining robots in the area is still too high when the preset number is reached, it is necessary to relocate the remaining robots across areas.
[0196] For example, the preset number is 6, area 1 is the outflow area with 9 robots deployed, 2 robots are transferred to other areas, and the remaining robots are 7, which is greater than the preset number. A cross-area transfer channel for randomly transferring robots from area 1 to adjacent areas is determined.
[0197] If there is a target outflow area with more remaining robots than the preset number, a cross-regional transfer channel is determined to randomly transfer robots from the target outflow area to adjacent areas. This ensures that there are not too many remaining robots in the target outflow area, thereby improving the utilization efficiency of robot resources in the specified scenario and improving scheduling efficiency.
[0198] Optionally, before using the cross-regional robot scheduling strategy to schedule the target robot in a specified scenario across regions, the following specific steps are also included:
[0199] Based on the robot cross-regional scheduling strategy and preset constraints, the target robot to be scheduled is determined.
[0200] In practical applications of a given scenario, besides considering the number of robots in each area, the urgency of the tasks to be executed must also be taken into account. In the above embodiments, the constraints considered during the cross-regional scheduling strategy determination phase are limited to ensure efficiency. However, during the cross-regional scheduling phase, more pre-defined constraints applicable to the specific application can be added. For example, an overall evaluation time can be set for all robots, only considering scheduling within that timeframe, or an individual evaluation time can be set for each robot, allowing scheduling only within its individual evaluation time after entering the inflow area. This prevents robots from being transferred to other inflow areas before completing sufficient tasks, thus avoiding excessive transfer time and impacting the execution efficiency of the tasks. Limiting the total number of robots mobilized is also crucial. Too many restrictions can lead to a significant difference between the actual robot distribution information after cross-regional scheduling and the target robot distribution information. This necessitates that the constraints be pre-set with specificity and balance to achieve the ideal cross-regional scheduling effect, ensuring that robot resources in the given scenario are rationally allocated and tasks are executed efficiently.
[0201] The preset constraints are constraints on robot scheduling set according to the actual application of the specified scenario. These include limits on the number of robots that can be scheduled across regions and time limits on the time that robots in each region can be scheduled across regions.
[0202] Based on the robot cross-regional scheduling strategy and preset constraints, the target robot to be scheduled is determined. Specifically, the robots in the outflow area are determined according to the robot cross-regional scheduling strategy, and the target robot to be scheduled is determined from the robots in the outflow area according to the preset constraints.
[0203] For example, the constraint is that the number of robots to be scheduled across regions is 2. According to the robot cross-region scheduling strategy: Region 1 - Region 2 - Region 3, the outflow region (Region 1) is determined to have 8 robots. According to the preset constraint, 2 target robots to be scheduled are determined from the 8 robots in the outflow region (Region 1).
[0204] Based on the robot cross-regional scheduling strategy and preset constraints, the target robot to be scheduled is determined. This allows subsequent cross-regional scheduling to better suit the actual application of the specified scenario, improving both task execution efficiency and the applicability of the robot scheduling method.
[0205] Optionally, step S202 includes the following specific steps:
[0206] The system calculates the total number of tasks to be executed in a specified scenario, the total number of robots, the total number of tasks to be executed in each area, and the current distribution information of robots in each area.
[0207] Calculate the global average number of tasks to be executed in the specified scenario based on the total number of tasks to be executed and the total number of robots in the specified scenario;
[0208] Based on the total number of tasks to be executed in each region and the current distribution information of robots, calculate the local average number of tasks to be executed in each region.
[0209] The total number of tasks to be executed in a specified scenario is the total number of tasks to be executed generated in the specified scenario. The total number of robots in a specified scenario is the total number of robots deployed in each area of the specified scenario. The total number of tasks to be executed in each area is the total number of tasks to be executed generated in each area. The current robot distribution information in each area is the current distribution information of robots in each area, including the current number of robots in each area.
[0210] Based on the total number of tasks to be executed and the total number of robots in the specified scenario, calculate the global average number of tasks to be executed in the specified scenario. Specifically, divide the total number of tasks to be executed in the specified scenario by the total number of robots to obtain the global average number of tasks to be executed in the specified scenario.
[0211] Based on the total number of tasks to be executed in each region and the current distribution of robots, the local average number of tasks to be executed in each region is calculated. Specifically, the total number of tasks to be executed in each region is divided by the current number of robots in each region to obtain the local average number of tasks to be executed in each region.
[0212] For example, the total number of tasks to be executed in a specified scenario is 2000, the total number of robots is 25, and there are 10 specified scenarios (Area 1, Area 2...Area 10). The total number of tasks to be executed in each area is (Area 1: 200; Area 2: 300...Area 10: 700), and the current number of robots in each area is (Area 1: 1; Area 2: 2...Area 10: 3). Dividing the total number of tasks to be executed in the specified scenario (2000) by the total number of robots (25) yields a global average number of tasks to be executed in the specified scenario of 80. For Area 2, the total number of tasks to be executed in Area 2 (300) divided by the current number of robots in Area 2 (2) yields a local average number of tasks to be executed in Area 2 of 150.
[0213] This study statistically analyzes the total number of pending tasks, the total number of robots, the total number of pending tasks in each region, and the current robot distribution information in each region for a specified scenario. Based on the total number of pending tasks and robots in the specified scenario, the global average number of pending tasks is calculated. Furthermore, based on the total number of pending tasks and the current robot distribution information in each region, the local average number of pending tasks in each region is calculated. This yields more accurate global and local average numbers of pending tasks, providing a more accurate data foundation for subsequent predictions of global task execution costs in the specified scenario.
[0214] Optionally, the total number of tasks to be executed in a specified scenario and the total number of tasks to be executed in each region can be calculated, including the following specific steps:
[0215] Retrieve attribute information for each task to be executed in a specified scenario;
[0216] Based on the attribute information of each task to be executed, determine the quantity coefficient of each task to be executed;
[0217] Based on the quantity coefficient of each pending task, the total number of pending tasks in the specified scenario and the total number of pending tasks in each region are calculated.
[0218] Since tasks to be executed generally have an execution priority order, it is necessary to determine the quantity coefficient of tasks to be executed based on their attribute information. When determining the cross-regional scheduling strategy, the total number of tasks to be executed in each region is adjusted so that the region is prioritized for cross-regional scheduling robots, ensuring that tasks with higher priority can be executed first.
[0219] The attribute information of a task to be performed is information that characterizes the attribute features of the task. For example, if the task to be performed is the transportation of first aid supplies, which has the highest execution priority, then the attribute information of the task to be performed is "transportation task - first aid supplies".
[0220] The quantity coefficient of the tasks to be executed is based on the execution priority of the tasks and a pre-set quantity coefficient. It can be a multi-level quantity coefficient. For example, if the task to be executed has the highest execution priority, its quantity coefficient is 2; if the task to be executed has a high execution priority, its quantity coefficient is 1.5; and if the task to be executed has a medium execution priority, its quantity coefficient is 1.
[0221] Based on the attribute information of each task to be executed, the quantity coefficient of each task to be executed is determined. Specifically, based on the attribute information of each task to be executed, the execution priority of each task to be executed is determined, and based on the execution priority of each task to be executed, the quantity coefficient of each task to be executed is determined.
[0222] For example, the attribute information of each task to be executed in a specified scenario is obtained (Task 1: "Transportation task - First aid supplies"; Task 2: "Transportation task - Food"... Task 2000: "Transportation task - Daily necessities"). Based on the attribute information of each task to be executed, the execution priority of each task to be executed is determined (Task 1: Highest; Task 2: Medium... Task 2000: Medium). Based on the execution priority of each task to be executed, the quantity coefficient of each task to be executed is determined (Task 1: 2; Task 2: 1... Task 2000: 1). Based on the quantity coefficient of each task to be executed, the total number of tasks to be executed in the specified scenario and the total number of tasks to be executed in each region are calculated.
[0223] The system acquires attribute information for each task to be executed in a specified scenario. Based on this attribute information, it determines the quantity coefficient for each task and, based on these coefficients, calculates the total number of tasks to be executed in the specified scenario and the total number of tasks to be executed in each region. This method avoids uniformly counting all tasks, eliminates the uniqueness of individual tasks, and prevents situations where a region containing a task with a high execution priority is not assigned a corresponding cross-regional scheduling robot, thus improving execution efficiency.
[0224] With the above Figure 17 Corresponding to the robot scheduling method, Figure 17 The flowchart illustrates a task execution method according to an embodiment of the present invention, applied to a robot, and specifically includes the following steps:
[0225] Step S302: Obtain first binding information, first position information of the task to be executed, and current position information of the robot, wherein the first binding information includes the binding relationship between the robot and the second position information of the currently executed task.
[0226] In this embodiment of the invention, the executing entity is a robot, and the application scenario is a designated scenario including multiple areas. In this embodiment, robots are scheduled to execute tasks based on the number of tasks generated in each area of the designated scenario. For robot scheduling within an area, the robot needs to be bound to a specific location within that area before executing the task to be performed at that location. However, when using this mechanism of binding a robot to a specific location before executing the task, the following phenomena are prone to occur: Figure 18 As shown. Figure 18 This diagram illustrates a prior art method for remote robot scheduling. A first robot is currently at a first position, where there is no task to be performed. It is determined that a second position has a task to be performed. The first robot is then bound to the second position, and it begins its journey along a path to the second position to execute the task. Meanwhile, a task arises at the first position, and the second robot is remotely scheduled and bound to the first position to execute that task. Based on this, the following phenomena occur: Figure 19 As shown. Figure 19 This diagram illustrates a robot deadlock in the prior art. A first robot, currently at a first position, determines that a task needs to be executed at a second position. The first robot is then bound to the second position, and begins moving along a path to execute the task. During the first robot's movement, a task arises at the first position that needs to be executed, and the first robot is bound to the second robot. The second robot then moves along a path to the first position to execute the task. Since the first robot has not yet left the first position, the arrival of the second robot at the first position results in a deadlock between the two robots. Both of these phenomena severely impact the execution efficiency of the task and increase its execution cost.
[0227] The currently executing task is the task at the second location currently bound to the robot. The task to be executed is the task at the first location. The first and second locations are two different locations within a specified scene area, which can be aisles, shelves, sorting stations, counters, kitchens, etc., and are not limited here.
[0228] The first binding information represents the binding relationship between the robot and the second position information, including: robot-related information and second position information. The robot-related information represents robot-related attributes, including the robot's identifier, motion parameters, and task execution parameters. The second position information is the information of the second position where the current task is being performed; it can be the coordinates or the identifier of the second position, without limitation. The first position information of the task to be performed is the information of the first position where the task to be performed is located; it can be the coordinates or the identifier of the first position, without limitation. The robot's current position information is the information of the robot's current position; it can be the coordinates or the identifier of the current position, without limitation.
[0229] The first binding information, the first location information of the task to be executed, and the current location information of the robot are obtained. Specifically, the first binding information, the first location information of the task to be executed, and the current location information of the robot are obtained from the robot scheduling terminal.
[0230] For example, the robot obtains the first binding information {coordinates of the second position (100, 60)}, the first position information of the task to be executed {coordinates of the first position (180, 60)}, and the current position information of the robot {coordinates of the current position (150, 90)} from the robot scheduling terminal.
[0231] By obtaining the first binding information, the foundation is laid for the subsequent parsing to obtain the second position information. Obtaining the first position information of the task to be executed and the current position information of the robot provides reference information for the subsequent calculation of the first distance and the second distance.
[0232] Step S304: Parse the first binding information to obtain the second location information.
[0233] The second location information is obtained by parsing the first binding information. Specifically, a pre-defined parsing algorithm is used to parse the first binding information and obtain the second location information. The pre-defined parsing algorithm can be a keyword retrieval algorithm, a coordinate parsing algorithm, etc.
[0234] For example, the first binding information is parsed using a pre-defined coordinate parsing algorithm to obtain the second position information {coordinates of the second position (100, 60)}.
[0235] The second location information is obtained by parsing the first binding information, which provides reference information for the subsequent calculation of the first distance and the second distance.
[0236] Step S306: Calculate the first distance between the robot and the task to be performed, and the second distance between the robot and the task currently being performed, based on the first position information, the second position information, and the current position information.
[0237] Based on the first position information, the second position information, and the current position information, calculate the first distance between the robot and the task to be performed, and the second distance between the robot and the currently performed task. Specifically, based on the first position information and the current position information, determine the coordinates of the first position and the coordinates of the current position, calculate the difference between the coordinates, and use it as the first distance between the robot and the task to be performed. Based on the second position information and the current position information, determine the coordinates of the second position and the coordinates of the current position, calculate the difference between the coordinates, and use it as the second distance between the robot and the currently performed task.
[0238] For example, based on the first position information and the current position information, the coordinates of the first position (180, 60) and the coordinates of the current position (150, 90) are determined, and the difference between the coordinates is calculated. As the first distance between the robot and the task to be performed, the coordinates of the second position (100, 60) and the coordinates of the current position (150, 90) are determined based on the second position information and the current position information, and the difference between the coordinates is calculated. This serves as the second distance between the robot and the task it is currently performing.
[0239] Step S308: If the first distance is less than the second distance, switch to execute the task to be executed.
[0240] If the first distance is less than the second distance, switch to execute the task to be executed. Specifically, if the first distance is less than the second distance, switch the second position information of the currently executed task to the first position information of the task to be executed, and then execute the task to be executed.
[0241] For example, the first distance Less than the second distance Switch the second position information of the currently executing task to the first position information of the task to be executed, and execute the task to be executed in the first position.
[0242] Optionally, after switching to execute the task to be executed, the following specific steps are also included:
[0243] Bind the robot to the task to be performed, and update the first binding information based on the binding result.
[0244] In this embodiment of the invention, first binding information, first location information of the task to be executed, and current location information of the robot are obtained. The first binding information includes the binding relationship between the robot and the currently executed task's second location information. The first binding information is parsed to obtain the second location information. Based on the first location information, the second location information, and the current location information, a first distance and a second distance between the robot and the task to be executed are calculated. If the first distance is less than the second distance, the task to be executed is switched. By comparing the first distance between the robot and the task to be executed and the second distance between the robot and the currently executed task, if the first distance is less than the second distance, the currently executed task is unbound and rebound to the task to be executed. Prioritizing the execution of tasks with closer distances avoids long-distance scheduling of other robots, thus preventing deadlocks, improving the execution efficiency of the tasks to be executed, and reducing the execution cost of the tasks to be executed.
[0245] Optionally, obtaining the robot's current position information in step S302 includes the following specific steps:
[0246] Obtain the second binding information, wherein the second binding information includes the binding relationship between the robot and the robot's current position information;
[0247] Parse the second binding information to obtain the current location information.
[0248] The second binding information represents the binding relationship between the robot and its current location, including: robot-related information and current location information. Robot-related information represents robot-related attributes, including the robot's identifier, motion parameters, and task execution parameters. The robot's current location information is the robot's current position, which can be either its coordinates or its identifier; no specific limitation is made here.
[0249] The second binding information is obtained by obtaining it from the robot scheduler.
[0250] The current location information is obtained by parsing the second binding information. Specifically, a pre-defined parsing algorithm is used to parse the first binding information to obtain the second location information. The pre-defined parsing algorithm can be a keyword retrieval algorithm, a coordinate parsing algorithm, etc.
[0251] For example, the second binding information is obtained from the robot scheduling terminal, and the first binding information is parsed using a pre-set keyword retrieval algorithm to obtain the second location information {the identifier of the second location "A3 shelf"}.
[0252] Obtain the second binding information, wherein the second binding information includes the binding relationship between the robot and the robot's current position information;
[0253] Parsing the second binding information yields the current location information, providing reference information for subsequent calculations of the first and second distances.
[0254] Optionally, the method further includes the following specific steps:
[0255] Identify whether the robot's current position information has changed;
[0256] If a change occurs, the second binding information is unbound, and the robot and the changed current location information are rebound to obtain the updated second binding information.
[0257] Once the robot leaves a certain location within the area, it needs to be unbound from the second binding information before it can be bound to other location information.
[0258] For example, when the robot's current position changes from (150, 90) to (120, 90), the robot's current position information is identified as having changed. The second binding information is then unbound, and the robot and the changed current position information (120, 90) are rebound to obtain the updated second binding information {current position information (120, 90)}.
[0259] The system identifies whether the robot's current position information has changed. If it has, the second binding information is unbound, and the robot is rebound to the changed current position information to obtain updated second binding information. By unbinding the second binding information and rebinding it based on the changed current position information, the accuracy of the calculated first and second distances is ensured, providing data support for accurately switching between tasks and guaranteeing the execution efficiency of the tasks.
[0260] Optionally, the first location information is the identifier of the first alleyway where the task to be performed is located, the second location information is the identifier of the second alleyway where the task is currently being performed, and the current location information is the identifier of the third alleyway where the robot is located;
[0261] Correspondingly, step S306 includes the following specific steps:
[0262] Calculate the first distance between the robot and the task to be performed based on the first and third lane markers;
[0263] Based on the second and third lane markers, calculate the second distance between the robot and the current task being performed.
[0264] The first lane marker indicates the lane where the task to be performed is located; the second lane marker indicates the lane where the task is currently being performed; and the third lane marker indicates the lane where the robot is located.
[0265] Based on the first and third lane markers, the first distance between the robot and the task to be performed is calculated. Specifically, based on the first and third lane markers, the distance between the first and third lanes is determined, and based on the distance between the first and third lanes, the first distance between the robot and the task to be performed is calculated.
[0266] Based on the second and third lane markers, the second distance between the robot and the currently performing task is calculated. Specifically, the distance between the second and third lanes is determined based on the second and third lane markers, and the second distance between the robot and the task to be performed is calculated based on the distance between the second and third lanes.
[0267] For example, based on the first lane identifier and the third lane identifier, the distance between the first lane and the third lane is determined to be 20. Based on the distance between the first lane and the third lane 20, the first distance 20 between the robot and the task to be performed is calculated. Based on the second lane identifier and the third lane identifier, the distance between the second lane and the third lane is determined to be 30. Based on the distance between the second lane and the third lane 30, the second distance 30 between the robot and the task to be performed is calculated.
[0268] Based on the first and third alleyway markers, the first distance between the robot and the task to be executed is calculated. Based on the second and third alleyway markers, the second distance between the robot and the currently executing task is calculated. For this alleyway pattern, calculating the first and second distances using the alleyway markers allows for the unbinding of the currently executing task and rebinding it with the task to be executed if the first distance is less than the second distance. This prioritizes executing the task to be executed that is closer, avoiding long-distance scheduling of other robots and thus preventing deadlocks. This improves the execution efficiency and reduces the execution cost of tasks to be executed within the alleyways.
[0269] Optionally, step S308 includes the following specific steps:
[0270] If the first distance is less than the second distance, identify whether the first lane marker and the third lane marker are the same;
[0271] If they are the same, switch to execute the pending task.
[0272] In this embodiment of the invention, the first position and the second position are tunnel patterns, targeting Figure 18 and Figure 19 The long-distance scheduling and deadlock problems caused by binding the robot only once to the first or second lane can actually be solved by using a double lane binding mechanism. The double binding mechanism means that when assigning a lane to the robot, it adopts both pre-binding (binding to the first lane identifier of the currently executing task) and actual binding (prioritizing binding to the lane identifier that is closer).
[0273] Figure 20 The diagram illustrates a tunnel task execution method according to an embodiment of the present invention.
[0274] For use Figure 19 The first robot, located at the first position (first alleyway), is assigned a task at the second position (second alleyway). Therefore, it is bound to the second position (second alleyway) identifier where the task is currently being executed. However, its actual position is the first position (first alleyway) where the task to be executed is located, so it is also actually bound to the first position (first alleyway) identifier. Thus, whenever a task to be executed arises within the first position (first alleyway), it can be assigned to the first robot for execution. However, for the actual binding, as long as the robot is within the alleyway cell (i.e., the first position (first alleyway) and the third alleyway are the same alleyway), the first position (first alleyway) identifier and the robot are actually bound. Only by leaving the first position (first alleyway) can the actual binding between the first position (first alleyway) identifier and the first robot be unbound. Through this mechanism, when assigning tasks, the robot unbinds itself from the pre-bound second position (second alleyway) identifier and rebinds itself to the first position (first alleyway) identifier. In simple terms, if the first robot has not actually left the current alleyway, it can detect the third alleyway where the first robot is located, i.e., the first position (first alleyway), where a task to be executed has been generated. It can be unbound from the pre-defined second position (second alleyway) marker and prioritize the execution of the task to be executed in the first position (first alleyway), thereby reducing the possibility of deadlock.
[0275] Corresponding to Figure 20 In other words, through the aforementioned mechanism, after binding the second location (second alleyway) identifier to the first robot, but the first robot is in the first alleyway (meaning the first and third alleyways are the same alleyway, and the first alleyway identifier is the same as the third alleyway identifier), the first distance is always less than the second distance. Therefore, before leaving the first location (first alleyway), when the first location (first alleyway) generates tasks to be executed, the first robot prioritizes binding to the first location (first alleyway) identifier. This allows the second location (second alleyway) identifier to be bound to another second robot, preventing a deadlock between the second robot and the first robot after the second robot enters the first location (first alleyway).
[0276] If the first distance is less than the second distance, the system checks whether the first and third lane markers are the same. If they are the same, it switches to execute the pending task. This avoids deadlocks within the lanes, improves the execution efficiency of pending tasks within the lanes, and reduces the execution cost of pending tasks within the lanes.
[0277] Optionally, before switching the execution of the task to be executed in step S308, the following specific steps are also included:
[0278] Based on the current location information and the second location information, determine whether the currently executed task is a cross-region task in the specified scenario, wherein the specified scenario is pre-divided into multiple regions;
[0279] Correspondingly, switching to the pending task involves the following specific steps:
[0280] If the currently executing task is not a cross-region task, switch to executing the pending task.
[0281] Since this solution is applied to task execution within a specified area, it is necessary to avoid scheduling robots to execute other tasks outside this area, thereby reducing the execution efficiency of the tasks and increasing their execution cost.
[0282] Based on the current location information and the second location information, determine whether the currently executed task is a cross-regional task in the specified scenario. Specifically, based on the current location information and the second location information, determine whether the current location and the second location belong to the same region to determine whether the currently executed task is a cross-regional task in the specified scenario.
[0283] For example, in multiple regions of a specified scenario, this region includes 20 locations (location 1 to location 20). Based on the current location information (current location identifier "location 1") and the second location information (second location identifier "location 2"), by identifying that "location 1" and "location 2" are in the same region, it is determined that the current location and the second location belong to the same region. It is then determined that the currently executed task is not a cross-region task in the specified scenario, and the task to be executed is switched to be executed.
[0284] Based on the current location information and the second location information, it is determined whether the currently executing task is a cross-region task within a specified scenario. The specified scenario is pre-divided into multiple regions. If the currently executing task is not a cross-region task, the execution of the pending task is switched. This ensures both the execution efficiency and the execution cost of the pending task.
[0285] Optionally, after determining whether the currently executed task is a cross-regional task in the specified scenario based on the current location information and the second location information, the following specific steps are also included:
[0286] If the current task is a cross-regional task, continue executing the current task.
[0287] For example, in multiple regions of a specified scenario, this region includes 20 locations (location 1 to location 20). Based on the current location information (current location identifier "location 1") and the second location information (second location identifier "location 109"), by identifying that "location 1" and "location 109" are not in the same region, it is determined that the current location and the second location do not belong to the same region. It is then determined that the currently executed task is a cross-region task in the specified scenario, and the task to be executed is switched.
[0288] Based on the current location information and the second location information, it is determined whether the currently executing task is a cross-region task within a specified scenario. The specified scenario is pre-divided into multiple regions. If the currently executing task is a cross-region task, it continues execution. This ensures both the execution efficiency and the execution cost of the tasks to be executed.
[0289] Optionally, before switching the execution of the task to be executed in step S308, the following specific steps are also included:
[0290] Get the number of switches corresponding to the currently executing task, where the number of switches is a statistical result of the historical number of switches of the currently executing task;
[0291] Switching between pending tasks includes:
[0292] If the number of switching attempts is less than or equal to a preset threshold, switch to execute the pending task.
[0293] Because the aforementioned dual-binding and rebinding mechanisms tend to cause robots already in the first or second position to remain in their current position for an extended period to complete tasks generated in the first or second position, the scheduling distance between robots is relatively short. Consequently, tasks that are farther away cannot be executed by the robot. To avoid this phenomenon, it is necessary to obtain the statistical results of the historical number of times the currently executing task has been switched and compare them with a preset number threshold. If the number of times exceeds the preset number threshold, the currently executing task continues to be executed. If the first distance is less than the preset distance threshold, the number of switches is reset to ensure that tasks that are farther away can also be executed by the robot.
[0294] To obtain the number of switches corresponding to the currently executing task, you can either obtain the number of switches corresponding to the currently executing task recorded by the robot itself, or you can obtain the number of switches corresponding to the currently executing task from the robot scheduler. There is no limitation here.
[0295] For example, if the number of switching times corresponding to the currently executed task recorded by the robot itself is 5, and the preset number threshold is 10, and the number of switching times is 5, which is less than the preset number threshold of 10, then switch to execute the task to be executed.
[0296] The system retrieves the number of switches corresponding to the currently executing task. This number is a statistical result of the historical number of switches for the currently executing task. If the number of switches is less than or equal to a preset threshold, the system switches to execute the next task. This ensures that the robot prioritizes executing the nearest task at its current location, improving the execution efficiency and reducing the execution cost of the tasks.
[0297] Optionally, after obtaining the number of switches corresponding to the currently executing task, the following specific steps are also included:
[0298] If the number of switching attempts exceeds a preset threshold, continue executing the currently executing task, and if the first distance is less than a preset distance threshold, reset the number of switching attempts.
[0299] For example, the robot itself records that the number of switching corresponding to the current task being executed is 11, and the preset number threshold is 10. If the number of switching is 11, which is greater than the preset number threshold of 10, the robot continues to execute the current task. If the first distance is less than the preset distance threshold, the number of switching is reset to 11.
[0300] Figure 21 This diagram illustrates a task switching method in a task execution method according to an embodiment of the present invention. Figure 21 As shown, for tasks to be executed at a third location that is relatively far away, the robot is bound to the information of the third location and needs to execute the task to be executed at the third location. If the number of switching exceeds the preset threshold, the robot continues to execute the task to be executed at the third location instead of switching to execute the task to be executed at the current location.
[0301] The system retrieves the number of switches corresponding to the currently executing task. This number is a statistical result of the historical number of switches for the currently executing task. If the number of switches is less than or equal to a preset threshold, the system switches to execute the next task. This ensures that the robot prioritizes executing the nearest task at its current location, guaranteeing both the efficiency and cost of task execution.
[0302] The following is in conjunction with the appendix Figure 22 Taking the robot scheduling method provided by this invention as an example in a warehousing scenario, the robot scheduling method will be further explained. Figure 22 This diagram illustrates a robot scheduling method for warehousing scenarios according to an embodiment of the present invention, which specifically includes the following steps:
[0303] Step S402: Obtain the attribute information of each task to be executed in the warehousing scenario;
[0304] Step S404: Determine the quantity coefficient of each task to be executed based on the attribute information of each task to be executed;
[0305] Step S406: Based on the quantity coefficient of each task to be executed, calculate the total number of tasks to be executed in the warehousing scenario and the total number of tasks to be executed in each region;
[0306] Step S408: Calculate the total number of tasks executed and the total number of robots in the warehousing scenario;
[0307] Step S410: Calculate the global average number of tasks to be executed in the warehousing scenario based on the total number of tasks to be executed and the total number of robots.
[0308] Step S412: Calculate the local average number of tasks to be executed in each region based on the total number of tasks to be executed in each region and the current distribution information of the robots;
[0309] Step S414: Based on the global average number of tasks to be executed and the local average number of tasks to be executed in each region, predict the object idle information of each region.
[0310] Step S416: Calculate the global task execution loss of the warehousing scenario based on the object idle information of each area;
[0311] Step S418: Determine the current robot distribution information in each area of the warehouse scenario, and the current local average number of tasks to be executed in each area;
[0312] Step S420: Based on the current robot distribution information of each region, perform cross-regional pre-scheduling of robots in each region, and calculate the target local average number of tasks to be executed in each region after cross-regional pre-scheduling;
[0313] Step S422: Based on the global average number of tasks to be executed, the current local average number of tasks to be executed in each region, and the target local average number of tasks to be executed, predict the current global task execution loss and the target global task execution loss in the warehousing scenario;
[0314] Step S424: Compare the execution cost of the target global task with the execution cost of the current global task;
[0315] Step S426: If the execution cost of the target global task is lower than the execution cost of the current global task, determine the robot cross-region scheduling strategy corresponding to the cross-region pre-scheduling;
[0316] Step S428: Determine the robot target distribution information for each region corresponding to the robot cross-regional scheduling strategy;
[0317] Step S430: Calculate the incremental information for each region based on the current robot distribution information and robot target distribution information for each region;
[0318] Step S432: Based on the incremental information of each region, determine the outflow and inflow regions in each region;
[0319] Step S434: Construct an analysis model based on each outflow area and inflow area. The analysis model includes the first resource loss of transferring robots from each outflow area to the adjacent inflow area, and the second resource loss of transferring robots in the transfer area. The transfer area is the area between the outflow area and the inflow area used for transferring robots.
[0320] Step S436: Based on the analysis model, use the preset resource loss optimization algorithm to determine the cross-regional transfer channels from each outflow area to the inflow area;
[0321] Step S438: Based on the cross-regional transfer channel, perform cross-regional scheduling of the target robot in the warehousing scenario;
[0322] Step S440: Obtain the first binding information and the first lane identifier of the task to be executed;
[0323] The first binding information includes the binding relationship between the robot and the second lane identifier currently performing the task.
[0324] Step S442: Obtain the second binding information;
[0325] The second binding information includes the binding relationship between the robot and the robot's third lane identifier.
[0326] Step S444: Parse the second binding information to obtain the third lane identifier;
[0327] Step S446: Calculate the first distance between the robot and the task to be performed based on the first lane marker and the third lane marker;
[0328] Step S448: Calculate the second distance between the robot and the currently performing task based on the second and third lane markers;
[0329] Step S450: If the first distance is less than the second distance, identify whether the first lane marker and the third lane marker are the same;
[0330] Step S452: If they are the same, switch to execute the task to be executed.
[0331] In this embodiment of the invention, the global task execution loss of a specified scenario is predicted by using the global average number of tasks to be executed and the local average number of tasks to be executed. This yields the loss value when the robots execute tasks under the current allocation in each region, which is then used as reference data. Aiming for a more ideal robot distribution in each region, a corresponding cross-regional robot scheduling strategy is derived, fully utilizing robot resources and improving task execution efficiency. By comparing the first distance between the robot and the task to be executed and the second distance between the robot and the currently executing task, if the first distance is less than the second distance, the currently executing task is unbound and rebound to the task to be executed, prioritizing the execution of tasks closer in distance. This avoids long-distance scheduling of other robots, preventing deadlock problems, improving the execution efficiency of the tasks to be executed, and reducing the execution cost of the tasks to be executed.
[0332] Corresponding to the above method embodiments, the present invention also provides embodiments of a robot scheduling device. Figure 23 A schematic diagram of a robot scheduling device according to an embodiment of the present invention is shown. Figure 23 As shown, the device includes:
[0333] The acquisition module 502 is configured to acquire the global average number of tasks to be executed in a specified scenario, and the local average number of tasks to be executed in each region, wherein the specified scenario is pre-divided into multiple regions;
[0334] The prediction module 504 is configured to predict the global task execution loss of a specified scenario based on the global average number of tasks to be executed and the local average number of tasks to be executed in each region.
[0335] Module 506 is configured to determine the robot's cross-regional scheduling strategy based on the global task execution loss.
[0336] The scheduling module 508 is configured to use a cross-regional robot scheduling strategy to schedule target robots in a specified scenario across regions.
[0337] Optionally, the prediction module 504 is further configured as follows:
[0338] Based on the global average number of tasks to be executed and the local average number of tasks to be executed in each region, predict the object idle information of each region.
[0339] Calculate the global task execution overhead for a specified scenario based on the object idle information in each region.
[0340] Optionally, the determining module 506 is further configured as follows:
[0341] With the global task execution loss as the optimization objective, a cross-regional robot scheduling strategy is determined.
[0342] Optionally, the determining module 506 is further configured as follows:
[0343] Determine the current robot distribution information and the current local average number of tasks to be executed in each region of the specified scenario; based on the current robot distribution information, perform cross-regional pre-scheduling of robots in each region, and calculate the target local average number of tasks to be executed in each region after cross-regional pre-scheduling; based on the global average number of tasks to be executed, the current local average number of tasks to be executed in each region, and the target local average number of tasks to be executed, predict the current global task execution loss and the target global task execution loss in the specified scenario; compare the target global task execution loss with the current global task execution loss; if the target global task execution loss is lower than the current global task execution loss, determine the robot cross-regional scheduling strategy corresponding to the cross-regional pre-scheduling.
[0344] Optionally, the scheduling module 508 is further configured as follows:
[0345] Determine the current robot distribution information in each area of the specified scenario, as well as the robot target distribution information in each area corresponding to the robot cross-area scheduling strategy; calculate the incremental information of each area based on the current robot distribution information and robot target distribution information of each area; determine the outflow area and inflow area in each area based on the incremental information of each area; determine the cross-area transfer channel from each outflow area to the inflow area; and perform cross-area scheduling of the target robots in the specified scenario based on the cross-area transfer channel.
[0346] Optionally, the scheduling module 508 is further configured as follows:
[0347] Based on each outflow and inflow area, an analysis model is constructed. The analysis model includes the first resource loss of transferring robots from each outflow area to the adjacent inflow area, and the second resource loss of transferring robots in the transfer area. The transfer area is the area between the outflow area and the inflow area used for transferring robots. Based on the analysis model, a preset resource loss optimization algorithm is used to determine the cross-regional transfer channel from each outflow area to the inflow area.
[0348] Optionally, the scheduling module 508 is further configured as follows:
[0349] Obtain the incremental value of each outflow area; determine the cross-regional transfer channel between each outflow area and the adjacent inflow area in order of the incremental value of each outflow area from smallest to largest; for inflow areas where no cross-regional transfer channel has been determined, determine the cross-regional transfer channel from the outflow area to the inflow area via the transfer robot in the transfer area based on the neighbor relationship of each area.
[0350] Optionally, the device further includes:
[0351] The cross-regional transfer channel determination module is configured to determine a cross-regional transfer channel for randomly transferring robots from the target outflow area to an adjacent area if there is a target outflow area with more than a preset number of remaining robots.
[0352] Optionally, the device further includes:
[0353] The target robot determination module is configured to determine the target robot to be scheduled based on the robot cross-regional scheduling strategy and preset constraints.
[0354] Optionally, the acquisition module 502 is further configured to: count the total number of tasks to be executed in the specified scenario, the total number of robots, the total number of tasks to be executed in each region, and the current distribution information of robots in each region; calculate the global average number of tasks to be executed in the specified scenario based on the total number of tasks to be executed and the total number of robots in the specified scenario; and calculate the local average number of tasks to be executed in each region based on the total number of tasks to be executed and the current distribution information of robots in each region.
[0355] Optionally, the acquisition module 502 is further configured to: acquire attribute information of each task to be executed in the specified scenario; determine the quantity coefficient of each task to be executed based on the attribute information of each task to be executed; and calculate the total number of tasks to be executed in the specified scenario and the total number of tasks to be executed in each region based on the quantity coefficient of each task to be executed.
[0356] In this embodiment of the invention, by obtaining the global average number of tasks to be executed in a specified scenario and the local average number of tasks to be executed in each region, the global task execution loss of the specified scenario is predicted based on the global average number of tasks to be executed and the local average number of tasks to be executed in each region. Based on the global task execution loss, a robot cross-region scheduling strategy is determined, and the target robot in the specified scenario is scheduled across regions using the robot cross-region scheduling strategy. By predicting the global task execution loss of the specified scenario using the global average number of tasks to be executed and the local average number of tasks to be executed, the loss value when the robot executes the tasks under the current allocation of tasks to be executed in each region is obtained. This loss value is then used as reference data to obtain a corresponding robot cross-region scheduling strategy with a more ideal robot distribution in each region as the target, so as to make full use of robot resources and improve task execution efficiency.
[0357] The above is a schematic scheme of a robot scheduling device according to this embodiment. It should be noted that the technical solution of this robot scheduling device and the technical solution of the robot scheduling method described above belong to the same concept. Details not described in detail in the technical solution of the robot scheduling device can be found in the description of the technical solution of the robot scheduling method described above. Furthermore, the components in the device embodiment should be understood as functional modules necessary to implement each step of the program flow or each step of the method; these functional modules are not actual functional divisions or separations. A device claim defined by such a set of functional modules should be understood as a functional module architecture that primarily implements the solution through the computer program described in the specification, and not as a physical device that primarily implements the solution through hardware.
[0358] Figure 24 A structural block diagram of a computing device 600 according to an embodiment of the present invention is shown. The components of the computing device 600 include, but are not limited to, a memory 610 and a processor 620. The processor 620 is connected to the memory 610 via a bus 630, and a database 650 is used to store data.
[0359] The computing device 600 also includes an access device 640, which enables the computing device 600 to communicate via one or more networks 660. Examples of these networks include Public Switched Telephone Network (PSTN), Local Area Network (LAN), Wide Area Network (WAN), Personal Area Network (PAN), or combinations of communication networks such as the Internet. The access device 640 may include one or more of any type of wired or wireless network interface (e.g., a Network Interface Controller (NIC)), such as an IEEE 802.11 Wireless Local Area Network (WLAN) wireless interface, a Wi-MAX (World Interoperability for Microwave Access) interface, an Ethernet interface, a Universal Serial Bus (USB) interface, a cellular network interface, a Bluetooth interface, a Near Field Communication (NFC) interface, and so on.
[0360] In one embodiment of the present invention, the above-described components of the computing device 600 and Figure 24 Other components, not shown, can also be connected to each other, for example, via a bus. It should be understood that... Figure 24 The illustrated block diagram of the computing device is for illustrative purposes only and is not intended to limit the scope of the invention. Those skilled in the art can add or replace other components as needed.
[0361] The computing device 600 can be any type of stationary or mobile computing device, including mobile computers or mobile computing devices (e.g., tablet computers, personal digital assistants, laptop computers, notebook computers, netbooks, etc.), mobile phones (e.g., smartphones), wearable computing devices (e.g., smartwatches, smart glasses, etc.) or other types of mobile devices, or stationary computing devices such as desktop computers or PCs (Personal Computers). The computing device 600 can also be a mobile or stationary server.
[0362] The processor 620 is used to execute computer-executable instructions of the robot scheduling method.
[0363] The above is an illustrative scheme of a computing device according to this embodiment. It should be noted that the technical solution of this computing device and the technical solution of the robot scheduling method described above belong to the same concept. For details not described in detail in the technical solution of the computing device, please refer to the description of the technical solution of the robot scheduling method described above.
[0364] An embodiment of the present invention also provides a computer-readable storage medium storing computer instructions that, when executed by a processor, are used for a robot scheduling method.
[0365] The above is an illustrative scheme of a computer-readable storage medium according to this embodiment. It should be noted that the technical solution of this storage medium belongs to the same concept as the technical solution of the robot scheduling method described above. For details not described in detail in the technical solution of the storage medium, please refer to the description of the technical solution of the robot scheduling method described above.
[0366] The computer instructions include computer program code, which may be in the form of source code, object code, executable file, or some intermediate form. The computer-readable medium may include: any entity or device capable of carrying the computer program code, recording media, USB flash drive, portable hard drive, magnetic disk, optical disk, computer memory, read-only memory (ROM), random access memory (RAM), electrical carrier signals, telecommunication signals, and software distribution media, etc.
[0367] An embodiment of the present invention also provides a chip that stores a computer program, which, when executed by the chip, implements the steps of the robot scheduling method.
[0368] It should be noted that, for the sake of simplicity, the foregoing method embodiments are all described as a series of actions. However, those skilled in the art should understand that the present invention is not limited to the described order of actions, because according to the present invention, some steps can be performed in other orders or simultaneously. Furthermore, those skilled in the art should also understand that the embodiments described in the specification are preferred embodiments, and the actions and modules involved are not necessarily essential to the present invention.
[0369] In the above embodiments, the descriptions of each embodiment have different focuses. For parts not described in detail in a certain embodiment, please refer to the relevant descriptions of other embodiments.
[0370] The preferred embodiments of the present invention disclosed above are merely illustrative of the invention. The optional embodiments do not exhaustively describe all details, nor do they limit the invention to the specific implementations described. Clearly, many modifications and variations can be made based on the content of the present invention. These embodiments have been selected and specifically described to better explain the principles and practical applications of the invention, thereby enabling those skilled in the art to better understand and utilize the invention. The invention is limited only by the claims and their full scope and equivalents.< / innerregion>
Claims
1. A robot scheduling method, characterized in that, include: Obtain the global average number of tasks to be executed in a specified scenario, and the local average number of tasks to be executed in each region, wherein the specified scenario is pre-divided into multiple regions; Based on the global average number of tasks to be executed and the local average number of tasks to be executed in each region, the global task execution loss of the specified scenario is predicted, wherein the global task execution loss reflects the efficiency difference in task execution under different robot distributions and ideal distributions in the specified scenario. Determine the current robot distribution information in each region of the specified scenario, as well as the current local average number of tasks to be executed in each region; Based on the current robot distribution information of each region, cross-regional pre-scheduling is performed on the robots in each region, and the target local average number of tasks to be executed in each region is calculated after the cross-regional pre-scheduling. Based on the global average number of tasks to be executed, the current local average number of tasks to be executed in each region, and the target local average number of tasks to be executed, predict the current global task execution loss and the target global task execution loss for the specified scenario; Compare the execution cost of the target global task with the execution cost of the current global task; If the execution cost of the target global task is lower than the execution cost of the current global task, determine the robot cross-region scheduling strategy corresponding to the cross-region pre-scheduling. The cross-regional scheduling strategy for robots is used to schedule target robots in the specified scenario across regions.
2. The method according to claim 1, characterized in that, The step of predicting the global task execution loss for the specified scenario based on the global average number of tasks to be executed and the local average number of tasks to be executed in each region includes: Based on the global average number of tasks to be executed and the local average number of tasks to be executed in each region, predict the object idle information of each region. Based on the object idle information of each region, calculate the global task execution overhead of the specified scenario.
3. The method according to claim 1 or 2, characterized in that, The step of using the robot cross-region scheduling strategy to perform cross-region scheduling of the target robot in the specified scenario includes: Determine the current robot distribution information in each area of the specified scenario, and the robot target distribution information in each area corresponding to the robot cross-area scheduling strategy; Based on the current robot distribution information and robot target distribution information of each region, calculate the incremental information of each region; Based on the incremental information of each region, the outflow region and the inflow region in each region are determined; Determine the inter-regional transfer channels from each of the aforementioned outflow areas to the inflow areas; Based on the cross-regional transfer channel, the target robot in the specified scenario is scheduled across regions.
4. The method according to claim 3, characterized in that, The determination of the inter-regional transfer channels from each of the outflow areas to the inflow areas includes: An analysis model is constructed based on each outflow area and inflow area. The analysis model includes the first resource loss of transferring robots from each outflow area to the adjacent inflow area, and the second resource loss of transferring robots in the transfer area. The transfer area is the area between the outflow area and the inflow area used for transferring robots. Based on the analysis model, a preset resource loss optimization algorithm is used to determine the cross-regional transfer channels from each outflow area to the inflow area.
5. The method according to claim 3, characterized in that, The determination of the inter-regional transfer channels from each of the outflow areas to the inflow areas includes: Obtain the incremental value of each outflow region; Based on the incremental values of each outflow area in ascending order, the cross-regional transfer channels between each outflow area and the adjacent inflow area are determined sequentially. For inflow areas where no cross-regional transfer channel has been determined, the cross-regional transfer channel from the outflow area to the inflow area via the transfer robot in the transfer area is determined based on the neighbor relationships of each area.
6. The method according to claim 5, characterized in that, After determining the cross-regional transfer channel from the outflowing area to the inflowing area via a transfer robot in the transfer area, based on the neighbor relationships of the areas, for the inflowing area where the cross-regional transfer channel is not determined, the method further includes: If there is a target outflow area with more than a preset number of remaining robots, then a cross-regional transfer channel is determined to randomly transfer robots from the target outflow area to an adjacent area.
7. The method according to any one of claims 1 or 2, characterized in that, Before utilizing the robot cross-region scheduling strategy to perform cross-region scheduling of the target robot in the specified scenario, the method further includes: Based on the robot cross-regional scheduling strategy and preset constraints, the target robot to be scheduled is determined.
8. The method according to claim 1, characterized in that, The process of obtaining the global average number of tasks to be executed for a specified scenario, and the local average number of tasks to be executed for each region, includes: The system calculates the total number of tasks to be executed in a specified scenario, the total number of robots, the total number of tasks to be executed in each area, and the current distribution information of robots in each area. Calculate the global average number of tasks to be executed in the specified scenario based on the total number of tasks to be executed in the specified scenario and the total number of robots; Based on the total number of tasks to be executed in each region and the current distribution information of the robots, the local average number of tasks to be executed in each region is calculated.
9. The method according to claim 8, characterized in that, The total number of tasks to be executed in the specified scenario and the total number of tasks to be executed in each region include: Retrieve attribute information for each task to be executed in a specified scenario; Based on the attribute information of each task to be executed, determine the quantity coefficient of each task to be executed; Based on the quantity coefficient of each task to be executed, the total number of tasks to be executed in the specified scenario and the total number of tasks to be executed in each region are calculated.
10. A robot scheduling device, characterized in that, include: The acquisition module is configured to acquire the global average number of tasks to be executed in a specified scenario, and the local average number of tasks to be executed in each region, wherein the specified scenario is pre-divided into multiple regions; The prediction module is configured to predict the global task execution loss of the specified scenario based on the global average number of tasks to be executed and the local average number of tasks to be executed in each region, wherein the global task execution loss reflects the efficiency difference in task execution under different robot distributions and ideal distributions in the specified scenario. The determination module is configured to: determine the current robot distribution information of each region in the specified scenario, and the current local average number of tasks to be executed in each region; perform cross-regional pre-scheduling of robots in each region based on the current robot distribution information of each region, and calculate the target local average number of tasks to be executed in each region after the cross-regional pre-scheduling; predict the current global task execution loss and the target global task execution loss of the specified scenario based on the global average number of tasks to be executed, the current local average number of tasks to be executed in each region, and the target local average number of tasks to be executed; compare the target global task execution loss and the current global task execution loss; and determine the robot cross-regional scheduling strategy corresponding to the cross-regional pre-scheduling if the target global task execution loss is lower than the current global task execution loss. The scheduling module is configured to use the robot cross-region scheduling strategy to perform cross-region scheduling of the target robot in the specified scenario.
11. A computing device, characterized in that, include: Memory and processor; The memory is used to store computer-executable instructions, and the processor is used to execute the computer-executable instructions to implement the steps of the robot scheduling method according to any one of claims 1 to 9.
12. A computer-readable storage medium storing computer instructions, characterized in that, When executed by the processor, this instruction implements the steps of the robot scheduling method according to any one of claims 1 to 9.
Citation Information
Patent Citations
Task allocation method, device and equipment, warehousing system and storage medium
CN113753462A
Robot task allocation method and device, electronic equipment and storage medium
CN114118655A