A multi-AGV distributed task scheduling method and system

By introducing a distributed task scheduling method in the AGV system, each AGV negotiated decide the order of task execution, solved the problem of centralized controller bottlenecks, and realized the efficient distributed scheduling of the AGV task and the system's robust improvement.

CN116016681BActive Publication Date: 2025-01-28HANGZHOU ELECTRIC EQUIP MFG +2
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202211521542.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-11-30
Publication Date
2025-01-28
Estimated Expiration
2042-11-30

AI Technical Summary

Technical Problem

In the existing AGV system, task scheduling relies on centralized controllers, resulting in serious centralized bottleneck problems after the system is expanded, making it difficult to achieve efficient distributed scheduling of AGV tasks.

Method used

By introducing distributed task scheduling methods in the AGV system, each AGV negotiates with each other to determine the order of task execution, and use reward information to optimize global rewards to maximize. Specific steps include querying the position of the AGV task, generating task allocation information, comparing the order of adjustment tasks with the neighbor AGV, and performing tasks in accordance with the optimization order.

Benefits of technology

The distributed scheduling of the AGV task is implemented, the load of the centralized controller is alleviated, and the robustness of AGV work and the overall efficiency of the system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116016681B_ABST
    Figure CN116016681B_ABST
Patent Text Reader

Abstract

This application discloses a multi-AGV distributed task scheduling method and system, belonging to the technical field of communication technology. The multi-AGV distributed task scheduling method is applied to a target AGV and includes: querying the task positions of all AGV tasks within a working area; generating task allocation information based on the initial position of the target AGV and the task positions; obtaining the task allocation information of each neighboring AGV within the working area; comparing the task allocation information of the target AGV with that of the neighboring AGVs; and adjusting the initial task execution order of the target AGV according to the comparison result to obtain a preferred task execution order, so that the global reward reaches its maximum value; and executing the corresponding AGV tasks sequentially according to the preferred task execution order. This application can realize distributed scheduling of AGV tasks and improve the robustness of AGV operation.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of communication technology, and in particular to a multi-AGV distributed task scheduling method and system. Background Art

[0002] The material handling process is widely present in the modern industrial warehousing and logistics links. The factors such as personnel quality, comprehensive cost and operation efficiency in this process have greatly restricted the improvement of the overall benefits of enterprises. Most of the material handling operations are still completed manually, which inevitably causes the chaos and damage of goods, resulting in high inventory costs, a large amount of labor input and a long goods circulation cycle.

[0003] Traditional warehousing and logistics operation forms can no longer meet the actual operation needs at this stage, and there is an urgent need for newer, faster and more applicable warehousing and logistics operation forms. Therefore, a new concept of intelligent warehousing has been proposed in related technologies, and the development of warehousing and logistics technology urgently needs to be transformed and upgraded to achieve intelligence. Among them, warehousing AGV (Automated Guided Vehicle) is an important component with the highest level of automation in intelligent logistics equipment, which can effectively liberate labor and has obvious advantages in saving storage space and improving logistics efficiency.

[0004] With the continuous release of market vitality in emerging industries such as e-commerce, express delivery and new energy, these industries have taken the lead in starting the process of intelligent warehousing, which has greatly stimulated the application demand of warehousing AGV systems. This logistics scheduling system, which transforms from "people→goods" to "goods→people", has the functions of shortening the working time of warehousing and logistics links, reducing the number of personnel and labor intensity, reducing the loss of materials during the handling process, and improving the efficiency of goods picking. It meets the needs of refined, flexible and information-based operations, and can effectively achieve the goal of reducing costs and increasing efficiency for enterprises. The overall performance of the AGV system is related to the overall AGV quantity configuration and investment cost. Under the current situation, the application of a single AGV system has not kept up with the development of modern warehousing and logistics operations, and it is necessary to vigorously develop a multi-AGV scheduling system, in which the performance of the task scheduling strategy directly determines the overall efficiency of the system.

[0005] Task scheduling needs to consider the running and operating costs of AGV, make rational use of system resources, and ensure the smooth progress of the task scheduling process. Task scheduling can be initiated by the task center or AGV directly (hereinafter referred to as centralized and distributed). When initiated by the task center, the tasks obtained by AGV are uniformly managed and allocated by the task center, that is, the tasks are invisible to AGV, and AGV can only passively receive tasks issued to it from the task center. This method places severe demands on the real-time processing capabilities of the task center. As the system expands, the centralized control bottleneck problem will become more serious.

[0006] Therefore, how to achieve distributed scheduling of AGV tasks and improve the robustness of AGV work is a technical problem that technical personnel in this field currently need to solve. Summary of the invention

[0007] The purpose of this application is to provide a multi-AGV distributed task scheduling method and system, which can realize distributed scheduling of AGV tasks and improve the robustness of AGV work.

[0008] In order to solve the above technical problems, the present application provides a multi-AGV distributed task scheduling method, which is applied to the target AGV, including:

[0009] Query the task locations of all AGV tasks in the work area;

[0010] Generate task allocation information according to the initial position of the target AGV and the task position; wherein the task allocation information includes the initial task execution order and reward information; the reward information is used to record the maximum reward that can be obtained after each AGV task is executed;

[0011] Obtaining the task allocation information of each neighbor AGV in the work area, comparing the task allocation information of the target AGV with the task allocation information of the neighbor AGV, and adjusting the initial task execution order of the target AGV and the reward information according to the comparison result to obtain the preferred task execution order so that the global reward reaches the maximum value; wherein the global reward is the sum of the rewards obtained by all AGVs for executing all AGV tasks;

[0012] Execute the corresponding AGV tasks in sequence according to the preferred task execution order.

[0013] Optionally, generating task allocation information according to the initial position of the target AGV and the task position includes:

[0014] Step A1: Calculate the reward c for the target AGV to complete the jth AGV task based on the initial position of the target AGV and the task position ij [p i ]; where c ij [p i ] means according to the vector p i The reward obtained by completing the jth AGV task after executing the AGV task is vector p i Used to describe the execution order of the AGV tasks assigned to the i-th AGV;

[0015] Step A2: Update the task identifier J by i Among them, J i Used to record the c ij ×h ijThe AGV task number that obtains the maximum value, h ij Indicates that the condition is satisfied. When c ij [p i ]>y ij Time ij The value of y changes from 0 to 1, ij represents the maximum reward that the i-th AGV can obtain by completing the j-th task; h ij When it is 0, it means the condition is not met. ij When it is 1, it means the condition is met.

[0016] Step A3: Determine vector p i Whether the number of tasks recorded in reaches the rated number of tasks; if so, according to the vector p i and ij Determine the task allocation information including the initial task execution order and the reward information; if not, adjust the value of j and enter step A1.

