WO2024066072A1 - Agv deadlock problem processing method and apparatus, device, and storage medium - Google Patents

Agv deadlock problem processing method and apparatus, device, and storage medium Download PDF

Info

Publication number
WO2024066072A1
WO2024066072A1 PCT/CN2022/139523 CN2022139523W WO2024066072A1 WO 2024066072 A1 WO2024066072 A1 WO 2024066072A1 CN 2022139523 W CN2022139523 W CN 2022139523W WO 2024066072 A1 WO2024066072 A1 WO 2024066072A1
Authority
WO
WIPO (PCT)
Prior art keywords
agv
solution
determined
deadlock problem
strategy
Prior art date
Application number
PCT/CN2022/139523
Other languages
French (fr)
Chinese (zh)
Inventor
陈文成
吕朝顺
张倩玉
Original Assignee
劢微机器人科技(深圳)有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 劢微机器人科技(深圳)有限公司 filed Critical 劢微机器人科技(深圳)有限公司
Publication of WO2024066072A1 publication Critical patent/WO2024066072A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Definitions

  • the present application relates to the field of AGV intelligent control, and in particular to a method, device, equipment and storage medium for processing an AGV deadlock problem.
  • AGV vehicles When transporting goods, AGV vehicles will avoid obstacles in the surrounding environment, and AGV vehicles will avoid other AGV vehicles as obstacles to avoid collisions.
  • AGV vehicle When the AGV vehicle actually has a deadlock phenomenon, it is necessary to determine whether the deadlock occurs according to the real-time environment and deal with the deadlock problem.
  • Deadlock detection based on time windows is highly complex.
  • the scheduling system's scheduling resources will be sacrificed and the execution efficiency of the system will be reduced, which may even cause more AGV vehicles to deadlock.
  • multi-AGV collaboration cannot be achieved.
  • the existing technology has the problem of low efficiency in dealing with AGV deadlock problems.
  • the main purpose of this application is to provide a method for processing the AGV deadlock problem, aiming to solve the problem of low efficiency in processing the AGV deadlock problem in the prior art.
  • the present application provides a method for processing an AGV deadlock problem, which is applied to a device for processing an AGV deadlock problem.
  • the method for processing an AGV deadlock problem includes:
  • 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;
  • the AGV is unlocked.
  • the step of unlocking the AGV based on the strategy solution includes:
  • 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 in chronological order.
  • the step of obtaining a preset resource set and determining whether a deadlock problem exists based on the resource set includes:
  • determining the resource set corresponding to the AGV to which the resources are to be allocated includes an occupied resource set and an applied resource set;
  • the step of determining a strategic solution to the deadlock problem includes:
  • the set of AGVs to be scheduled is determined, as well as the set of available resources;
  • the strategic solution is determined to be the strategic solution to the deadlock problem.
  • the strategic solution carries a depth parameter
  • the step of determining that the strategic solution is the strategic solution to the deadlock problem if it is determined that the deadlock problem has a solution includes:
  • the strategy solution is deleted from the strategy set to be solved, and the queue of the strategy set to be solved corresponding to the depth parameter and the available resource set are updated;
  • the step of determining the available resource set includes:
  • resource sets other than the to-be-scheduled AGV set are non-deadlock running AGV sets
  • the present application also provides a device for processing the AGV deadlock problem, the device comprising:
  • a first determination module is used to obtain a preset resource set if it is determined that there is an AGV waiting for resource allocation at the current moment, and determine whether there is a deadlock problem based on the resource set;
  • a second determination module is used to determine a strategic solution to the deadlock problem if it is determined to exist;
  • An unlocking module is used to unlock the AGV based on the strategy solution.
  • the present application also provides a processing device for an AGV deadlock problem, which is a physical node device, and the processing device for the AGV deadlock problem includes: a memory, a processor, and an AGV deadlock problem processing program stored on the memory and executable on the processor, and the processor executes the AGV deadlock problem processing program to implement the steps of the AGV deadlock problem processing method.
  • the present application also provides a storage medium, on which is stored a program for implementing a method for processing an AGV deadlock problem.
  • a program for processing the AGV deadlock problem is executed by a processor, the steps of the method for processing the AGV deadlock problem described above are implemented.
  • the present application provides a method, device, equipment and storage medium for processing AGV deadlock problems. Compared with the problem of low efficiency in processing AGV deadlock problems in the prior art, in the present application, if it is determined that there is an AGV 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 there is, a policy solution to the deadlock problem is determined; based on the policy solution, the AGV is unlocked. In the present application, from the perspective of the resource set, it is determined whether there is a deadlock problem, and when it is determined that there is a deadlock problem, the corresponding policy solution is determined.
  • the judgment and processing of the deadlock problem is based on the perspective of the global resource set, which avoids the solution of the locally deadlocked AGV, achieves multi-AGV collaboration, and avoids more AGVs from falling into deadlock problems when unlocking, that is, improves the processing efficiency of the AGV deadlock problem.
  • FIG1 is a flow chart of a first embodiment of a method for processing an AGV deadlock problem of the present application
  • FIG2 is a schematic diagram of a deadlock problem in a first embodiment of a method for processing an AGV deadlock problem of the present application
  • FIG. 3 is a schematic diagram of a device for processing an AGV deadlock problem in a fourth embodiment of a method for processing an AGV deadlock problem of the present application;
  • FIG. 4 is a schematic diagram of the device structure of the hardware operating environment involved in the fifth embodiment of the method for processing the AGV deadlock problem of the present application.
  • first, second, third, etc. may be used herein to describe various information, these information should not be limited to these terms. These terms are only used to distinguish the same type of information from each other.
  • first information may also be referred to as the second information, and similarly, the second information may also be referred to as the first information.
  • word “if” as used herein may be interpreted as “at the time of” or “when” or “in response to determination”.
  • singular forms “one”, “one” and “the” are intended to also include plural forms, unless there is an opposite indication in the context.
  • “comprising at least one of the following: A, B, C” means “any of the following: A; B; C; A and B; A and C; B and C; A and B and C”, and for another example, “A, B or C” or “A, B and/or C” means “any of the following: A; B; C; A and B; A and C; B and C; A and B and C”.
  • An exception to this definition will only occur when a combination of elements, functions, steps or operations are inherently mutually exclusive in some manner.
  • the words “if” and “if” may be interpreted as “at the time of” or “when” or “in response to determining” or “in response to detecting”, depending on the context.
  • the phrases “if it is determined” or “if (stated condition or event) is detected” may be interpreted as “when it is determined” or “in response to determining” or “when detecting (stated condition or event)” or “in response to detecting (stated condition or event)", depending on the context.
  • step codes such as S10 and S20 are used for the purpose of expressing the corresponding content more clearly and concisely, and do not constitute a substantial limitation on the sequence.
  • S20 When implementing the step, those skilled in the art may execute S20 first and then S10, etc., but these should all be within the scope of protection of this application.
  • module means, “component” or “unit” used to represent elements are only used to facilitate the description of the present application, and have no specific meanings. Therefore, “module”, “component” or “unit” can be used in a mixed manner.
  • the present application provides a method for processing an AGV deadlock problem.
  • a device for processing an AGV deadlock problem is applied.
  • the method for processing an AGV deadlock problem includes:
  • Step S10 if it is determined that there is an AGV 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;
  • Step S20 if it is determined to exist, determine a strategic solution to the deadlock problem
  • Step S30 unlocking the AGV based on the strategy solution.
  • the application scenarios are:
  • AGV vehicles will avoid other AGV vehicles as obstacles to avoid collision.
  • the AGV vehicle actually deadlocks, it is necessary to determine whether the deadlock occurs according to the real-time environment and deal with the deadlock problem.
  • the existing technology has the problem of low efficiency in dealing with the AGV deadlock problem.
  • This embodiment aims to improve the processing efficiency of AGV deadlock problem.
  • the resource set is any vertex or any edge, and can be allocated for scheduling the travel of the AGV.
  • the resource set is the union of the edge set and the vertex set.
  • the resource set is represented by A.
  • 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 resources.
  • a resource can only be occupied by one AGV at a time.
  • 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 there is, a policy solution to the deadlock problem is determined, and based on the policy solution, the AGV is unlocked.
  • Step S10 if it is determined that there is an AGV 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;
  • the processing device for the AGV deadlock problem determines that there is an AGV waiting for resource allocation at the current moment, it obtains the preset resource A and determines whether there is a deadlock problem based on the resource set A, wherein the resource set is a global resource set.
  • step S10 the step of obtaining a preset resource set and determining whether there is a deadlock problem based on the resource set includes the following steps S11-S13:
  • Step S11 obtaining a preset resource set
  • the preset resource set is A.
  • Step S12 based on the resource set, determining the resource set corresponding to the AGV to which the resources are to be allocated, wherein the resource set corresponding to the AGV to which the resources are to be allocated includes an occupied resource set and an applied resource set;
  • the occupied state space X o k (t, p k (t)) of AGV k is defined as the outline of AGV k and the set of all corresponding state spaces within the outline at time t.
  • the resource set corresponding to the AGV to which the resources are to be allocated is determined, and the resource set corresponding to the AGV to which the resources are to be allocated includes an occupied resource set and an applied resource set.
  • the occupied resource set O k (t) of AGV k is the set of path resources corresponding to the occupied state space Xok(t, pk(t)) of AGV k at time t.
  • the resource set R k (t) requested by AGV k includes the designated path resources requested by AGV k at time t, and resources requested by other AGVs that have contour collisions with the designated path resources requested by AGV k.
  • Step S13 If the occupied resource set and the applied resource set corresponding to each AGV to which the resources are to be allocated have an intersection, it is determined that a deadlock problem exists.
  • the occupied resource set and the applied resource set of each AGV have an intersection, it is determined that a deadlock problem exists.
  • FIG. 2 there are three AGVs, namely AGV1, AGV2 and AGV3.
  • Fig. 2 also includes five vertices, namely v1 to v5, and three edges, namely e1 to e4.
  • the resource sets corresponding to the AGVs to be allocated resources include O 1 (t1), R 1 (t1), O 2 (t1) and R 2 (t1), where O 1 (t1) is the occupied resource set of AGV1, R 1 (t1) is the requested resource set of AGV1, O 2 (t1) is the occupied resource set of AGV2, and R 2 (t1) is the requested resource set of AGV2.
  • Step S20 if it is determined to exist, determine a strategic solution to the deadlock problem
  • the strategic solution is the solution to the deadlock problem.
  • a strategic solution to the deadlock problem is determined.
  • step S20 if it is determined to exist, the step of determining the strategic solution to the deadlock problem includes the following steps S21-S24:
  • Step S21 after initialization, determining the set of AGVs to be scheduled and the set of available resources;
  • the strategy solution is initialized, and after initialization, a set of AGVs to be scheduled is determined, wherein the set of AGVs to be scheduled includes a set of AGVs constituting a deadlock problem and a set of AGVs blocked by the deadlock problem.
  • the corresponding available resource set is determined based on the set of AGVs to be scheduled.
  • the available resource set reflects the state of the non-deadlocked running AGVs. Based on the available resource set, the globality is enhanced, the state of the deadlocked AGV and the state of the non-deadlocked AGV are combined, and the accuracy of unlocking the AGV deadlock problem is improved.
  • the available resource set is a resource set other than the occupied resource set of the deadlocked running AGV set and the occupied resource set of the to-be-scheduled AGV set.
  • step S21 the step of determining an available resource set includes the following steps A1 to A4:
  • Step A1 determining a first occupied resource set of the AGV set to be scheduled
  • the occupied resource set of the to-be-scheduled AGV set is the first occupied resource set.
  • Step A2 determining that the resource sets other than the to-be-scheduled AGV set in the resource set are non-deadlock running AGV sets;
  • resource sets other than the AGV set to be scheduled are non-deadlock running AGV sets.
  • Step A3 determining a second occupied resource set of the non-deadlock running AGV set
  • the occupied resource set of the non-deadlock running AGV set is determined, and the occupied resource set of the non-deadlock running AGV set is the second occupied resource set.
  • Step A4 Determine, in the resource set, a resource set other than the first occupied resource set and the second occupied resource set as the available resource set.
  • the first occupied resource set and the second occupied resource set are removed from the resource set A, and the remaining resource set obtained is the available resource set.
  • Step S22 for each AGV in the AGV set to be scheduled, searching in the available resource set to obtain a corresponding strategy set to be solved;
  • the set of AGVs to be scheduled includes multiple AGVs, and a strategy set is searched for each AGV therein, and the searched strategy set is obtained from available resources.
  • Step S23 if the strategy set to be solved is not empty, determining the heuristic function corresponding to the strategy set to be solved, and selecting the strategy element corresponding to the minimum value in the heuristic function to obtain the strategy solution;
  • the strategy set to be solved is empty. If the strategy set to be solved is not empty, it means that there are strategy elements in the strategy set to be solved.
  • the strategy set to be solved includes multiple strategy elements. Based on multiple reference factors, the heuristic function corresponding to the strategy set to be solved is determined, wherein each strategy element corresponds to a heuristic function, and different strategy elements correspond to different heuristic functions.
  • the heuristic function H is the path length between the path points approximated by the straight-line distance between the AGV path points.
  • the heuristic function represents the path length, and the shorter the path, the better the strategy effect, the minimum value in the heuristic function should be selected, and the strategy element corresponding to the heuristic function of the minimum value should be used as the strategy solution.
  • Step S24 If it is determined that the deadlock problem has a solution, then the strategic solution is determined to be the strategic solution to the deadlock problem.
  • the obtained strategic solution is used as the strategic solution to the deadlock problem.
  • Step S30 unlocking the AGV based on the strategy solution.
  • the AGV with deadlock problem is unlocked.
  • the present application provides a method, device, equipment and storage medium for processing AGV deadlock problems. Compared with the problem of low efficiency in processing AGV deadlock problems in the prior art, in the present application, if it is determined that there is an AGV 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 there is, a policy solution to the deadlock problem is determined; based on the policy solution, the AGV is unlocked. In the present application, from the perspective of the resource set, it is determined whether there is a deadlock problem, and when it is determined that there is a deadlock problem, the corresponding policy solution is determined.
  • the judgment and processing of the deadlock problem is based on the perspective of the global resource set, which avoids the solution of the local deadlock AGV, achieves multi-AGV collaboration, and avoids more AGVs from falling into deadlock problems when unlocking, that is, improves the processing efficiency of the AGV deadlock problem.
  • step S30 based on the strategy solution, the step of unlocking the AGV includes the following steps S31-S35:
  • Step S31 obtaining 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;
  • Step S32 determining the union of the deadlocked AGV set and the blocked AGV set as the first AGV set to be scheduled at the current moment;
  • Step S33 if a corresponding second set of AGVs to be scheduled is determined at a 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 an intersection;
  • Step S34 if it is determined that there is no intersection, it is determined that there are multiple independent AGV deadlock loops;
  • Step S35 unlocking the AGVs in the first set of AGVs to be scheduled and the AGVs in the second set of AGVs to be scheduled respectively in chronological order.
  • the AGV when it is determined that there are multiple independent AGV deadlock loops, then based on the policy solution, when the AGV is unlocked, it should be unlocked separately in chronological order.
  • there are multiple independent AGV deadlock loops which means that at any time t1, a set of AGVs to be scheduled that have a deadlock loop is detected, and at a certain time t2 after time t1, a set of AGVs to be scheduled that have a deadlock loop is detected again.
  • a method for determining whether there are multiple independent AGV deadlock loops is specifically to obtain a deadlock AGV set and a blocked AGV set at time t1, wherein the AGVs in the blocked AGV set are blocked by the AGVs in the deadlock AGV set, and the union of the deadlock AGV set and the blocked AGV set is used as the AGV set to be scheduled at time t1, referred to as the first AGV set to be scheduled. If at a time t2 after time t1, another AGV set to be scheduled is confirmed, referred to as the second AGV set to be scheduled.
  • first AGV set to be scheduled and the second AGV set to be scheduled have no intersection, it is determined that there are multiple independent AGV deadlock loops, and the AGVs in the first AGV set to be scheduled are first unlocked in chronological order, and then the AGVs in the second AGV set to be scheduled are unlocked.
  • step S24 the strategy solution carries a depth parameter. If it is determined that the deadlock problem has a solution, before the step of determining that the strategy solution is the strategy solution to the deadlock problem, steps B1 to B3 are included:
  • Step B1 determining whether the deadlock problem has a solution, wherein when the depth parameter reaches the depth threshold, if at least one of the following conditions is met: at least one AGV in the set of AGVs to be scheduled reaches a preset end point, or the sum of the distances between all AGVs in the set of AGVs to be scheduled and the corresponding end point is less than the sum of the distances when the depth parameter is 0, then it is determined that there is a solution;
  • Step B2 if it is determined that there is no solution, the strategy solution is deleted from the strategy set to be solved, and the strategy set queue to be solved corresponding to the depth parameter and the available resource set are updated;
  • Step B3 returning to the step of searching for each AGV in the set of AGVs to be scheduled in the set of available resources to obtain the corresponding set of strategies to be solved, and obtaining the strategy solution until it is determined that the strategy solution is the strategy solution to the deadlock problem.
  • the judgment method is as follows: the strategy solution carries a depth parameter.
  • the depth parameter is n
  • the preset depth threshold is N.
  • the depth parameter n is equal to N
  • the sum of the distances between all AGVs in the set of AGVs to be scheduled and the corresponding end point is less than the sum of the distances when n is 0, it is determined that the deadlock problem has a solution.
  • the strategy solution is deleted from the strategy set to be solved, and the queue of the strategy set to be solved corresponding to the depth parameter and the available resource set are updated.
  • the step of searching for each AGV in the AGV set to be scheduled obtaining the corresponding strategy set to be solved, and obtaining the strategy solution until it is determined that the strategy solution is the strategy solution to the deadlock problem.
  • steps C1 to C3 are included:
  • Step C1 if the strategy set to be solved is empty, determine whether the strategy set queue to be solved is empty;
  • Step C2 if it is determined to be empty, then it is determined that the deadlock problem has no solution, and the step of deleting the strategy solution from the strategy set to be solved if it is determined that there is no solution, is returned until it is determined that the strategy solution is the strategy solution to the deadlock problem;
  • Step C3 if it is determined that it is not empty, return to the step of determining the heuristic function corresponding to the strategy set to be solved, until it is determined that the strategy solution is the strategy solution to the deadlock problem.
  • a step of determining whether the deadlock problem has a solution is added, wherein when the depth parameter reaches the depth threshold, it is determined whether the deadlock problem has a solution. If it is determined that the deadlock problem has no solution, the step of searching for a strategy solution is returned until a strategy solution is obtained. After multiple iterative searches, a strategy solution to the deadlock problem is finally obtained, which further improves the processing efficiency of the AGV deadlock problem.
  • a device for processing an AGV deadlock problem is provided, and the device includes:
  • a first determination module is used to obtain a preset resource set if it is determined that there is an AGV waiting for resource allocation at the current moment, and determine whether there is a deadlock problem based on the resource set, wherein the resource set is a global resource set;
  • a second determination module is used to determine a strategic solution to the deadlock problem if it is determined to exist;
  • An unlocking module is used to unlock the AGV based on the strategy solution.
  • the step of unlocking the AGV based on the policy solution includes:
  • a first acquisition module is used to acquire a deadlock AGV set and a blocked AGV set, wherein the AGVs in the blocked AGV set are blocked by the AGVs in the deadlock AGV set;
  • a third determination module is used to determine the union of the deadlocked AGV set and the blocked AGV set as the first AGV set to be scheduled at the current moment;
  • a fourth determination module configured to determine whether the first set of AGVs to be scheduled and the second set of AGVs to be scheduled have an intersection if a corresponding second set of AGVs to be scheduled is determined at a future time of the current time;
  • a fifth determination module configured to determine the existence of multiple independent AGV deadlock loops if it is determined that there is no intersection
  • 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 respectively in chronological order.
  • the step of obtaining a preset resource set and determining whether a deadlock problem exists based on the resource set comprises:
  • a second acquisition module is used to acquire a preset resource set
  • a sixth determination module configured to determine, based on the resource set, a resource set corresponding to the AGV to which the resources are to be allocated, wherein the resource set corresponding to the AGV to which the resources are to be allocated includes an occupied resource set and an applied resource set;
  • the seventh determination module is used to determine that a deadlock problem exists if the occupied resource set and the applied resource set corresponding to each AGV to which the resources are to be allocated have an intersection.
  • the apparatus comprises:
  • An eighth determination module used to determine the set of AGVs to be scheduled and the set of available resources after initialization
  • a search module configured to search the available resource set for each AGV in the AGV set to be scheduled, and obtain a corresponding strategy set to be solved;
  • an eighth determination module configured to determine a heuristic function corresponding to the strategy set to be solved if the strategy set to be solved is not empty, and select a strategy element corresponding to a minimum value in the heuristic function to obtain the strategy solution;
  • the ninth determination module is used to determine that the strategic solution is the strategic solution to the deadlock problem if it is determined that the deadlock problem has a solution.
  • the strategic solution carries a depth parameter
  • the device before the step of determining that the strategic solution is the strategic solution to the deadlock problem if it is determined that the deadlock problem has a solution, the device includes:
  • a first judgment module is used to judge whether the deadlock problem has a solution, wherein when the depth parameter reaches the depth threshold, if at least one of the following conditions is met: at least one AGV in the set of AGVs to be scheduled reaches a preset end point, or the sum of the distances between all AGVs in the set of AGVs to be scheduled and the corresponding end point is less than the sum of the distances when the depth parameter is 0, then it is judged that there is a solution;
  • An updating module configured to delete the strategy solution from the strategy set to be solved if it is determined that there is no solution, and update the queue of the strategy set to be solved corresponding to the depth parameter and the available resource set;
  • the first return module is used to return to each AGV in the AGV set to be scheduled, search in the available resource set, obtain the corresponding strategy set to be solved, and obtain the strategy solution until it is determined that the strategy solution is the strategy solution to the deadlock problem.
  • the device after the step of searching the available resource set for each AGV in the set of AGVs to be scheduled to obtain a corresponding set of strategies to be solved, the device includes:
  • a tenth determination module configured to determine whether the queue of strategy sets to be solved is empty if the strategy set to be solved is empty
  • a second judgment module is used to judge 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 strategy set to be solved if it is determined that there is no solution, until it is determined that the strategy solution is the strategy solution to the deadlock problem;
  • the second returning module is used to return to 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 it is determined that the strategy solution is the strategy solution to the deadlock problem.
  • the step of determining the available resource set the apparatus comprises:
  • An eleventh determination module is used to determine a first occupied resource set of the AGV set to be scheduled
  • a twelfth determination module used to determine that the resource set other than the to-be-scheduled AGV set in the resource set is a non-deadlock running AGV set;
  • a thirteenth determination module used to determine a second occupied resource set of the non-deadlock running AGV set
  • a fourteenth determining module is used to determine that the resource sets other than the first occupied resource set and the second occupied resource set in the resource set are the available resource sets.
  • the specific implementation of the device for processing the AGV deadlock problem of the present application is basically the same as the embodiments of the method for processing the AGV deadlock problem described above, and will not be repeated here.
  • a device for processing an AGV deadlock problem is provided.
  • the device for processing the AGV deadlock problem is a physical node device.
  • the device for processing the AGV deadlock problem comprises: a memory, a processor, and a program for implementing a method for processing the AGV deadlock problem stored in the memory.
  • the memory is used to store the program for implementing the method for processing the AGV deadlock problem;
  • the processor is used to execute the program for implementing the method for processing the AGV deadlock problem, so as to implement the steps of the method for processing the AGV deadlock problem in the above embodiments.
  • FIG 4 is a schematic diagram of the device structure of the hardware operating environment involved in the embodiment of the present application.
  • the processing device for the 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 realize the connection and communication between the processor 1001 and the memory 1005.
  • the memory 1005 may be a high-speed RAM memory or a stable memory (non-volatile memory), such as a disk memory.
  • the memory 1005 may optionally be a storage device independent of the aforementioned processor 1001.
  • the processing device for the AGV deadlock problem may also include a network interface, an audio circuit, a display, a connecting line, a sensor, an input module, etc.
  • the network interface may optionally include a standard wired interface, a wireless interface (such as a WI-FI interface, a Bluetooth interface), and the input module may optionally include a keyboard, a system soft keyboard, voice input, wireless receiving input, etc.
  • the structure of the device for processing the AGV deadlock problem does not constitute a limitation on the device for processing the AGV deadlock problem, and may include more or fewer components than shown in the figure, or a combination of certain components, or a different arrangement of components.
  • the memory as a computer storage medium may include an operating system, an information exchange module, and a program for processing AGV deadlock problems.
  • the operating system is a program that manages and controls the hardware and software resources of the processing equipment for AGV deadlock problems, and supports the operation of the program for processing AGV deadlock problems and other software and/or programs.
  • the information exchange module is used to realize communication between the components inside the memory, and to communicate with other hardware and software in the management system.
  • the processor is used to execute the processing program for the AGV deadlock problem stored in the memory to implement the above-mentioned steps for processing the AGV deadlock problem.
  • the specific implementation of the device for processing the AGV deadlock problem of the present application is basically the same as the various embodiments of the method for processing the AGV deadlock problem described above, and will not be repeated here.
  • An embodiment of the present application provides a storage medium, and the storage medium stores one or more programs, and the one or more programs can also be executed by one or more processors to implement the steps of the method for handling the AGV deadlock problem in the above embodiment.
  • the specific implementation method of the storage medium of the present application is basically the same as the embodiments of the method for handling the AGV deadlock problem mentioned above, and will not be repeated here.
  • the technical solution of the present application is essentially or the part that contributes to the prior art can be embodied in the form of a software product, which is stored in a storage medium (such as ROM or RAM, magnetic disk, optical disk) as described above, and includes a number of instructions for a terminal device (which can be a mobile phone, computer, server, air conditioner, or network device, etc.) to execute the methods described in each embodiment of the present application.
  • a storage medium such as ROM or RAM, magnetic disk, optical disk
  • a terminal device which can be a mobile phone, computer, server, air conditioner, or network device, etc.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The present application discloses an AGV deadlock problem processing method and apparatus, a device, and a storage medium, and belongs to the field of AGV intelligent control. The method comprises: if it is determined that at the present moment there is an AGV waiting to allocate resources, obtaining a preset resource set, and based on the resource set, determining whether a deadlock problem exists, wherein the resource set is a global resource set; if it is determined that a deadlock problem exists, determining a policy solution for the deadlock problem; and based on the policy solution, unlocking the AGV.

