Multi-AGV (Automatic Guided Vehicle) task allocation method with dispersed loading tasks

By constructing a grid map, task clustering and path planning algorithm, the problem of poor path quality caused by unreasonable task allocation in the AGV system is solved, and efficient path planning for a multi-AGV system is achieved.

CN120655041APending Publication Date: 2025-09-16XIAN UNIV OF TECH
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510809755.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-06-17
Publication Date
2025-09-16

AI Technical Summary

Technical Problem

In existing AGV systems, unreasonable task allocation schemes lead to poor overall path quality and affect system performance.

Method used

A multi-AGV task allocation method with decentralized loading tasks is adopted, including constructing an environmental grid map, using the capacity-constrained K-means algorithm for task clustering, solving the loading task traversal order using the brainstorming algorithm, and planning conflict-free paths through the conflict search algorithm.

Benefits of technology

Under the load constraints, the loading tasks are reasonably allocated, the problem complexity is reduced, the AGV loading area is clarified, and a reasonable path is planned to solve the multi-AGV task allocation problem with dispersed loading tasks.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120655041A_ABST
    Figure CN120655041A_ABST
Patent Text Reader

Abstract

The invention discloses a loading task dispersed multi-AGV task allocation method, which comprises the following steps of S1, constructing a grid map of an environment, determining a loading task position, a load and an AGV initial position, and establishing a mathematical model of a task allocation problem; s2, clustering the loading tasks by using a capacity constraint K-means algorithm to obtain task clusters meeting capacity constraints, and distributing the loading task clusters according to the distance between a clustering center and the AGV; s3, using a brainstorm algorithm to solve a loading task traversal sequence without considering path conflicts; and S4, according to the loading task traversal sequence of each AGV obtained in the S3, using a conflict search algorithm (CBS) to obtain a multi-AGV conflict-free loading path. According to the method, the problem of multi-AGV task allocation with dispersed loading tasks can be solved, and the reasonability of task allocation and conflict-free planning of a loading path are considered, so that the overall efficiency and stability of the system are improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention belongs to the technical field of loading task allocation, and in particular relates to a multi-AGV task allocation method with dispersed loading tasks. Background Art

[0002] Warehousing and distribution centers play a critical role in the flow of products to consumers. With the advancement of automation technology, the traditional "person-to-goods" picking method is gradually being replaced by a "goods-to-person" picking process. The Kiva system, the first commercially available large-scale autonomous robotic system, has ushered in a new paradigm for logistics sorting and transportation. Kiva robots autonomously operate within the warehouse, moving and placing shelves, ensuring efficient transport from storage areas to picking stations, thereby improving overall picking efficiency. In this context, how to rationally allocate tasks becomes a key issue in multi-AGV systems. This problem can be described as follows: In a multi-AGV system operating in a known environment, each AGV must complete multiple loading tasks. The system must allocate loading tasks to several AGVs and plan collision-free paths for them while minimizing path length. Improper task allocation schemes can lead to poor overall path quality, impacting system performance. Therefore, it is necessary to design a task allocation method for distributed loading tasks that balances reasonable task allocation with conflict-free loading paths, thereby improving overall system efficiency and stability. Summary of the Invention

[0003] The purpose of the present invention is to provide a multi-AGV task allocation method with dispersed loading tasks, which solves the problem that the unreasonable task allocation scheme of the existing AGV system leads to poor overall path quality and affects system performance.

[0004] The technical solution adopted by the present invention is a multi-AGV task allocation method with dispersed loading tasks, which specifically includes the following steps: S1. Build a grid map of the environment, determine the loading task location, load, and AGV initial position, and establish a mathematical model for the task allocation problem.

[0005] S2. Use the capacity-constrained K-means algorithm to cluster the loading tasks to obtain task clusters that meet the capacity constraints, and assign the loading task clusters according to the distance between the cluster center and the AGV.

[0006] S3. Use the brainstorming algorithm to solve the loading task traversal order without considering path conflicts.

[0007] S4. According to the loading task traversal order of each AGV obtained in S3, a conflict search algorithm is used to obtain a multi-AGV conflict-free loading path.

[0008] The present invention is also characterized in that: The specific steps of S1 are as follows: S11. Create a two-dimensional grid map of the environment and determine the coordinates of the loading task, obstacles, and AGV in the two-dimensional grid map.

[0009] S12. Build a mathematical model for the task allocation problem. Multiple AGVs perform multiple loading tasks, and these tasks are distributed across the map. Each AGV starts at a starting position, traverses the assigned loading points, and returns to the starting position to complete all loading tasks. In practice, the AGV's runtime is uncertain due to factors such as the AGV's battery life, actual load, and handling process. Before building the mathematical model, make the following assumptions: Before building the mathematical model, make the following assumptions: (1): The working environment of AGV is static and known.

[0010] (2): All AGVs have the same moving speed and task execution capabilities.

