A method for handling deadlock of an automated guided vehicle
By introducing a conflict reporting queue and operation stack into the AGV system, deadlock problems are handled automatically, solving the problem of automatic resolution after deadlock in the AGV system and improving system operating efficiency.
Patent Information
- Application Number
- CN202310098177.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-02-10
- Publication Date
- 2026-02-24
- Estimated Expiration
- 2043-02-10
AI Technical Summary
In existing technologies, when AGV systems encounter deadlocks, they mainly rely on prevention and mitigation measures, lacking effective automated processing methods. This results in deadlocks not being automatically resolved, leading to congestion in localized areas.
By establishing a conflict reporting queue and a conflict operation stack, the tasks and path planning of AGVs are processed sequentially, deadlocks are automatically resolved, including task replanning and yielding operations, and the movement of AGVs is coordinated by the scheduling center.
It enables the automatic release of deadlocks in AGV systems without manual intervention, thereby improving system operating efficiency and resource utilization.
Smart Images

Figure CN115963842B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of automatic guided vehicle systems, and particularly relates to an automatic guided vehicle deadlock processing method. BACKGROUND
[0002] AGV (Automated Guided Vehicle) is a kind of unmanned mobile tool trolley guided by electromagnetic or optical induction. It was first developed successfully by Barrett Electronics Company of the United States in the early 1950s. After more than 60 years of development, with the continuous development of electronic technology and computer technology, AGV has been developing towards miniaturization, modularization and intelligence, and AGV has become an important part of the robot industry.
[0003] In recent years, people's living standards have gradually improved, and in the logistics, medicine, home appliances, agriculture and other industries, there is a phenomenon of large and tedious transportation tasks, which greatly consumes human resources. As a mobile robot device integrated with automation, the AGV industry is booming. The application of AGV trolley makes the development of various industries more rapid, improves production efficiency, reduces human consumption, optimizes resources and reduces costs. Path planning technology is the core technology of AGV to realize autonomous movement, and the advantages and disadvantages of its method directly affect the efficiency and intelligence level of AGV.
[0004] AGV will encounter other AGVs during movement. The system first considers trying to re-plan the path for the AGV. If multiple attempts are made and still cannot generate a path, it is determined to enter a deadlock state.
[0005] The deadlock state is mainly the following two cases. For example, Figure 1 A needs to be at the position of B, and B also needs to be at the position of A. For example, Figure 2 A needs to pass through the position of B, and B needs to be at the position of A.
[0006] If these two cases are not solved, a large number of AGV congestion will occur in the local area. At present, the methods for processing the above deadlock phenomenon in the field mainly include the following three:
[0007] 1. Deadlock prevention. In the layout design stage, through methods such as local area flow limiting or running direction limiting, the opposite movement of AGVs is avoided;
[0008] 2. Deadlock prevention. In the AGV operation, in the intersection / channel area, the AGV access is limited in the scheduling system;
[0009] 3. Deadlock processing. After the deadlock occurs, manual or system intervention is used to solve the traffic jam.
[0010] Currently, the handling of AGV deadlocks usually focuses on methods 1 and 2, and there are no publicly reported methods for handling deadlocks after they occur. Summary of the Invention
[0011] The purpose of this invention is to solve the deadlock problem in AGV systems. From the perspective of deadlock handling, an automated guided vehicle deadlock handling method is proposed. Considering the characteristics that all AGVs are constantly moving when a deadlock occurs and that the peripheral vehicles involved in the deadlock cannot be determined, the method addresses the deadlock problem from the center point of the deadlock.
[0012] To address the shortcomings of the aforementioned technical problems, the present invention provides a method for handling deadlock in automated guided vehicles (AGVs).
[0013] All AGV movements request a lock from the dispatch center. The first AGV to be locked moves first and is unlocked upon departure.
[0014] If a deadlock occurs, the corresponding AGV task will be placed in the conflict report queue.
[0015] Retrieve a conflict report from the conflict report queue. If multiple conflict operations are generated during the processing of the conflict report, add them to the conflict operation stack in sequence.
[0016] Conflict operations are processed sequentially from back to front. Completed conflict operations are marked as complete and removed from the conflict operation stack.
[0017] When the conflict operation stack is empty, the next conflict report in the conflict report queue is retrieved and processed until the conflict is unlocked.
[0018] As a further optimization of the deadlock handling method for automated guided vehicles of the present invention, the method includes: retrieving the last conflict resolution operation curCO from the conflict operation stack for processing; if curCO has a path but has not been executed, generating a new movement task and sending the task to the AGV for execution; otherwise, replanning a path for curCO.
[0019] As a further optimization of the automated guided vehicle deadlock handling method of the present invention, the method includes: the main thread of route execution processes replanning events, and upon receiving the result of the replanned path, actively triggers the following operation: retrieves the next path's nextPos:
[0020] If there is an obstacle AGV on nextPos, and if the obstacle AGV has a task that is not a yielding task, then the obstacle AGV is notified to pause its task and a subsequent yielding task is scheduled to be generated. If the obstacle AGV does not have a task, then a yielding task is added to the obstacle AGV and the task is added to the conflict operation.
[0021] If there are no obstacles on nextPos, send the path to the AGV for execution.
[0022] As a further optimization of the automatic guided vehicle deadlock handling method of the present invention, if it is found that the AGV has completed the pause and a yielding task needs to be generated, then a yielding task is added and the task is added to the conflict operation.
[0023] As a further optimization of the automated guided vehicle deadlock handling method of the present invention, the method includes: if the AGV corresponding to curCO moves to the predetermined destination, then the curCO is marked as complete and removed from the conflict operation stack; if the AGV corresponding to curCO encounters a conflict during its movement, then the path for curCO is replanned.
[0024] As a further optimization of the deadlock handling method for automated guided vehicles of the present invention, when a deadlock is determined to occur, the lock point application of the AGV is cancelled, the task status is set to paused and waiting for replanning of the path, and the AGV task is put into the conflict report queue.
[0025] As a further optimization of the automatic guided vehicle deadlock handling method of the present invention, the first conflict report in the conflict report queue is retrieved, a corresponding conflict operation is generated for it, and it is added to the conflict operation stack. If the conflict operation stack is empty after processing, the conflict report is marked as completed and removed from the conflict report queue, and other conflict reports are processed in sequence.
[0026] An AGV scheduling system is provided for scheduling AGV movement. When the AGV scheduling system is running, the above-mentioned AGV deadlock handling method is adopted.
[0027] An electronic device includes a processor and a memory, the memory being used to store code; the processor is used to execute the code in the memory to implement the above-described automatic deadlock handling method.
[0028] A computer storage medium storing a computer program that, when executed by a processor, implements the aforementioned automatic deadlock handling method.
[0029] The present invention has the following beneficial effects:
[0030] This invention addresses deadlock issues by considering the characteristics of all AGVs constantly moving and the inability to identify peripheral vehicles involved in the deadlock. It starts from the center of the deadlock, placing the corresponding AGV task entering the deadlock state into a conflict report queue. The queue is established, and conflict reports are processed sequentially. If multiple conflicting operations occur during processing, they are added to a conflict operation stack in chronological order. This stack is then processed sequentially from the end of the stack until it is empty. The remaining conflict reports are then processed until the conflict report queue is empty, thus resolving the deadlock.
[0031] Furthermore, the present invention includes the following operating methods:
[0032] (1) Current curCO operation:
[0033] Take the last conflict resolution operation, curCO, from the conflict operation stack and process it. If curCO has a path but has not been executed, generate a new movement task and send the task to the AGV for execution; otherwise, replan the path for curCO.
[0034] (2) Replan the operation:
[0035] The main thread executing the route will handle replanning events. Upon receiving the result of the replanned path, it will proactively trigger the following operation: retrieve the next path's nextPos:
[0036] If there is an obstacle AGV on nextPos, and if the obstacle AGV has a task that is not a yielding task, then the obstacle AGV is notified to pause its task and a subsequent yielding task is scheduled to be generated. If the obstacle AGV does not have a task, then a yielding task is added to the obstacle AGV and the task is added to the conflict operation.
[0037] If there are no obstacles on nextPos, send the path to the AGV for execution.
[0038] (3) Yielding operation:
[0039] If it is found that the AGV has been paused and a yielding task needs to be generated, then add the yielding task and add the task to the conflict operation.
[0040] (4) Execution of the curCO task:
[0041] If the AGV corresponding to curCO moves to the predetermined destination, then curCO is marked as complete and removed from the conflict operation stack; if the AGV corresponding to curCO encounters a conflict during its movement, then a new path is planned for curCO.
[0042] (5) Conflict report queue establishment operation:
[0043] When a deadlock is detected, cancel the lock point application for the AGV, set the task status to paused and waiting for rerouting, and put the AGV task into the conflict report queue.
[0044] (6) Conflict operation stack establishment and conflict report processing operations:
[0045] Retrieve the first conflict report from the conflict report queue, generate the corresponding conflict operation for it, add it to the conflict operation stack, and if the conflict operation stack is empty after processing, mark the conflict report as completed and remove it from the conflict report queue, and process other conflict reports in sequence.
[0046] This invention solves the deadlock problem by forming an operation flow through mutual calls between the above-mentioned operation methods, without the need for manual intervention. Attached Figure Description
[0047] Figure 1 This is a schematic diagram of the first type of conflict that occurs during the operation of the AGV system;
[0048] Figure 2 This is a diagram illustrating the second type of conflict that occurs during the operation of the AGV system.
[0049] Figure 3 This is a schematic diagram of the basic obstacle avoidance mechanism of an AGV system;
[0050] Figure 4 This is a diagram illustrating the third type of conflict that occurs during the operation of an AGV system.
[0051] Figure 5 This is a flowchart illustrating the deadlock solution of the present invention;
[0052] Figures 6-12 This is a flowchart illustrating the actual application of the deadlock solution method of this invention. Detailed Implementation
[0053] To better understand the present invention, the following embodiments further illustrate the content of the present invention, but the content of the present invention is not limited to the following embodiments.
[0054] To ensure the orderly operation of multiple AGVs in the same workspace, three key technologies are relied upon in the AGV system: task scheduling, path planning, and traffic control. Among them, traffic control focuses on resolving motion conflicts, collisions, and deadlocks that may occur when multiple AGVs are running concurrently.
[0055] like Figure 3 The diagram shows the basic obstacle avoidance mechanism of the AGV system. This mechanism has three characteristics: 1. All AGV movements must request locking from the dispatch center; 2. The AGV that locks first moves first; 3. The AGV unlocks when leaving.
[0056] There are three types of conflicts that can occur during the operation of an AGV system, such as... Figure 4 As shown, this is the most common type of conflict, and resolving it requires the following conditions: 1. Basic obstacle avoidance mechanism; 2. Either A or B must be replanned; 3. Traffic rules and laws.
[0057] like Figure 1 As shown, this is a relatively rare type of conflict. The process for resolving this conflict is as follows: 1. The basic obstacle avoidance mechanism detects a deadlock; 2. A and B are deadlocked, and replanning cannot solve the problem; 3. A or B must avoid the deadlock; 4. The deadlock resolution mechanism is activated to force avoidance.
[0058] like Figure 2 As shown, this is a relatively rare type of conflict. The process for resolving this conflict is as follows: 1. The basic obstacle avoidance mechanism detects a deadlock; 2. B must avoid the obstacle; 3. The deadlock resolution mechanism is activated, forcing the obstacle to be avoided. This type of conflict is related to map settings and should be avoided as much as possible.
[0059] When the following occurs Figure 1 and 2 When a conflict is shown, its resolution relies on a deadlock resolution mechanism. The applicant will address the deadlock problem from the following three perspectives:
[0060] 1. All AGVs are in constant motion;
[0061] 2. Unable to identify the peripheral vehicles involved in the deadlock;
[0062] 3. Deadlock can only be resolved by addressing the issue at its center.
[0063] The solution proposed in this invention relies on two important data structures: ConflictReport Queue and ConflictOperation Stack.
[0064] Among them, ConflictReport Queue
[0065] Conflict Report: Queue;
[0066] If a task fails to be re-planned multiple times, add it to the queue.
[0067] First-in, first-out (FIFO) → First-in, first-out (FIFO) solution;
[0068] There are dependencies between conflict reports, so they must be resolved in a single thread.
[0069] Among them, ConflictOperation Stack
[0070] Conflicting operations: stack;
[0071] To resolve a conflict report, multiple conflict actions may be required.
[0072] First-in, last-out (FIFO) → First-in, last-out (FIFO) solution;
[0073] Conflicting operations are dependent on each other and must be single-threaded;
[0074] All conflict operations for a conflict report are completed → Conflict report resolved.
[0075] Specifically, this embodiment provides a method for handling deadlock in automated guided vehicles, and the flowchart of the method is shown below. Figure 5As shown, the overall approach to the processing method is as follows:
[0076] All AGV movements request a lock from the dispatch center. The first AGV to be locked moves first and is unlocked upon departure.
[0077] If a deadlock occurs, the corresponding AGV task will be placed in the conflict report queue.
[0078] Retrieve a conflict report from the conflict report queue. If multiple conflict operations are generated during the processing of the conflict report, add them to the conflict operation stack in sequence.
[0079] Conflict operations are processed sequentially from back to front. Completed conflict operations are marked as complete and removed from the conflict operation stack.
[0080] When the conflict operation stack is empty, the next conflict report in the conflict report queue is retrieved and processed until the conflict is unlocked.
[0081] Specifically, the last conflict resolution operation, curCO, is retrieved from the conflict operation stack and processed. If curCO has a path but has not been executed, a new movement task is generated and sent to the AGV for execution; otherwise, a new path is replanned for curCO.
[0082] The main thread executing the route will handle replanning events. Upon receiving the result of the replanned path, it will proactively trigger the following operation: retrieve the next path's nextPos:
[0083] If there is an obstacle AGV on nextPos, and if the obstacle AGV has a task that is not a yielding task, then the obstacle AGV is notified to pause its task and a subsequent yielding task is scheduled to be generated. If the obstacle AGV does not have a task, then a yielding task is added to the obstacle AGV and the task is added to the conflict operation.
[0084] If there are no obstacles on nextPos, send the path to the AGV for execution.
[0085] If it is found that the AGV has been paused and a yielding task needs to be generated, then a yielding task is added and the task is added to the conflict operation.
[0086] Specifically, if the AGV corresponding to curCO moves to the predetermined destination, then curCO is marked as complete and removed from the conflict operation stack; if the AGV corresponding to curCO encounters a conflict during its movement, then a new path is planned for curCO.
[0087] When a deadlock is detected, cancel the lock point application for the AGV, set the task status to paused and waiting for rerouting, and put the AGV task into the conflict report queue.
[0088] Specifically, the first conflict report in the conflict report queue is retrieved, a corresponding conflict operation is generated for it, and it is added to the conflict operation stack. If the conflict operation stack is empty after processing, the conflict report is marked as completed and removed from the conflict report queue. Other conflict reports are then processed in sequence.
[0089] like Figures 6-12 The diagram shows the processing flow of the deadlock handling method of the present invention in practical application. AGV1 is currently at position 41, with a target position of 61. AGV2 is currently at position 61, with a target position of 41. A deadlock is determined. Tasks Agv-1 (Task-1) → 61 and Agv-2 (Task-2) → 41 are added to the ConflictReport Queue. The first task Agv-1 (Task-1) → 61 is retrieved from the ConflictReport Queue, and a corresponding conflict operation Replan(Agv-1, Task-1)(41→61) is generated and added to the ConflictOperation Stack. There is an obstacle Agv2 on the next path nextPos, so a yielding task Move(Agv-2)(61→41) is added. There is an obstacle at 41, so a conflict operation is added. There is an obstacle Agv1, so a yielding task Move(Agv-1)(41→42) is added. There is no conflict, and the path is sent to AGV1 for execution. The last conflict resolution operation, curCO, is retrieved from the conflict operation stack, i.e., the conflict operation Move(Agv-2)(61→21). Then, the curCO conflict operation Replan(Agv-1, Task-1)(41→61) is executed. The AGV1 corresponding to curCO moves to its predetermined endpoint, curCO is marked as complete, and task Agv-1(Task-1)→61 is removed from the conflict report queue. The first task Agv-2(Task-2)→41 is retrieved from the conflict report queue, and the Replan(Agv-2, Task-2)(61→41) operation is performed. The corresponding AGV1 moves to its predetermined endpoint. At this point, both the conflict report queue and the conflict operation queue are empty.
[0090] This invention addresses deadlock issues from a deadlock handling perspective. Considering the characteristics of deadlocks occurring when all AGVs are in constant motion and the inability to pinpoint the peripheral vehicles involved, it tackles the problem from the deadlock's central point. By interweaving several operational methods, an operational flow is formed to resolve the deadlock problem. This method allows for deadlock resolution without human intervention during on-site implementation and operation.
[0091] The specific embodiments of the present invention have been described above. It should be understood that the present invention is not limited to the specific embodiments described above, and those skilled in the art can make various modifications or variations within the scope of the claims, which do not affect the essence of the present invention.
Claims
1. A method for handling deadlock in an automated guided vehicle, characterized in that, include: All movements of the automated guided vehicles (AGVs) require locking requests from the dispatch center. The AGV that is locked first moves first and is unlocked when leaving. If a deadlock occurs, the corresponding automated guided vehicle (AGV) task will be placed in the conflict report queue. Retrieve a conflict report from the conflict report queue. If multiple conflict operations are generated during the processing of the conflict report, add them to the conflict operation stack in sequence. Take the last conflict resolution operation, curCO, from the conflict operation stack and process it. If curCO has a path and has not been executed, generate a new movement task and send the task to the automated guided vehicle for execution; otherwise, replan the path for curCO. The main thread executing the route will handle replanning events. Upon receiving the result of the replanned path, it will proactively trigger the following operation: retrieve the next path's nextPos: If there is an obstacle-guided vehicle on nextPos, and if the obstacle-guided vehicle has a task that is not a yielding task, then the obstacle-guided vehicle is notified to suspend its task and a subsequent yielding task is scheduled to be generated. If the obstacle-guided vehicle does not have a task, then a yielding task is added to the obstacle-guided vehicle and the task is added to the conflict operation. If there are no obstacles on nextPos, send the path to the automated guided vehicle to execute; If it is found that the automated guided vehicle has completed its pause and a yielding task needs to be generated, then add the yielding task and add the task to the conflict operation. If the Automated Guided Vehicle (AGV) corresponding to curCO moves to the predetermined destination, then curCO is marked as complete and removed from the conflict operation stack; if the AGV corresponding to curCO encounters a conflict during its movement, then the path for curCO is replanned. Conflict operations are processed sequentially from back to front. Completed conflict operations are marked as complete and removed from the conflict operation stack. When the conflict operation stack is empty, the next conflict report in the conflict report queue is retrieved and processed until the conflict is unlocked.
2. The method for handling deadlock of an automated guided vehicle as described in claim 1, characterized in that, When a deadlock is detected, cancel the Automated Guided Vehicle's (AGV) lock point application, set the task status to paused and waiting for rerouting, and put the AGV task into the conflict report queue.
3. The method for handling deadlock of an automated guided vehicle as described in claim 1, characterized in that, Retrieve the first conflict report from the conflict report queue, generate the corresponding conflict operation for it, add it to the conflict operation stack, and if the conflict operation stack is empty after processing, mark the conflict report as completed and remove it from the conflict report queue, and process other conflict reports in sequence.
4. An automated guided vehicle (AGV) dispatching system, characterized in that, The automated guided vehicle (AGV) scheduling system is used to schedule the movement of AGVs. When the AGV scheduling system is running, the AGV deadlock handling method described in any one of claims 1-3 is adopted.
5. An electronic device, characterized in that, The system includes a processor and a memory, wherein the memory is used to store code; the processor is used to execute the code in the memory to implement the automated guided vehicle deadlock handling method according to any one of claims 1-3.
6. A computer storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by the processor, it implements the automated guided vehicle deadlock handling method as described in any one of claims 1-3.
Citation Information
Patent Citations
Multi-AGV intelligent cooperative scheduling method with real-time conflict resolution for complex environment
CN113780633A
AGV path conflict processing method
CN114077254A