Description

AGV死锁问题的处理方法、装置、设备及存储介质AGV deadlock problem processing method, device, equipment and storage medium
相关申请Related Applications
本申请要求于2022年9月28日申请的、申请号为202211194507.6的中国专利申请的优先权,其全部内容通过引用结合在本申请中。This application claims priority to Chinese patent application No. 202211194507.6 filed on September 28, 2022, the entire contents of which are incorporated by reference into this application.
技术领域Technical Field
本申请涉及AGV智能控制领域,尤其涉及一种AGV死锁问题的处理方法、装置、设备及存储介质。The present application relates to the field of AGV intelligent control, and in particular to a method, device, equipment and storage medium for processing an AGV deadlock problem.
背景技术Background technique
目前,AGV车辆在运输货物时,会避开周围环境中的障碍物,AGV车辆在会将其他AGV车辆作为障碍物进行避障以避免碰撞。当AGV车辆真实出现死锁现象时,需根据实时环境判断是否出现死锁,以及处理死锁问题。At present, when transporting goods, AGV vehicles will avoid obstacles in the surrounding environment, and AGV vehicles will avoid other AGV vehicles as obstacles to avoid collisions. When the AGV vehicle actually has a deadlock phenomenon, it is necessary to determine whether the deadlock occurs according to the real-time environment and deal with the deadlock problem.
基于时间窗的死锁检测,复杂度高。在处理死锁问题时,为了避免碰撞,会牺牲调度系统的调度资源以及降低系统的执行效率,甚至会引起更多AGV车辆的死锁。基于局部死锁求解方法,无法做到多AGV协同。即,现有技术中存在,对AGV死锁问题的处理效率不高的问题。Deadlock detection based on time windows is highly complex. When dealing with deadlock problems, in order to avoid collisions, the scheduling system's scheduling resources will be sacrificed and the execution efficiency of the system will be reduced, which may even cause more AGV vehicles to deadlock. Based on the local deadlock solution method, multi-AGV collaboration cannot be achieved. In other words, the existing technology has the problem of low efficiency in dealing with AGV deadlock problems.
上述内容仅用于辅助理解本申请的技术方案,并不代表承认上述内容是现有技术。The above contents are only used to assist in understanding the technical solution of the present application and do not constitute an admission that the above contents are prior art.
发明内容Summary of the invention
本申请的主要目的在于提供一种AGV死锁问题的处理方法,旨在解决现有技术中,对AGV死锁问题的处理效率不高的问题。The main purpose of this application is to provide a method for processing the AGV deadlock problem, aiming to solve the problem of low efficiency in processing the AGV deadlock problem in the prior art.
为实现上述目的,本申请提供一种AGV死锁问题的处理方法,应用于AGV死锁问题的处理装置,所述AGV死锁问题的处理方法,包括:To achieve the above-mentioned purpose, the present application provides a method for processing an AGV deadlock problem, which is applied to a device for processing an AGV deadlock problem. The method for processing an AGV deadlock problem includes:
若确定当前时刻存在等待分配资源的AGV,获取预设的资源集,基于所述资源集,确定是否存在死锁问题,其中,所述资源集为全局资源集;If it is determined that there is an AGV 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 to exist, determine a strategic solution to the deadlock problem;
基于所述策略解,对所述AGV进行解锁。Based on the policy solution, the AGV is unlocked.
在一实施例中,所述基于所述策略解,对所述AGV进行解锁的步骤,包括:In one embodiment, the step of unlocking the AGV based on the strategy solution includes:
获取死锁AGV集,以及获取阻塞AGV集,其中,所述阻塞AGV集中的AGV受所述死锁AGV集中的AGV阻塞;Acquire a deadlocked AGV set, and acquire a blocked AGV set, wherein the AGVs in the blocked AGV set are blocked by the AGVs in the deadlocked AGV set;
确定所述死锁AGV集与所述阻塞AGV集的并集,为所述当前时刻的第一待调度AGV集;Determine the union of the deadlocked AGV set and the blocked AGV set as the first AGV set to be scheduled at the current moment;
若在所述当前时刻的未来时刻确定出对应的第二待调度AGV集,确定所述第一待调度AGV集与所述第二待调度AGV集是否有交集;If a corresponding second set of AGVs to be scheduled is determined at a future time of the current time, determining whether the first set of AGVs to be scheduled and the second set of AGVs to be scheduled have an intersection;
若确定无交集,则确定存在多个独立的AGV死锁环;If it is determined that there is no intersection, it is determined that there are multiple independent AGV deadlock loops;
按时间先后顺序,分别对所述第一待调度AGV集中的AGV,以及所述第二待调度AGV集中的AGV进行解锁。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 in chronological order.
在一实施例中,所述获取预设的资源集,基于所述资源集,确定是否存在死锁问题的步骤,包括:In one embodiment, the step of obtaining a preset resource set and determining whether a deadlock problem exists based on the resource set includes:
获取预设的资源集;Get the preset resource set;
基于所述资源集,确定待分配资源的AGV对应的资源集,其中,所述待分配资源的AGV对应的资源集,包括占用资源集以及申请资源集;Based on the resource set, determining the resource set corresponding to the AGV to which the resources are to be allocated, wherein the resource set corresponding to the AGV to which the resources are to be allocated includes an occupied resource set and an applied resource set;
若每个所述待分配资源的AGV对应的,所述占用资源集与所述申请资源集存在交集,则确定存在死锁问题。If the occupied resource set and the applied resource set corresponding to each AGV to which the resources are to be allocated have an intersection, it is determined that a deadlock problem exists.
在一实施例中,所述若确定存在,确定所述死锁问题的策略解的步骤,包括:In one embodiment, if it is determined that there is a deadlock problem, the step of determining a strategic solution to the deadlock problem includes:
在初始化后,确定待调度AGV集,以及确定可用资源集;After initialization, the set of AGVs to be scheduled is determined, as well as the set of available resources;
为所述待调度AGV集中的每一个AGV,在所述可用资源集中搜索,得到对应的待求解策略集;For each AGV in the set of AGVs to be scheduled, search in the set of available resources to obtain a corresponding set of strategies to be solved;
若所述待求解策略集不为空,则确定所述待求解策略集对应的启发函数,并在所述启发函数中,选取极小值对应的策略元素,得到所述策略解;If the strategy set to be solved is not empty, determining the heuristic function corresponding to the strategy set to be solved, and selecting the strategy element corresponding to the minimum value in the heuristic function to obtain the strategy solution;
若判断所述死锁问题有解,则确定所述策略解为所述死锁问题的策略解。If it is determined that the deadlock problem has a solution, the strategic solution is determined to be the strategic solution to the deadlock problem.
在一实施例中,所述策略解携带有深度参数,所述若判断所述死锁问题有解,则确定所述策略解为所述死锁问题的策略解的步骤之前,包括:In one embodiment, the strategic solution carries a depth parameter, and before the step of determining that the strategic solution is the strategic solution to the deadlock problem if it is determined that the deadlock problem has a solution, the step includes:
判断所述死锁问题是否有解,其中,当所述深度参数达到所述深度阈值时,若包括,所述待调度AGV集内至少一个AGV到达预设终点,或者,所述待调度AGV中全部AGV与对应终点的距离之和小于当所述深度参数为0时的距离之和,中的至少一项,则判断有解;Determine whether the deadlock problem has a solution, wherein when the depth parameter reaches the depth threshold, if at least one of the following conditions is met: at least one AGV in the set of AGVs to be scheduled reaches a preset end point, or the sum of the distances between all AGVs in the set of AGVs to be scheduled and the corresponding end point is less than the sum of the distances when the depth parameter is 0, then it is determined that there is a solution;
若判断无解,从所述待求解策略集中删除所述策略解,并更新所述深度参数对应的待求解策略集队列,以及所述可用资源集;If it is determined that there is no solution, the strategy solution is deleted from the strategy set to be solved, and the queue of the strategy set to be solved corresponding to the depth parameter and the available resource set are updated;
返回为所述待调度AGV集中的每一个AGV,在所述可用资源集中搜索,得到对应的待求解策略集的步骤,得到所述策略解,直至确定所述策略解为所述死锁问题的策略解。Return to the step of searching for each AGV in the set of AGVs to be scheduled in the set of available resources to obtain a corresponding set of strategies to be solved, and obtain the strategy solution until it is determined that the strategy solution is a strategy solution to the deadlock problem.
在一实施例中,所述为所述待调度AGV集中的每一个AGV,在所述可用资源集中搜索,得到对应的待求解策略集的步骤之后,包括:In one embodiment, after the step of searching the available resource set for each AGV in the set of AGVs to be scheduled to obtain a corresponding set of strategies to be solved, the following steps are included:
若所述待求解策略集为空,确定所述待求解策略集队列是否为空;If the strategy set to be solved is empty, determining whether the strategy set queue to be solved is empty;
若确定为空,则判断所述死锁问题无解,返回若判断无解,从所述待求解策略集中删除所述策略解的步骤,直至确定所述策略解为所述死锁问题的策略解;If it is determined to be empty, it is determined that the deadlock problem has no solution, and the step of deleting the strategy solution from the strategy set to be solved if it is determined that there is no solution is returned until it is determined that the strategy solution is the strategy solution to the deadlock problem;
若确定不为空,返回确定所述待求解策略集对应的启发函数的步骤,直至确定所述策略解为所述死锁问题的策略解。If it is determined that it is not empty, return to the step of determining the heuristic function corresponding to the strategy set to be solved, until it is determined that the strategy solution is the strategy solution to the deadlock problem.
在一实施例中,所述确定可用资源集的步骤,包括:In one embodiment, the step of determining the available resource set includes:
确定所述待调度AGV集的第一占用资源集;Determine a first occupied resource set of the AGV set to be scheduled;
确定在所述资源集中,除所述待调度AGV集之外的资源集,为非死锁运行AGV集;Determine that, among the resource sets, resource sets other than the to-be-scheduled AGV set are non-deadlock running AGV sets;
确定所述非死锁运行AGV集的第二占用资源集;Determine a second occupied resource set of the non-deadlocked running AGV set;
确定所述资源集中,除所述第一占用资源集与所述第二占用资源集之外的资源集,为所述可用资源集。Determine, in the resource set, a resource set other than the first occupied resource set and the second occupied resource set as the available resource set.
此外,为实现上述目的,本申请还提供一种AGV死锁问题的处理装置,所述装置包括:In addition, to achieve the above purpose, the present application also provides a device for processing the AGV deadlock problem, the device comprising:
第一确定模块,用于若确定当前时刻存在等待分配资源的AGV,获取预设的资源集,基于所述资源集,确定是否存在死锁问题;A first determination module is used to obtain a preset resource set if it is determined that there is an AGV waiting for resource allocation at the current moment, and determine whether there is a deadlock problem based on the resource set;
第二确定模块,用于若确定存在,确定所述死锁问题的策略解;A second determination module is used to determine a strategic solution to the deadlock problem if it is determined to exist;
解锁模块,用于基于所述策略解,对所述AGV进行解锁。An unlocking module is used to unlock the AGV based on the strategy solution.
此外,为实现上述目的,本申请还提供一种AGV死锁问题的处理设备,所述AGV死锁问题的处理设备为实体节点设备,所述AGV死锁问题的处理设备包括:存储器,处理器及存储在所述存储器上并可在所述处理器上运行的AGV死锁问题的处理程序,所述处理器执行所述AGV死锁问题的处理程序实现所述AGV死锁问题的处理方法的步骤。In addition, to achieve the above-mentioned purpose, the present application also provides a processing device for an AGV deadlock problem, which is a physical node device, and the processing device for the AGV deadlock problem includes: a memory, a processor, and an AGV deadlock problem processing program stored on the memory and executable on the processor, and the processor executes the AGV deadlock problem processing program to implement the steps of the AGV deadlock problem processing method.
此外,为实现上述目的,本申请还提供一种存储介质,所述存储介质上存储有实现AGV死锁问题的处理方法的程序,所述AGV死锁问题的处理程序被处理器执行时实现上述所述的AGV死锁问题的处理方法的步骤。In addition, to achieve the above-mentioned purpose, the present application also provides a storage medium, on which is stored a program for implementing a method for processing an AGV deadlock problem. When the program for processing the AGV deadlock problem is executed by a processor, the steps of the method for processing the AGV deadlock problem described above are implemented.
本申请提供一种AGV死锁问题的处理方法、装置、设备及存储介质,与现有技术中,对AGV死锁问题的处理效率不高的问题相比,在本申请中,若确定当前时刻存在等待分配资源的AGV,获取预设的资源集,基于所述资源集,确定是否存在死锁问题,其中,所述资源集为全局资源集;若确定存在,确定所述死锁问题的策略解;基于所述策略解,对所述AGV进行解锁。在本申请中,从资源集的角度,确定是否存在死锁问题,在确定存在死锁问题时,确定对应的策略解。对死锁问题的判断以及处理,是站在全局资源集的角度,避免了对局部死锁AGV的求解,做到了多AGV协同,避免了解锁时更多的AGV陷入死锁问题,也即提高了对AGV死锁问题的处理效率。The present application provides a method, device, equipment and storage medium for processing AGV deadlock problems. Compared with the problem of low efficiency in processing AGV deadlock problems in the prior art, in the present application, if it is determined that there is an AGV 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 there is, a policy solution to the deadlock problem is determined; based on the policy solution, the AGV is unlocked. In the present application, from the perspective of the resource set, it is determined whether there is a deadlock problem, and when it is determined that there is a deadlock problem, the corresponding policy solution is determined. The judgment and processing of the deadlock problem is based on the perspective of the global resource set, which avoids the solution of the locally deadlocked AGV, achieves multi-AGV collaboration, and avoids more AGVs from falling into deadlock problems when unlocking, that is, improves the processing efficiency of the AGV deadlock problem.
附图说明BRIEF DESCRIPTION OF THE DRAWINGS
图1为本申请AGV死锁问题的处理方法的第一实施例的流程示意图;FIG1 is a flow chart of a first embodiment of a method for processing an AGV deadlock problem of the present application;
图2为本申请AGV死锁问题的处理方法的第一实施例的死锁问题示意图;FIG2 is a schematic diagram of a deadlock problem in a first embodiment of a method for processing an AGV deadlock problem of the present application;
图3为本申请AGV死锁问题的处理方法第四实施例中的AGV死锁问题的处理装置示意图;3 is a schematic diagram of a device for processing an AGV deadlock problem in a fourth embodiment of a method for processing an AGV deadlock problem of the present application;
图4为本申请AGV死锁问题的处理方法第五实施例涉及的硬件运行环境的设备结构示意图。FIG. 4 is a schematic diagram of the device structure of the hardware operating environment involved in the fifth embodiment of the method for processing the AGV deadlock problem of the present application.
具体实施方式Detailed ways
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。Exemplary embodiments will be described in detail herein, examples of which are shown in the accompanying drawings. When the following description refers to the drawings, unless otherwise indicated, the same numbers in different drawings represent the same or similar elements. The implementations described in the following exemplary embodiments do not represent all implementations consistent with the present application. Instead, they are merely examples of devices and methods consistent with some aspects of the present application as detailed in the appended claims.
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素,此外,本申请不同实施例中具有同样命名的部件、特征、要素可能具有相同含义,也可能具有不同含义,其具体含义需以其在该具体实施例中的解释或者进一步结合该具体实施例中上下文进行确定。It should be noted that, in this article, the terms "include", "comprises" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements includes not only those elements, but also includes other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, an element defined by the sentence "includes a ..." does not exclude the existence of other identical elements in the process, method, article or device including the element. In addition, components, features, and elements with the same name in different embodiments of the present application may have the same meaning or different meanings, and their specific meanings need to be determined by their explanation in the specific embodiment or further combined with the context of the specific embodiment.
应当理解,尽管在本文可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本 文范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语"如果"可以被解释成为"在……时"或"当……时"或"响应于确定"。再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在所述的特征、步骤、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、步骤、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。本申请使用的术语“或”、“和/或”、“包括以下至少一个”等可被解释为包括性的,或意味着任一个或任何组合。例如,“包括以下至少一个:A、B、C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A和B和C”,再如,“A、B或C”或者“A、B和/或C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A和B和C”。仅当元件、功能、步骤或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。It should be understood that, although the terms first, second, third, etc. may be used herein to describe various information, these information should not be limited to these terms. These terms are only used to distinguish the same type of information from each other. For example, without departing from the scope of this article, the first information may also be referred to as the second information, and similarly, the second information may also be referred to as the first information. Depending on the context, the word "if" as used herein may be interpreted as "at the time of" or "when" or "in response to determination". Furthermore, as used herein, the singular forms "one", "one" and "the" are intended to also include plural forms, unless there is an opposite indication in the context. It should be further understood that the terms "comprising" and "including" indicate the presence of the described features, steps, operations, elements, components, projects, kinds, and/or groups, but do not exclude the presence, occurrence or addition of one or more other features, steps, operations, elements, components, projects, kinds, and/or groups. The terms "or", "and/or", "including at least one of the following" etc. used in this application may be interpreted as inclusive, or mean any one or any combination. For example, “comprising at least one of the following: A, B, C” means “any of the following: A; B; C; A and B; A and C; B and C; A and B and C”, and for another example, “A, B or C” or “A, B and/or C” means “any of the following: A; B; C; A and B; A and C; B and C; A and B and C”. An exception to this definition will only occur when a combination of elements, functions, steps or operations are inherently mutually exclusive in some manner.
应该理解的是,虽然本申请实施例中的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。It should be understood that, although the various steps in the flowchart in the embodiment of the present application are displayed in sequence according to the indication of the arrows, these steps are not necessarily performed in sequence according to the order indicated by the arrows. Unless there is a clear explanation in this article, the execution of these steps does not have a strict order restriction, and it can be performed in other orders. Moreover, at least a portion of the steps in the figure may include a plurality of sub-steps or a plurality of stages, and these sub-steps or stages are not necessarily performed at the same time, but can be performed at different times, and their execution order is not necessarily performed in sequence, but can be performed in turn or alternately with other steps or at least a portion of the sub-steps or stages of other steps.
取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。As used herein, the words "if" and "if" may be interpreted as "at the time of" or "when" or "in response to determining" or "in response to detecting", depending on the context. Similarly, the phrases "if it is determined" or "if (stated condition or event) is detected" may be interpreted as "when it is determined" or "in response to determining" or "when detecting (stated condition or event)" or "in response to detecting (stated condition or event)", depending on the context.
需要说明的是,在本文中,采用了诸如S10、S20等步骤代号,其目的是为了更清楚简要地表述相应内容,不构成顺序上的实质性限制,本领域技术人员在具体实施时,可能会先执行S20后执行S10等,但这些均应在本申请的保护范围之内。It should be noted that in this article, step codes such as S10 and S20 are used for the purpose of expressing the corresponding content more clearly and concisely, and do not constitute a substantial limitation on the sequence. When implementing the step, those skilled in the art may execute S20 first and then S10, etc., but these should all be within the scope of protection of this application.
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。It should be understood that the specific embodiments described herein are only used to explain the present application and are not used to limit the present application.
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或者“单元”的后缀仅为了有利于本申请的说明,其本身没有特定的意义。因此,“模块”、“部件”或者“单元”可以混合地使用。In the subsequent description, the suffixes such as "module", "component" or "unit" used to represent elements are only used to facilitate the description of the present application, and have no specific meanings. Therefore, "module", "component" or "unit" can be used in a mixed manner.
为使本申请的上述目的、特征和优点能够更加明显易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其它实施例,均属于本申请保护的范围。In order to make the above-mentioned purposes, features and advantages of the present application more obvious and understandable, the technical solutions in the embodiments of the present application will be clearly and completely described below in conjunction with the drawings in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without creative work belong to the scope of protection of this application.
实施例一Embodiment 1
本申请实施例提供一种AGV死锁问题的处理方法,在本申请AGV死锁问题的处理方法的第一实施例中,参照图1,应用于AGV死锁问题的处理装置,所述AGV死锁问题的处理方法,包括:The present application provides a method for processing an AGV deadlock problem. In a first embodiment of the method for processing an AGV deadlock problem of the present application, referring to FIG. 1 , a device for processing an AGV deadlock problem is applied. The method for processing an AGV deadlock problem includes:
步骤S10,若确定当前时刻存在等待分配资源的AGV,获取预设的资源集,基于所述资源集,确定是否存在死锁问题,其中,所述资源集为全局资源集;Step S10, if it is determined that there is an AGV 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;
步骤S20,若确定存在,确定所述死锁问题的策略解;Step S20, if it is determined to exist, determine a strategic solution to the deadlock problem;
步骤S30,基于所述策略解,对所述AGV进行解锁。Step S30: unlocking the AGV based on the strategy solution.
在本实施例中,针对的应用场景是:In this embodiment, the application scenarios are:
AGV车辆在会将其他AGV车辆作为障碍物进行避障以避免碰撞。当AGV车辆真实出现死锁现象时,需根据实时环境判断是否出现死锁,以及处理死锁问题,现有技术中存在,对AGV死锁问题的处理效率不高的问题。AGV vehicles will avoid other AGV vehicles as obstacles to avoid collision. When the AGV vehicle actually deadlocks, it is necessary to determine whether the deadlock occurs according to the real-time environment and deal with the deadlock problem. The existing technology has the problem of low efficiency in dealing with the AGV deadlock problem.
本实施例旨在:提高对AGV死锁问题的处理效率。This embodiment aims to improve the processing efficiency of AGV deadlock problem.
在本实施例中,资源集为任意顶点或者任意边,并可被分配用于调度AGV的行驶。其中,资源集是边集合与顶点集合的并集,作为一种示例,资源集用A表示。In this embodiment, the resource set is any vertex or any edge, and can be allocated for scheduling the travel of the AGV. The resource set is the union of the edge set and the vertex set. As an example, the resource set is represented by A.
在本实施例中,从资源集的角度,调度系统需要保证系统内的AGV无碰撞,即保证每个AGV在资源上的独占性,一个资源在同一时间,只能被一个AGV占用。In this embodiment, from the perspective of resource sets, 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 resources. A resource can only be occupied by one AGV at a time.
在本实施例中,若确定当前时刻存在等待分配资源的AGV,获取预设的资源集,基于所述资源集,确定是否存在死锁问题,其中,所述资源集为全局资源集,若确定存在,确定所述死锁问题的策略解,基于所述策略解,对所述AGV进行解锁。In this embodiment, if it is determined that there is an AGV 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 there is, a policy solution to the deadlock problem is determined, and based on the policy solution, the AGV is unlocked.
具体步骤如下:Specific steps are as follows:
步骤S10,若确定当前时刻存在等待分配资源的AGV,获取预设的资源集,基于所述资源集,确定是否存在死锁问题,其中,所述资源集为全局资源集;Step S10, if it is determined that there is an AGV 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;
在本实施例中,AGV死锁问题的处理装置若确定当前时刻存在等待分配资源的AGV,获取预设的资源A,基于资源集A,确定是否存在死锁问题,其中,所述资源集为全局资源集。In this embodiment, if the processing device for the AGV deadlock problem determines that there is an AGV waiting for resource allocation at the current moment, it obtains the preset resource A and determines whether there is a deadlock problem based on the resource set A, wherein the resource set is a global resource set.
其中,步骤S10中,获取预设的资源集,基于所述资源集,确定是否存在死锁问题的步骤,包括以下步骤S11-步骤S13:Among them, in step S10, the step of obtaining a preset resource set and determining whether there is a deadlock problem based on the resource set includes the following steps S11-S13:
步骤S11,获取预设的资源集;Step S11, obtaining a preset resource set;
作为一种示例,预设的资源集为A。As an example, the preset resource set is A.
步骤S12,基于所述资源集,确定待分配资源的AGV对应的资源集,其中,所述待分配资源的AGV对应的资源集,包括占用资源集以及申请资源集;Step S12, based on the resource set, determining the resource set corresponding to the AGV to which the resources are to be allocated, wherein the resource set corresponding to the AGV to which the resources are to be allocated includes an occupied resource set and an applied resource set;
作为一种示例,AGV k∈A的状态x k(t),定义为,t时刻,AGV k的几何中心位置p k(t)和速度v k(t)的组合,x k(t)={p k(t)、v k(t)}。 As an example, the state x k (t) of AGV k∈A is defined as the combination of the geometric center position p k (t) and velocity v k (t) of AGV k at time t, x k (t) = {p k (t), v k (t)}.
作为一种示例,AGV k的占用状态空间X o k(t、p k(t))定义为,t时刻,AGV k的轮廓以及轮廓以内对应的所有状态空间的集合。 As an example, the occupied state space X o k (t, p k (t)) of AGV k is defined as the outline of AGV k and the set of all corresponding state spaces within the outline at time t.
作为一种示例,基于所述资源集,确定待分配资源的AGV对应的资源集,所述待分配资源的AGV对应的资源集,包括占用资源集以及申请资源集。As an example, based on the resource set, the resource set corresponding to the AGV to which the resources are to be allocated is determined, and the resource set corresponding to the AGV to which the resources are to be allocated includes an occupied resource set and an applied resource set.
作为一种示例,AGV k的占用资源集O k(t),为t时刻,AGV k的占用状态空间Xok(t、pk(t))所对应的路径资源集合。 As an example, the occupied resource set O k (t) of AGV k is the set of path resources corresponding to the occupied state space Xok(t, pk(t)) of AGV k at time t.
作为一种示例,AGV k的申请资源集R k(t),包括t时刻AGV k申请的指定路径资源,以及其他AGV所申请的资源中与AGV k申请的指定路径资源存在轮廓碰撞的资源。 As an example, the resource set R k (t) requested by AGV k includes the designated path resources requested by AGV k at time t, and resources requested by other AGVs that have contour collisions with the designated path resources requested by AGV k.
步骤S13,若每个所述待分配资源的AGV对应的,所述占用资源集与所述申请资源集存在交集,则确定存在死锁问题。Step S13: If the occupied resource set and the applied resource set corresponding to each AGV to which the resources are to be allocated have an intersection, it is determined that a deadlock problem exists.
作为一种示例,若在待分配资源的AGV中,每个AGV的占用资源集与申请资源集有交集,则确定存在死锁问题。As an example, if among the AGVs to be allocated resources, the occupied resource set and the applied resource set of each AGV have an intersection, it is determined that a deadlock problem exists.
作为一种示例,如图2,包括3个AGV,分别为AGV1、AGV2与AGV3。图2还包括5个顶点,分别为v1至v5,以及包括3条边,分别为e1至e4。As an example, as shown in Fig. 2, there are three AGVs, namely AGV1, AGV2 and AGV3. Fig. 2 also includes five vertices, namely v1 to v5, and three edges, namely e1 to e4.
作为一种示例,图2中的AGV1与AGV2在t1时刻共同组成待调度AGV集合A RE(t1),其中A RE(t1)={AGV1、AGV2}。对应的,待分配资源的AGV对应的资源集包括O 1(t1)、R 1(t1)、O 2(t1)和R 2(t1),其中,O 1(t1)为AGV1的占用资源集,R 1(t1)为AGV1的申请资源集、O 2(t1)为AGV2的占用资源集,R 2(t1)为AGV2的申请资源集。 As an example, AGV1 and AGV2 in FIG2 together form the AGV set to be scheduled A RE (t1) at time t1, where A RE (t1) = {AGV1, AGV2}. Correspondingly, the resource sets corresponding to the AGVs to be allocated resources include O 1 (t1), R 1 (t1), O 2 (t1) and R 2 (t1), where O 1 (t1) is the occupied resource set of AGV1, R 1 (t1) is the requested resource set of AGV1, O 2 (t1) is the occupied resource set of AGV2, and R 2 (t1) is the requested resource set of AGV2.
作为一种示例,O 1(t1)={v1、e1、e2、e4},R 1(t1)={e4、e2},O 2(t1)={e2},R 2(t1)={v1、e1、e4}。由于O 1(t1)∩R 2(t1)={v1、e1、e4},O 2(t1)∩R 1(t1)={e2},则O 1(t1)与R 2(t1)存在交集,O 2(t1)与R 1(t1)存在交集,则AGV1与AGV2在t1时刻构成死锁,即存在死锁问题。 As an example, O 1 (t1) = {v1, e1, e2, e4}, R 1 (t1) = {e4, e2}, O 2 (t1) = {e2}, R 2 (t1) = {v1, e1, e4}. Since O 1 (t1) ∩ R 2 (t1) = {v1, e1, e4}, O 2 (t1) ∩ R 1 (t1) = {e2}, O 1 (t1) and R 2 (t1) have an intersection, and O 2 (t1) and R 1 (t1) have an intersection. Therefore, AGV1 and AGV2 are deadlocked at time t1, that is, there is a deadlock problem.
步骤S20,若确定存在,确定所述死锁问题的策略解;Step S20, if it is determined to exist, determine a strategic solution to the deadlock problem;
在本实施例中,策略解为所述死锁问题的解。In this embodiment, the strategic solution is the solution to the deadlock problem.
作为一种示例,若确定存在死锁问题,确定所述死锁问题的策略解。As an example, if it is determined that a deadlock problem exists, a strategic solution to the deadlock problem is determined.
其中,步骤S20,若确定存在,确定所述死锁问题的策略解的步骤,包括以下步骤S21-步骤S24:Wherein, step S20, if it is determined to exist, the step of determining the strategic solution to the deadlock problem includes the following steps S21-S24:
步骤S21,在初始化后,确定待调度AGV集,以及确定可用资源集;Step S21, after initialization, determining the set of AGVs to be scheduled and the set of available resources;
作为一种示例,对所述策略解进行初始化,在初始化后,确定待调度AGV集,其中待调度AGV集包括,构成死锁问题的AGV集合,以及被所述死锁问题阻塞的AGV集合。As an example, the strategy solution is initialized, and after initialization, a set of AGVs to be scheduled is determined, wherein the set of AGVs to be scheduled includes a set of AGVs constituting a deadlock problem and a set of AGVs blocked by the deadlock problem.
在本实施例中,确定了待调度AGV集后,基于待调度AGV集,确定对应的可用资源集。当出现死锁问题时,部分AGV死锁,剩余部分非死锁运行AGV。可用资源集反映了非死锁运行AGV的状态,则基于可用资源集,增强了全局性,综合了死锁AGV的状态与非死锁AGV的状态,提高了对AGV死锁问题解锁的准确度。In this embodiment, after the set of AGVs to be scheduled is determined, the corresponding available resource set is determined based on the set of AGVs to be scheduled. When a deadlock problem occurs, some AGVs are deadlocked, and the remaining non-deadlocked AGVs are running. The available resource set reflects the state of the non-deadlocked running AGVs. Based on the available resource set, the globality is enhanced, the state of the deadlocked AGV and the state of the non-deadlocked AGV are combined, and the accuracy of unlocking the AGV deadlock problem is improved.
作为一种示例,可用资源集,为资源集中,除非死锁运行AGV集的占用资源集,和待调度AGV集的占用资源集之外的资源集。As an example, the available resource set is a resource set other than the occupied resource set of the deadlocked running AGV set and the occupied resource set of the to-be-scheduled AGV set.
步骤S21中,确定可用资源集的步骤,包括以下步骤A1-步骤A4:In step S21, the step of determining an available resource set includes the following steps A1 to A4:
步骤A1,确定所述待调度AGV集的第一占用资源集;Step A1, determining a first occupied resource set of the AGV set to be scheduled;
作为一种示例,确定待调度AGV集的占用资源集为第一占用资源集。As an example, it is determined that the occupied resource set of the to-be-scheduled AGV set is the first occupied resource set.
步骤A2,确定在所述资源集中,除所述待调度AGV集之外的资源集,为非死锁运行AGV集;Step A2, determining that the resource sets other than the to-be-scheduled AGV set in the resource set are non-deadlock running AGV sets;
作为一种示例,在资源集A中,除待调度AGV集之外的资源集,为非死锁运行AGV集。As an example, in resource set A, resource sets other than the AGV set to be scheduled are non-deadlock running AGV sets.
步骤A3,确定所述非死锁运行AGV集的第二占用资源集;Step A3, determining a second occupied resource set of the non-deadlock running AGV set;
作为一种示例,基于非死锁运行AGV集,确定非死锁运行AGV集的占用资源集,非死锁运行AGV集的占用资源集为第二占用资源集。As an example, based on the non-deadlock running AGV set, the occupied resource set of the non-deadlock running AGV set is determined, and the occupied resource set of the non-deadlock running AGV set is the second occupied resource set.
步骤A4,确定所述资源集中,除所述第一占用资源集与所述第二占用资源集之外的资源集,为所述可用资源集。Step A4: Determine, in the resource set, a resource set other than the first occupied resource set and the second occupied resource set as the available resource set.
作为一种示例,将第一占用资源集与第二占用资源集从所述资源集A中去除,得到的剩余资源集,就是可用资源集。As an example, the first occupied resource set and the second occupied resource set are removed from the resource set A, and the remaining resource set obtained is the available resource set.
步骤S22,为所述待调度AGV集中的每一个AGV,在所述可用资源集中搜索,得到对应的待求解策略集;Step S22, for each AGV in the AGV set to be scheduled, searching in the available resource set to obtain a corresponding strategy set to be solved;
作为一种示例,待调度AGV集包括多个AGV,为其中的每个AGV进行搜索策略集,搜索的策略集从可用资源中得到。As an example, the set of AGVs to be scheduled includes multiple AGVs, and a strategy set is searched for each AGV therein, and the searched strategy set is obtained from available resources.
步骤S23,若所述待求解策略集不为空,则确定所述待求解策略集对应的启发函数,并在所述启发函数中,选取极小值对应的策略元素,得到所述策略解;Step S23, if the strategy set to be solved is not empty, determining the heuristic function corresponding to the strategy set to be solved, and selecting the strategy element corresponding to the minimum value in the heuristic function to obtain the strategy solution;
作为一种示例,在得到待求解策略集后,判断待求解策略集是否为空,若待求解策略集不为空,则说明待求解策略集中有策略元素。As an example, after obtaining the strategy set to be solved, it is determined whether the strategy set to be solved is empty. If the strategy set to be solved is not empty, it means that there are strategy elements in the strategy set to be solved.
作为一种示例,待求解策略集中包括多个策略元素,基于多个参考因素,确定待求解策略集对应的启发函数,其中,每个策略元素对应一个启发函数,策略元素不同,对应的启发函数不同。As an example, the strategy set to be solved includes multiple strategy elements. Based on multiple reference factors, the heuristic function corresponding to the strategy set to be solved is determined, wherein each strategy element corresponds to a heuristic function, and different strategy elements correspond to different heuristic functions.
作为一种示例,启发函数H为,由AGV路径点之间的直线距离近似得到的路径点之间的路径长度。As an example, the heuristic function H is the path length between the path points approximated by the straight-line distance between the AGV path points.
由于启发函数代表了路径长度,而路径越短,策略效果更优,则应选取启发函数中的极小值,将所述极小值的启发函数对应的策略元素,作为策略解。Since the heuristic function represents the path length, and the shorter the path, the better the strategy effect, the minimum value in the heuristic function should be selected, and the strategy element corresponding to the heuristic function of the minimum value should be used as the strategy solution.
步骤S24,若判断所述死锁问题有解,则确定所述策略解为所述死锁问题的策略解。Step S24: If it is determined that the deadlock problem has a solution, then the strategic solution is determined to be the strategic solution to the deadlock problem.
作为一种示例,在得到策略解后,若判断死锁问题有解,则将得到的策略解作为死锁问题的策略解。As an example, after obtaining a strategic solution, if it is determined that the deadlock problem has a solution, the obtained strategic solution is used as the strategic solution to the deadlock problem.
步骤S30,基于所述策略解,对所述AGV进行解锁。Step S30: unlocking the AGV based on the strategy solution.
作为一种示例,基于策略解,对存在死锁问题AGV进行解锁。As an example, based on the strategy solution, the AGV with deadlock problem is unlocked.
本申请提供一种AGV死锁问题的处理方法、装置、设备及存储介质,与现有技术中,对AGV死锁问题的处理效率不高的问题相比,在本申请中,若确定当前时刻存在等待分配资源的AGV,获取预设的资源集,基于所述资源集,确定是否存在死锁问题,其中,所述资源集为全局资源集;若确定存在,确定所述死锁问题的策略解;基于所述策略解,对所述AGV进行解锁。在本申请中,从资源集的角度,确定是否存在死锁问题,在确定存在死锁问题时,确定对应的策略解。对死锁问题的判断以及处理,是站在全局资源集的角度,避免了对局部死锁AGV的求解,做到了多AGV协同,避免了解锁时更多的AGV陷入死锁问题,也即提高了对AGV死锁问题的处理效率。The present application provides a method, device, equipment and storage medium for processing AGV deadlock problems. Compared with the problem of low efficiency in processing AGV deadlock problems in the prior art, in the present application, if it is determined that there is an AGV 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 there is, a policy solution to the deadlock problem is determined; based on the policy solution, the AGV is unlocked. In the present application, from the perspective of the resource set, it is determined whether there is a deadlock problem, and when it is determined that there is a deadlock problem, the corresponding policy solution is determined. The judgment and processing of the deadlock problem is based on the perspective of the global resource set, which avoids the solution of the local deadlock AGV, achieves multi-AGV collaboration, and avoids more AGVs from falling into deadlock problems when unlocking, that is, improves the processing efficiency of the AGV deadlock problem.
实施例二Embodiment 2
进一步地,基于本申请实施例一,提供本申请的另一实施例,在该实施例中,步骤S30,基于所述策略解,对所述AGV进行解锁的步骤,包括以下步骤S31-步骤S35:Further, based on the first embodiment of the present application, another embodiment of the present application is provided. In this embodiment, step S30, based on the strategy solution, the step of unlocking the AGV includes the following steps S31-S35:
步骤S31,获取死锁AGV集,以及获取阻塞AGV集,其中,所述阻塞AGV集中的AGV受所述死锁AGV集中的AGV阻塞;Step S31, obtaining 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;
步骤S32,确定所述死锁AGV集与所述阻塞AGV集的并集,为所述当前时刻的第一待调度AGV集;Step S32, determining the union of the deadlocked AGV set and the blocked AGV set as the first AGV set to be scheduled at the current moment;
步骤S33,若在所述当前时刻的未来时刻确定出对应的第二待调度AGV集,确定所述第一待调度AGV集与所述第二待调度AGV集是否有交集;Step S33, if a corresponding second set of AGVs to be scheduled is determined at a 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 an intersection;
步骤S34,若确定无交集,则确定存在多个独立的AGV死锁环;Step S34, if it is determined that there is no intersection, it is determined that there are multiple independent AGV deadlock loops;
步骤S35,按时间先后顺序,分别对所述第一待调度AGV集中的AGV,以及所述第二待调度AGV集中的AGV进行解锁。Step S35 , unlocking the AGVs in the first set of AGVs to be scheduled and the AGVs in the second set of AGVs to be scheduled respectively in chronological order.
在本实施例中,若确定存在多个独立的AGV死锁环,则基于策略解,对AGV进行解锁时,应按照时间先后顺序,分别进行解锁。作为一种示例,存在多个独立的AGV死锁环,表示在任意时刻t1检测到一个死锁环成立的待调度AGV集合,且在t1时刻后的某一个时刻t2,再次检测到死锁环成立的待调度AGV集合。In this embodiment, if it is determined that there are multiple independent AGV deadlock loops, then based on the policy solution, when the AGV is unlocked, it should be unlocked separately in chronological order. As an example, there are multiple independent AGV deadlock loops, which means that at any time t1, a set of AGVs to be scheduled that have a deadlock loop is detected, and at a certain time t2 after time t1, a set of AGVs to be scheduled that have a deadlock loop is detected again.
作为一种示例,判断是否存在多个独立的AGV死锁环的方法,具体为,获取t1时刻的死锁AGV集,以及阻塞AGV集,其中,阻塞AGV集中的AGV受死锁AGV集中的AGV阻塞,将死锁AGV集与阻塞AGV集的并集,作为t1时刻的待调度AGV集,简称第一待调度AGV集。若在t1时刻后的一个t2时刻,再次确认出一个待调度AGV集,简 称第二待调度AGV集。若第一待调度AGV集与第二待调度AGV集无交集,则确定存在多个独立的AGV死锁环,按时间先后顺序,先对第一待调度AGV集中的AGV进行解锁,解锁后,再对第二待调度AGV集中的AGV进行解锁。As an example, a method for determining whether there are multiple independent AGV deadlock loops is specifically to obtain a deadlock AGV set and a blocked AGV set at time t1, wherein the AGVs in the blocked AGV set are blocked by the AGVs in the deadlock AGV set, and the union of the deadlock AGV set and the blocked AGV set is used as the AGV set to be scheduled at time t1, referred to as the first AGV set to be scheduled. If at a time t2 after time t1, another AGV set to be scheduled is confirmed, referred to as the second AGV set to be scheduled. If the first AGV set to be scheduled and the second AGV set to be scheduled have no intersection, it is determined that there are multiple independent AGV deadlock loops, and the AGVs in the first AGV set to be scheduled are first unlocked in chronological order, and then the AGVs in the second AGV set to be scheduled are unlocked.
在本实施例中,若检测到存在多个独立的AGV死锁环,则基于策略解,对AGV进行解锁时,应按照时间先后顺序,分别进行解锁。增加了检测是否有多个独立的AGV死锁环的步骤,以及若有多个,则按照时间先后顺序依次解锁,降低了死锁情况的识别颗粒度,提高了对死锁情况识别的精度,即进一步提高了对AGV死锁问题的处理效率。In this embodiment, if multiple independent AGV deadlock loops are detected, then based on the policy solution, when the AGV is unlocked, it should be unlocked separately in chronological order. The step of detecting whether there are multiple independent AGV deadlock loops is added, and if there are multiple, they are unlocked in chronological order, which reduces the granularity of deadlock identification and improves the accuracy of deadlock identification, that is, further improves the efficiency of handling AGV deadlock problems.
实施例三Embodiment 3
进一步地,基于本申请上述全部实施例,提供本申请的另一实施例,在该实施例中,步骤S24中,所述策略解携带有深度参数,若判断所述死锁问题有解,则确定所述策略解为所述死锁问题的策略解的步骤之前,包括步骤B1-步骤B3:Further, based on all the above embodiments of the present application, another embodiment of the present application is provided. In this embodiment, in step S24, the strategy solution carries a depth parameter. If it is determined that the deadlock problem has a solution, before the step of determining that the strategy solution is the strategy solution to the deadlock problem, steps B1 to B3 are included:
步骤B1,判断所述死锁问题是否有解,其中,当所述深度参数达到所述深度阈值时,若包括,所述待调度AGV集内至少一个AGV到达预设终点,或者,所述待调度AGV中全部AGV与对应终点的距离之和小于当所述深度参数为0时的距离之和,中的至少一项,则判断有解;Step B1, determining whether the deadlock problem has a solution, wherein when the depth parameter reaches the depth threshold, if at least one of the following conditions is met: at least one AGV in the set of AGVs to be scheduled reaches a preset end point, or the sum of the distances between all AGVs in the set of AGVs to be scheduled and the corresponding end point is less than the sum of the distances when the depth parameter is 0, then it is determined that there is a solution;
步骤B2,若判断无解,从所述待求解策略集中删除所述策略解,并更新所述深度参数对应的待求解策略集队列,以及所述可用资源集;Step B2: if it is determined that there is no solution, the strategy solution is deleted from the strategy set to be solved, and the strategy set queue to be solved corresponding to the depth parameter and the available resource set are updated;
步骤B3,返回为所述待调度AGV集中的每一个AGV,在所述可用资源集中搜索,得到对应的待求解策略集的步骤,得到所述策略解,直至确定所述策略解为所述死锁问题的策略解。Step B3, returning to the step of searching for each AGV in the set of AGVs to be scheduled in the set of available resources to obtain the corresponding set of strategies to be solved, and obtaining the strategy solution until it is determined that the strategy solution is the strategy solution to the deadlock problem.
在本实施例中,若判断所述死锁问题有解,则确定所述策略解为所述死锁问题的策略解的步骤之前,判断所述死锁问题是否有解。In this embodiment, if it is determined that the deadlock problem has a solution, before the step of determining that the strategic solution is the strategic solution to the deadlock problem, it is determined whether the deadlock problem has a solution.
在本实施例中,判断方法如下,策略解携带深度参数,作为一种示例,深度参数为n,预设的深度阈值为N,当深度参数n等于N时,若待调度AGV集内至少有一个AGV到达预设终点,则判断死锁问题有解。或者,当深度参数n等于N时,待调度AGV中全部AGV与对应终点的距离之和小于当n为0时的距离之和,则判断死锁问题有解。In this embodiment, the judgment 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 is equal to N, if at least one AGV in the set of AGVs to be scheduled reaches the preset end point, it is determined that the deadlock problem has a solution. Alternatively, when the depth parameter n is equal to N, the sum of the distances between all AGVs in the set of AGVs to be scheduled and the corresponding end point is less than the sum of the distances when n is 0, it is determined that the deadlock problem has a solution.
作为一种示例,当当深度参数n等于N时,没有AGV到达预设终点,且全部AGV与对应终点的距离之和,大于当n为0时的距离之和,则判断死锁问题无解。As an example, when the depth parameter n is equal to N, no AGV reaches the preset end point, and the sum of the distances between all AGVs and the corresponding end points is greater than the sum of the distances when n is 0, then it is determined that the deadlock problem has no solution.
若判断无解,从所述待求解策略集中删除所述策略解,并更新所述深度参数对应的待求解策略集队列,以及所述可用资源集。返回为所述待调度AGV集中的每一个AGV,在所述可用资源集中搜索,得到对应的待求解策略集的步骤,得到所述策略解,直至确定所述策略解为所述死锁问题的策略解。If it is determined that there is no solution, the strategy solution is deleted from the strategy set to be solved, and the queue of the strategy set to be solved corresponding to the depth parameter and the available resource set are updated. Return to the step of searching for each AGV in the AGV set to be scheduled, obtaining the corresponding strategy set to be solved, and obtaining the strategy solution until it is determined that the strategy solution is the strategy solution to the deadlock problem.
另外,在本实施例中,步骤S22,为所述待调度AGV集中的每一个AGV,在所述可用资源集中搜索,得到对应的待求解策略集的步骤之后,包括步骤C1-步骤C3:In addition, in this embodiment, after step S22, for each AGV in the set of AGVs to be scheduled, searches in the set of available resources to obtain a corresponding set of strategies to be solved, steps C1 to C3 are included:
步骤C1,若所述待求解策略集为空,确定所述待求解策略集队列是否为空;Step C1, if the strategy set to be solved is empty, determine whether the strategy set queue to be solved is empty;
步骤C2,若确定为空,则判断所述死锁问题无解,返回若判断无解,从所述待求解策略集中删除所述策略解的步骤,直至确定所述策略解为所述死锁问题的策略解;Step C2, if it is determined to be empty, then it is determined that the deadlock problem has no solution, and the step of deleting the strategy solution from the strategy set to be solved if it is determined that there is no solution, is returned until it is determined that the strategy solution is the strategy solution to the deadlock problem;
步骤C3,若确定不为空,返回确定所述待求解策略集对应的启发函数的步骤,直至确定所述策略解为所述死锁问题的策略解。Step C3: if it is determined that it is not empty, return to the step of determining the heuristic function corresponding to the strategy set to be solved, until it is determined that the strategy solution is the strategy solution to the deadlock problem.
在本实施例中,为所述待调度AGV集中的每一个AGV,在所述可用资源集中搜索,得到对应的待求解策略集的步骤之后,若确定所述待求解策略集为空,继续检查待求解策略集队列是否为空,若确定为空,则判断所述死锁问题无解,按照无解方法处理,返回若判断无解,从所述待求解策略集中删除所述策略解的步骤,直至确定所述策略解为所述死锁问题的策略解。若确定不为空,返回确定所述待求解策略集对应的启发函数的步骤,直至确定所述策略解为所述死锁问题的策略解。In this embodiment, for each AGV in the AGV set to be scheduled, after searching in the available resource set to obtain the corresponding strategy set to be solved, if it is determined that the strategy set to be solved is empty, continue to check whether the strategy set queue to be solved is empty. If it is determined to be empty, it is determined that the deadlock problem has no solution, and it is processed according to the no-solution method, and returns to the step of deleting the strategy solution from the strategy set to be solved if it is determined that there is no solution, until it is determined that the strategy solution is the strategy solution to the deadlock problem. If it is determined that it is not empty, return to the step of determining the heuristic function corresponding to the strategy set to be solved, until it is determined that the strategy solution is the strategy solution to the deadlock problem.
在本实施例中,增加判断所述死锁问题是否有解的步骤,其中,在深度参数达到深度阈值时,判断死锁问题是否有解,若判断死锁问题无解,返回搜索策略解的步骤,直至得到策略解。在多次迭代搜索后最终得到死锁问题的策略解,即进一步提高了对AGV死锁问题的处理效率。In this embodiment, a step of determining whether the deadlock problem has a solution is added, wherein when the depth parameter reaches the depth threshold, it is determined whether the deadlock problem has a solution. If it is determined that the deadlock problem has no solution, the step of searching for a strategy solution is returned until a strategy solution is obtained. After multiple iterative searches, a strategy solution to the deadlock problem is finally obtained, which further improves the processing efficiency of the AGV deadlock problem.
实施例四Embodiment 4
进一步地,基于上述所有实施例,提供本申请的另一实施例,在该实施例中,如图3,提供一种AGV死锁问题的处理装置,所述装置包括:Further, based on all the above embodiments, another embodiment of the present application is provided. In this embodiment, as shown in FIG3 , a device for processing an AGV deadlock problem is provided, and the device includes:
第一确定模块,用于若确定当前时刻存在等待分配资源的AGV,获取预设的资源集,基于所述资源集,确定是否存在死锁问题,其中,所述资源集为全局资源集;A first determination module is used to obtain a preset resource set if it is determined that there is an AGV waiting for resource allocation at the current moment, and determine whether there is a deadlock problem based on the resource set, wherein the resource set is a global resource set;
第二确定模块,用于若确定存在,确定所述死锁问题的策略解;A second determination module is used to determine a strategic solution to the deadlock problem if it is determined to exist;
解锁模块,用于基于所述策略解,对所述AGV进行解锁。An unlocking module is used to unlock the AGV based on the strategy solution.
在一实施例中,所述基于所述策略解,对所述AGV进行解锁的步骤,所述装置包括:In one embodiment, the step of unlocking the AGV based on the policy solution, the device includes:
第一获取模块,用于获取死锁AGV集,以及获取阻塞AGV集,其中,所述阻塞AGV集中的AGV受所述死锁AGV集中的AGV阻塞;A first acquisition module is used to acquire a deadlock AGV set and a blocked AGV set, wherein the AGVs in the blocked AGV set are blocked by the AGVs in the deadlock AGV set;
第三确定模块,用于确定所述死锁AGV集与所述阻塞AGV集的并集,为所述当前时刻的第一待调度AGV集;A third determination module is used to determine the union of the deadlocked AGV set and the blocked AGV set as the first AGV set to be scheduled at the current moment;
第四确定模块,用于若在所述当前时刻的未来时刻确定出对应的第二待调度AGV集,确定所述第一待调度AGV集与所述第二待调度AGV集是否有交集;A fourth determination module, configured to determine whether the first set of AGVs to be scheduled and the second set of AGVs to be scheduled have an intersection if a corresponding second set of AGVs to be scheduled is determined at a future time of the current time;
第五确定模块,用于若确定无交集,则确定存在多个独立的AGV死锁环;A fifth determination module, configured to determine the existence of multiple independent AGV deadlock loops if it is determined that there is no intersection;
第一解锁模块,用于按时间先后顺序,分别对所述第一待调度AGV集中的AGV,以及所述第二待调度AGV集中的AGV进行解锁。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 respectively in chronological order.
在一实施例中,所述获取预设的资源集,基于所述资源集,确定是否存在死锁问题的步骤,所述装置包括:In one embodiment, the step of obtaining a preset resource set and determining whether a deadlock problem exists based on the resource set comprises:
第二获取模块,用于获取预设的资源集;A second acquisition module is used to acquire a preset resource set;
第六确定模块,用于基于所述资源集,确定待分配资源的AGV对应的资源集,其中,所述待分配资源的AGV对应的资源集,包括占用资源集以及申请资源集;A sixth determination module, configured to determine, based on the resource set, a resource set corresponding to the AGV to which the resources are to be allocated, wherein the resource set corresponding to the AGV to which the resources are to be allocated includes an occupied resource set and an applied resource set;
第七确定模块,用于若每个所述待分配资源的AGV对应的,所述占用资源集与所述申请资源集存在交集,则确定存在死锁问题。The seventh determination module is used to determine that a deadlock problem exists if the occupied resource set and the applied resource set corresponding to each AGV to which the resources are to be allocated have an intersection.
在一实施例中,所述若确定存在,确定所述死锁问题的策略解的步骤,所述装置包括:In one embodiment, if it is determined that there is a deadlock problem, the step of determining a strategic solution to the deadlock problem, the apparatus comprises:
第八确定模块,用于在初始化后,确定待调度AGV集,以及确定可用资源集;An eighth determination module, used to determine the set of AGVs to be scheduled and the set of available resources after initialization;
搜索模块,用于为所述待调度AGV集中的每一个AGV,在所述可用资源集中搜索,得到对应的待求解策略集;A search module, configured to search the available resource set for each AGV in the AGV set to be scheduled, and obtain a corresponding strategy set to be solved;
第八确定模块,用于若所述待求解策略集不为空,则确定所述待求解策略集对应的启发函数,并在所述启发函数中,选取极小值对应的策略元素,得到所述策略解;an eighth determination module, configured to determine a heuristic function corresponding to the strategy set to be solved if the strategy set to be solved is not empty, and select a strategy element corresponding to a minimum value in the heuristic function to obtain the strategy solution;
第九确定模块,用于若判断所述死锁问题有解,则确定所述策略解为所述死锁问题的策略解。The ninth determination module is used to determine that the strategic solution is the strategic solution to the deadlock problem if it is determined that the deadlock problem has a solution.
在一实施例中,所述策略解携带有深度参数,所述若判断所述死锁问题有解,则确定所述策略解为所述死锁问题的策略解的步骤之前,所述装置包括:In one embodiment, the strategic solution carries a depth parameter, and before the step of determining that the strategic solution is the strategic solution to the deadlock problem if it is determined that the deadlock problem has a solution, the device includes:
第一判断模块,用于判断所述死锁问题是否有解,其中,当所述深度参数达到所述深度阈值时,若包括,所述待调度AGV集内至少一个AGV到达预设终点,或者,所述待调度AGV中全部AGV与对应终点的距离之和小于当所述深度参数为0时的距离之和,中的至少一项,则判断有解;A first judgment module is used to judge whether the deadlock problem has a solution, wherein when the depth parameter reaches the depth threshold, if at least one of the following conditions is met: at least one AGV in the set of AGVs to be scheduled reaches a preset end point, or the sum of the distances between all AGVs in the set of AGVs to be scheduled and the corresponding end point is less than the sum of the distances when the depth parameter is 0, then it is judged that there is a solution;
更新模块,用于若判断无解,从所述待求解策略集中删除所述策略解,并更新所述深度参数对应的待求解策略集队列,以及所述可用资源集;An updating module, configured to delete the strategy solution from the strategy set to be solved if it is determined that there is no solution, and update the queue of the strategy set to be solved corresponding to the depth parameter and the available resource set;
第一返回模块,用于返回为所述待调度AGV集中的每一个AGV,在所述可用资源集中搜索,得到对应的待求解策略集的步骤,得到所述策略解,直至确定所述策略解为所述死锁问题的策略解。The first return module is used to return to each AGV in the AGV set to be scheduled, search in the available resource set, obtain the corresponding strategy set to be solved, and obtain the strategy solution until it is determined that the strategy solution is the strategy solution to the deadlock problem.
在一实施例中,所述为所述待调度AGV集中的每一个AGV,在所述可用资源集中搜索,得到对应的待求解策略集的步骤之后,所述装置包括:In one embodiment, after the step of searching the available resource set for each AGV in the set of AGVs to be scheduled to obtain a corresponding set of strategies to be solved, the device includes:
第十确定模块,用于若所述待求解策略集为空,确定所述待求解策略集队列是否为空;a tenth determination module, configured to determine whether the queue of strategy sets to be solved is empty if the strategy set to be solved is empty;
第二判断模块,用于若确定为空,则判断所述死锁问题无解,返回若判断无解,从所述待求解策略集中删除所述策略解的步骤,直至确定所述策略解为所述死锁问题的策略解;A second judgment module is used to judge 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 strategy set to be solved if it is determined that there is no solution, until it is determined that the strategy solution is the strategy solution to the deadlock problem;
第二返回模块,用于若确定不为空,返回确定所述待求解策略集对应的启发函数的步骤,直至确定所述策略解为所述死锁问题的策略解。The second returning module is used to return to 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 it is determined that the strategy solution is the strategy solution to the deadlock problem.
在一实施例中,所述确定可用资源集的步骤,所述装置包括:In one embodiment, the step of determining the available resource set, the apparatus comprises:
第十一确定模块,用于确定所述待调度AGV集的第一占用资源集;An eleventh determination module is used to determine a first occupied resource set of the AGV set to be scheduled;
第十二确定模块,用于确定在所述资源集中,除所述待调度AGV集之外的资源集,为非死锁运行AGV集;A twelfth determination module, used to determine that the resource set other than the to-be-scheduled AGV set in the resource set is a non-deadlock running AGV set;
第十三确定模块,用于确定所述非死锁运行AGV集的第二占用资源集;A thirteenth determination module, used to determine a second occupied resource set of the non-deadlock running AGV set;
第十四确定模块,用于确定所述资源集中,除所述第一占用资源集与所述第二占用资源集之外的资源集,为所述可用资源集。A fourteenth determining module is used to determine that the resource sets other than the first occupied resource set and the second occupied resource set in the resource set are the available resource sets.
本申请AGV死锁问题的处理装置具体实施方式与上述AGV死锁问题的处理方法各实施例基本相同,在此不再赘述。The specific implementation of the device for processing the AGV deadlock problem of the present application is basically the same as the embodiments of the method for processing the AGV deadlock problem described above, and will not be repeated here.
实施例五Embodiment 5
进一步地,基于上述所有实施例,提供本申请的另一实施例,在该实施例中,提供一种AGV死锁问题的处理设备,所述AGV死锁问题的处理设备为实体节点设备,所述AGV死锁问题的处理设备包括:存储器、处理器以及存储在存储器上的用于实现所述AGV死锁问题的处理方法的程序,所述存储器用于存储实现AGV死锁问题的处理方法的程序;所述处理器用于执行实现所述AGV死锁问题的处理方法的程序,以实现上述实施例中AGV死锁问题的处理方法的步骤。Furthermore, based on all the above embodiments, another embodiment of the present application is provided. In this embodiment, a device for processing an AGV deadlock problem is provided. The device for processing the AGV deadlock problem is a physical node device. The device for processing the AGV deadlock problem comprises: a memory, a processor, and a program for implementing a method for processing the AGV deadlock problem stored in the memory. The memory is used to store the program for implementing the method for processing the AGV deadlock problem; the processor is used to execute the program for implementing the method for processing the AGV deadlock problem, so as to implement the steps of the method for processing the AGV deadlock problem in the above embodiments.
参照图4,图4是本申请实施例方案涉及的硬件运行环境的设备结构示意图。Refer to Figure 4, which is a schematic diagram of the device structure of the hardware operating environment involved in the embodiment of the present application.
如图4所示,该AGV死锁问题的处理设备可以包括:处理器1001,例如CPU,存储器1005,通信总线1002。其中,通信总线1002用于实现处理器1001和存储器1005之间的连接通信。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile  memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储设备。As shown in FIG4 , the processing device for the 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 realize the connection and communication between the processor 1001 and the memory 1005. The memory 1005 may be a high-speed RAM memory or a stable memory (non-volatile memory), such as a disk memory. The memory 1005 may optionally be a storage device independent of the aforementioned processor 1001.
在一实施例中,该AGV死锁问题的处理设备还可以包括网络接口、音频电路、显示器、连接线、传感器、输入模块等等,网络接口可选的可以包括标准的有线接口、无线接口(如WI-FI接口、蓝牙接口),输入模块可选的可以包括键盘(Keyboard)、系统软键盘、语音输入、无线接收输入等等。In one embodiment, the processing device for the AGV deadlock problem may also include a network interface, an audio circuit, a display, a connecting line, a sensor, an input module, etc. The network interface may optionally include a standard wired interface, a wireless interface (such as a WI-FI interface, a Bluetooth interface), and the input module may optionally include a keyboard, a system soft keyboard, voice input, wireless receiving input, etc.
本领域技术人员可以理解,AGV死锁问题的处理设备结构并不构成对AGV死锁问题的处理设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。Those skilled in the art will appreciate that the structure of the device for processing the AGV deadlock problem does not constitute a limitation on the device for processing the AGV deadlock problem, and may include more or fewer components than shown in the figure, or a combination of certain components, or a different arrangement of components.
作为一种计算机存储介质的存储器中可以包括操作系统、信息交换模块以及AGV死锁问题的处理程序。操作系统是管理和控制AGV死锁问题的处理设备硬件和软件资源的程序,支持AGV死锁问题的处理程序以及其它软件和/或程序的运行。信息交换模块用于实现存储器内部各组件之间的通信,以及与管理系统中其它硬件和软件之间通信。The memory as a computer storage medium may include an operating system, an information exchange module, and a program for processing AGV deadlock problems. The operating system is a program that manages and controls the hardware and software resources of the processing equipment for AGV deadlock problems, and supports the operation of the program for processing AGV deadlock problems and other software and/or programs. The information exchange module is used to realize communication between the components inside the memory, and to communicate with other hardware and software in the management system.
AGV死锁问题的处理设备中,处理器用于执行存储器中存储的AGV死锁问题的处理程序,实现上述的AGV死锁问题的处理的步骤。In the processing device for the AGV deadlock problem, the processor is used to execute the processing program for the AGV deadlock problem stored in the memory to implement the above-mentioned steps for processing the AGV deadlock problem.
本申请AGV死锁问题的处理设备具体实施方式与上述AGV死锁问题的处理方法各实施例基本相同,在此不再赘述。The specific implementation of the device for processing the AGV deadlock problem of the present application is basically the same as the various embodiments of the method for processing the AGV deadlock problem described above, and will not be repeated here.
实施例六Embodiment 6
本申请实施例提供了一种存储介质,且所述存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序还可被一个或者一个以上的处理器执行以用于实现上述实施例中AGV死锁问题的处理方法的步骤。An embodiment of the present application provides a storage medium, and the storage medium stores one or more programs, and the one or more programs can also be executed by one or more processors to implement the steps of the method for handling the AGV deadlock problem in the above embodiment.
本申请存储介质具体实施方式与上述AGV死锁问题的处理方法各实施例基本相同,在此不再赘述。The specific implementation method of the storage medium of the present application is basically the same as the embodiments of the method for handling the AGV deadlock problem mentioned above, and will not be repeated here.
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。It should be noted that, in this article, the terms "include", "comprises" or any other variations thereof are intended to cover non-exclusive inclusion, so that a process, method, article or system including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or system. In the absence of further restrictions, an element defined by the sentence "comprises a ..." does not exclude the existence of other identical elements in the process, method, article or system including the element.
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。The serial numbers of the embodiments of the present application are for description only and do not represent the advantages or disadvantages of the embodiments.
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM或者RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。Through the description of the above implementation methods, those skilled in the art can clearly understand that the above-mentioned embodiment methods can be implemented by means of software plus a necessary general hardware platform, and of course by hardware, but in many cases the former is a better implementation method. Based on such an understanding, the technical solution of the present application is essentially or the part that contributes to the prior art can be embodied in the form of a software product, which is stored in a storage medium (such as ROM or RAM, magnetic disk, optical disk) as described above, and includes a number of instructions for a terminal device (which can be a mobile phone, computer, server, air conditioner, or network device, etc.) to execute the methods described in each embodiment of the present application.
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。The above are only preferred embodiments of the present application, and are not intended to limit the patent scope of the present application. Any equivalent structure or equivalent process transformation made using the contents of the present application specification and drawings, or directly or indirectly applied in other related technical fields, are also included in the patent protection scope of the present application.