[0011] (3): Ignore the time consumed in executing the task and only consider the AGV load constraint.

[0012] (4): The optimization goal of the model is to minimize the total driving distance of the AGV.

[0013] set up For the collection of AGV, is the set of loading tasks to be executed. The decision variables are defined as shown in equations (1) and (2): (1) (2) Among them, when From the load task Arrival loading mission , is 1, otherwise it is 0. Execute the loading task hour, is 1 if the value is set, otherwise it is 0.

[0014] Considering the complex actual environment of AGV, the distance between loading tasks is used The algorithm (i.e., A-star algorithm, a heuristic search algorithm) is calculated as shown in formula (3): (3) In formula (3), Indicates loading task and The distance between express The distance calculation function of the algorithm; the objective function of loading task allocation can be constructed by formula (3), as shown in formula (4), which is to minimize the total travel path of AGV.

[0015] (4) The constraints of the objective function are as follows: (5) (6) (7) (8) in, is the total number of AGVs, The total number of loading tasks; Formula (5) requires that the load of the AGV does not exceed the rated load limit, For loading tasks The load capacity; Formula (6) requires that the loading task must be performed by an AGV; Formula (7) requires that each loading task is connected to only one terminating loading task; Formula (8) requires that each loading task is connected to only one starting loading task.

[0016] The specific steps of S2 are as follows: S21. Initialize cluster centers: number of clusters and number of AGVs Similarly, the set of loading tasks that need to be clustered is , The load set corresponding to the loading task; the loading tasks are sorted from large to small according to the load, and the top Loading tasks As the initial class , and mark all tasks as unassigned.

[0017] S22. Determine the clusters and cluster centers by following the steps below: S221: Determine the nearest cluster center. Determine whether there are unassigned tasks. If not, execute S226. If there are unassigned tasks, calculate the unassigned loading tasks. and similar hearts Euclidean distance ,in The superscript is the task sequence number, and the subscript is the cluster center sequence number. The cluster center with the smallest Euclidean distance is the nearest cluster center. Assume is the minimum Euclidean distance, then its corresponding is the nearest cluster center.

[0018] S222: Get the candidate task set of the nearest cluster center :Calculate loading tasks The Euclidean distance between all unassigned tasks and the class center , according to the minimum distance principle, we get the minimum distance set, assuming it is ,exist Find The subscript is the loading task corresponding to the sequence number of the nearest cluster center, and these loading tasks are recorded as a set ; S223: Calculation Set The priority of the loading task is calculated according to formula (9): The priority of all loading tasks in ; (9) in, Indicates loading task The distance to the nearest cluster center, Indicates loading task load; S224: From Determine the task cluster with the nearest cluster center in the candidate task set: according to priority will be collected The loading tasks in the cluster are sorted from small to large and placed in the cluster closest to the cluster center. Since each AGV has a load limit, the maximum load capacity is , that is, the total load of the tasks in each cluster cannot exceed Therefore, each time a task is put in, the total load in the current nearest cluster center is calculated to determine whether it is greater than ; If greater than , remove the task from the current nearest cluster center cluster; S225: Update of the latest cluster center: If Unassigned, from Delete the distance corresponding to the nearest cluster center from , assuming It's new The smallest Euclidean distance in , then its corresponding For the nearest cluster center, repeat steps S222-S225; if Allocated, ended To allocate tasks, repeat steps S221-S225.

[0019] S226: Update cluster center: After all loading tasks are assigned, update the cluster center of each cluster. The specific update operation is: calculate the average value of all coordinates of the loading tasks in the cluster, and the average value is the new cluster center. Mark all tasks as unassigned. Repeat steps S221-S226 until the clustering result no longer changes.

[0020] S23. Assign loading task clusters based on the shortest distance between the cluster center and the AGV.

[0021] The specific steps for S3 are as follows: S31, use the population greedy strategy to obtain the task cluster A loading task traversal sequence; use Indicates the A loading task traversal sequence, Determined using: Randomly select a load task As the starting task. Then, select the task that matches the current task from the unvisited loading tasks. The nearest , which is used as the next loading task; repeat this process until all loading tasks are traversed, thus generating Complete traversal sequence ; S32. Clustering the loading task traversal sequences. Calculate the path length of each traversal sequence, and cluster the traversal sequences using K-means based on the path lengths to obtain sets of traversal sequences of different categories.

[0022] S33, generate new There are two parameters involved in this step, one is a random number between 0 and 1. , and the other is the probability of selecting the best traversal sequence First, two clusters are randomly selected from the existing categories, namely and .according to and The size of determines how the new traversal sequence is generated: if ,Depend on and The best traversal sequence and A new traversal sequence is obtained by the heuristic crossover algorithm, otherwise and Any traversal sequence of and Get a new traversal sequence through heuristic crossover algorithm . Generate new Traversal sequence .by and Taking heuristic crossover as an example, the specific steps of the algorithm are as follows.