[0017] Optionally, in the judgment vector p i Before the number of tasks recorded in reaches the rated number of tasks, it also includes:

[0018] The minimum value of the maximum task execution quantity of the target AGV and the total number of AGV tasks is set as the rated task quantity.

[0019] Optionally, also include:

[0020] Calculate y according to the first preset formula ij , and using the vector z ij Record the assignment of the jth AGV task;

[0021] Among them, the first preset formula is m represents the number of tasks in the task bundle after adding a new AGV task, j q Represents the qth AVG task in the task bundle.

[0022] Optionally, obtaining task allocation information of each neighbor AGV in the work area, comparing the task allocation information of the target AGV with the task allocation information of the neighbor AGV, and adjusting the initial task execution order of the target AGV and the reward information according to the comparison result to obtain the preferred task execution order, including:

[0023] Step B1: Obtaining task allocation information of each neighbor AGV in the working area;

[0024] Step B2: Compare the task allocation information of the target AGV with the task allocation information of the neighbor AGV, and update y using the second preset formula ij; Wherein, the second preset formula is N t represents the total number of AGV tasks, k represents the kth neighbor AGV;

[0025] Step B3: According to y ij Update the adjustment vector z ij ;

[0026] Step B4: If z ij ≠i, then the jth AGV task in the initial task execution order and the AGV tasks added thereafter are all cleared to update the vector p i ;

[0027] Step B5: Determine whether there is a task allocation situation determined last time; if so, proceed to step B4; if not, perform the operations of step A1, step A2, step A3, step B1, step B2, step B3, step B4 and step B5 in sequence;

[0028] Step B6: According to the vector p corresponding to all AGVs i Determine the current task allocation situation and judge whether the current task allocation situation is the same as the task allocation situation determined most recently; if so, the vector p corresponding to the target AGV is i Set as the preferred task execution order of the target AGV; if not, execute the operations of step A1, step A2, step A3, step B1, step B2, step B3, step B4 and step B5 in sequence.

[0029] Optionally, after generating the task allocation information according to the initial position of the target AGV and the task position, the method further includes:

[0030] The task allocation information of the target AGV is sent to each of the neighboring AGVs in the working area so as to adjust the initial task execution order of the neighboring AGVs.

[0031] Optionally, also include:

[0032] The connectivity of the AGV system communication network is detected, and a motion path for the target AGV to perform the AGV task is planned according to the connectivity of the AGV system communication network.

[0033] The present application also provides a multi-AGV distributed task scheduling system, which is applied to a target AGV, including:

[0034] The query module is used to query the task locations of all AGV tasks in the work area;

[0035] An initial allocation module, used to generate task allocation information according to the initial position of the target AGV and the task position; wherein the task allocation information includes the initial task execution order and reward information; the reward information is used to record the maximum reward that can be obtained after each AGV task is executed;

[0036] An adjustment module is used to obtain the task allocation information of each neighbor AGV in the working area, compare the task allocation information of the target AGV with the task allocation information of the neighbor AGV, and adjust the initial task execution order of the target AGV and the reward information according to the comparison result to obtain the preferred task execution order so that the global reward reaches the maximum value; wherein the global reward is the sum of the rewards obtained by all AGVs for executing all AGV tasks;

[0037] The execution module is used to execute the corresponding AGV tasks in sequence according to the preferred task execution order.

[0038] Optionally, also include:

[0039] The communication module is used to send the task allocation information of the target AGV to each of the neighboring AGVs in the working area after generating the task allocation information according to the initial position of the target AGV and the task position, so as to adjust the initial task execution order of the neighboring AGVs.

[0040] Optionally, also include:

[0041] The path planning module is used to detect the connectivity of the AGV system communication network and plan a motion path for the target AGV to perform the AGV task according to the connectivity of the AGV system communication network.

[0042] The present application provides a multi-AGV distributed task scheduling method, which is applied to a target AGV, including: querying the task positions of all AGV tasks in a working area; generating task allocation information according to the initial position of the target AGV and the task position; wherein the task allocation information includes an initial task execution order and reward information; the reward information is used to record the maximum reward that can be obtained after each AGV task is executed; obtaining the task allocation information of each neighbor AGV in the working area, comparing the task allocation information of the target AGV with the task allocation information of the neighbor AGV, and adjusting the initial task execution order of the target AGV and the reward information according to the comparison result to obtain a preferred task execution order so that the global reward reaches the maximum value; wherein the global reward is the sum of the rewards obtained by all AGVs when executing all AGV tasks; and executing the corresponding AGV tasks in sequence according to the preferred task execution order.

[0043] This application queries the task positions of all AGV tasks in the working area where the target AGV is located, and then generates task allocation information based on the initial position and task position of the target AGV. There are also neighbor AGVs that can communicate with the target AGV in the working area. In this application, the target AGV compares its own task allocation information with the task allocation information of the neighbor AGV, and then adjusts the initial task execution order of the target AGV and the reward information according to the comparison result to obtain the preferred task execution order, so that the sum of the rewards for all AGVs to perform all AGV tasks reaches the maximum value. In the above process, the task allocation of all AGVs is not dependent on the centralized controller load, but the various AGVs negotiate with each other to make decisions, thereby realizing the distributed scheduling of AGV tasks and improving the robustness of AGV work. This application also provides a multi-AGV distributed task scheduling system, which has the above-mentioned beneficial effects and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS

[0044] In order to more clearly illustrate the embodiments of the present application, the following is a brief introduction to the drawings required for use in the embodiments. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative work.

[0045] Figure 1 A flowchart of a multi-AGV distributed task scheduling method provided in an embodiment of the present application;

[0046] Figure 2 A schematic diagram of AGV task distribution in a work area provided in an embodiment of the present application;

[0047] Figure 3 A schematic diagram of the distribution of AGV equipment in a working area provided in an embodiment of the present application;

[0048] Figure 4 A schematic diagram of a task allocation result provided in an embodiment of the present application;

[0049] Figure 5 A schematic diagram of another AGV task distribution in a work area provided in an embodiment of the present application;

[0050] Figure 6 A schematic diagram of the structure of a multi-AGV distributed task scheduling system provided in an embodiment of the present application. DETAILED DESCRIPTION

[0051] In order to make the purpose, technical solution and advantages of the embodiments of the present application clearer, the technical solution in the embodiments of the present application will be clearly and completely described below in conjunction with the drawings in the embodiments of the present application. Obviously, the described embodiments are part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application.

[0052] See below Figure 1 , Figure 1 A flowchart of a multi-AGV distributed task scheduling method provided in an embodiment of the present application.

[0053] Specific steps may include:

[0054] S101: Query the task locations of all AGV tasks in the work area;

[0055] Among them, this embodiment can be applied to the target AGV in the working area. There may also be other AGVs and multiple AGV tasks in the working area. The AGV needs to move to the position corresponding to the AGV task to complete the corresponding AGV task. The position corresponding to the above AGV task is the task position.

