A Clustering-Based Multi-UAV Distributed Dynamic Task Allocation Method
By combining K-means clustering and CBBA methods, the UAV task allocation is optimized, and the inefficiency and conflict problems in the dynamic task allocation of multiple UAVs are solved, and the rapid and reliable task reallocation is achieved, which is suitable for complex rescue scenarios.
Patent Information
- Application Number
- CN202310181484.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-02-20
- Publication Date
- 2025-07-08
- Estimated Expiration
- 2043-02-20
AI Technical Summary
The existing multi-UAV distributed task allocation method is inefficient in dynamic task allocation scenarios, difficult to quickly respond to task changes and drone failures, and is easily trapped in local optimal solutions.
Combining the K-means clustering method and the CBBA method, a candidate task set of drones is constructed through clustering, and the tasks that are closest are selected are preferred, conflicts between drones are reduced, and a distributed consensus mechanism is used for task allocation.
It improves the efficiency of multi-drone mission allocation, reduces conflicts between drones, reduces operating time, and can quickly respond to emergencies such as increased missions and drone failures, and plan more reasonable mission plans.
Smart Images

Figure CN116149370B_ABST
Abstract
Description
Technical Field
[0001] The present invention belongs to the field of intelligent task planning, and particularly relates to a clustering-based multi-UAV distributed dynamic task allocation method. Background Technique
[0002] The cooperative task allocation of multi-UAVs is an important part of the field of intelligent task planning. The cooperative task allocation of multi-UAVs is essentially a combinatorial optimization problem. According to different control structures, it can be divided into centralized task allocation and distributed task allocation. In centralized task allocation, a central control unit processes all information to formulate a suitable task allocation scheme, while the UAVs themselves do not make decisions. Its advantage lies in its simple implementation and the ability to solve the global optimal solution. However, due to the centralized information, its computational complexity is high and it is difficult to meet the real-time requirements of the system. In distributed task allocation, each UAV is regarded as an independent individual with autonomous decision-making ability. They communicate with each other through information exchange for collaborative decision-making to obtain a consistent task allocation scheme. Its advantages are that it can perform parallel computing to relieve the computing pressure, and at the same time has good scalability and robustness. However, this method is difficult to guarantee the quality of the solution and is easy to fall into local optimality.
[0003] The CBBA method, based on the Consensus-Based Bundle Algorithm (CBBA), is a distributed method based on auction rules proposed by Han-Lim Choi et al. for solving the multi-task allocation problem. Given the positions of UAVs and tasks and a series of constraints, taking them as inputs, through continuous iteration of two stages in this method, a relatively reasonable task allocation scheme can be obtained. These two stages are: the first stage is the task package construction stage, where each UAV independently selects the most suitable task to join its task set to construct its own task package; the second stage is the conflict resolution stage, where each UAV communicates with neighboring UAVs and, according to certain auction rules, the UAV with the highest bid selects the corresponding task, while other UAVs delete the task from their task sets to avoid conflicts in task selection among UAVs. CBBA achieves consensus among the UAV cluster through cyclic iteration between the two stages.
[0004] The K-means clustering method. The term "K-means" was first proposed by James MacQueen in his 1967 paper "Some Methods for Classification and Analysis of Multivariate Observations". In 1957, Bell Labs also applied the standard method to pulse code modulation technology. That is, input the original sample points and determine the number of clusters to be divided. Through the iterative calculation of the two stages of this method, samples with similar attributes are grouped into the same cluster. The two stages of this method are: The first stage is the stage of calculating the Euclidean distance. First, randomly select k samples in the original data, and each sample serves as the center of one of the k clusters. Then, calculate the distances between the remaining samples and the k central samples respectively, and assign each sample to the cluster to which the central sample with the closest distance belongs as the cluster of this central sample. The second stage is the stage of updating the positions of the central samples. According to the samples in the clusters, recalculate the centers of each cluster. Repeat the iteration until the centers of the clusters no longer change. Summary of the Invention
[0005] The present invention proposes a clustering-based multi-UAV distributed dynamic task allocation method, aiming to solve the dynamic task allocation problem of multi-UAVs, and can quickly and reliably reallocate tasks according to real-time information in the rescue scenario, and effectively handle emergencies such as task increase, UAV failure, and group merger.
[0006] This method combines the K-means clustering method with high simplicity and efficiency with the traditional CBBA method. Since in the first stage of the traditional CBBA method, each UAV independently selects the most suitable task from all candidate tasks to add to its task set and constructs its own task package, it takes a lot of time to search for tasks. Therefore, for the cooperative task allocation problem of multi-UAVs, a clustering method is used to construct the candidate task set of UAVs to quickly and efficiently respond to complex rescue task scenarios.
[0007] The present invention proposes an improved CBBA method, that is, the clustering-based CBBA method. In the traditional CBBA method, each UAV selects suitable tasks from all tasks to construct its own task package, which results in more conflicts during the negotiation process and reduces the method efficiency. According to people's experience, when allocating tasks closer to a UAV, the performance of the allocation scheme is better. Therefore, a clustering-based CBBA method is proposed, so that each UAV preferentially selects tasks closer to it to construct a task package, in order to reduce possible conflicts between UAVs and improve the method efficiency.
[0008] The specific technical solution is as follows:
[0009] The multi-UAV distributed dynamic task allocation method based on clustering proposed by the present invention has the characteristics of high allocation efficiency and wide application scenarios, and can effectively solve the problem of multi-UAV distributed dynamic task allocation. The specific application steps of this method are as follows:
[0010] Preparation: The positions of the UAVs U i , task points T in the environment are all known, and their quantities are also known. Let the number of UAVs be n, the number of survivors be m, the maximum number of iterations of the method be max_iter, and i = 1, 2,..., n represents the current UAV serial number.
[0011] Step 1: The UAV verifies the identity information of other UAVs. Taking UAV A and UAV B as examples, UAV B first generates its own private key and public key using an encryption algorithm. UAV B encrypts its own identity ID with the private key and transmits the encrypted information and the public key to UAV A to be communicated with. After receiving the information transmitted by UAV B, UAV A decrypts the information with the public key. If the verification is successful, it is a member within the group.
[0012] Step 2: According to the current positions of each UAV within the group, select the UAV located at the central position in the UAV fleet as the leader UAV.
[0013] Step 3: Other members of the UAV fleet perform a hash operation on their own status information to generate an information digest, and then encrypt the information digest with the private key. The encrypted information digest and the status information of the members are transmitted to the leader UAV together through a distributed network.
[0014] Step 4: The leader UAV first performs the same hash operation on the status information sent by the members, which will also generate an information digest. Then, it decrypts the encrypted information digest transmitted by the members with the public key. If these two information digests are the same, it means that the information verification is successful and the information is not lost during the reception process. Collect the status information confirmed by other UAVs within the group and fuse it with its own status information to obtain the fused status information.
[0015] Step 5: The leader UAV transmits the fused status information to other UAVs within the group. After receiving the fused status information, other UAVs perform a credibility check on it with their own status information. If the check passes, a consensus on the status information is reached.
[0016] Step 6: Before clustering starts, add the tasks that have been allocated to the candidate task set of the corresponding UAVs and no longer perform clustering on them.
[0017] Step 7: For the tasks that have not been assigned, use the K-means clustering method and add them to the candidate task sets of the corresponding UAVs. For the current task allocation problem, the number of cluster centers k is known and is equal to the total number of UAVs. The unassigned tasks select the class S where the nearest cluster center is located. u .
[0018] Step 8: Update the positions of the cluster centers
[0019] Step 9: Calculate the scores c ij (p i )
[0020] Step 10: After calculating the scores of each task added to the path respectively, select the task J with the highest score i , and update the task package b i and the path p i according to the selected task J i .
[0021] Step 11: If UAV U i receives data information from UAV U k , then update the time stamp.
[0022] Step 12: UAV U i updates its own task package b k according to the received winner list z k , winner bid list y k , and time stamp s i . UAV U i takes update or reset or leave actions according to the data information.
[0023] Step 13: After updating the task package, each UAV should check whether there are updated or reset tasks in its task package b i . If so, delete these tasks and all tasks added to b i after them from the task set.
[0024] Step 14: If new tasks appear during the task execution of the UAV, based on the originally planned task execution path, only allocate the newly discovered tasks, that is, insert the new tasks at the better positions in the original path.
[0025] Step 15: If a certain task is determined to be cancelled before execution, let J dec be the number of the reduced task, and l dec be the corresponding position of this task in the package, indicating that this task is deleted from the task execution sequence.
[0026] Step Sixteen: If a UAV malfunctions, reset the winner list and winner bid list corresponding to the tasks not yet completed by the UAV, and reassign them as new tasks.
[0027] The hash operation described in Step Three is an encryption algorithm. Through the hash function, a message of any length can be mapped into a value with a shorter and fixed length, also known as the message digest. It has uniqueness and irreversibility and can be used to verify the integrity of the UAV status information.
[0028] The state fusion described in Step Four means that during the process of a UAV executing a task, due to its limited communication distance, it can only obtain the status information of some UAVs. To reach a consensus on the working status and task status of each UAV, it is necessary to exchange information and let the lead UAV organize and fuse it.
[0029] The credibility check described in Step Five refers to that after a UAV receives the fused status information sent by the lead UAV, it checks it with the local information part it knows. If each UAV passes the check successfully, a consensus on the overall status information of the UAV fleet is reached.
[0030] For the unassigned task in Step Seven, select the class S where the nearest clustering center is located u The formula is:
[0031]
[0032] where is the class where the u-th clustering center is located in the t-th iteration, x q is the location of the q-th unassigned task, represents the location of the u-th clustering center in the t-th iteration, and ||·|| represents the Euclidean distance between two locations.
[0033] Add the unassigned task to the nearest class according to formula (1).
[0034] The update formula for the clustering center in Step Eight is calculated as follows:
[0035]
[0036] where
[0037] In formula (2), |S u | represents the number of elements in class S u , represents the location of the u-th clustering center in the (t + 1)-th iteration.
[0038] In Step Nine, the scoring function is designed as follows:
[0039]
[0040] In the above formula, the path is defined as the vector p i ={p i1 , p i2 ,..., p i(lb)}, which is used to store the numbers of the tasks corresponding to U in the execution order i where the element p ij is the task number, i = 1, 2,..., n represents the current UAV serial number, and j = 1, 2,..., lb represents the position of the current task number in the path;
[0041] f1 and f2 are the average waiting time and the voyage cost respectively, and c p represents the penalty for violating the corresponding constraint, and P is the total number of constraints.
[0042] In formula (3), f1 and f2 are the average waiting time and the voyage cost respectively, and their calculation formulas are as follows:
[0043]
[0044]
[0045] In formulas (4) and (5), t j represents the task existence time, which is a directly input quantity, and Length q represents the distance between the q-th survivor and the (q + 1)-th survivor, where Length q = ||x q - x q+1 ||.
[0046] For the above scoring function, when the allocation scheme satisfies all constraints, its basic score is 1. Since the present invention believes that the minimum value of the path length is 1, the maximum score of the scheme does not exceed 3.
[0047] In step ten, after calculating the scores after each task is added to the path respectively, the task J i is selected in the following way:
[0048] J i = argmax i (c ij (p i ) × h ij ) (6)
[0049]
[0050] The winner bid list is defined as the vector y i ={y i1 , y i2,...,y im}, for storing U i The maximum bid for the known corresponding task, and the element y in formula (7) ij is the maximum bid. i = 1, 2,..., n represents the current UAV serial number, and j = 1, 2,..., m represents the current task number.
[0051] After selecting the task J with the highest score i then update the package b i and the path p i The update method is as follows i
[0052]
[0053]
[0054]
[0055] In formula (8), the task package is defined as the vector b i ={b i1 , b i2 ,..., b i(lb)}, for storing the numbers of the U i corresponding tasks in the selected order, where the element b ij is the task number. i = 1, 2,..., n represents the current UAV serial number, and j = 1, 2,..., lb represents the position of the current task number in the package;
[0056] Indicates adding the task J i to the last position in the package. Formula (9) then indicates adding the task J i to the position with the highest score in the path. Continuously recursively iterate the above process until reaching the maximum number of tasks that the UAV can execute (lb = Lt), or
[0057] In step eleven, after receiving the UAV information, first update the timestamp as follows
[0058]
[0059] Among them, the timestamp is defined as the vector s i ={s i1 , s i2 ,..., s in}, for storing the time of the latest information received by U i where the element s ij is the time to receive the latest information, where \(i = 1,2,\cdots,n\) represents the current UAV serial number, and \(j = 1,2,\cdots,n\) represents the serial numbers of other UAVs.
[0060] In formula (11), \(\tau\) is the data information reception time, and \(g\) ik represents the i connection relationship between k \(U\) ik and i \(U\) k . If \(g\) ik \( = 1\), it means that
[0061] \(U\) i and k \(U\) ik can be directly connected. If \(g\) i and k \( = 0\), it means that they are not directly connected. i and k \(U\) ik is the time to receive data information at i \(U\) m and k \(U\)
[0062] In step twelve, after the timestamp is updated, UAV i updates its own task package according to the received \(z\) k , \(y\) k , and \(s\) k . There are three possible actions it can take:
[0063] a. Update: \(y\) ij \( = y\) kj , \(z\) ij \( = z\) kj ;
[0064] b. Reset: \(y\) ij \( = 0\), \(z\) ij \( = 0\);
[0065] c. Leave: \(y\) ij \( = y\) ij , \(z\) ij \( = z\) ij ;
[0066] For different self - information and received information, different actions are taken. If the rules in the table are not met, the leave action is taken by default.
[0067] In step thirteen, each drone should check whether there are tasks for update or reset in its package b i If so, these tasks and all tasks added after them in b i are deleted from the task set as follows:
[0068]
[0069] Formula (12) defines l i as the location of the first task in b i not executed by U i Then the task package is updated as follows:
[0070]
[0071]
[0072] Iterate in this way until all drones reach an agreement on a feasible task allocation plan, that is, the winner list z i and the winner bid list y i no longer change for a period of time.
[0073] Step fourteen is the task reallocation phase. If a drone discovers a new task through its detection device, the new task should be inserted at a better position on the original path as follows:
[0074]
[0075]
[0076]
[0077] In the above formula, J add is the new task number.
[0078] Among them, in step fifteen, if a certain task is determined to be cancelled before execution, the following formula is used to delete the task:
[0079]
[0080]
[0081] In the above formula, in formula (19), J dec is the number of the reduced task, and l dec is the corresponding position of the task in the package.
[0082] In step sixteen, if a drone fails, reset the winner list and the winner bid list corresponding to the tasks not yet completed by the drone, and reallocate them as new tasks:
[0083]
[0084]
[0085] In formula (21), U f is the number of the faulty UAV, and l f is the task that the UAV has not completed yet.
[0086] The remarkable beneficial effects of the present invention are as follows:
[0087] The present invention proposes a clustering-based distributed dynamic task allocation method for multiple UAVs, and uses it to solve the dynamic task allocation problem of multiple UAVs. First, for the dynamic task allocation scenario, an optimization model of the problem is established. Then, the K-means clustering method is used to quickly construct task packages to achieve distributed consensus in a communication-constrained dynamic environment. At the same time, due to the introduction of this method, the allocation efficiency of the traditional CBBA algorithm is improved. The improvement of the method can effectively reduce the conflicts between UAVs, reduce the running time, and different reallocation strategies are proposed for different emergencies. Finally, simulation experiments are carried out, and the results prove that the improved method can successfully reduce the conflicts between UAVs, improve the allocation efficiency, can successfully allocate the cooperative tasks of multiple UAVs in different scenarios, and plan a more reasonable and optimal task plan. At the same time, in the dynamic task allocation scenario, the proposed method can effectively handle emergencies such as task increase and UAV failure, and complete the reallocation of rescue tasks at the lowest cost. Brief Description of the Drawings
[0088] Figure 1a is a schematic diagram based on the consistency packet algorithm in the task allocation comparison diagram of Scenario 1.
[0089] Figure 1b is a schematic diagram based on the method of the present application in the task allocation comparison diagram of Scenario 1.
[0090] Figure 2a is a schematic diagram based on the consistency packet algorithm in the task allocation comparison diagram of Scenario 2.
[0091] Figure 2b is a schematic diagram based on the method of the present application in the task allocation comparison diagram of Scenario 2.
[0092] Figure 3 is a comparison data table between the traditional CBBA algorithm and the proposed algorithm.
[0093] Figure 4 is a UAV rescue sequence table.
[0094] Figure 5 is a reallocation strategy table.
[0095] Figure 6 a- Figure 6 Figure j is the task reallocation process diagram. Specific implementation manner
[0096] The present invention will be further described below in combination with the specific implementation process:
[0097] Preparation work: Select two pre-planned task scenarios, and assume that the communication between drones is not restricted. Compare the proposed method with CBBA to verify the effectiveness of the method improvement. The number of drones is 3, namely U1, U2, and U3. There are 15 survivor rescue tasks. Assume that the rescue scenario is that multiple different drones starting from two fixed airports rescue survivors scattered within a 100km×100km space range. The speed of all drones is constant at 1km / min.
[0098] The parameter values are as follows: The number of clustering iterations max_iter = 100; U pos is the airport coordinate where the drone is located. Let the starting coordinates of drones U1 and U2 be U pos = [10, 10], where the quantities of food supplies and medical supplies carried by U1 are Load = [17, 21], the Load of U2 = [11, 13], the starting coordinate of drone U3 is U pos = [90, 90], and the quantities of its two types of supplies are Load = [18, 9]. 15 survivors also need to be initialized. Taking survivor No. 1 in different scenarios as an example, in scenario 1, T pos is the position coordinate of the survivor, T pos = [71.4, 20.2], R represents the quantity of 2 types of supplies required by the survivor, R = [2, 1], td represents the latest rescue time of the survivor, td = 230.4; in scenario 2, survivor No. 1 T pos = [12.9, 60.5], R = [1, 2], td = 241.4.
[0099] Step 1: The drone verifies the identity information of other drones. If the verification is successful, it is a member within the group.
[0100] Step 2: According to the current positions of each drone within the group, select the drone located at the central position in the drone fleet as the leader drone.
[0101] Step 3: Other members of the drone fleet perform a hash operation on their own status information to generate a message digest, and then use the private key to encrypt the message digest. The encrypted message digest and the status information of the members are transmitted to the leader drone together through a distributed network.
[0102] Step 4: The leader aircraft verifies the received status information, collects the status information confirmed by other UAVs in the group, and fuses it with its own status information to obtain the fused status information.
[0103] Step 5: The leader aircraft transmits the fused status information to other UAVs in the group. After other UAVs pass the verification, a consensus on the status information is reached.
[0104] Step 6: Before clustering, add the assigned tasks to the candidate task set of the corresponding UAV.
[0105] Step 7: Initialize the clustering center, UAV positions, unassigned task positions, winner list, and calculate the new clustering center S u t 。
[0106] Let the iteration number t = 1, and calculate the Euclidean distance between the UAV position and the unassigned task position. The formula is:
[0107]
[0108] In formula (22), q = 1, 2,..., 15; u = 1, 2, 3.
[0109] Calculate the new clustering center according to the Euclidean distance between the current UAV position and the unassigned task position where k = 3, and the calculation formula is as follows:
[0110]
[0111] Step 8: Update the clustering center. The update formula is calculated as follows:
[0112]
[0113] During the iteration process, judge whether the distance between the clustering center position at the t-th iteration and the clustering center position at the (t + 1)-th iteration is less than the minimum step size min_impro = 0.1. If it is less, exit the iteration; if it is greater, let the clustering center become the clustering center position at the (t + 1)-th iteration.
[0114] Step 9: Each UAV independently adds the number of the most suitable (highest score) task to the task package in an iterative manner until the maximum number of tasks that can be completed is reached. The score function is calculated as follows:
[0115]
[0116] In formula (25), the total number of constraints P = 3, and the average waiting time f1 and the range cost f2 are calculated as follows:
[0117] The calculation formula for the average waiting time f1 is as follows:
[0118]
[0119] In formula (26), m is the number of survivors, and m = 1, 2,..., 15.
[0120] The calculation formula for the voyage cost f2 is as follows:
[0121]
[0122] In formula (27), n is the number of UAVs, and n = 1, 2, 3.
[0123] Step Ten: After calculating the scores at different positions of the current task insertion path and the score of the new task, select a better task to update the task package and the path.
[0124] The selection of the better task can be seen in formula (28) and formula (29)
[0125] J i = argmax i (c ij (p i )×h ij ) (28)
[0126]
[0127] After selecting the task with the highest score, update the package b i and the path p i according to the selected task J i The update method is as follows:
[0128]
[0129]
[0130]
[0131] Step Eleven: The UAVs exchange information pairwise, and the number of iterations is twice the current number of tasks to eliminate task package conflicts. First, update the time stamp, and the update formula is as follows:
[0132]
[0133] Among them, the number of iterations for time stamp update should be the number of UAVs in the group.
[0134] Step Twelve: After the time stamp is updated, UAV U i according to the received z k 、y k 、sk Update its own task package and take actions as follows:
[0135] a. Update: y ij = y kj , z ij = z kj ;
[0136] b. Reset: y ij = 0, z ij = 0;
[0137] c. Leave: y ij = y ij , z ij = z ij ;
[0138] For different self - information and received information, different actions are taken. If the rules in the table are not met, the default action is to leave.
[0139] Step Thirteen: UAV U i Check whether there are update or reset tasks in its package b i . If so, delete these tasks and all tasks added after them to b i from the task set.
[0140] If is defined as the position of the first task in b i not executed by U i , the deletion method is as follows:
[0141]
[0142]
[0143] Step Fourteen: UAV U i During the task execution, if a new task appears, insert the new task at a better position in the original path, and update the task package and the path:
[0144]
[0145]
[0146]
[0147] Step Fifteen: If a certain task is determined to be cancelled before execution, let J dec be the number of the reduced task, l decIt is the corresponding position of the task in the package, indicating that the task is deleted from the task execution sequence.
[0148] Step Sixteen: If a drone malfunctions, reset the winner list and winner bid list corresponding to the tasks not yet completed by the drone. After resetting, reallocate them as new tasks according to Step Fourteen.
[0149] As can be seen from Figures 1 and 2, for Scenario 1, a total of 11 survivors were jointly rescued by two drones in the rescue plan based on the consistency package algorithm, while the method proposed by the present invention has 3. For Scenario 2, 9 survivors were jointly rescued by two drones in the rescue plan based on the consistency package algorithm, while the method proposed by the present invention has only 1. The method proposed by the present invention is more inclined to use one drone to complete two rescue tasks for the same survivor. When its supplies are insufficient to meet the needs of the same survivor, another drone will assist in the rescue. As shown by Figure 3 the data, such a rescue idea effectively avoids the repeated flight of drones, greatly reduces the total flight distance of drones, and reduces the average waiting time of survivors.
[0150] The clustering-based multi-drone distributed dynamic task allocation method proposed by the present invention is mainly used for real-time task reallocation during the task execution stage of drones. Therefore, taking drone failure as an example of an emergency situation, the process can be seen from Figure 6 that when t = 42, drone U2 malfunctions and is detected by drone U1. Therefore, drone U1 adds survivors T9 and T8 not yet rescued by U2 to its own rescue path. When t = 66, while drone U3 detects survivor T11, it also detects that drone U2 has malfunctioned. Therefore, it adds survivor T11 and survivors T2, T8, and T9 rescued by drone U2 known in the task pre-planning stage to its own rescue path. When t = 69, drones U1 and U3 enter the sensing range of their respective communications. U3 learns that survivor T2 has been rescued, so task reallocation is performed to obtain a consistent and more reasonable task rescue plan. Until t = 281, drones U1 and U3 return to their respective starting positions to complete the entire rescue task. The emergencies and corresponding reallocation strategies during the rescue process are as Figure 5 shown.
Claims
1. A clustering-based multi-UAV distributed dynamic task allocation method, characterized in that Including the following steps: Step 1: A drone verifies the identity information of other drones. Suppose there are drone A and drone B. Drone B first generates its own private key and public key using an encryption algorithm. Drone B encrypts its own identity ID with the private key and transmits the encrypted information and the public key to drone A that it is about to communicate with. After receiving the information transmitted by drone B, drone A decrypts the information with the public key. If the verification is successful, it is a member of the group. Step 2: According to the current positions of each drone in the group, select the drone located at the central position in the drone fleet as the leader. If there are only two drones, randomly select one as the leader. If there is no drone at the central position among multiple drones, select the drone closest to the geometric center position in the drone fleet as the leader. Step 3: Other members of the drone fleet perform a hash operation on their own status information to generate an information digest, and then encrypt the information digest with the private key. The encrypted information digest and the status information of the member are transmitted to the leader through a distributed network. Step 4: The leader first performs the same hash operation on the status information sent by the members, which will also generate an information digest. Then, the leader decrypts the encrypted information digest transmitted by the members with the public key. If these two information digests are the same, it indicates that the information verification is successful and the information has not been lost during the reception process. The leader collects the status information confirmed by other drones in the group and fuses it with its own status information to obtain the fused status information. Step 5: The leader transmits the fused status information to other drones in the group. After receiving the fused status information, other drones perform a credibility check on it with their own status information. If the check passes, a consensus on the status information is reached. Step 6: Before the clustering starts, add the already assigned tasks to the candidate task set of the corresponding drone and no longer perform clustering on them. Step 7: For the tasks that have not been assigned, use the K-means clustering method and add them to the candidate task sets of the corresponding UAVs. For the current task allocation problem, the number of cluster centers k is known and is equal to the total number of UAVs. For the unassigned tasks, select the class S where the nearest cluster center is located u , Step Eight: Update the positions of the cluster centers Update according to the central positions of the samples after the previous iteration. Step Nine: Calculate the score c after adding the path for each task respectively ij (p i ), Step Ten: After calculating the scores after each task is added to the path respectively, select the task J with the highest score i , and update the task package b i and the path p i according to the selected task J i . Step Eleven: If the drone U i receives data information from the drone U k , then update the U i timestamp. Step Twelve: Drone U i According to the received winner list z k , winner bid list y k , timestamp s k Update its own task package b i , Drone U i Take update or reset or leave actions according to the data information Step Thirteen: After updating the task package, each drone should check whether there are updated or reset tasks in its task package b i . If any exist, delete these tasks and all tasks added to b i after them from the task set Step 14: If a new task appears during the task execution process of the drone, based on the originally planned task execution path, only allocate the newly discovered task, that is, insert the new task at a better position in the original path. Step 15: If a certain task is determined to be cancelled before execution, then let J dec be the number of the reduced task, and l dec be the corresponding position of the task in the package, indicating that the task is deleted from the task execution sequence. Step 16: If a drone fails, reset the winner list and winner bid list corresponding to the tasks that the drone has not completed and re-allocate them as new tasks. In step 9, the scoring function formula is as follows: In the above formula, the path is defined as the vector p i = {p i1 , p i2 ,..., p i(lb)}, which is used to store the numbers of U i corresponding tasks in the execution order. Among them, the element p ij is the task number. i = 1, 2,..., n represents the current UAV serial number, and j = 1, 2,..., lb represents the position of the current task number in the path; f1 and f2 are the average waiting time and the voyage cost respectively, and c p represents the penalty for violating the corresponding constraint, and P is the total number of constraints. In formula (3), f1 and f2 are the average waiting time and voyage cost respectively, and the calculation formulas are as follows: In formulas (4) and (5), t j represents the task existence time, which is a direct input quantity, Length i represents the distance between the i-th survivor and the (i + 1)-th survivor, where Length q = ||x q - x q+1 ||.
2. A multi-drone distributed dynamic task allocation method based on clustering according to claim 1, characterized in that: The state fusion in Step 4 means that during the mission execution of the UAVs, due to their limited communication range, they can only obtain the state information of some UAVs. To reach a consensus on the working state and mission state of each UAV, it is necessary to exchange information and let the lead aircraft organize and fuse it. The state information is detailed as the working state: the UAV is in the working state or has failed, and the mission state: whether the survivors have been rescued and whether new survivors have been found; the credibility check described in Step 5 means that after receiving the fused state information sent by the lead aircraft, the UAVs check it against the local information they know. If each UAV passes the check successfully, a consensus on the state information of the entire fleet is reached.
3. A clustering-based multi-UAV distributed dynamic task allocation method according to claim 2, characterized in that: In step seven, the unassigned task selects the class where the cluster center closest to it is located The calculation formula is as follows: wherein, is the class where the u-th cluster center is located in the t-th iteration, and x q is the location of the q-th unassigned task, represents the location of the u-th cluster center in the t-th iteration, and ||·|| represents the Euclidean distance between two locations.
4. A clustering-based multi-UAV distributed dynamic task allocation method according to claim 3, characterized in that: The update formula for the clustering center in Step 8 is calculated as follows: In formula (2) represents the number of elements in class S u , represents the position of the u-th cluster center in the (t + 1)-th iteration.
5. A clustering-based multi-UAV distributed dynamic task allocation method according to claim 4, characterized in that: In Step Ten, the task J with the highest score i The selection method is as follows: J i = argmax i (c ij (p i ) × h ij ) (6) The winner bid list is defined as vector y i ={y i1 , y i2 ,..., y im}, which is used to store the maximum bid for the corresponding task known to U i In formula (7), the element y ij is the maximum bid. Here, i = 1, 2,..., n represents the current UAV serial number, and j = 1, 2,..., m represents the current task number After selecting the task J with the highest score i According to the selected task J i Update the task package b i And the path p i The update method is as follows: In formula (8), the packet is defined as the vector b i ={b i1 , b i2 ,..., b i(lb)}, which is used to store the numbers of the tasks corresponding to U i in the selected order, where the element b ij is the task number, i = 1, 2,..., n represents the current UAV serial number, and j = 1, 2,..., lb represents the position of the current task number in the packet; Indicates adding task J i to the last position in the package. Formula (9) indicates adding task J i to the position with the highest score in the path. The above process is continuously recursively iterated until the maximum number of tasks that the drone can execute (lb = Lt) is reached, or 6. A clustering-based multi-UAV distributed dynamic task allocation method according to claim 5, characterized in that: In Step 11, the timestamp is updated as follows Among them, the timestamp is defined as the vector s i ={s i1 , s i2 ,..., s in}, which is used to store the time of the latest information received by U i . Among them, the element s ik is the time when the latest information is received. Here, i = 1, 2,..., n represents the current UAV serial number, and k = 1, 2,..., n represents the serial numbers of other UAVs. In formula (11), τ is the data information reception time, g ik represents the connectivity relationship between U i and U k If g ik = 1, it means that U i and U k can be directly connected. If g ik = 0, it means that they are not directly connected.
7. A clustering-based multi-UAV distributed dynamic task allocation method according to claim 6, characterized in that: In Step Twelve, the drone U i updates its own task package according to the received z k , y k , s k and there are three possible actions it can take as follows: a. Update: y ij = y kj , z ij = z kj ; b. Reset: y ij = 0, z ij = 0; c. Leave: y ij = y ij , z ij = z ij ; For different self-information and received information, different actions are taken. If the rules in the table are not met, the default action is to leave.
8. A clustering-based multi-UAV distributed dynamic task allocation method according to claim 7, characterized in that: In Step 13, if there are tasks for update or reset in its task package b i then delete these tasks and all tasks added to b i after them from the task set, and the method is as follows: Defined by formula (12) as b i the location of the first task in i that is not executed by U, the task package is updated as follows:
9. A clustering-based multi-UAV distributed dynamic task allocation method according to claim 8, characterized in that: In Step 14, if a UAV discovers a new task through the detection device, the new task should be inserted at a better position on the original path, and the method is as follows: In the above formula, J add is the newly added task number.
10. A clustering-based multi-UAV distributed dynamic task allocation method according to claim 1, characterized in that: In Step 15, if a certain task is determined to be cancelled before execution, the task is deleted according to the following formula: In the above formula, in formula (19), J dec is the number of the reduced task, and l dec is the corresponding position of the task in the packet. In Step 16, if a UAV fails, the winner list and winner bid list corresponding to the tasks that the UAV has not completed are reset and reallocated as new tasks: In formula (21), U f is the number of the failed UAV, and l f is the task that the UAV has not completed yet.
Citation Information
Patent Citations
Multi-unmanned aerial vehicle distributed type contract auction online task planning method
CN108664038A
Distributed task distribution method for multiple unmanned aerial vehicles in uncertain environment
CN110134146A
Cited By
Decentralized airborne cross-platform resource dynamic organization method and system
CN122367088A