[0023] S331: Randomly select a loading task from the task cluster Serves as the starting task for a new traversal sequence.

[0024] S332: From and Find the loading task in The right side task and , and in and Delete .Compare arrive , distance, assuming arrive If the distance is shorter, choose As The next traversal loading task of , the new traversal sequence is According to this process, find The subsequent loading tasks, and so on until and Empty, a new traversal sequence is generated .

[0025] S333: Reset and ,from and Find the loading task in Left-hand task and , and in and Delete .Compare arrive , distance, assuming arrive If the distance is shorter, choose As The next traversal loading task of , the new traversal sequence is According to this process, find The subsequent loading tasks, and so on until and Empty, a new traversal sequence is generated .

[0026] S334: Comparison and , select the shorter sequence as the new traversal sequence. , then select As a new traversal sequence; S34, yes Perform two-point interval inversion optimization to obtain the optimized traversal sequence ;by Take the two-point interval reversal optimization as an example to introduce the steps.

[0027] S341: Set flag , and put Assign to optimization variable ; S342: Traversal All possible edge segment combinations and ,in, , If satisfied When arrive Reverse the interval and update the traversal sequence , the traversal sequence path obtained at this time is shorter than the previous traversal sequence path, and the flag is set ; S343: Judgment Flag bit. If If it is 0, the optimization is stopped and the final traversal sequence is obtained. ; Otherwise set the flag , repeat S342.

[0028] S35. Obtain the traversal sequence of this round of optimization from S32-S34, and determine whether the maximum number of iterations T is reached. If not, repeat steps S32-S34; otherwise, terminate the optimization process and output the task traversal sequence with the shortest path.

[0029] The specific steps of S4 are as follows: Assume that the set of AGVs is , the corresponding loading task set is , Includes a variable number of loading tasks ,The traversal order in each task set has been determined.,This step obtains the conflict-free shortest traversal path of each AGV based on,the determined traversal sequence.

[0030] S41, Initialization Set the current position of each AGV as its starting point, recorded as , for each AGV, initialize the task index , indicating that each AGV starts traversing from the first loading task. Initialize the path set Empty. Set all AGV tasks to complete the flag Set to 0.

[0031] S42. Determine the target point

[0032] If the AGV The flag is 1, and the last coordinate point of the AGV path is used as the target point Otherwise, the current task index The corresponding loading task is used as the target point .

[0033] S43, using CBS to solve the conflict-free path Gather at the current starting point and target point set As input, execute CBS algorithm to obtain temporary path , the structure is as follows:

[0034] in For the The first coordinate point of the AGV path, For the The last coordinate point of the AGV path, The path length of an AGV is .

[0035] S44, path collection Update. Lieutenant General AGV logo The shortest path length that is not 1 is recorded as For all The AGV whose flag is not 1 will perform path clipping and path coordinate points are retained; all The AGV with flag bit 1 performs path extension and copies the last coordinate point of the AGV. After the clipping and expansion operations, the path lengths of all AGVs are , append the paths of all current AGVs to middle.

[0036] S45. Update starting point set .take out The last coordinate point of each path in the new starting point set .

[0037] S46, the path is shortest and The AGVs whose task index is not 1 will be updated. First, determine the shortest path and Does the AGV task index that is not 1 correspond to the last loading task in the task cluster? If so, the corresponding AGV flag bit Otherwise, the task index is increased by 1. Then determine whether all AGV flags are If both are 1, the path planning ends. Otherwise, repeat steps S42-S46.

[0038] The beneficial effects of the present invention are: This method clusters loading tasks, reducing the complexity of the problem and clarifying the loading area for each AGV. It then determines the order in which each AGV's loading tasks are traversed, and finally performs path planning based on this order. The proposed method consistently plans a reasonable path based on each AGV's loading tasks, while satisfying load constraints. This method can solve the task allocation problem for multiple AGVs with dispersed loading tasks. BRIEF DESCRIPTION OF THE DRAWINGS

[0039] Figure 1 This is a flow chart of the multi-AGV task allocation method for distributing loading tasks in accordance with the present invention; Figure 2 is a grid map of the environment in Example 1; Figure 3 is the clustering result of the loading task in Example 2; Figure 4 This is an example diagram of solving a conflict-free loading path in Example 5; Figure 5 This is the planning result of the conflict-free loading path in Example 5. DETAILED DESCRIPTION

[0040] The present invention will be described in detail below with reference to the accompanying drawings and specific embodiments.

[0041] Example 1 The multi-AGV task allocation method of the present invention with dispersed loading tasks is as follows: Figure 1 As shown, please follow the steps below: S1. Build a grid map of the environment, determine the loading task location, load, and AGV initial position, and establish a mathematical model for the task allocation problem.

[0042] S2. Use the capacity-constrained K-means algorithm to cluster the loading tasks to obtain task clusters that meet the capacity constraints, and assign the loading task clusters according to the distance between the cluster center and the AGV.