[0056] S102: Generate task allocation information according to the initial position and task position of the target AGV;

[0057] Before this step, there may also be an operation to determine the initial position of the target AGV, specifically, the initial position of the target AGV may be determined using a UWB tag or a laser radar. This step may set the reward function of the target AGV, and then determine the task allocation information that maximizes the value of the reward function. The above-mentioned reward function may be related to the execution reward value and the distance penalty value of the AGV task. The execution reward value of the AGV task refers to the reward obtained by only considering the completion of the AGV task, and the distance penalty value refers to the penalty obtained by moving from the current position to the task position.

[0058] As a feasible implementation method, this step can generate task allocation information based on the initial position of the target AGV, the task position of each AGV task, and the execution reward of the AGV task. The above-mentioned task allocation information includes the initial task execution order and reward information of the target AGV; the reward information is used to record the maximum reward that can be obtained after each AGV task is executed. Specifically, if the initial task execution order is A, B, and C, the reward information includes the reward obtained by the target AGV from the initial position to execute task A, the reward obtained from the location of task A to execute task B, and the reward obtained from the location of task B to execute task C. The above-mentioned reward information also includes the maximum reward obtained after each AGV task is executed. It can be seen that the reward information recorded by the target AGV not only includes the reward obtained by the target AGV itself for executing the task, but also records the maximum reward that can be obtained by completing other tasks (these tasks are completed by other AGVs).

[0059] Other AGVs that can communicate with the target AGV in the working area are neighbor AGVs. Other neighbor AGVs can perform the following operations: query the task positions of all AGV tasks in the working area, and generate task allocation information based on the initial position and task position of the neighbor AGV itself. As a feasible implementation method, after generating the task allocation information based on the initial position and task position of the target AGV, the target AGV can also send the task allocation information of the target AGV to each of the neighbor AGVs in the working area, so as to adjust the initial task execution order of the neighbor AGVs.

[0060] S103: Obtaining task allocation information of each neighbor AGV in the work area, comparing the task allocation information of the target AGV with the task allocation information of the neighbor AGV, and adjusting the initial task execution order and reward information of the target AGV according to the comparison result to obtain the optimal task execution order so that the global reward reaches the maximum value;

[0061] Among them, the task allocation information of the neighbor AGV includes the initial task execution order and reward information of the neighbor AGV. In this embodiment, the task allocation information of the target AGV can be compared with the task allocation information of the neighbor AGV, and the comparison result can include the difference in reward information when each AGV performs a certain AGV task. In this step, a global reward function can be established to optimize the initial task execution order of the target AGV and the initial task execution order of the neighbor AGV with the maximum value of the global reward as the optimization target, and the initial optimal task execution order of the target AGV and the initial optimal task execution order of the neighbor AGV are obtained, thereby completing the task scheduling negotiation between the target AGV and the neighbor AGV. The above-mentioned global reward is the sum of the rewards obtained by all AGVs for executing all AGV tasks.

[0062] S104: Execute corresponding AGV tasks in sequence according to the preferred task execution order.

[0063] After obtaining the preferred task execution order, the target AGV can execute the corresponding AGV tasks in sequence according to the preferred task execution order. Furthermore, the target AGV can also detect the connectivity of the AGV system communication network, and plan a motion path for the target AGV to execute the AGV task according to the connectivity of the AGV system communication network.

[0064] This embodiment queries the task positions of all AGV tasks in the working area where the target AGV is located, and then generates task allocation information based on the initial position and task position of the target AGV. There are also neighbor AGVs that can communicate with the target AGV in the working area. In this embodiment, the target AGV compares its own task allocation information with the task allocation information of the neighbor AGV, and then adjusts the initial task execution order of the target AGV and the reward information according to the comparison result to obtain the preferred task execution order, so that the sum of the rewards for all AGVs to perform all AGV tasks reaches the maximum value. In the above process, the task allocation of all AGVs is not dependent on the centralized controller, but the various AGVs negotiate with each other to make decisions, thereby realizing the distributed scheduling of AGV tasks and improving the robustness of AGV work.

[0065] As for Figure 1 For further description of the corresponding embodiment, the task allocation information may be generated in the following manner:

[0066] Step A1: Calculate the reward c for the target AGV to complete the jth AGV task based on the initial position of the target AGV and the task position ij [p i ]; where c ij [p i ] means according to the vector p i The reward obtained by completing the jth AGV task after executing the AGV task is vector p i Used to describe the execution order of the AGV tasks assigned to the i-th AGV;

[0067] Step A2: Update the task identifier J by i Among them, J i Used to record the c ij ×h ij The AGV task number that obtains the maximum value, h ij Indicates that the condition is satisfied. When c ij [p i ]>y ij Time ij The value of y changes from 0 to 1, ijIt represents the maximum reward that the i-th AGV can obtain by completing the j-th task;

[0068] Step A3: Determine vector p i Whether the number of tasks recorded in reaches the rated number of tasks; if so, according to the vector p i and ij Determine the task allocation information including the initial task execution order and the reward information; if not, adjust the value of j and enter step A1.

[0069] Furthermore, in step A3, it is determined that the vector p i Before determining whether the number of tasks recorded in reaches the rated number of tasks, the minimum value of the maximum number of tasks executed by the target AGV and the total number of AGV tasks may be set as the rated number of tasks.

[0070] Furthermore, in the above embodiment, y can also be calculated according to the first preset formula ij , and using the vector z ij Record the assignment of the jth AGV task;

[0071] Among them, the first preset formula is m represents the number of tasks in the task bundle after adding a new AGV task, j q Represents the qth AVG task in the task bundle.

[0072] Based on the above embodiment, the task allocation information can be compared and the initial task execution order and reward information of the target AGV can be adjusted in the following manner to obtain the optimal task execution order:

[0073] Step B1: Obtaining task allocation information of each neighbor AGV in the working area;

[0074] Step B2: Compare the task allocation information of the target AGV with the task allocation information of the neighbor AGV, and update y using the second preset formula ij ; Wherein, the second preset formula is N t represents the total number of AGV tasks, k represents the kth neighbor AGV; y kj It represents the maximum reward that can be obtained by completing the jth task recorded by the kth neighbor AGV.

[0075] Step B3: According to y ij Update the adjustment vector z ij ;

[0076] Step B4: If z ij≠i, then the jth AGV task in the initial task execution order and the AGV tasks added thereafter are all cleared to update the vector p i ;

[0077] Step B5: Determine whether there is a task allocation situation determined last time; if so, proceed to step B4; if not, perform the operations of step A1, step A2, step A3, step B1, step B2, step B3, step B4 and step B5 in sequence;