Claims (10)

  1. 一种AGV死锁问题的处理方法,其中,所述AGV死锁问题的处理方法,包括:A method for processing an AGV deadlock problem, wherein the method for processing an AGV deadlock problem comprises:
    若确定当前时刻存在等待分配资源的AGV,获取预设的资源集,基于所述资源集,确定是否存在死锁问题,其中,所述资源集为全局资源集;If it is determined that there is an AGV 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 to exist, determine a strategic solution to the deadlock problem;
    基于所述策略解,对所述AGV进行解锁。Based on the policy solution, the AGV is unlocked.
  2. 根据权利要求1所述的AGV死锁问题的处理方法,其中,所述基于所述策略解,对所述AGV进行解锁的步骤,包括:According to the method for processing the AGV deadlock problem of claim 1, the step of unlocking the AGV based on the strategy solution comprises:
    获取死锁AGV集,以及获取阻塞AGV集,其中,所述阻塞AGV集中的AGV受所述死锁AGV集中的AGV阻塞;Acquire a deadlocked AGV set, and acquire a blocked AGV set, wherein the AGVs in the blocked AGV set are blocked by the AGVs in the deadlocked AGV set;
    确定所述死锁AGV集与所述阻塞AGV集的并集,为所述当前时刻的第一待调度AGV集;Determine the union of the deadlocked AGV set and the blocked AGV set as the first AGV set to be scheduled at the current moment;
    若在所述当前时刻的未来时刻确定出对应的第二待调度AGV集,确定所述第一待调度AGV集与所述第二待调度AGV集是否有交集;If a corresponding second set of AGVs to be scheduled is determined at a future time of the current time, determining whether the first set of AGVs to be scheduled and the second set of AGVs to be scheduled have an intersection;
    若确定无交集,则确定存在多个独立的AGV死锁环;If it is determined that there is no intersection, it is determined that there are multiple independent AGV deadlock loops;
    按时间先后顺序,分别对所述第一待调度AGV集中的AGV,以及所述第二待调度AGV集中的AGV进行解锁。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 in chronological order.
  3. 根据权利要求1所述的AGV死锁问题的处理方法,其中,所述获取预设的资源集,基于所述资源集,确定是否存在死锁问题的步骤,包括:According to the method for handling the AGV deadlock problem of claim 1, the step of obtaining a preset resource set and determining whether a deadlock problem exists based on the resource set comprises:
    获取预设的资源集;Get the preset resource set;
    基于所述资源集,确定待分配资源的AGV对应的资源集,其中,所述待分配资源的AGV对应的资源集,包括占用资源集以及申请资源集;Based on the resource set, determining the resource set corresponding to the AGV to which the resources are to be allocated, wherein the resource set corresponding to the AGV to which the resources are to be allocated includes an occupied resource set and an applied resource set;
    若每个所述待分配资源的AGV对应的,所述占用资源集与所述申请资源集存在交集,则确定存在死锁问题。If the occupied resource set and the applied resource set corresponding to each AGV to which the resources are to be allocated have an intersection, it is determined that a deadlock problem exists.
  4. 根据权利要求1所述的AGV死锁问题的处理方法,其中,所述若确定存在,确定所述死锁问题的策略解的步骤,包括:According to the method for processing the AGV deadlock problem of claim 1, wherein the step of determining a strategic solution to the deadlock problem if it is determined to exist comprises:
    在初始化后,确定待调度AGV集,以及确定可用资源集;After initialization, the set of AGVs to be scheduled is determined, as well as the set of available resources;
    为所述待调度AGV集中的每一个AGV,在所述可用资源集中搜索,得到对应的待求解策略集;For each AGV in the set of AGVs to be scheduled, search in the set of available resources to obtain a corresponding set of strategies to be solved;
    若所述待求解策略集不为空,则确定所述待求解策略集对应的启发函数,并在所述启发函数中,选取极小值对应的策略元素,得到所述策略解;If the strategy set to be solved is not empty, determining the heuristic function corresponding to the strategy set to be solved, and selecting the strategy element corresponding to the minimum value in the heuristic function to obtain the strategy solution;
    若判断所述死锁问题有解,则确定所述策略解为所述死锁问题的策略解。If it is determined that the deadlock problem has a solution, the strategic solution is determined to be the strategic solution to the deadlock problem.
  5. 根据权利要求4所述的AGV死锁问题的处理方法,其中,所述策略解携带有深度参数,所述若判断所述死锁问题有解,则确定所述策略解为所述死锁问题的策略解的步骤之前,包括:According to the method for processing the AGV deadlock problem of claim 4, wherein 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 method comprises:
    判断所述死锁问题是否有解,其中,当所述深度参数达到所述深度阈值时,若包括,所述待调度AGV集内至少一个AGV到达预设终点,或者,所述待调度AGV中全部AGV 与对应终点的距离之和小于当所述深度参数为0时的距离之和,中的至少一项,则判断有解;Determine whether the deadlock problem has a solution, wherein when the depth parameter reaches the depth threshold, if at least one of the following conditions is met: at least one AGV in the set of AGVs to be scheduled reaches a preset end point, or the sum of the distances between all AGVs in the set of AGVs to be scheduled and the corresponding end point is less than the sum of the distances when the depth parameter is 0, then determine that there is a solution;
    若判断无解,从所述待求解策略集中删除所述策略解,并更新所述深度参数对应的待求解策略集队列,以及所述可用资源集;If it is determined that there is no solution, the strategy solution is deleted from the strategy set to be solved, and the queue of the strategy set to be solved corresponding to the depth parameter and the available resource set are updated;
    返回为所述待调度AGV集中的每一个AGV,在所述可用资源集中搜索,得到对应的待求解策略集的步骤,得到所述策略解,直至确定所述策略解为所述死锁问题的策略解。Return to the step of searching for each AGV in the set of AGVs to be scheduled in the set of available resources to obtain a corresponding set of strategies to be solved, and obtain the strategy solution until it is determined that the strategy solution is a strategy solution to the deadlock problem.
  6. 根据权利要求5所述的AGV死锁问题的处理方法,其中,所述为所述待调度AGV集中的每一个AGV,在所述可用资源集中搜索,得到对应的待求解策略集的步骤之后,包括:According to the method for processing the AGV deadlock problem of claim 5, after the step of searching the available resource set for each AGV in the set of AGVs to be scheduled to obtain a corresponding set of strategies to be solved, the method further comprises:
    若所述待求解策略集为空,确定所述待求解策略集队列是否为空;If the strategy set to be solved is empty, determining whether the strategy set queue to be solved is empty;
    若确定为空,则判断所述死锁问题无解,返回若判断无解,从所述待求解策略集中删除所述策略解的步骤,直至确定所述策略解为所述死锁问题的策略解;If it is determined to be empty, it is determined that the deadlock problem has no solution, and the step of deleting the strategy solution from the strategy set to be solved if it is determined that there is no solution is returned until it is determined that the strategy solution is the strategy solution to the deadlock problem;
    若确定不为空,返回确定所述待求解策略集对应的启发函数的步骤,直至确定所述策略解为所述死锁问题的策略解。If it is determined that it is not empty, return to the step of determining the heuristic function corresponding to the strategy set to be solved, until it is determined that the strategy solution is the strategy solution to the deadlock problem.
  7. 根据权利要求4所述的AGV死锁问题的处理方法,其中,所述确定可用资源集的步骤,包括:According to the method for processing the AGV deadlock problem according to claim 4, the step of determining the available resource set comprises:
    确定所述待调度AGV集的第一占用资源集;Determine a first occupied resource set of the AGV set to be scheduled;
    确定在所述资源集中,除所述待调度AGV集之外的资源集,为非死锁运行AGV集;Determine that, among the resource sets, resource sets other than the to-be-scheduled AGV set are non-deadlock running AGV sets;
    确定所述非死锁运行AGV集的第二占用资源集;Determine a second occupied resource set of the non-deadlocked running AGV set;
    确定所述资源集中,除所述第一占用资源集与所述第二占用资源集之外的资源集,为所述可用资源集。Determine, in the resource set, a resource set other than the first occupied resource set and the second occupied resource set as the available resource set.
  8. 一种AGV死锁问题的处理装置,其中,AGV死锁问题的处理装置,包括:A device for processing an AGV deadlock problem, wherein the device for processing an AGV deadlock problem comprises:
    第一确定模块,用于若确定当前时刻存在等待分配资源的AGV,获取预设的资源集,基于所述资源集,确定是否存在死锁问题;A first determination module is used to obtain a preset resource set if it is determined that there is an AGV waiting for resource allocation at the current moment, and determine whether there is a deadlock problem based on the resource set;
    第二确定模块,用于若确定存在,确定所述死锁问题的策略解;A second determination module is used to determine a strategic solution to the deadlock problem if it is determined to exist;
    解锁模块,用于基于所述策略解,对所述AGV进行解锁。An unlocking module is used to unlock the AGV based on the strategy solution.
  9. 一种AGV死锁问题的处理设备,其中,包括存储器,处理器及存储在所述存储器上并可在所述处理器上运行的AGV死锁问题的处理程序,所述处理器执行所述AGV死锁问题的处理程序实现权利要求1至7中任一项所述的AGV死锁问题的处理方法的步骤。A device for processing an AGV deadlock problem, comprising a memory, a processor, and a program for processing the AGV deadlock problem stored in the memory and executable on the processor, wherein the processor executes the program for processing the AGV deadlock problem to implement the steps of the method for processing the AGV deadlock problem described in any one of claims 1 to 7.
  10. 一种存储介质,其中,所述存储介质上存储有实现AGV死锁问题的处理方法的程序,所述实现AGV死锁问题的处理方法的程序被处理器执行以实现如权利要求1至7中任一项所述AGV死锁问题的处理方法的步骤。A storage medium, wherein a program for implementing a method for processing an AGV deadlock problem is stored on the storage medium, and the program for implementing a method for processing an AGV deadlock problem is executed by a processor to implement the steps of the method for processing an AGV deadlock problem as described in any one of claims 1 to 7.
