Methods, devices, equipment, and storage media for handling AGV deadlock problems
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-09-28
- Publication Date
- 2026-08-14
AI Technical Summary
[0005]本发明的主要目的在于提供一种AGV死锁问题的处理方法,旨在解决现有技术中,对AGV死锁问题的处理效率不高的问题
[0044] This application provides a method, apparatus, device, and storage medium for handling AGV deadlock problems. Compared with the low efficiency of existing technologies in handling AGV deadlock problems, this application, if it is determined that there are AGVs waiting for resource allocation at the current moment, obtains a preset resource set, and determines whether a deadlock problem exists based on the resource set, wherein the resource set is a global resource set; if it is determined that a deadlock problem exists, a strategy solution for the deadlock problem is determined; based on the strategy solution, the AGV is unlocked. In this application, the existence of a deadlock problem is determined from the perspective of the resource set, and when a deadlock problem is determined, a corresponding strategy solution is determined. The judgment and handling of deadlock problems are based on the perspective of the global resource set, avoiding the solution of locally deadlocked AGVs, achieving multi-AGV collaboration, and preventing more AGVs from getting stuck in deadlock problems during unlocking, thus improving the efficiency of handling AGV deadlock problems.
Smart Images

Figure CN115658333B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of AGV intelligent control, and in particular to a method, apparatus, device and storage medium for handling AGV deadlock problems. Background Technology
[0002] Currently, AGV vehicles avoid obstacles in their surroundings when transporting goods, using other AGV vehicles as obstacles to prevent collisions. When an AGV vehicle actually experiences a deadlock, it's necessary to assess the real-time environment to determine if a deadlock has occurred and how to handle the situation.
[0003] Deadlock detection based on time windows is highly complex. When handling deadlock issues, avoiding collisions sacrifices scheduling resources and reduces system efficiency, potentially leading to further deadlocks in AGVs. Local deadlock solutions cannot achieve multi-AGV collaboration. In other words, existing technologies suffer from low efficiency in handling AGV deadlock problems.
[0004] The above content is only used to help understand the technical solution of this application and does not represent an admission that the above content is prior art. Summary of the Invention
[0005] The main objective of this invention is to provide a method for handling AGV deadlock problems, aiming to solve the problem of low efficiency in handling AGV deadlock problems in the prior art.
[0006] To achieve the above objectives, this application provides a method for handling AGV deadlock problems, applied to an AGV deadlock problem handling device, the method comprising:
[0007] If it is determined that there are AGVs waiting for resource allocation at the current moment, a preset resource set is obtained, and based on the resource set, it is determined whether there is a deadlock problem, wherein the resource set is a global resource set;
[0008] If it is determined that the deadlock exists, a strategy solution for the deadlock problem is determined;
[0009] Based on the solution to the strategy, the AGV is unlocked.
[0010] In one possible implementation of this application, the step of unlocking the AGV based on the strategy solution includes:
[0011] Obtain the deadlocked AGV set and the blocked AGV set, wherein the AGVs in the blocked AGV set are blocked by the AGVs in the deadlocked AGV set;
[0012] The union of the deadlocked AGV set and the blocked AGV set is determined as the first AGV set to be scheduled at the current moment;
[0013] If a second set of AGVs to be scheduled is determined in the future time of the current time, determine whether the first set of AGVs to be scheduled and the second set of AGVs to be scheduled have any intersection;
[0014] If it is determined that there is no intersection, then it is determined that there are multiple independent AGV deadlock loops;
[0015] In chronological order, the AGVs in the first set of AGVs to be scheduled and the AGVs in the second set of AGVs to be scheduled are unlocked respectively.
[0016] In one possible implementation of this application, the step of obtaining a preset resource set and determining whether a deadlock problem exists based on the resource set includes:
[0017] Retrieve the preset resource set;
[0018] Based on the resource set, determine the resource set corresponding to the AGV with resources to be allocated, wherein the resource set corresponding to the AGV with resources to be allocated includes the occupied resource set and the requested resource set;
[0019] If there is an intersection between the occupied resource set and the requested resource set for each AGV corresponding to the resource to be allocated, then a deadlock problem is determined to exist.
[0020] In one possible implementation of this application, the step of determining a strategy solution to the deadlock problem if it is determined to exist includes:
[0021] After initialization, determine the set of AGVs to be scheduled and the set of available resources;
[0022] For each AGV in the set of AGVs to be scheduled, search the available resource set to obtain the corresponding set of strategies to be solved;
[0023] If the set of strategies to be solved is not empty, then the heuristic function corresponding to the set of strategies to be solved is determined, and the strategy element corresponding to the minimum value is selected in the heuristic function to obtain the strategy solution;
[0024] If it is determined that the deadlock problem has a solution, then the strategy solution is determined to be the strategy solution to the deadlock problem.
[0025] In one possible implementation of this application, the strategy solution carries a depth parameter, and before the step of determining the strategy solution as the strategy solution to the deadlock problem if it is determined that the deadlock problem has a solution, the method includes:
[0026] To determine whether the deadlock problem has a solution, when the depth parameter reaches the depth threshold, if at least one of the following is included: at least one AGV in the set of AGVs to be scheduled reaches a preset endpoint, or the sum of the distances between all AGVs in the set of AGVs to be scheduled and their corresponding endpoints is less than the sum of the distances when the depth parameter is 0, then it is determined that there is a solution.
[0027] If no solution is found, the solution is removed from the set of strategies to be solved, and the queue of strategies to be solved corresponding to the depth parameter and the set of available resources are updated.
[0028] The steps involve returning each AGV in the set of AGVs to be scheduled, searching the available resource set to obtain the corresponding set of strategies to be solved, and obtaining the strategy solution until the strategy solution is determined to be the strategy solution for the deadlock problem.
[0029] In one possible implementation of this application, after the step of searching the available resource set to obtain the corresponding strategy set for each AGV in the set of AGVs to be scheduled, the method includes:
[0030] If the set of strategies to be solved is empty, determine whether the queue of the set of strategies to be solved is empty;
[0031] If it is determined to be empty, then the deadlock problem is determined to be unsolvable. The process returns to the step of deleting the strategy solution from the set of strategies to be solved if no solution is found, until the strategy solution is determined to be the strategy solution to the deadlock problem.
[0032] If it is determined that the value is not empty, return to the step of determining the heuristic function corresponding to the set of strategies to be solved, until the strategy solution is determined to be the strategy solution to the deadlock problem.
[0033] In one possible implementation of this application, the step of determining the available resource set includes:
[0034] Determine the first set of occupied resources for the set of AGVs to be scheduled;
[0035] It is determined that, within the resource set, the resource set excluding the set of AGVs to be scheduled is a non-deadlock running AGV set;
[0036] Determine the second set of occupied resources for the non-deadlock running AGV set;
[0037] The set of resources other than the first occupied resource set and the second occupied resource set is determined to be the available resource set.
[0038] Furthermore, to achieve the above objectives, this application also provides a device for handling AGV deadlock problems, the device comprising:
[0039] The first determining module is used to, if it is determined that there are AGVs waiting to be allocated resources at the current time, obtain a preset resource set, and determine whether there is a deadlock problem based on the resource set;
[0040] The second determining module is used to determine a strategy solution to the deadlock problem if it is determined that the deadlock exists.
[0041] The unlocking module is used to unlock the AGV based on the strategy solution.
[0042] In addition, to achieve the above objectives, this application also provides an AGV deadlock problem processing device, which is a physical node device. The AGV deadlock problem processing device includes: a memory, a processor, and an AGV deadlock problem processing program stored in the memory and executable on the processor. The processor executes the AGV deadlock problem processing program to implement the steps of the AGV deadlock problem processing method.
[0043] In addition, to achieve the above objectives, this application also provides a storage medium storing a program that implements a method for handling AGV deadlock problems. When the AGV deadlock problem handling program is executed by a processor, it implements the steps of the AGV deadlock problem handling method described above.
[0044] This application provides a method, apparatus, device, and storage medium for handling AGV deadlock problems. Compared with the low efficiency of existing technologies in handling AGV deadlock problems, this application, if it is determined that there are AGVs waiting for resource allocation at the current moment, obtains a preset resource set, and determines whether a deadlock problem exists based on the resource set, wherein the resource set is a global resource set; if it is determined that a deadlock problem exists, a strategy solution for the deadlock problem is determined; based on the strategy solution, the AGV is unlocked. In this application, the existence of a deadlock problem is determined from the perspective of the resource set, and when a deadlock problem is determined, a corresponding strategy solution is determined. The judgment and handling of deadlock problems are based on the perspective of the global resource set, avoiding the solution of locally deadlocked AGVs, achieving multi-AGV collaboration, and preventing more AGVs from getting stuck in deadlock problems during unlocking, thus improving the efficiency of handling AGV deadlock problems. Attached Figure Description
[0045] Figure 1 This is a flowchart illustrating the first embodiment of the method for handling AGV deadlock problems in this application.
[0046] Figure 2 A schematic diagram of a deadlock problem in the first embodiment of the method for handling AGV deadlock problems in this application;
[0047] Figure 3This is a schematic diagram of the AGV deadlock problem handling device in the fourth embodiment of the AGV deadlock problem handling method of this application;
[0048] Figure 4 This is a schematic diagram of the hardware operating environment involved in the fifth embodiment of the method for handling AGV deadlock problems in this application. Detailed Implementation
[0049] Exemplary embodiments will now be described in detail, examples of which are illustrated in the accompanying drawings. When the following description relates to the drawings, unless otherwise indicated, the same numbers in different drawings denote the same or similar elements. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with this application. Rather, they are merely examples of apparatuses and methods consistent with some aspects of this application as detailed in the appended claims.
[0050] It should be noted that, in this document, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes that element. Furthermore, components, features, and elements with the same names in different embodiments of this application may have the same meaning or different meanings, the specific meaning of which must be determined by its interpretation in that specific embodiment or further in conjunction with the context of that specific embodiment.
[0051] It should be understood that although the terms first, second, third, etc., may be used herein to describe various information, such information should not be limited to these terms. These terms are used only to distinguish information of the same type from one another. For example, without departing from the scope of this document, first information may also be referred to as second information, and similarly, second information may also be referred to as first information. Depending on the context, the word "if," as used herein, may be interpreted as "when," "when," or "in response to determination." Furthermore, as used herein, the singular forms "a," "an," and "the" are intended to also include the plural forms unless the context indicates otherwise. It should be further understood that the terms "comprising," "including," indicate the presence of the stated feature, step, operation, element, component, item, kind, and / or group, but do not exclude the presence, occurrence, or addition of one or more other features, steps, operations, elements, components, items, kinds, and / or groups. The terms "or," "and / or," "including at least one of the following," etc., as used in this application, may be interpreted as inclusive, or mean any one or any combination thereof. For example, "including at least one of the following: A, B, C" means "any one of the following: A; B; C; A and B; A and C; B and C; A and B and C." Similarly, "A, B, or C" or "A, B, and / or C" means "any one of the following: A; B; C; A and B; A and C; B and C; A and B and C." Exceptions to this definition only occur when the combination of elements, functions, steps, or operations is inherently mutually exclusive in some way.
[0052] It should be understood that although the steps in the flowcharts of this application's embodiments are shown sequentially according to the arrows, these steps are not necessarily executed in the order indicated by the arrows. Unless explicitly stated herein, there is no strict order restriction on the execution of these steps, and they can be executed in other orders. Moreover, at least some of the steps in the figures may include multiple sub-steps or multiple stages. These sub-steps or stages are not necessarily completed at the same time, but can be executed at different times, and their execution order is not necessarily sequential, but can be performed alternately or in turn with other steps or at least a portion of the sub-steps or stages of other steps.
[0053] Depending on the context, the words “if” or “suppose” as used here can be interpreted as “when” or “in response to determination” or “in response to detection.” Similarly, depending on the context, the phrases “if determination” or “if detection (of the stated condition or event)” can be interpreted as “when determination” or “in response to determination” or “when detection (of the stated condition or event)” or “in response to detection (of the stated condition or event).”
[0054] It should be noted that step designations such as S10 and S20 are used in this document for the purpose of more clearly and concisely describing the corresponding content, and do not constitute a substantial limitation on the order. In specific implementation, those skilled in the art may execute S20 first and then S10, etc., but these should all be within the protection scope of this application.
[0055] It should be understood that the specific embodiments described herein are merely illustrative of this application and are not intended to limit this application.
[0056] In the following description, the use of suffixes such as "module," "part," or "unit" to denote elements is solely for the purpose of illustrative purposes and has no specific meaning in itself. Therefore, "module," "part," or "unit" may be used interchangeably.
[0057] To make the above-mentioned objects, features, and advantages of the present invention more apparent and understandable, the technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.
[0058] Example 1
[0059] This application provides a method for handling AGV deadlock problems. In the first embodiment of this application's method for handling AGV deadlock problems, refer to... Figure 1 An apparatus for handling AGV deadlock problems, wherein the method for handling AGV deadlock problems includes:
[0060] Step S10: If it is determined that there are AGVs waiting for resource allocation at the current moment, obtain a preset resource set, and determine whether there is a deadlock problem based on the resource set, wherein the resource set is a global resource set;
[0061] Step S20: If it is determined that the deadlock exists, determine the strategy solution for the deadlock problem;
[0062] Step S30: Unlock the AGV based on the strategy solution.
[0063] In this embodiment, the application scenario is:
[0064] AGV vehicles will avoid collisions by treating other AGV vehicles as obstacles. When an AGV vehicle actually experiences a deadlock, it is necessary to determine whether a deadlock has occurred and how to handle the deadlock problem based on the real-time environment. However, existing technologies suffer from low efficiency in handling AGV deadlock issues.
[0065] This embodiment aims to improve the efficiency of handling AGV deadlock problems.
[0066] In this embodiment, the resource set can be any vertex or any edge, and can be allocated for scheduling the movement of AGVs. The resource set is the union of the edge set and the vertex set; as an example, the resource set is denoted by A.
[0067] In this embodiment, from the perspective of resource set, the scheduling system needs to ensure that there is no collision between AGVs in the system, that is, to ensure the exclusivity of each AGV on the resource, and that a resource can only be occupied by one AGV at the same time.
[0068] In this embodiment, if it is determined that there are AGVs waiting for resource allocation at the current moment, a preset resource set is obtained. Based on the resource set, it is determined whether a deadlock problem exists. The resource set is a global resource set. If it is determined that a deadlock problem exists, a strategy solution for the deadlock problem is determined. Based on the strategy solution, the AGV is unlocked.
[0069] The specific steps are as follows:
[0070] Step S10: If it is determined that there are AGVs waiting for resource allocation at the current moment, obtain a preset resource set, and determine whether there is a deadlock problem based on the resource set, wherein the resource set is a global resource set;
[0071] In this embodiment, if the AGV deadlock problem handling device determines that there are AGVs waiting for resource allocation at the current moment, it obtains a preset resource A, and determines whether a deadlock problem exists based on resource set A, wherein the resource set is a global resource set.
[0072] In step S10, the step of obtaining a preset resource set and determining whether a deadlock problem exists based on the resource set includes the following steps S11-S13:
[0073] Step S11: Obtain the preset resource set;
[0074] As an example, the default resource set is A.
[0075] Step S12: Based on the resource set, determine the resource set corresponding to the AGV with resources to be allocated, wherein the resource set corresponding to the AGV with resources to be allocated includes the occupied resource set and the requested resource set.
[0076] As an example, the state x of AGV k∈A k (t) is defined as the geometric center position p of AGV k at time t. k (t) and velocity v k The combination of (t), x k (t)={pk (t), v k (t)}.
[0077] As an example, the state space occupied by AGV k is X o k (t、p k (t) is defined as the contour of AGV k at time t and the set of all corresponding state spaces within the contour.
[0078] As an example, based on the resource set, the resource set corresponding to the AGV with the resource to be allocated is determined, and the resource set corresponding to the AGV with the resource to be allocated includes the occupied resource set and the requested resource set.
[0079] As an example, the resource set O occupied by AGV k k Let (t) be the set of path resources corresponding to the state space Xok(t, pk(t)) occupied by AGV k at time t.
[0080] As an example, the resource set R requested by AGV k k (t) includes the specified path resources requested by AGV k at time t, as well as the resources requested by other AGVs that have contour collisions with the specified path resources requested by AGV k.
[0081] Step S13: If the occupied resource set and the requested resource set intersect for each AGV corresponding to the resource to be allocated, then a deadlock problem is determined to exist.
[0082] As an example, if the resource set occupied by each AGV and the resource set requested by each AGV intersect in the resource set to be allocated, then a deadlock problem is identified.
[0083] As an example, such as Figure 2 It includes three AGVs: AGV1, AGV2, and AGV3. Figure 2 It also includes 5 vertices, v1 to v5, and 3 edges, e1 to e4.
[0084] As an example, Figure 2 AGV1 and AGV2 together form the set A of AGVs to be scheduled at time t1. RE (t1), where A RE(t1) = {AGV1, AGV2}. Correspondingly, the resource sets corresponding to the AGVs to be allocated resources include O1(t1), R1(t1), O2(t1), and R2(t1), where O1(t1) is the resource set occupied by AGV1, R1(t1) is the resource set requested by AGV1, O2(t1) is the resource set occupied by AGV2, and R2(t1) is the resource set requested by AGV2.
[0085] As an example, let O1(t1) = {v1, e1, e2, e4}, R1(t1) = {e4, e2}, O2(t1) = {e2}, and R2(t1) = {v1, e1, e4}. Since O1(t1) ∩ R2(t1) = {v1, e1, e4} and O2(t1) ∩ R1(t1) = {e2}, then O1(t1) and R2(t1) intersect, and O2(t1) and R1(t1) intersect. Therefore, AGV1 and AGV2 are deadlocked at time t1, i.e., a deadlock problem exists.
[0086] Step S20: If it is determined that the deadlock exists, determine the strategy solution for the deadlock problem;
[0087] In this embodiment, the strategy solution is the solution to the deadlock problem.
[0088] As an example, if a deadlock problem is determined, a strategy solution to the deadlock problem is determined.
[0089] Step S20, which involves determining a strategy solution to the deadlock problem if it is determined to exist, includes the following steps S21-S24:
[0090] Step S21: After initialization, determine the set of AGVs to be scheduled and the set of available resources;
[0091] As an example, the strategy solution is initialized. After initialization, a set of AGVs to be scheduled is determined, which includes a set of AGVs that constitute the deadlock problem and a set of AGVs blocked by the deadlock problem.
[0092] In this embodiment, after determining the set of AGVs to be scheduled, the corresponding set of available resources is determined based on this set. When a deadlock occurs, some AGVs are deadlocked, while the remaining non-deadlocked AGVs are running. The available resource set reflects the state of the non-deadlocked AGVs. Therefore, based on the available resource set, the globality is enhanced, combining the states of deadlocked and non-deadlocked AGVs, thus improving the accuracy of unlocking AGV deadlock problems.
[0093] As an example, the available resource set is the set of resources other than the resource set occupied by the running AGV set and the resource set occupied by the AGV set to be scheduled, unless a deadlock occurs.
[0094] Step S21, the step of determining the available resource set, includes the following steps A1-A4:
[0095] Step A1: Determine the first set of occupied resources for the AGV set to be scheduled;
[0096] As an example, the resource set occupied by the set of AGVs to be scheduled is determined as the first resource set occupied.
[0097] Step A2: Determine that the resource set other than the AGV set to be scheduled is a non-deadlock running AGV set in the resource set;
[0098] As an example, in resource set A, the resource set other than the set of AGVs to be scheduled is a non-deadlock running AGV set.
[0099] Step A3: Determine the second set of occupied resources for the non-deadlock running AGV set;
[0100] As an example, based on the set of AGVs that are not deadlocked, the resource set occupied by the set of AGVs that are not deadlocked is determined, and the resource set occupied by the set of AGVs that are not deadlocked is the second resource set occupied.
[0101] Step A4: Determine the resource set other than the first occupied resource set and the second occupied resource set as the available resource set.
[0102] As an example, removing the first occupied resource set and the second occupied resource set from the resource set A results in the remaining resource set, which is the available resource set.
[0103] Step S22: For each AGV in the set of AGVs to be scheduled, search the available resource set to obtain the corresponding set of strategies to be solved;
[0104] As an example, the set of AGVs to be scheduled includes multiple AGVs, and a search strategy set is performed for each of them, with the search strategy set obtained from available resources.
[0105] Step S23: If the set of strategies to be solved is not empty, then determine the heuristic function corresponding to the set of strategies to be solved, and select the strategy element corresponding to the minimum value in the heuristic function to obtain the strategy solution;
[0106] As an example, after obtaining the set of strategies to be solved, it is determined whether the set of strategies to be solved is empty. If the set of strategies to be solved is not empty, it means that there are strategy elements in the set of strategies to be solved.
[0107] As an example, the policy set to be solved includes multiple policy elements. Based on multiple reference factors, the heuristic function corresponding to the policy set to be solved is determined. Each policy element corresponds to a heuristic function, and different policy elements correspond to different heuristic functions.
[0108] As an example, the heuristic function H is the path length between path points, which is approximated by the straight-line distance between AGV path points.
[0109] Since the heuristic function represents the path length, and the shorter the path, the better the policy effect, the minimum value in the heuristic function should be selected, and the policy element corresponding to the heuristic function of the minimum value should be used as the policy solution.
[0110] Step S24: If it is determined that the deadlock problem has a solution, then the strategy solution is determined to be the strategy solution of the deadlock problem.
[0111] As an example, if a deadlock problem is determined to have a solution after obtaining a policy solution, then the obtained policy solution is used as the policy solution for the deadlock problem.
[0112] Step S30: Unlock the AGV based on the strategy solution.
[0113] As an example, a strategy solution is used to unlock AGVs that are deadlocked.
[0114] This application provides a method, apparatus, device, and storage medium for handling AGV deadlock problems. Compared with the low efficiency of existing technologies in handling AGV deadlock problems, this application, if it is determined that there are AGVs waiting for resource allocation at the current moment, obtains a preset resource set, and determines whether a deadlock problem exists based on the resource set, wherein the resource set is a global resource set; if it is determined that a deadlock problem exists, a strategy solution for the deadlock problem is determined; based on the strategy solution, the AGV is unlocked. In this application, the existence of a deadlock problem is determined from the perspective of the resource set, and when a deadlock problem is determined, a corresponding strategy solution is determined. The judgment and handling of deadlock problems are based on the perspective of the global resource set, avoiding the solution of locally deadlocked AGVs, achieving multi-AGV collaboration, and preventing more AGVs from getting stuck in deadlock problems during unlocking, thus improving the efficiency of handling AGV deadlock problems.
[0115] Example 2
[0116] Furthermore, based on Embodiment 1 of this application, another embodiment of this application is provided. In this embodiment, step S30, the step of unlocking the AGV based on the strategy solution, includes the following steps S31-S35:
[0117] Step S31: Obtain the deadlock AGV set and the blocked AGV set, wherein the AGVs in the blocked AGV set are blocked by the AGVs in the deadlock AGV set;
[0118] Step S32: Determine the union of the deadlocked AGV set and the blocked AGV set, which is the first AGV set to be scheduled at the current moment;
[0119] Step S33: If a second set of AGVs to be scheduled is determined in the future time of the current time, determine whether the first set of AGVs to be scheduled and the second set of AGVs to be scheduled have any intersection.
[0120] Step S34: If it is determined that there is no intersection, then it is determined that there are multiple independent AGV deadlock loops.
[0121] Step S35: Unlock the AGVs in the first set of AGVs to be scheduled and the AGVs in the second set of AGVs to be scheduled in chronological order.
[0122] In this embodiment, if multiple independent AGV deadlock loops are determined to exist, the AGVs should be unlocked in chronological order based on the strategy solution. As an example, the existence of multiple independent AGV deadlock loops means that at any time t1, a set of AGVs awaiting scheduling with a deadlock loop is detected, and at some time t2 after t1, another set of AGVs awaiting scheduling with a deadlock loop is detected.
[0123] As an example, the method for determining whether multiple independent AGV deadlock cycles exist is as follows: Obtain the deadlocked AGV set and the blocked AGV set at time t1. The AGVs in the blocked AGV set are blocked by the AGVs in the deadlocked AGV set. The union of the deadlocked AGV set and the blocked AGV set is taken as the set of AGVs to be scheduled at time t1, referred to as the first set of AGVs to be scheduled. If another set of AGVs to be scheduled is identified at time t2 after time t1, referred to as the second set of AGVs to be scheduled, and if the first and second sets of AGVs to be scheduled have no intersection, then multiple independent AGV deadlock cycles exist. In chronological order, the AGVs in the first set of AGVs to be scheduled are unlocked first, and then the AGVs in the second set of AGVs to be scheduled are unlocked.
[0124] In this embodiment, if multiple independent AGV deadlock loops are detected, the AGVs should be unlocked sequentially according to their chronological order, based on the strategy solution. This adds a step to detect multiple independent AGV deadlock loops and, if multiple loops exist, unlocks them sequentially, reducing the granularity of deadlock identification and improving the accuracy of deadlock identification, thus further improving the efficiency of handling AGV deadlock problems.
[0125] Example 3
[0126] Furthermore, based on all the above embodiments of this application, another embodiment of this application is provided. In this embodiment, before the step S24 in which the strategy solution carries a depth parameter and the step of determining the strategy solution as the strategy solution of the deadlock problem if it is determined that the deadlock problem has a solution, steps B1-B3 are included:
[0127] Step B1: Determine whether the deadlock problem has a solution. When the depth parameter reaches the depth threshold, if at least one of the following is included: at least one AGV in the set of AGVs to be scheduled reaches a preset endpoint, or the sum of the distances between all AGVs in the set of AGVs to be scheduled and their corresponding endpoints is less than the sum of the distances when the depth parameter is 0, then it is determined that there is a solution.
[0128] Step B2: If it is determined that there is no solution, delete the strategy solution from the set of strategies to be solved, and update the queue of the set of strategies to be solved corresponding to the depth parameter, as well as the set of available resources.
[0129] Step B3 involves returning to the set of AGVs to be scheduled, searching the available resource set for each AGV, and obtaining the corresponding strategy set to be solved, until the strategy solution is determined to be the solution to the deadlock problem.
[0130] In this embodiment, if it is determined that the deadlock problem has a solution, the step of determining whether the strategy solution is the strategy solution of the deadlock problem is performed before determining whether the deadlock problem has a solution.
[0131] In this embodiment, the determination method is as follows: the strategy solution carries a depth parameter. As an example, the depth parameter is n, and the preset depth threshold is N. When the depth parameter n equals N, if at least one AGV in the set of AGVs to be scheduled reaches the preset destination, then the deadlock problem is determined to have a solution. Alternatively, when the depth parameter n equals N, if the sum of the distances between all AGVs in the set of AGVs to be scheduled and their corresponding destinations is less than the sum of the distances when n is 0, then the deadlock problem is determined to have a solution.
[0132] As an example, if when the depth parameter n equals N, no AGV reaches the preset endpoint, and the sum of the distances between all AGVs and their corresponding endpoints is greater than the sum of the distances when n is 0, then the deadlock problem is determined to be unsolvable.
[0133] If no solution is found, the strategy solution is deleted from the set of strategies to be solved, and the queue of strategies to be solved corresponding to the depth parameter, as well as the set of available resources, is updated. The process of returning to the set of AGVs to be scheduled, searching the available resources for the corresponding strategy set to be solved, and obtaining the strategy solution continues until the strategy solution is determined to be the solution to the deadlock problem.
[0134] In addition, in this embodiment, after step S22, which involves searching the available resource set for each AGV in the set of AGVs to be scheduled to obtain the corresponding set of strategies to be solved, steps C1-C3 are included:
[0135] Step C1: If the set of strategies to be solved is empty, determine whether the queue of the set of strategies to be solved is empty;
[0136] Step C2: If it is determined to be empty, then the deadlock problem is determined to be unsolvable. Return to the step of deleting the strategy solution from the set of strategies to be solved if it is determined to be unsolvable, until the strategy solution is determined to be the strategy solution of the deadlock problem.
[0137] Step C3: If it is determined that the value is not empty, return to the step of determining the heuristic function corresponding to the set of strategies to be solved, until the strategy solution is determined to be the strategy solution to the deadlock problem.
[0138] In this embodiment, after searching the available resource set for each AGV in the set of AGVs to be scheduled to obtain the corresponding set of strategies to be solved, if it is determined that the set of strategies to be solved is empty, the process continues to check whether the queue of the set of strategies to be solved is empty. If it is determined to be empty, the deadlock problem is determined to be unsolvable, and the process is handled according to the unsolvable method. The process returns to the step of deleting the strategy solution from the set of strategies to be solved if it is determined to be unsolvable, until the strategy solution is determined to be the strategy solution to the deadlock problem. If it is determined to be not empty, the process returns to the step of determining the heuristic function corresponding to the set of strategies to be solved, until the strategy solution is determined to be the strategy solution to the deadlock problem.
[0139] In this embodiment, a step is added to determine whether the deadlock problem has a solution. Specifically, when the depth parameter reaches a depth threshold, it is determined whether the deadlock problem has a solution. If the deadlock problem is determined to be unsolvable, the process returns to the step of searching for a strategy solution until a strategy solution is obtained. After multiple iterative searches, a strategy solution for the deadlock problem is finally obtained, which further improves the processing efficiency of AGV deadlock problems.
[0140] Example 4
[0141] Furthermore, based on all the above embodiments, another embodiment of this application is provided, in which, as... Figure 3 A device for handling AGV deadlock problems is provided, the device comprising:
[0142] The first determining module is used to obtain a preset resource set if it is determined that there are AGVs waiting to be allocated resources at the current time, and to determine whether there is a deadlock problem based on the resource set, wherein the resource set is a global resource set;
[0143] The second determining module is used to determine a strategy solution to the deadlock problem if it is determined that the deadlock exists.
[0144] The unlocking module is used to unlock the AGV based on the strategy solution.
[0145] In one possible implementation of this application, the device for unlocking the AGV based on the strategy solution includes:
[0146] The first acquisition module is used to acquire a deadlocked AGV set and a blocked AGV set, wherein the AGVs in the blocked AGV set are blocked by the AGVs in the deadlocked AGV set.
[0147] The third determining module is used to determine the union of the deadlocked AGV set and the blocked AGV set, which is the first AGV set to be scheduled at the current moment;
[0148] The fourth determining module is used to determine whether the first set of AGVs to be scheduled and the second set of AGVs to be scheduled have any intersection if a corresponding second set of AGVs to be scheduled is determined in the future time of the current time.
[0149] The fifth determination module is used to determine the existence of multiple independent AGV deadlock loops if no intersection is found.
[0150] The first unlocking module is used to unlock the AGVs in the first set of AGVs to be scheduled and the AGVs in the second set of AGVs to be scheduled in chronological order.
[0151] In one possible implementation of this application, the apparatus for the step of obtaining a preset resource set and determining whether a deadlock problem exists based on the resource set includes:
[0152] The second acquisition module is used to acquire a preset resource set;
[0153] The sixth determining module is used to determine the resource set corresponding to the AGV with resources to be allocated based on the resource set, wherein the resource set corresponding to the AGV with resources to be allocated includes the occupied resource set and the requested resource set;
[0154] The seventh determination module is used to determine that a deadlock problem exists if the occupied resource set and the requested resource set intersect for each AGV corresponding to the resource to be allocated.
[0155] In one possible implementation of this application, the apparatus for the step of determining a strategy solution to the deadlock problem if it is determined to exist includes:
[0156] The eighth determination module is used to determine the set of AGVs to be scheduled and the set of available resources after initialization;
[0157] The search module is used to search the available resource set for each AGV in the set of AGVs to be scheduled to obtain the corresponding set of strategies to be solved.
[0158] The eighth determining module is used to determine the heuristic function corresponding to the strategy set to be solved if the strategy set to be solved is not empty, and select the strategy element corresponding to the minimum value in the heuristic function to obtain the strategy solution.
[0159] The ninth determining module is used to determine the strategy solution as the strategy solution to the deadlock problem if it is determined that the deadlock problem has a solution.
[0160] In one possible implementation of this application, the strategy solution carries a depth parameter, and before the step of determining the strategy solution as a strategy solution to the deadlock problem if it is determined that the deadlock problem has a solution, the apparatus includes:
[0161] The first judgment module is used to determine whether the deadlock problem has a solution. When the depth parameter reaches the depth threshold, if at least one of the following is included: at least one AGV in the set of AGVs to be scheduled reaches a preset endpoint, or the sum of the distances between all AGVs in the set of AGVs to be scheduled and their corresponding endpoints is less than the sum of the distances when the depth parameter is 0, then it is determined that there is a solution.
[0162] The update module is used to delete the strategy solution from the set of strategies to be solved if it is determined that there is no solution, and update the queue of the set of strategies to be solved corresponding to the depth parameter, as well as the set of available resources;
[0163] The first return module is used to return the steps of searching the available resource set for each AGV in the set of AGVs to be scheduled to obtain the corresponding strategy set to be solved, and to obtain the strategy solution until the strategy solution is determined to be the strategy solution for the deadlock problem.
[0164] In one possible implementation of this application, after the step of searching the available resource set to obtain the corresponding strategy set for each AGV in the set of AGVs to be scheduled, the apparatus includes:
[0165] The tenth determining module is used to determine whether the queue of the strategy set to be solved is empty if the strategy set to be solved is empty.
[0166] The second judgment module is used to determine that the deadlock problem has no solution if it is determined to be empty, and return to the step of deleting the strategy solution from the set of strategies to be solved if it is determined to be no solution, until the strategy solution is determined to be the strategy solution of the deadlock problem.
[0167] The second return module is used to return the step of determining the heuristic function corresponding to the strategy set to be solved if it is determined that it is not empty, until the strategy solution is determined to be the strategy solution of the deadlock problem.
[0168] In one possible implementation of this application, the apparatus for determining the set of available resources includes:
[0169] The eleventh determining module is used to determine the first set of occupied resources of the AGV set to be scheduled;
[0170] The twelfth determining module is used to determine that, in the resource set, the resource set other than the AGV set to be scheduled is a non-deadlock running AGV set;
[0171] The thirteenth determining module is used to determine the second set of occupied resources of the non-deadlock running AGV set;
[0172] The fourteenth determining module is used to determine that the resource set other than the first occupied resource set and the second occupied resource set is the available resource set.
[0173] The specific implementation of the AGV deadlock problem handling device in this application is basically the same as the embodiments of the above-mentioned AGV deadlock problem handling methods, and will not be repeated here.
[0174] Example 5
[0175] Furthermore, based on all the above embodiments, another embodiment of this application is provided. In this embodiment, an AGV deadlock problem processing device is provided. The AGV deadlock problem processing device is a physical node device. The AGV deadlock problem processing device includes: a memory, a processor, and a program stored in the memory for implementing the AGV deadlock problem processing method. The memory is used to store the program for implementing the AGV deadlock problem processing method; the processor is used to execute the program for implementing the AGV deadlock problem processing method to implement the steps of the AGV deadlock problem processing method in the above embodiments.
[0176] Reference Figure 4 , Figure 4 This is a schematic diagram of the device structure of the hardware operating environment involved in the embodiments of this application.
[0177] like Figure 4 As shown, the device for handling this AGV deadlock problem may include: a processor 1001, such as a CPU, a memory 1005, and a communication bus 1002. The communication bus 1002 is used to establish communication between the processor 1001 and the memory 1005. The memory 1005 may be a high-speed RAM or a stable, non-volatile memory, such as a disk drive. Optionally, the memory 1005 may also be a storage device independent of the aforementioned processor 1001.
[0178] In one possible implementation of this application, the device for handling the AGV deadlock problem may further include a network interface, audio circuit, display, connecting cable, sensor, input module, etc. The network interface may optionally include a standard wired interface or a wireless interface (such as a WI-FI interface or a Bluetooth interface), and the input module may optionally include a keyboard, a system soft keyboard, voice input, wireless receiver input, etc.
[0179] Those skilled in the art will understand that the structure of the equipment for handling AGV deadlock problems does not constitute a limitation on the equipment for handling AGV deadlock problems, and may include more or fewer components than shown in the figure, or combine certain components, or have different component arrangements.
[0180] A memory, as a computer storage medium, may include an operating system, an information exchange module, and a program to handle AGV deadlock problems. The operating system is a program that manages and controls the hardware and software resources of the AGV deadlock handling device, supporting the execution of the AGV deadlock handling program and other software and / or programs. The information exchange module is used to enable communication between the various components within the memory, as well as communication with other hardware and software in the management system.
[0181] In the AGV deadlock problem handling device, the processor is used to execute the AGV deadlock problem handling program stored in the memory to implement the above-mentioned steps for handling the AGV deadlock problem.
[0182] The specific implementation method of the AGV deadlock problem handling device in this application is basically the same as the above-mentioned embodiments of the AGV deadlock problem handling method, and will not be repeated here.
[0183] Example 6
[0184] This application provides a storage medium that stores one or more programs, which can be executed by one or more processors to implement the steps of the AGV deadlock problem handling method in the above embodiments.
[0185] The specific implementation of the storage medium in this application is basically the same as the embodiments of the above-mentioned methods for handling AGV deadlock problems, and will not be described again here.
[0186] It should be noted that, in this document, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or system that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or system. Unless otherwise specified, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or system that includes that element.
[0187] The sequence numbers of the embodiments in this application are for descriptive purposes only and do not represent the superiority or inferiority of the embodiments.
[0188] Through the above description of the embodiments, those skilled in the art can clearly understand that the methods of the above embodiments can be implemented by means of software plus necessary general-purpose hardware platforms. Of course, they can also be implemented by hardware, but in many cases the former is a better implementation method. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, can be embodied in the form of a software product. This computer software product is stored in a storage medium (such as ROM or RAM, magnetic disk, optical disk) as described above, and includes several instructions to cause a terminal device (which may be a mobile phone, computer, server, air conditioner, or network device, etc.) to execute the methods described in the various embodiments of this application.
[0189] The above are merely preferred embodiments of this application and do not limit the patent scope of this application. Any equivalent structural or procedural transformations made using the content of this application's specification and drawings, or direct or indirect applications in other related technical fields, are similarly included within the patent protection scope of this application.
Claims
1. A method for handling AGV deadlock problems, characterized in that, The method for handling the AGV deadlock problem includes: If it is determined that there are AGVs waiting for resource allocation at the current moment, a preset resource set is obtained, and based on the resource set, it is determined whether there is a deadlock problem, wherein the resource set is a global resource set; If it is determined that the deadlock exists, a strategy solution for the deadlock problem is determined; Based on the solution to the strategy, the AGV is unlocked; The step of unlocking the AGV based on the strategy solution includes: Obtain the deadlocked AGV set and the blocked AGV set, wherein the AGVs in the blocked AGV set are blocked by the AGVs in the deadlocked AGV set; The union of the deadlocked AGV set and the blocked AGV set is determined as the first AGV set to be scheduled at the current moment; If a second set of AGVs to be scheduled is determined in the future time of the current time, determine whether the first set of AGVs to be scheduled and the second set of AGVs to be scheduled have any intersection; If it is determined that there is no intersection, then it is determined that there are multiple independent AGV deadlock loops; Unlock the AGVs in the first set of AGVs to be scheduled and the AGVs in the second set of AGVs to be scheduled in chronological order. The step of obtaining a preset resource set and determining whether a deadlock problem exists based on the resource set includes: Retrieve the preset resource set; Based on the resource set, determine the resource set corresponding to the AGV with resources to be allocated, wherein the resource set corresponding to the AGV with resources to be allocated includes the occupied resource set and the requested resource set; If the occupied resource set and the requested resource set intersect for each AGV corresponding to the resource to be allocated, then a deadlock problem is determined to exist; The step of determining a strategy solution to the deadlock problem if it is determined to exist includes: After initialization, determine the set of AGVs to be scheduled and the set of available resources; For each AGV in the set of AGVs to be scheduled, search the available resource set to obtain the corresponding set of strategies to be solved; If the set of strategies to be solved is not empty, then the heuristic function corresponding to the set of strategies to be solved is determined, and the strategy element corresponding to the minimum value is selected in the heuristic function to obtain the strategy solution; If it is determined that the deadlock problem has a solution, then the strategy solution is determined to be the strategy solution to the deadlock problem.
2. The method for handling AGV deadlock according to claim 1, characterized in that, The strategy solution carries a depth parameter. Before the step of determining that the strategy solution is the strategy solution to the deadlock problem if it is determined that the deadlock problem has a solution, the following steps are included: To determine whether the deadlock problem has a solution, when the depth parameter reaches a depth threshold, if at least one of the following is included: at least one AGV in the set of AGVs to be scheduled reaches a preset endpoint, or the sum of the distances between all AGVs in the set of AGVs to be scheduled and their corresponding endpoints is less than the sum of the distances when the depth parameter is 0, then it is determined that there is a solution. If no solution is found, the solution is removed from the set of strategies to be solved, and the queue of strategies to be solved corresponding to the depth parameter and the set of available resources are updated. The steps involve returning each AGV in the set of AGVs to be scheduled, searching the available resource set to obtain the corresponding set of strategies to be solved, and obtaining the strategy solution until the strategy solution is determined to be the strategy solution for the deadlock problem.
3. The method for handling AGV deadlock according to claim 2, characterized in that, After the step of searching the available resource set for each AGV in the set of AGVs to be scheduled to obtain the corresponding set of strategies to be solved, the following steps are included: If the set of strategies to be solved is empty, determine whether the queue of the set of strategies to be solved is empty; If it is determined to be empty, then the deadlock problem is determined to be unsolvable. The process returns to the step of deleting the strategy solution from the set of strategies to be solved if no solution is found, until the strategy solution is determined to be the strategy solution to the deadlock problem. If it is determined that the value is not empty, return to the step of determining the heuristic function corresponding to the set of strategies to be solved, until the strategy solution is determined to be the strategy solution to the deadlock problem.
4. The method for handling AGV deadlock according to claim 1, characterized in that, The step of determining the available resource set includes: Determine the first set of occupied resources for the set of AGVs to be scheduled; It is determined that, within the resource set, the resource set excluding the set of AGVs to be scheduled is a non-deadlock running AGV set; Determine the second set of occupied resources for the non-deadlock running AGV set; The set of resources other than the first occupied resource set and the second occupied resource set is determined to be the available resource set.
5. A device for handling AGV deadlock problems, characterized in that, The device for handling AGV deadlock problems includes: The first determining module is used to, if it is determined that there are AGVs waiting to be allocated resources at the current time, obtain a preset resource set, and determine whether there is a deadlock problem based on the resource set; The second determining module is used to determine a strategy solution to the deadlock problem if it is determined that the deadlock exists. An unlocking module is used to unlock the AGV based on the strategy solution; The device for handling AGV deadlock problems is also used to achieve: Obtain the deadlocked AGV set and the blocked AGV set, wherein the AGVs in the blocked AGV set are blocked by the AGVs in the deadlocked AGV set; The union of the deadlocked AGV set and the blocked AGV set is determined as the first AGV set to be scheduled at the current moment; If a second set of AGVs to be scheduled is determined in the future time of the current time, determine whether the first set of AGVs to be scheduled and the second set of AGVs to be scheduled have any intersection; If it is determined that there is no intersection, then it is determined that there are multiple independent AGV deadlock loops; Unlock the AGVs in the first set of AGVs to be scheduled and the AGVs in the second set of AGVs to be scheduled in chronological order. The device for handling AGV deadlock problems is also used to achieve: Retrieve the preset resource set; Based on the resource set, determine the resource set corresponding to the AGV with resources to be allocated, wherein the resource set corresponding to the AGV with resources to be allocated includes the occupied resource set and the requested resource set; If the occupied resource set and the requested resource set intersect for each AGV corresponding to the resource to be allocated, then a deadlock problem is determined to exist; The device for handling AGV deadlock problems is also used to achieve: After initialization, determine the set of AGVs to be scheduled and the set of available resources; For each AGV in the set of AGVs to be scheduled, search the available resource set to obtain the corresponding set of strategies to be solved; If the set of strategies to be solved is not empty, then the heuristic function corresponding to the set of strategies to be solved is determined, and the strategy element corresponding to the minimum value is selected in the heuristic function to obtain the strategy solution; If it is determined that the deadlock problem has a solution, then the strategy solution is determined to be the strategy solution to the deadlock problem.
6. A device for handling AGV deadlock problems, characterized in that, The method includes a memory, a processor, and an AGV deadlock problem handler stored in the memory and executable on the processor. The processor executes the AGV deadlock problem handler to implement the steps of the AGV deadlock problem handling method according to any one of claims 1 to 4.
7. A storage medium, characterized in that, The storage medium stores a program for implementing a method for handling AGV deadlock problems. The program for implementing the method for handling AGV deadlock problems is executed by a processor to implement the steps of the method for handling AGV deadlock problems as described in any one of claims 1 to 4.
Citation Information
Patent Citations
Scheduling control method and system for transportation equipment
CN112990806A