[0043] S3. Use the brainstorming algorithm to solve the loading task traversal order without considering path conflicts.

[0044] S4. According to the loading task traversal order of each AGV obtained in S3, a conflict search algorithm is used to obtain a multi-AGV conflict-free loading path.

[0045] Example 2 Based on Example 1, the specific steps of S1 are as follows: S11, please refer to Figure 2 The two-dimensional grid map of the warehouse environment shown in Figure 1 requires assigning 120 loading tasks to four AGVs, where the green dots represent the loading task locations and the red dots represent the AGV locations. The loading tasks have different load sizes.

[0046] S12. Establish a mathematical model for the task allocation problem; Before building the mathematical model, make the following assumptions: (1): The working environment of AGV is static and known; (2): All AGVs have the same moving speed and task execution capabilities; (3): Ignore the time consumed in executing the task and only consider the AGV load constraint; (4): The optimization goal of the model is to minimize the total driving distance of AGV; set up For the collection of AGV, For the set of loading tasks to be executed, the decision variables are defined as shown in formulas (1) and (2): (1) (2) Among them, when From the load task Arrival loading mission , is 1, otherwise it is 0; when Execute the loading task hour, is 1, otherwise 0; Considering the complex actual environment of AGV, the distance between loading tasks is used The algorithm calculates it as shown in formula (3): (3) In formula (3), Indicates loading task and The distance between express The distance calculation function of the algorithm; the objective function of loading task allocation is constructed by formula (3), as shown in formula (4), which is to minimize the total travel path of AGV; (4) The constraints of the objective function are as follows: (5) (6) (7) (8) in, is the total number of AGVs, The total number of loading tasks; Formula (5) requires that the load of the AGV does not exceed the rated load limit, For loading tasks The load capacity; Formula (6) requires that the loading task must be performed by an AGV; Formula (7) requires that each loading task is connected to only one terminating loading task; Formula (8) requires that each loading task is connected to only one starting loading task.

[0047] Example 3 Based on Example 2, the specific operation steps of S2 are as follows: S21. Initialize cluster centers: number of clusters and number of AGVs Similarly, the set of loading tasks that need to be clustered is , The load set corresponding to the loading task; the loading tasks are sorted from large to small according to the load, and the top Loading tasks As the initial class , and mark all tasks as unassigned.

[0048] This step is illustrated by an example: for the task allocation problem of allocating 120 loading tasks to 4 AGVs in Example 2, the number of clusters is 4, and the set of loading tasks that need to be clustered is , is the load set corresponding to the loading task. The loading tasks are sorted from large to small according to the load. Assume that the sorting order is , take out the first 4 loading tasks As the initial class . and mark all tasks as unassigned.

[0049] S22. Determine clusters and cluster centers. Follow the steps below: S221: Determine the nearest cluster center: Determine whether there are unassigned tasks. If not, execute S226; if there are unassigned tasks, calculate the unassigned loading tasks. and similar hearts Euclidean distance ,in The superscript is the task sequence number, and the subscript is the cluster center sequence number; the cluster center with the smallest Euclidean distance is the nearest cluster center. Assume is the minimum Euclidean distance, then its corresponding is the nearest cluster center; S222: Get the candidate task set of the nearest cluster center :Calculate loading tasks The Euclidean distance between all unassigned tasks and the class center , according to the minimum distance principle, we get the minimum distance set, assuming it is ,exist Find The subscript is the loading task corresponding to the sequence number of the nearest cluster center, and these loading tasks are recorded as a set ; S223: Calculation Set The priority of the loading task is calculated according to formula (9): The priority of all loading tasks in ; (9) in, Indicates loading task The distance to the nearest cluster center, Indicates loading task load; S224: From Determine the task cluster with the nearest cluster center in the candidate task set: according to priority will be collected The loading tasks in the cluster are sorted from small to large and placed in the cluster closest to the cluster center. Since each AGV has a load limit, the maximum load capacity is , that is, the total load of the tasks in each cluster cannot exceed Therefore, each time a task is put in, the total load in the current nearest cluster center is calculated to determine whether it is greater than ; If greater than , remove the task from the current nearest cluster center cluster; S225: Update of the latest cluster center: If Unassigned, from Delete the distance corresponding to the nearest cluster center from , assuming It's new The smallest Euclidean distance in , then its corresponding For the nearest cluster center, repeat steps S222-S225; if Allocated, ended To allocate tasks, repeat steps S221-S225.

[0050] S226: Update cluster center: After all loading tasks are assigned, update the cluster center of each cluster. The specific update operation is: calculate the average value of all coordinates of the loading tasks in the cluster, and the average value is the new cluster center. Mark all tasks as unassigned. Repeat steps S221-S226 until the clustering result no longer changes.

[0051] S23, assigning loading task clusters based on the shortest distance between the cluster center and the AGV; Here are some examples to illustrate the steps: Step 1: Determine the nearest cluster center. Initially, all tasks are unassigned. For loading tasks, , Computation and Heart-like Euclidean distance , assuming is the minimum Euclidean distance, then its corresponding is the nearest cluster center.