PCT/CN2022/139523 2022-09-28 2022-12-16 Agv deadlock problem processing method and apparatus, device, and storage medium WO2024066072A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202211194507.6A CN115658333A (en) 2022-09-28 2022-09-28 Processing method, device, equipment and storage medium for AGV deadlock problem
CN202211194507.6 2022-09-28

Publications (1)

Publication Number Publication Date
WO2024066072A1 true WO2024066072A1 (en) 2024-04-04

Family

ID=84986184

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/139523 WO2024066072A1 (en) 2022-09-28 2022-12-16 Agv deadlock problem processing method and apparatus, device, and storage medium

Country Status (2)

Country Link
CN (1) CN115658333A (en)
WO (1) WO2024066072A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190072980A1 (en) * 2015-09-11 2019-03-07 The Trustees Of The University Of Pennsylvania Systems and methods for generating safe trajectories for multi-vehicle teams
WO2019141218A1 (en) * 2018-01-19 2019-07-25 库卡机器人(广东)有限公司 Conflict management method and system for multiple mobile robots
CN112990806A (en) * 2019-12-17 2021-06-18 北京京东乾石科技有限公司 Method and system for dispatch control of transportation equipment
CN114265705A (en) * 2021-12-07 2022-04-01 杭州蓝芯科技有限公司 Method for preventing deadlock in AMR (adaptive multi-rate) scheduling system
CN114326753A (en) * 2022-03-07 2022-04-12 杭州蓝芯科技有限公司 Deadlock detection method for multiple robots in regulation and control area

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190072980A1 (en) * 2015-09-11 2019-03-07 The Trustees Of The University Of Pennsylvania Systems and methods for generating safe trajectories for multi-vehicle teams
WO2019141218A1 (en) * 2018-01-19 2019-07-25 库卡机器人(广东)有限公司 Conflict management method and system for multiple mobile robots
CN112990806A (en) * 2019-12-17 2021-06-18 北京京东乾石科技有限公司 Method and system for dispatch control of transportation equipment
CN114265705A (en) * 2021-12-07 2022-04-01 杭州蓝芯科技有限公司 Method for preventing deadlock in AMR (adaptive multi-rate) scheduling system
CN114326753A (en) * 2022-03-07 2022-04-12 杭州蓝芯科技有限公司 Deadlock detection method for multiple robots in regulation and control area