[0078] Step B6: According to the vector p corresponding to all AGVs i Determine the current task allocation situation and judge whether the current task allocation situation is the same as the task allocation situation determined most recently; if so, the vector p corresponding to the target AGV is i Set as the preferred task execution order of the target AGV; if not, execute the operations of step A1, step A2, step A3, step B1, step B2, step B3, step B4 and step B5 in sequence.

[0079] The process described in the above embodiment is explained below through an embodiment in actual application.

[0080] In the related art, a centralized control system is used to implement the scheduling of AGV tasks in the working area. The centralized control system is a control structure in which a centralized controller is responsible for the control decision of the entire system. The system uses a centralized controller to monitor and control many AGVs. Each AGV contains multiple sets of sensor units and execution units. The sensor units obtain environmental status and conditions and report relevant information to the centralized controller. The centralized controller responds to commands and sends control and command signals to each AGV. When unexpected situations such as AGV failure or road congestion occur, the centralized controller often needs to immediately recalculate a large number of tasks and redistribute tasks to avoid deadlock, and its ability to deal with risks is not strong. All computing operations are performed in the centralized controller, which places high demands on the real-time processing capabilities of the centralized controller. As the system expands, the centralized control bottleneck problem will become more serious.

[0081] Since the centralized controller needs to continuously process access or data exchange from the underlying devices, the above-mentioned method of scheduling AGV tasks using a centralized controller requires the centralized controller to have strong real-time processing capabilities. The rise of IoT manufacturing provides a new research and solution for task scheduling. Relying on the support of IoT manufacturing, AGV has greater autonomy, which allows it to perform autonomous task allocation. At the same time, a new optimization scheduling strategy is proposed based on the original scheduling rules to reduce the computing load of the task center. This embodiment is based on the market auction mechanism. The difference is that there is no fixed auctioneer. Each AGV and its neighboring AGVs conduct an auction. After a certain number of cycles, the task allocation result will no longer change, and the entire task scheduling process will eventually be realized. This embodiment requires the entire communication network to remain connected, so a method for maintaining connectivity is added to ensure the optimal task allocation. When an AGV loses communication with other AGVs due to a fault, this method can also obtain a suboptimal result. Most of the existing solutions are centralized, and in the existing distributed methods, connectivity is an important prerequisite, but it does not introduce how to maintain connectivity throughout the scheduling process, and there is no perfect solution mechanism for task conflicts between AGVs.

[0082] This embodiment is based on a distributed framework. While ensuring connectivity, decisions are made through consultation between AGVs. It does not place too high requirements on each controller, and the system performance is no longer limited by the number of AGVs. At the same time, it can make decisions quickly when dealing with unexpected situations and has stronger robustness.

[0083] Given n AGVs, they can exchange information through an undirected communication network. For AGV i, use N i Represents the set of AGV labels of its neighbors. Each AGV has a communication radius r. When the distance between two AGVs is less than or equal to r, they are considered neighbors. Let G represent the entire communication graph, E(t) = {(i, j) | j∈N i} represents the set of all edges. An edge represents that two AGVs can communicate with each other to transmit information, that is, the connection in the communication graph. The adjacency matrix A ij Sum degree matrix D ij The definition is as follows:

[0084]

[0085] where p k represents the position of AGV k, select σ to set A ij The minimum value of .

[0086] The motion control law of AGV No. k is designed as follows: .u k Indicates the control signal to be designed.

[0087] The following are instructions for connectivity control:

[0088] Let G represent an undirected graph with non-negative connection weights. The Laplacian matrix L derived from the graph G is a real symmetric matrix, and its spectrum {{λ i}|i=1,...,n} has the following properties:

[0089] All characteristic roots are real numbers, and 0 = λ 1 ≤λ 2 ≤…≤λ n ;

[0090] If and only if λ 2 >0, the graph G is connected.

[0091] Based on the above properties, a controller is designed to make the connectivity λ 2 >0, the variable symbols used are as follows:

[0092] v i Denotes the eigenvector λ i The corresponding eigenvector,

[0093] x represents the eigenvector λ 2 The estimated value of x = (x 1 ,...,x n ) T ;

[0094] Indicates that AGV number i is on λ 2 The estimated value of .

[0095] The description of the eigenvector estimator is as follows:

[0096] For the whole system, the control law is designed as follows:

[0097]

[0098] in represents an n-dimensional column vector with all items being 1, Ave() represents the mean, k 1 ,k 2 ,k 3 are three positive constants. When the initial conditions satisfy that x is a non-zero vector and k 1 >k 2 λ 2 ,k 3 >k 2 λ 2 When x converges to λ 2 The corresponding eigenvector ( is the estimated value obtained according to the algorithm) and satisfies

[0099] and By A ij From the definition, we know that 0≤A ij <1, so k can be selected 1 ,k 3 >n(n-1)k 2 Due to the distributed framework, we need to design an estimator for Ave({x i}) and Ave({(x i ) 2}) is estimated. trace(L) represents the sum of the main diagonal elements of matrix L.

[0100] The description of the mean estimator is as follows:

[0101] For AGV No. i, the control law is designed as follows:

[0102]

[0103]

[0104] The recorded values ​​of the parameters that need to be averaged. Ave({x i}) and Ave({(x i ) 2}), so in the following, x i With (x i ) 2 Substitute into, where γ>0 represents the rate at which new information replaces old information, α i Indicates the recorded value, z i Indicates that AGV No. i calculates x i and (x i ) 2 The mean value of K P and K I represents the estimator gain.