[0052] Step 2: Get Candidate task set . Compute task sequence All unassigned tasks in The Euclidean distance of , assuming that the distance set is as follows:

[0053] Therefore, according to the principle of minimum distance value, the minimum distance set can be obtained , assuming that the minimum distances corresponding to vector index numbers 1, 2, 18, and 34 are 、 、 and , then, the task 、 、 and Recorded as a set .

[0054] Step 3: Calculation The priority of the loading task in . Calculated according to formula (9) The priority of all loading tasks in .

[0055] Step 4: From Determine from the candidate task set Task cluster. According to priority will be collected The loading tasks in are sorted from small to large. Assume that the order is , first put in , calculate the current total load as , to determine whether it is greater than , assuming , then put in , calculate the current total load as , assuming , Remove from the cluster. Then put , calculate the current total load as , assuming , then put in , calculate the current total load as , assuming ,but .

[0056] Step 5: Update of the latest cluster center. Assume that in step 4 Allocated, ended Repeat steps 1-5 for task allocation. Assume that in step 4 Unassigned, from Delete , assuming It's new at this time The smallest distance in , then its corresponding Repeat steps 2-5 for the nearest cluster center.

[0057] Step 6: Update the cluster center. After all loading tasks are assigned, 、 、 and To update. For example, suppose The task set of the cluster centered is , the new cluster center The coordinates are , Mark all tasks as unassigned and repeat steps 1-6 until the clustering result does not change.

[0058] Example 4 Based on Example 3, set up is the cluster center, is a set of AGVs. Assign task clusters to AGVs in turn. , let the nearest class center be , Assign the task cluster of the heart class to . In the remaining cluster centers Select the nearest task cluster, assuming it is , Assign the task cluster of the heart class to . In the remaining cluster centers Select the nearest task cluster, assuming it is , Assign the task cluster of the heart class to . Assign the task cluster of the heart class to . Figure 3 Given Figure 2 Clustering results of the loading task.

[0059] Example 5 Based on Example 4, the specific operation steps of S3 are as follows: S31, use the population greedy strategy to obtain the task cluster A sequence of loading tasks to traverse. Indicates the A loading task traversal sequence, Determined using: Randomly select a load task As the starting mission, then, select the same mission from the unvisited loading missions as the current one The nearest , which is used as the next loading task; repeat this process until all loading tasks are traversed, thus generating Complete traversal sequence ; An example is given to illustrate the steps: suppose there is a task cluster containing 5 loading tasks ,set up 20. Randomly select loading task For the starting task, get ; Then select the one that matches the unvisited load task The closest task, assuming ,get ; Then look for The most recent task, assuming ,get Then look for The most recent task, assuming ,get Finally, we get the complete traversal sequence .

[0060] S32. Clustering the loading task traversal sequences. Calculate the path length of each traversal sequence, and cluster the traversal sequences using K-means based on the path lengths to obtain sets of traversal sequences of different categories.

[0061] To illustrate the steps: , calculate the path length of each traversal sequence as , set the number of clusters to 3, and use K-means clustering to .

[0062] S33, generate new This step involves two parameters, one is a random number between 0 and 1. , and the other is the probability of selecting the best traversal sequence ; First, randomly select two clusters from the existing categories, namely and ;according to and The size of determines how the new traversal sequence is generated: if ,Depend on and The best traversal sequence and A new traversal sequence is obtained by the heuristic crossover algorithm, otherwise and Any traversal sequence of and Get a new traversal sequence through heuristic crossover algorithm ; Generate new Traversal sequence .by and Taking heuristic crossover as an example, the specific steps of the algorithm are as follows.

[0063] Step 1: Randomly select a loading task from the task cluster Serves as the starting task for a new traversal sequence.

[0064] Step 2: From and Find the loading task in The right side task and , and in and Delete .Compare arrive , distance, assuming arrive If the distance is shorter, choose As The next traversal loading task of , the new traversal sequence is According to this process, find The subsequent loading tasks, and so on until and Empty, a new traversal sequence is generated .

[0065] Step 3: Reset and ,from and Find the loading task in Left-hand task and , and in and Delete .Compare arrive , distance, assuming arrive If the distance is shorter, choose As The next traversal loading task of , the new traversal sequence is According to this process, find The subsequent loading tasks, and so on until and Empty, a new traversal sequence is generated .

[0066] Step 4: Compare and , select the shorter sequence as the new traversal sequence. , then select As a new traversal sequence.

[0067] Step S33 is described by way of example: The task cluster after clustering in step S32:

[0068]

[0069]

[0070] exist Two clusters are randomly selected from and .set up , generate random numbers , , select the centroid individual to generate a new individual, by and Generate new individuals through heuristic crossover. Assume that the distance between loading tasks is as follows:

[0071] (1): Randomly select a loading task from the task cluster Serves as the starting task for a new traversal sequence.

[0072] (2): Loading task The right-hand task is and , and in and Delete , , . and middle The distance is shorter, choose As the loading task of the next traversal, the new traversal sequence is . The tasks on the right are ,exist and Delete , , .choose As the loading task of the next traversal, the new traversal sequence is . The tasks on the right are ,exist and Delete , , .choose As the loading task of the next traversal, the new traversal sequence is . The right-hand task is and ,exist and Delete , , . and middle The distance is shorter, choose As the loading task of the next traversal, the new traversal sequence is . The tasks on the right are ,choose As the loading task of the next traversal, the new traversal sequence .

[0073] (3): Reset and , loading task The tasks on the left are ,exist and Delete , , .choose As the loading task of the next traversal, the new traversal sequence is . The left task is and ,exist and Delete , , . and middle The distance is shorter, choose As the loading task of the next traversal, the new traversal sequence is . The tasks on the left are ,exist and Delete , , .choose As the loading task of the next traversal, the new traversal sequence is . The tasks on the left are ,exist and Delete , , .choose As the loading task of the next traversal, the new traversal sequence is . The tasks on the left are ,choose As the loading task of the next traversal, the new traversal sequence .

[0074] (4): Comparison and Path length, choose the shorter one As a new traversal sequence.

[0075] S34, yes Perform two-point interval inversion optimization to obtain the optimized traversal sequence .

[0076] (1): Set the flag , and put Assign to optimization variable ; (2): Traversal All possible edge segment combinations and ,in, , If satisfied When arrive Reverse the interval and update the traversal sequence , the traversal sequence path obtained at this time is shorter than the previous traversal sequence path, and the flag is set .

[0077] (3): Judgment Flag bit. If If it is 0, the optimization is stopped and the final traversal sequence is obtained. ; Otherwise set the flag , repeat step 2.

[0078] To illustrate the steps: , perform two-point interval reversal optimization.

[0079] Step 1: Set the flag , .

[0080] Step 2: Traverse All possible edge segment combinations and ,in, , .for , first determine hour, and The size of , No updates are performed.

[0081] Then judge hour and Assuming that the size of , then arrive Reverse the interval and update for , and set the flag .

[0082] Final judgment hour and The size of , No updates are performed. This completes one pass.

[0083] Step 3: Judgement Flag bit. If If it is 0, the optimization is stopped and the final traversal sequence is obtained. ; Otherwise set the flag , repeat step 2.

[0084] S35. Obtain the traversal sequence of this round of optimization from S32-S34, and determine whether the maximum number of iterations T is reached. If not, repeat steps S32-S34; otherwise, terminate the optimization process and output the task traversal sequence with the shortest path.

[0085] An example is given for step S34: Assume that after completing S32-S34, a traversal sequence is obtained. , assuming The path length is the shortest. The number of iterations T is 1000. If the current number of iterations is greater than 1000, the optimization process ends and outputs , otherwise repeat steps S32-S34.

[0086] Example 6 Based on Example 5, let the set of AGVs be , the corresponding loading task set is , Includes a variable number of loading tasks ,The traversal order in each task set has been determined.,This step obtains the conflict-free shortest traversal path of each AGV based on,the determined traversal sequence.

[0087] S41, Initialization Set the current position of each AGV as its starting point, recorded as , for each AGV, initialize the task index , indicating that each AGV starts traversing from the first loading task. Initialize the path set Empty. Set all AGV tasks to complete the flag Set to 0.

[0088] S42. Determine the target point

[0089] If the AGV The flag is 1, and the last coordinate point of the AGV path is used as the target point Otherwise, the current task index The corresponding loading task is used as the target point .

[0090] S43, using CBS to solve the conflict-free path Gather at the current starting point and target point set As input, execute CBS algorithm to obtain temporary path , the structure is as follows:

[0091] in For the The first coordinate point of the AGV path, For the The last coordinate point of the AGV path, The path length of an AGV is .

[0092] S44, path collection Update. Lieutenant General AGV logo The shortest path length that is not 1 is recorded as For all The AGV whose flag is not 1 will perform path clipping and path coordinate points are retained; all The AGV with flag bit 1 performs path extension and copies the last coordinate point of the AGV. After the clipping and expansion operations, the path lengths of all AGVs are , append the paths of all current AGVs to middle.

[0093] S45. Update starting point set .take out The last coordinate point of each path in the new starting point set .

[0094] S46, the path is shortest and The AGVs whose task index is not 1 will be updated. First, determine the shortest path and Does the AGV task index that is not 1 correspond to the last loading task in the task cluster? If so, the corresponding AGV flag bit Otherwise, the task index is increased by 1. Then determine whether all AGV flags are If both are 1, the path planning ends. Otherwise, repeat steps S42-S46.