Also Published As

Publication number Publication date
CN115658333A (en) 2023-01-31

Similar Documents

Publication Publication Date Title
US7739265B2 (en) Deleting a continuous query from a data stream management system continuing to operate on other queries
US7069537B2 (en) Techniques for partial loading of a configuration associated with a configuration model
CN111708364B (en) AGV path planning method based on A-algorithm improvement
WO2014074088A1 (en) Enhanced graph traversal
JP5396184B2 (en) Computer system and stream data distribution processing method using a plurality of computers
US20120101971A1 (en) Stage evaluaton of a state machine
RU2746155C2 (en) Destroying an object based on the sequence of actions performed
US9910878B2 (en) Methods for processing within-distance queries
CN105868190A (en) Method and system for optimizing task processing in ETL
EP2897056A1 (en) Method and system for making web application obtain database change
CN109656950B (en) Recursive query method, device, server and storage medium
CN111666100B (en) Software framework generation method and device, electronic equipment and storage medium
CN111459100B (en) Dispatching method and system for automatic guided vehicles
WO2024066072A1 (en) Agv deadlock problem processing method and apparatus, device, and storage medium
CN111102980A (en) Path generation method and device and electronic equipment
US11456946B2 (en) Regular path queries (RPQS) for distributed graphs
CN112364290A (en) Method and system for constructing visual calculation model based on stream-oriented calculation
JPH09114666A (en) Method and apparatus for realization of system rule in active-state computer system
CN110533234A (en) In conjunction with AGV optimal control method, terminal device and the storage medium of collision prevention strategy
CN107315801B (en) parallel discrete event simulation system initialization data storage method
CN116007624A (en) Path planning method, device, equipment and storage medium
CN114279457A (en) Path planning method, device, equipment and readable storage medium
US20230081889A1 (en) Method, apparatus, and computing device for operating data object, and storage medium
CN113032010B (en) Command transmission control method, terminal and computer readable storage medium
KR20130078041A (en) Large scale qos-aware web service composition method using efficient anytime algorithm

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22960667

Country of ref document: EP

Kind code of ref document: A1