[0105] α i =x i With α i =(x i ) 2 Substitute them into z i,1 and z i,2 , which is Ave({x i}) and Ave({(x i ) 2 The estimated value of} is as follows:

[0106]

[0107] Replace with x The right side of the equation becomes That is z i,2 , and finally the connectivity of AGV No. i can be calculated:

[0108] The instructions for connecting the controller are as follows:

[0109] For AGV number k, the control law is designed as follows:

[0110]

[0111] Along the gradient direction, the connectivity λ 2 Increases fastest when the initial connectivity λ 2 When >0, it can be ensured that the connectivity of the entire process is always greater than 0.

[0112] and are the products of 1×n, n×n, and n×1 matrices respectively. The results of the three items are numbers rather than vectors. get:

[0113]

[0114] get:

[0115]

[0116] use replace Only changing the magnitude of the control signal without changing the direction gives

[0117]

[0118] Previously defined It is possible to calculate:

[0119]

[0120]

[0121]

[0122]

[0123] Substituting into the above formula, we get:

[0124]

[0125] Use x respectively k ,x j approximate The final control law is obtained:

[0126]

[0127]

[0128] The final control law obtained above can help achieve consistency in task allocation and obtain the optimal allocation plan. When connectivity is not maintained, there are two (or more) groups of AGVs that allocate tasks in their respective groups. Since these two (or more) groups of AGVs are not connected (i.e., they cannot communicate with each other), the same task may be completed by two AGVs, resulting in task conflicts; only when connectivity is maintained, all AGVs' bids for a task (i.e., the reward for completing the task) will be compared to ensure that the task is executed by the AGV with the largest bid and that other AGVs will not execute the task. The final control law ensures that connectivity is maintained, which is the prerequisite for task allocation.

[0129] The description of task allocation is as follows:

[0130] Use N u represents the set of all AGVs, |N u |=n represents the total number of AGVs, N t represents the set of all tasks, |N t | represents the total number of tasks. The goal of task allocation is to find a matching solution between tasks and AGVs without conflicts, so as to maximize the global reward. Each AGV is assigned to at most L t tasks, when there are N min =min{|N t |,nL t After all tasks are assigned, the task assignment process ends. Assuming that the global reward is the sum of local rewards, and the local reward is related to the task assigned to each AGV, the task assignment problem can be described as:

[0131]

[0132] And the following constraints are met:

[0133]

[0134]

[0135]

[0136]

[0137] For AGV No. i, the symbols of each variable are as follows:

[0138] c ij : The reward for completing task j, c ij [p i] indicates that the i-th AGV presses p i The reward for completing task j after executing the task. j represents the sequence number of the AVG task.

[0139] t i :|N t |-dimensional column vector, recording the distribution of tasks, t ij =1 indicates that task j is assigned to AGV i, otherwise it is 0.

[0140] p i :Record the execution order of the assigned tasks. The task bundle of AGV No. i is based on the vector p i OK, for Indicates that no task is assigned to AGV number i.

[0141] When L t =1,c ij (t i ,p i )≡c ij , it can be simplified to a single assignment problem.

[0142] c ij [p i ] means the reward for AGV i completing task j. This reward is based on the existing task p i Calculated.

[0143] Task bundle construction:

[0144] In the first stage, each AGV continuously adds tasks to its own task bundle until no more tasks can be added (the number of tasks reaches L t or N t tasks have been assigned), for AGV number i, the variable symbols used are as follows:

[0145] y i :|N t |-dimensional column vector, y ij Record the maximum reward that can be obtained by completing task j, which is not necessarily completed by AGV i.

[0146] z i :|N t |-dimensional column vector, z ij Record the AGV number that completes task j.

[0147] h i :|N t |-dimensional column vector, h ij Used to determine whether a condition is met.

[0148] m: Used to indicate the execution order of tasks.

[0149] Initial conditions For AGV number i, the task is added to the task bundle in the following way:

[0150] Step C1:

[0151] Step C2: Calculate the reward c for completing each task ij [p i ], if task j is already in its own task bundle, c ij =0, when c ij >y ij When ij is 1.

[0152] Step C3: Calculate c ij ×h ij , and use J i Recording ij ×h ij Get the task number with the maximum value.

[0153] Step C4:

[0154] other, in is the reward for the i-th AGV to complete the q-th task in the task bundle, The definition of ensures that the reward for completing the tasks in the task bundle in the execution order is non-increasing, which effectively guarantees the convergence of the algorithm.

[0155] Indicates the completion of the Jth AGV record i The maximum reward that can be obtained from the task. q It represents the qth AVG task in the task bundle, and the jth AGV task is the qth AVG task in the task bundle. Indicates that the i-th AGV completes the J-th i The reward for the AGV mission.

[0156] According to the definition in step C4, assuming that there is already a task in the task bundle, now add task J i Add it in and get the reward of if is not greater than the reward obtained by adding the first task, then otherwise The value of is equal to the reward obtained by adding the first task, and Not waiting.

[0157] Step C5: Repeat steps C1, C2, C3, and C4 until the number of tasks |pi |=L t .

[0158] Let's take an example to illustrate the process of constructing the above task bundle: there are M task points in the map, and the AGV can pass through at most m task points. A route is generated with the current position of the AGV as the starting point. The number of task points passed on the route is equal to M or m, and the path of this route is the shortest (assuming that the reward for each task is the same). The order of the task points on this route is the p above. i .

[0159] Conflict Resolution:

[0160] In the second stage, the AGVs communicate with each other, and finally each task is assigned to only one AGV.

[0161] For AGV No. i, the method is as follows:

[0162] Step D1: Record the maximum reward for completing each task and the column vector y corresponding to the AGV number i 、z i Send to its neighbor AGV, and receive the

[0163] Step D2: Update y ij : And store the corresponding agent number in z ij .

[0164] Step D3: If z ij ≠i,t ij =0; if t ij If it changes from 1 to 0, all tasks j and the tasks added later in the task bundle are cleared to update p i , and update m at the same time.

[0165] After step D3, steps C1 to C5 of the first stage are re-executed to realize task bundle allocation, and steps D1, D2 and D3 are repeated until y i 、z i No longer changing.

[0166] See also Figure 2 and Figure 3 , Figure 2 A schematic diagram of AGV task distribution in a working area provided in an embodiment of the present application, Figure 3 A schematic diagram of the distribution of AGV equipment in a work area provided in an embodiment of the present application. Figure 2In the figure, the distance between task 1 and task 2 is 10m, the distance between task 1 and task 3 is 18m, the distance between task 1 and task 4 is 11m, the distance between task 2 and task 3 is 11m, the distance between task 2 and task 4 is 13m, and the distance between task 3 and task 4 is 16m. Figure 3 In the figure, the distance between AGV No. 1 and task 1 is 5m, the distance between AGV No. 1 and task 2 is 6m, the distance between AGV No. 1 and task 3 is 14m, and the distance between AGV No. 1 and task 4 is 8m; the distance between AGV No. 2 and task 1 is 15m, the distance between AGV No. 2 and task 2 is 7m, the distance between AGV No. 2 and task 3 is 5m, and the distance between AGV No. 2 and task 4 is 13m; the distance between AGV No. 3 and task 1 is 14m, the distance between AGV No. 3 and task 2 is 8.5m, the distance between AGV No. 3 and task 3 is 8m, and the distance between AGV No. 3 and task 4 is 9m.

[0167] exist Figure 2 and Figure 3 There are 4 tasks and 3 AGVs in total. Each AGV can complete at most 4 tasks. Assume that the reward for completing each task is R, and the fuel penalty is kl, where k is a fixed coefficient and l represents the distance between the starting point and the task point. The initial condition is

[0168] The first stage is carried out as follows. For AGV No. 1, there are:

[0169] First loop:

[0170] (1)

[0171] (2)

[0172] m=1,t 1 =(1,0,0,0) T ,p 1 =1,y 1 =(R-5k,0,0,0) T ,z 1 =(1,0,0,0) T .

[0173] Second loop:

[0174] (1)

[0175] (2)c 1 [1] = (0, R-10k, R-18k, R-11k) T ,h 1 =(0,1,1,1) T ,J 1 =2,

[0176] m=2,t 1=(1,1,0,0) T ,p 1 =(1,2) T ,y 1 =(R-5k,R-10k,0,0) T ,z 1 =(1,1,0,0) T .

[0177] Third cycle:

[0178] (1)

[0179] (2)c 1 [1→2]=(0,0,R-11k,R-13k) T ,h 1 =(0,0,1,1) T ,J 1 =3,

[0180] m=3,t 1 =(1,1,1,0) T ,p 1 =(1,2,3) T ,y 1 =(R-5k,R-10k,R-11k,0) T ,z 1 =(1,1,1,0) T .

[0181] Fourth cycle:

[0182] (1)

[0183] (2)c 1 [1→2→3]=(0,0,0,R-16k) T ,h 1 =(0,0,0,1) T ,J 1 =4,

[0184] m=4,t 1 =(1,1,1,1) T ,p 1 =(1,2,3,4) T ,y 1 =(R-5k,R-10k,R-11k,R-16k) T ,z 1 =(1,1,1,1) T ;

[0185] Similarly, for AGV No. 2, we have:

[0186] t 2 =(1,1,1,1) T ,p 2 =(3,2,1,4) T ,

[0187] y 2 =(R-11k,R-11k,R-5k,R-11k) T ,

[0188] z 2 =(2,2,2,2) T ,

[0189] In the above formula, y 21 =R-11k instead of y 21 =R-10k, to ensure that the rewards for completing tasks in order are non-increasing. In fact, the role of the record value is to treat the rewards that are not non-increasing as non-increasing.

[0190] Similarly for AGV No. 3, there are:

[0191] t 3 =(1,1,1,1) T ,p 3 =(3,2,1,4) T ,

[0192] y 3 =(R-11k,R-11k,R-8k,R-11k) T ,

[0193] z 3 =(3,3,3,3) T ,

[0194] In the second stage, the AGVs communicate with each other to reach a conflict-free task allocation:

[0195] Because of y 11 >y 21 =y 31 ,y 12 >y 22 =y 32 ,y 23 >y 33 >y 13 , the tasks are assigned as follows:

[0196] AGV No. 1 clears tasks 3 and 4 from the task bundle and obtains tasks 1 and 2;

[0197] AGV No. 2 clears tasks 2, 1, and 4 from the task bundle and obtains task No. 3;

[0198] AGV No. 3 cleared tasks 3, 1, 2, and 4 from the task bundle and received no tasks.

[0199] The variables are represented as follows:

[0200] p 1 =(1,2) T ,y 1 =(R-5k,R-10k,R-5k,0) T ,z 1 =(1,1,2,0) T ;

[0201] p 2 =3,y 2 =(R-5k,R-10k,R-5k,0) T ,z 2 =(1,1,2,0) T ;

[0202]

[0203] Then repeat the first stage, and each AGV rebuilds its own task bundle, and obtains:

[0204] AGV No. 1:

[0205] t 1 =(1,1,0,1) T ,p 1 =(1,2,4) T ,

[0206] y 1 =(R-5k,R-10k,R-5k,R-13k) T ,

[0207] z 1 =(1,1,2,1) T ,

[0208] AGV No. 2:

[0209] t 2 =(0,0,1,1) T ,p 2 =(3,4) T ,

[0210] y 2 =(R-5k,R-10k,R-5k,R-16k) T ,

[0211] z 2 =(1,1,2,2) T ,

[0212] AGV No. 3:

[0213] t 3 =(0,1,0,1) T ,p 3 =(2,4) T ,

[0214] y 3 =(R-5k,R-8.5k,R-5k,R-13k) T ,

[0215] z 3 =(1,3,2,3) T ,

[0216] Entering the second stage, due to y 32 >y 22 =y 12 ,y 34 >y 24 ,The task allocation is as follows: AGV 1 clears tasks 2 and 4 from the task bundle and does not get any task; AGV 2 clears task 4 from the task bundle and does not get any task;

[0217] AGV No. 3 did not clear the task and received tasks 2 and 4.

[0218] The variables are represented as follows:

[0219] AGV No. 1:

[0220] t 1 =(1,0,0,0) T ,p 1 =1,

[0221] y 1 =(R-5k,R-8.5k,R-5k,R-13k) T ,

[0222] z 1 =(1,3,2,3) T ,

[0223] AGV No. 2:

[0224] t 2 =(0,0,1,0) T ,p 2 =3,

[0225] y 2 =(R-5k,R-8.5k,R-5k,R-13k) T ,

[0226] z 2 =(1,3,2,3) T,

[0227] AGV No. 3:

[0228] t 3 =(0,1,0,1) T ,p 3 =(2,4) T ,

[0229] y 3 =(R-5k,R-8.5k,R-5k,R-13k) T ,

[0230] z 3 =(1,3,2,3) T ,

[0231] Repeat the first stage again and rebuild the task bundle: AGV No. 1:

[0232] t 1 =(1,0,0,1) T ,p 1 =(1,4) T ,

[0233] y 1 =(R-5k,R-8.5k,R-5k,R-11k) T ,

[0234] z 1 =(1,3,2,1) T ,

[0235] AGV No. 2:

[0236] t 2 =(0,0,1,0) T ,p 2 =3,

[0237] y 2 =(R-5k,R-8.5k,R-5k,R-13k) T ,

[0238] z 2 =(1,3,2,3) T ,

[0239] AGV No. 3:

[0240] t 3 =(0,1,0,1) T ,p 3 =(2,4) T ,

[0241] y 3=(R-5k,R-8.5k,R-5k,R-13k) T ,

[0242] z 3 =(1,3,2,3) T ,

[0243] Entering the second stage, due to y 14 >y 34 , the tasks are assigned as follows:

[0244] AGV No. 1 did not clear the task and got task 4;

[0245] AGV No. 2 did not clear the task and did not get the task;

[0246] AGV No. 3 cleared task 4 and did not get the task.

[0247] After repeating the above cycle, the result of task allocation will not change, see Figure 4 , Figure 4 This is a schematic diagram of a task allocation result provided in an embodiment of the present application. The final result is as follows: AGV No. 1 first performs task 1 and then performs task 4, AGV No. 2 performs task 3, and AGV No. 3 performs task 2. The total distance is 5+11+5+8.5=29.5m.

[0248] Now let's explain why the reward requirement for completing tasks in order is non-increasing. If in step C4 of the first stage , at this time, the rewards for completing tasks in order do not necessarily increase. Take the following simple situation as an example:

[0249] See also Figure 5 , Figure 5 Another schematic diagram of AGV task distribution in a work area provided in an embodiment of the present application, AGV No. 1 is 8m away from Task 1, AGV No. 1 is 9m away from Task 2, AGV No. 2 is 9m away from Task 1, AGV No. 2 is 8m away from Task 2, and Task 1 is 6m away from Task 2.

[0250] After the first phase, there are:

[0251] t 1 =(1,1) T ,p 1 =(1,2) T ,y 1 =(R-8k,R-6k),z 1 =(1,1) T ;

[0252] t 2 =(1,1) T ,p2 =(2,1) T ,y 2 =(R-6k,R-8k),z 2 =(2,2) T ;

[0253] Entering the second stage, due to y 21 >y 11 ,y 12 >y 21 , AGV No. 1 clears tasks 1 and 2 from the task bundle, and AGV No. 2 clears tasks 2 and 1 from the task bundle. No task is assigned, and then the above cycle is repeated and falls into a deadlock.

[0254] This embodiment adopts a distributed framework, and each AGV negotiates and makes decisions, ultimately achieving conflict-free task scheduling. This embodiment provides a solution for maintaining connectivity, rather than simply taking it as a prerequisite. While maintaining connectivity, this embodiment clearly provides a method for calculating connectivity and achieves visualization of connectivity. This embodiment assigns multiple tasks to a group of AGVs under the condition of communication constraints (each AGV can only exchange information with other AGVs within its communication range), ultimately achieving conflict-free task allocation (one task can only be performed by one AGV) and achieving the optimization of the required indicators (such as shortest time, shortest distance, or least power consumption, etc.).

[0255] In this embodiment, in the distributed control based on market auction, each AGV conducts an auction with its neighboring AGVs without a fixed auctioneer, which reduces the requirements for controller performance, improves the ability to deal with risks, is more robust, and has more obvious advantages in large-scale AGV applications. Compared with other distributed methods that only take connectivity as a prerequisite, this embodiment solves the problem of how to maintain connectivity and is more universal in practical applications. The connectivity control module allows each AGV to monitor the connectivity of the entire communication network in real time. When the task scheduling ends and enters the execution phase, it can provide a certain reference basis for AGV to plan the actual path.

[0256] See also Figure 6 , Figure 6 A schematic diagram of a multi-AGV distributed task scheduling system provided in an embodiment of the present application, which can be applied to a target AGV, includes:

[0257] Query module 601, used to query the task locations of all AGV tasks in the work area;

[0258] The initial allocation module 602 is used to generate task allocation information according to the initial position of the target AGV and the task position; wherein the task allocation information includes the initial task execution order and reward information; the reward information is used to record the maximum reward that can be obtained after each AGV task is executed;

[0259] The adjustment module 603 is used to obtain the task allocation information of each neighbor AGV in the working area, compare the task allocation information of the target AGV with the task allocation information of the neighbor AGV, and adjust the initial task execution order of the target AGV and the reward information according to the comparison result to obtain the preferred task execution order so that the global reward reaches the maximum value; wherein the global reward is the sum of the rewards obtained by all AGVs for executing all AGV tasks;

[0260] The execution module 604 is used to execute the corresponding AGV tasks in sequence according to the preferred task execution order.

[0261] Furthermore, the process of the initial allocation module 602 generating task allocation information according to the initial position of the target AGV and the task position includes:

[0262] Step A1: Calculate the reward c for the target AGV to complete the jth AGV task based on the initial position of the target AGV and the task position ij [p i ]; where c ij [p i ] means according to the vector p i The reward obtained by completing the jth AGV task after executing the AGV task is vector p i Used to describe the execution order of the AGV tasks assigned to the i-th AGV;

[0263] Step A2: Update the task identifier J by i Among them, J i Used to record the c ij ×h ij The AGV task number that obtains the maximum value, h ij Indicates that the condition is satisfied; when c ij [p i ]>y ij Time ij The value changes from 0 to 1, and vice versa. ij The value of y is 0; ij represents the maximum reward that the i-th AGV can obtain by completing the j-th task; h ij When it is 0, it means the condition is not met. ij When it is 1, it means the condition is met.

[0264] Step A3: Determine vector pi Whether the number of tasks recorded in reaches the rated number of tasks; if so, according to the vector p i and ij Determine the task allocation information including the initial task execution order and the reward information; if not, adjust the value of j and enter step A1.

[0265] Furthermore, it also includes:

[0266] The rated task quantity determination module is used to determine the vector p i Before determining whether the number of tasks recorded in reaches the rated number of tasks, the minimum value between the maximum number of task executions of the target AGV and the total number of AGV tasks is set as the rated number of tasks.

[0267] Furthermore, it also includes:

[0268] Parameter update module, used to calculate y according to the preset formula ij , and using the vector z ij Record the assignment of the jth AGV task;

[0269] Among them, the first preset formula is m represents the number of tasks in the task bundle after adding a new AGV task, j q Represents the qth AVG task in the task bundle.

[0270] Furthermore, the adjustment module 603 obtains the task allocation information of each neighbor AGV in the working area, compares the task allocation information of the target AGV with the task allocation information of the neighbor AGV, and adjusts the initial task execution order of the target AGV and the reward information according to the comparison result to obtain the preferred task execution order. The process includes:

[0271] Step B1: Obtaining task allocation information of each neighbor AGV in the working area;

[0272] Step B2: Compare the task allocation information of the target AGV with the task allocation information of the neighbor AGV, and update y using the second preset formula ij ; Wherein, the second preset formula is N t represents the total number of AGV tasks, k represents the kth neighbor AGV;

[0273] Step B3: According to y ij Update the adjustment vector z ij ;

[0274] Step B4: If z ij≠i, then the jth AGV task in the initial task execution order and the AGV tasks added thereafter are all cleared to update the vector p i ;

[0275] Step B5: Determine whether there is a task allocation situation determined last time; if so, proceed to step B4; if not, perform the operations of step A1, step A2, step A3, step B1, step B2, step B3, step B4 and step B5 in sequence;

[0276] Step B6: According to the vector p corresponding to all AGVs i Determine the current task allocation situation and judge whether the current task allocation situation is the same as the task allocation situation determined most recently; if so, the vector p corresponding to the target AGV is i Set as the preferred task execution order of the target AGV; if not, execute the operations of step A1, step A2, step A3, step B1, step B2, step B3, step B4 and step B5 in sequence.

[0277] Furthermore, it also includes:

[0278] The communication module is used to send the task allocation information of the target AGV to each of the neighboring AGVs in the working area after generating the task allocation information according to the initial position of the target AGV and the task position, so as to adjust the initial task execution order of the neighboring AGVs.

[0279] Furthermore, it also includes:

[0280] The path planning module is used to detect the connectivity of the AGV system communication network and plan a motion path for the target AGV to perform the AGV task according to the connectivity of the AGV system communication network.

[0281] Since the embodiments of the system part correspond to the embodiments of the method part, please refer to the description of the embodiments of the method part for the embodiments of the system part, which will not be repeated here.

[0282] The various embodiments in the specification are described in a progressive manner, and each embodiment focuses on the differences from other embodiments. The same and similar parts between the various embodiments can be referred to each other. For the system disclosed in the embodiment, since it corresponds to the method disclosed in the embodiment, the description is relatively simple, and the relevant parts can be referred to the method part description. It should be pointed out that for ordinary technicians in this technical field, without departing from the principles of this application, several improvements and modifications can be made to the present application, and these improvements and modifications also fall within the scope of protection of the claims of this application.

[0283] It should also be noted that, in this specification, relational terms such as first and second, etc. are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Moreover, the terms "comprises", "comprising" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, an element defined by the statement "comprising a ..." does not exclude the presence of other identical elements in the process, method, article or device including the element.

Claims

1. A multi-AGV distributed task scheduling method, characterized in that: Applied to target AGVs, including: Query the task locations of all AGV tasks in the work area; Generate task allocation information according to the initial position of the target AGV and the task position; wherein the task allocation information includes the initial task execution order and reward information; the reward information is used to record the maximum reward that can be obtained after each AGV task is executed; Obtaining the task allocation information of each neighbor AGV in the work area, comparing the task allocation information of the target AGV with the task allocation information of the neighbor AGV, and adjusting the initial task execution order of the target AGV and the reward information according to the comparison result to obtain the preferred task execution order so that the global reward reaches the maximum value; wherein the global reward is the sum of the rewards obtained by all AGVs for executing all AGV tasks; Execute the corresponding AGV tasks in sequence according to the preferred task execution order.

2. The multi-AGV distributed task scheduling method according to claim 1 is characterized in that: Generating task allocation information according to the initial position of the target AGV and the task position, including: Step A1: Calculate the reward c for the target AGV to complete the jth AGV task based on the initial position of the target AGV and the task position ij [p i ]; where c ij [p i ] means according to the vector p i The reward obtained by completing the jth AGV task after executing the AGV task is vector p i Used to describe the execution order of the AGV tasks assigned to the i-th AGV; Step A2: Update the task identifier J by i Among them, J i Used to record the c ij ×h ij The AGV task number that obtains the maximum value, h ij Indicates that the condition is satisfied. When c ij [p i ]>y ij Time ij The value of y changes from 0 to 1, ij It represents the maximum reward that the i-th AGV can obtain by completing the j-th task; Step A3: Determine vector p i Whether the number of tasks recorded in reaches the rated number of tasks; if so, according to the vector p i and ij Determine the task allocation information including the initial task execution order and the reward information; if not, adjust the value of j and proceed to step A1; Also includes: Calculate y according to the first preset formula ij , and using the vector z ij Record the assignment of the jth AGV task; Among them, the first preset formula is m represents the number of tasks in the task bundle after adding a new AGV task, j q Represents the qth AVG task in the task bundle.

3. The multi-AGV distributed task scheduling method according to claim 2 is characterized in that: In the judgment vector p i Before the number of tasks recorded in reaches the rated number of tasks, it also includes: The minimum value of the maximum executable task quantity of the target AGV and the total number of tasks assigned to the AGV is set as the rated task quantity.

4. The multi-AGV distributed task scheduling method according to claim 2 is characterized in that: Obtaining the task allocation information of each neighbor AGV in the work area, comparing the task allocation information of the target AGV with the task allocation information of the neighbor AGV, and adjusting the initial task execution order of the target AGV and the reward information according to the comparison result to obtain the preferred task execution order, including: Step B1: Obtaining task allocation information of each neighbor AGV in the working area; Step B2: Compare the task allocation information of the target AGV with the task allocation information of the neighbor AGV, and update y using the second preset formula ij ; Wherein, the second preset formula is N t represents the total number of AGV tasks, k represents the kth neighbor AGV; Step B3: According to y ij Update the adjustment vector z ij ; Step B4: If z ij ≠i, then the jth AGV task in the initial task execution order and the AGV tasks added thereafter are all cleared to update the vector p i ; Step B5: Determine whether there is a task allocation situation determined last time; if so, proceed to step B4; if not, perform the operations of step A1, step A2, step A3, step B1, step B2, step B3, step B4 and step B5 in sequence; Step B6: According to the vector p corresponding to all AGVs i Determine the current task allocation situation and judge whether the current task allocation situation is the same as the most recently determined task allocation situation; if so, the vector p corresponding to the target AGV is i Set as the preferred task execution order of the target AGV; if not, execute the operations of step A1, step A2, step A3, step B1, step B2, step B3, step B4 and step B5 in sequence.

5. The multi-AGV distributed task scheduling method according to claim 1 is characterized in that: After generating the task allocation information according to the initial position of the target AGV and the task position, the method further includes: The task allocation information of the target AGV is sent to each of the neighboring AGVs in the working area so as to adjust the initial task execution order of the neighboring AGVs.

6. The multi-AGV distributed task scheduling method according to claim 1, characterized in that: Also includes: The connectivity of the AGV system communication network is detected, and a motion path for the target AGV to perform the AGV task is planned according to the connectivity of the AGV system communication network.

7. A multi-AGV distributed task scheduling system, characterized in that: Applied to target AGVs, including: The query module is used to query the task locations of all AGV tasks in the work area; An initial allocation module, used to generate task allocation information according to the initial position of the target AGV and the task position; wherein the task allocation information includes the initial task execution order and reward information; the reward information is used to record the maximum reward that can be obtained after each AGV task is executed; An adjustment module is used to obtain the task allocation information of each neighbor AGV in the working area, compare the task allocation information of the target AGV with the task allocation information of the neighbor AGV, and adjust the initial task execution order of the target AGV and the reward information according to the comparison result to obtain the preferred task execution order so that the global reward reaches the maximum value; wherein the global reward is the sum of the rewards obtained by all AGVs for executing all AGV tasks; The execution module is used to execute the corresponding AGV tasks in sequence according to the preferred task execution order.

8. The multi-AGV distributed task scheduling system according to claim 7, characterized in that: Also includes: The communication module is used to send the task allocation information of the target AGV to each of the neighboring AGVs in the working area after generating the task allocation information according to the initial position of the target AGV and the task position, so as to adjust the initial task execution order of the neighboring AGVs.

9. The multi-AGV distributed task scheduling system according to claim 7, characterized in that: Also includes: The path planning module is used to detect the connectivity of the AGV system communication network and plan a motion path for the target AGV to perform the AGV task according to the connectivity of the AGV system communication network.

Citation Information

Patent Citations

  • Distributed multi-AGV dynamic task allocation and path planning method and system

    CN110264062A

  • AGV dynamic path planning method based on distributed reinforcement learning

    CN115047831A