[0095] Give examples to illustrate the steps: Figure 4 The set of AGVs shown is , the corresponding set of loading tasks is Assumptions Task cluster , Task cluster .

[0096] S41. Initialization. The starting point is , The starting point is ,initialization . Initialize the task index , . .

[0097] S42. Determine the target point . and of The flag bits are all 0, and the task will be loaded and Coordinates and As the target point, .

[0098] S43, using CBS to solve the conflict-free path .

[0099] S44, path collection renew. and of The flag bits are all 0, The path length is the shortest, . Clip all paths. , added to the final set . .

[0100] S45. Update starting point set .take out The last coordinate point of each path in the new starting point set

[0101] S46, As the shortest path and AGV task index not 1 Not the final task, update the task index . Determine whether all AGVs have completed their tasks. If not, repeat steps S42-S46.

[0102] For the allocation problem in Example 2, the loading path result obtained according to the above steps is as follows: Figure 5 shown.

[0103] The above shows only some implementation schemes of the present invention. For those skilled in the art, several improvements and modifications made to the present invention without departing from the principles of the present invention should also be regarded as within the scope of protection of the present invention.

Claims

1. A multi-AGV task allocation method for distributing loading tasks, characterized in that: The following steps are involved: S1. Build a grid map of the environment, determine the loading task location, load, and AGV initial position, and establish a mathematical model for the task allocation problem; S2. Use the capacity-constrained K-means algorithm to cluster the loading tasks to obtain task clusters that meet the capacity constraints, and assign the loading task clusters based on the distance between the cluster center and the AGV; S3, using the brainstorming algorithm to solve the loading task traversal order without considering path conflicts; S4. According to the loading task traversal order of each AGV obtained in S3, a conflict search algorithm is used to obtain a multi-AGV conflict-free loading path.

2. The multi-AGV task allocation method for distributing loading tasks according to claim 1 is characterized in that: S1 is as follows: S11, establish a two-dimensional grid map of the environment, and determine the coordinates of the loading task, obstacles and AGV in the two-dimensional grid map; S12. Establish a mathematical model for the task allocation problem; Before building the mathematical model, make the following assumptions: (1): The working environment of AGV is static and known; (2): All AGVs have the same moving speed and task execution capabilities; (3): Ignore the time consumed in executing the task and only consider the AGV load constraint; (4): The optimization goal of the model is to minimize the total driving distance of AGV; set up For the collection of AGV, For the set of loading tasks to be executed, the decision variables are defined as shown in formulas (1) and (2): (1) (2) Among them, when From the load task Arrival loading mission , is 1, otherwise it is 0; when Execute the loading task hour, is 1, otherwise 0; Considering the complex actual environment of AGV, the distance between loading tasks is used The algorithm calculates it as shown in formula (3): (3) In formula (3), Indicates loading task and The distance between express The distance calculation function of the algorithm; the objective function of loading task allocation is constructed by formula (3), as shown in formula (4), which is to minimize the total travel path of AGV; (4) The constraints of the objective function are as follows: (5) (6) (7) (8) in, is the total number of AGVs, The total number of loading tasks; Formula (5) requires that the load of the AGV does not exceed the rated load limit, For loading tasks The load capacity; Formula (6) requires that the loading task must be performed by an AGV; Formula (7) requires that each loading task is connected to only one terminating loading task; Formula (8) requires that each loading task is connected to only one starting loading task.

3. The multi-AGV task allocation method for distributing loading tasks according to claim 2 is characterized in that: S2 specifically includes the following steps: S21. Initialize cluster centers: number of clusters and number of AGVs Similarly, the set of loading tasks that need to be clustered is , The load set corresponding to the loading task; the loading tasks are sorted from large to small according to the load, and the top Loading tasks As the initial class , and mark all tasks as unassigned; S22, determining clusters and cluster centers; S23. Assign loading task clusters based on the shortest distance between the cluster center and the AGV.

4. The multi-AGV task allocation method for distributing loading tasks according to claim 2 is characterized in that: S22 is as follows: S221: Determine the nearest cluster center: Determine whether there are unassigned tasks. If not, execute S226; if there are unassigned tasks, calculate the unassigned loading tasks. and similar hearts Euclidean distance ,in The superscript is the task sequence number, and the subscript is the cluster center sequence number; the cluster center with the smallest Euclidean distance is the nearest cluster center. Assume is the minimum Euclidean distance, then its corresponding is the nearest cluster center; S222: Get the candidate task set of the nearest cluster center :Calculate loading tasks The Euclidean distance between all unassigned tasks and the class center , according to the minimum distance principle, we get the minimum distance set, assuming it is ,exist Find The subscript is the loading task corresponding to the sequence number of the nearest cluster center, and these loading tasks are recorded as a set ; S223: Calculation Set The priority of the loading task is calculated according to formula (9): The priority of all loading tasks in ; (9) in, Indicates loading task The distance to the nearest cluster center, Indicates loading task load; S224: From Determine the task cluster with the nearest cluster center in the candidate task set: according to priority will be collected The loading tasks in the cluster are sorted from small to large and placed in the cluster closest to the cluster center. Since each AGV has a load limit, the maximum load capacity is , that is, the total load of the tasks in each cluster cannot exceed Therefore, each time a task is put in, the total load in the current nearest cluster center is calculated to determine whether it is greater than ; If greater than , remove the task from the current nearest cluster center cluster; S225: Update of the latest cluster center: If Unassigned, from Delete the distance corresponding to the nearest cluster center from , assuming It's new The smallest Euclidean distance in , then its corresponding For the nearest cluster center, repeat steps S222-S225; if Allocated, ended To allocate tasks, repeat steps S221-S225; S226: Update cluster center: After all loading tasks are assigned, update the cluster center of each cluster. The specific update operation is: calculate the average value of all coordinates of the loading tasks in the cluster, and the average value is the new cluster center. Mark all tasks as unassigned. Repeat steps S221-S226 until the clustering result no longer changes.

5. The multi-AGV task allocation method for distributing loading tasks according to claim 4 is characterized in that: S3 specifically includes the following steps: S31, use the population greedy strategy to obtain the task cluster Loading task traversal sequence use Indicates the A loading task traversal sequence, Determined using: Randomly select a load task As the starting mission, then, select the same mission from the unvisited loading missions as the current one The nearest , which is used as the next loading task; repeat this process until all loading tasks are traversed, thus generating Complete traversal sequence ; S32. Clustering the loading task traversal sequence Calculate the path length of each traversal sequence, cluster the traversal sequences using K-means according to the path length, and obtain traversal sequence sets of different categories; S33, generate new Traversal sequence This step involves two parameters, one is a random number between 0 and 1 , and the other is the probability of selecting the best traversal sequence ; First, randomly select two clusters from the existing categories, namely and ;according to and The size of determines how the new traversal sequence is generated: if ,Depend on and The best traversal sequence and A new traversal sequence is obtained by the heuristic crossover algorithm, otherwise and Any traversal sequence of and Get a new traversal sequence through heuristic crossover algorithm ; S34, yes Perform two-point interval inversion optimization to obtain the optimized traversal sequence ; S35. Obtain the traversal sequence of this round of optimization from S32-S34, and determine whether the maximum number of iterations T is reached. If not, repeat steps S32-S34; otherwise, terminate the optimization process and output the task traversal sequence with the shortest path.

6. The multi-AGV task allocation method for distributing loading tasks according to claim 5 is characterized in that: The two-point interval reversal optimization method in S34 is as follows: S341: Set flag , and put Assign to optimization variable ; S342: Traversal All possible edge segment combinations and ,in, , If satisfied When arrive Reverse the interval and update the traversal sequence , the traversal sequence path obtained at this time is shorter than the previous traversal sequence path, and the flag is set ; S343: Judgment Flag if If it is 0, the optimization is stopped and the final traversal sequence is obtained. ; Otherwise set the flag , repeat S342.

7. The multi-AGV task allocation method for distributing loading tasks according to claim 6 is characterized in that: S4 is as follows: Assume that the set of AGVs is , the corresponding loading task set is , Includes a variable number of loading tasks ,The traversal order in each task set has been determined, and the conflict-free shortest traversal path of each AGV is obtained according to the determined traversal sequence.

8. The multi-AGV task allocation method for distributing loading tasks according to claim 7 is characterized in that: S4 is as follows: S41, Initialization Set the current position of each AGV as its starting point, recorded as , for each AGV, initialize the task index , indicating that each AGV starts traversing from the first loading task; initialize the path set Empty; all AGV tasks are completed. Set to 0; S42. Determine the target point If the AGV The flag is 1, and the last coordinate point of the AGV path is used as the target point Otherwise, the current task index The corresponding loading task is used as the target point ; S43, using CBS to solve the conflict-free path Gather at the current starting point and target point set As input, execute CBS algorithm to obtain temporary path , the structure is as follows: in, For the The first coordinate point of the AGV path, For the The last coordinate point of the AGV path, The path length of an AGV is ; S44, path collection renew exist Lieutenant General AGV logo The shortest path length that is not 1 is recorded as ; for all The AGV whose flag is not 1 will perform path clipping and path coordinate points are retained; all The AGV with flag bit 1 performs path extension and copies the last coordinate point of the AGV. is added to the corresponding AGV path set; after clipping and expansion operations, the path length of all current AGVs is , append the paths of all current AGVs to middle; S45. Update starting point set take out The last coordinate point of each path in the new starting point set ; S46, the path is shortest and The AGVs whose task index is not 1 will be updated; first determine the shortest path and Does the AGV task index that is not 1 correspond to the last loading task in the task cluster? If so, the corresponding AGV flag bit Otherwise, add 1 to the task index; then determine whether all AGV flags are If both are 1, the path planning ends; otherwise, repeat steps S42-S46.