A multi-AGV control method and device, computer equipment and storage medium
By acquiring path segment and contour information from the AGV control system, creating a path conflict table, and querying and adjusting AGV task paths in real time, the problem of multiple AGV collisions is solved, and the accuracy and efficiency of the system are improved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- SANHE ROBOT TECH CO LTD
- Filing Date
- 2023-06-26
- Publication Date
- 2026-05-01
AI Technical Summary
Existing AGV control solutions cannot accurately prevent collisions between multiple AGVs, leading to system deadlock and traffic control problems. In particular, when AGVs of different models have different external contours, collisions are often not effectively avoided.
By acquiring the path segments and AGV outline information from the topology map, the outline trajectories on the path segments are divided, a path conflict table is created, and the AGV's driving path is queried and judged in real time to determine whether a conflict will occur. The task path is then paused or adjusted to avoid collisions.
It improves the accuracy and efficiency of the AGV control system, reduces computational complexity, and enables fast-response coordinated control of multiple AGVs.
Smart Images

Figure CN116661461B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of automated guided vehicles (AGVs), specifically to a multi-AGV control method, device, computer equipment, and storage medium. Background Technology
[0002] Traditional manufacturing is gradually transforming and upgrading into intelligent, automated, and digital "lighthouse factories." Automated Guided Vehicles (AGVs) are increasingly replacing manual labor in logistics and transportation within manufacturing plants. With the large-scale use of AGVs in logistics and transportation, site routes are becoming more complex. If the coordination and control of AGVs are not ideal, collisions may occur between adjacent routes or even within the same route, leading to system deadlocks and traffic control issues, ultimately paralyzing the AGV scheduling system. For example, two AGVs may need to transport goods to different locations within the factory, but if they travel directly along predetermined routes, they may collide at some point. Therefore, it is necessary to optimize AGV control methods to solve the collision problem during the operation of multiple AGVs, thereby improving vehicle operation safety and overall task execution efficiency.
[0003] Document CN110989570A discloses a multi-AGV anti-collision cooperative path planning method. When planning the travel routes of each AGV, the method ensures that the route of the highest-priority AGV remains stationary. It then compares the route of the second-highest-priority AGV with any conflicting nodes. If the conflict is avoidable, the second-highest-priority AGV waits for the highest-priority AGV to proceed before a collision. If the conflict is unavoidable, the route of the second-highest-priority AGV is replanned, and this process continues until all AGV routes are planned. However, this technology treats AGVs as point masses. In reality, AGVs have different shapes and contours due to design variations. Therefore, when the external contour of an AGV is small, it may not collide with other AGVs even during normal travel. Conversely, when the external contour is large, collisions may occur at seemingly insignificant locations. Consequently, current AGV control schemes often fail to accurately prevent multi-AGV collisions. Summary of the Invention
[0004] In view of this, the present invention provides a multi-AGV control method, apparatus, computer equipment and storage medium to solve the problem that current AGV control schemes cannot accurately prevent collisions between multiple AGVs.
[0005] In a first aspect, the present invention provides a multi-AGV control method, the method comprising: acquiring path segments in a topology map, wherein the path segments are obtained by dividing each complete path in the topology map by a number of path points; acquiring the contour information of each type of AGV in the current scene; traversing the contour information of each type of AGV on each path segment to obtain the contour trajectory of each type of AGV on each path segment; determining the interference between pairs of contour trajectories, and creating a path conflict table based on the interfering contour trajectories, wherein the path conflict table is used to record the situations in which each type of AGV will definitely conflict with a specific type of AGV on other path segments when traveling on each path segment; and controlling the multi-AGV according to the received task instructions. The system plans a task path for each AGV in the current scenario and divides each task path into several task path segments according to the path points. When controlling the current AGV to execute a task, it queries the path conflict table for other task path segments that may conflict with the target task path segment of the current AGV's next journey. It then determines whether there is a specific type of AGV recorded in the path conflict table that will definitely conflict with the current AGV on the other task path segments. If there is, it pauses the issuance of tasks to the current AGV that travel to the target task path segment until the conflict is resolved, and then issues tasks to the current AGV that travel to the target task path segment. If there is no such task, it issues tasks to the current AGV that travel to the target task path segment.
[0006] This embodiment divides all complete paths that can be planned on the AGV topology map into path segments and path points. Then, the contour information of different AGV models is sequentially traversed onto each path segment to obtain the contour trajectory of each AGV model on each path segment. This introduces the external contour of the AGV into the path segment's travel process. The interference between pairs of contour trajectories is then assessed. For cases where a conflict is certain, the corresponding path segment and the specific AGV model involved in the conflict are recorded in a path conflict table. Therefore, when the AGV control system coordinates and controls each AGV to execute a task, the task path to be traveled by each AGV is divided into task path segments. These task path segments are then sequentially issued to each AGV as instruction units. Before issuing task path segments to each AGV, the path conflict table is used to determine if the specific AGV model involved in the conflict actually exists on other task path segments where a conflict might occur. If it does, the issuance of task path segments to the corresponding AGV is paused until the conflict is resolved; otherwise, the task path segment is directly issued to the corresponding AGV. This solution uses the conflict data recorded in the path conflict table to determine in real time whether each AGV will collide with other AGVs with larger outlines when actually performing its task. If the next movement will collide with a larger AGV, it will wait and continue moving only if no collision occurs. This solves the problem that collisions between AGVs of different models traveling on different paths are difficult to avoid. Furthermore, by querying the collision situation through the pre-created path conflict table, the AGV control system only needs to perform a simple query operation, the calculation process is simple, and the system response is rapid.
[0007] In one optional implementation, obtaining the outline information of each AGV model in the current scene includes: obtaining the length and width of each AGV model in the current scene; creating the minimum bounding rectangle of each AGV model based on the length and width of each AGV model as the actual outline information of each AGV model; and using the maximum value of the length and width of each AGV model to create the maximum bounding square of each AGV model as the maximum outline information of each AGV model.
[0008] In one optional implementation, the contour information of each AGV model is traversed on each path segment to obtain the contour trajectory of each AGV model on each path segment. This includes: deploying the maximum contour information of each AGV model at the start and end points of each path segment to obtain multiple maximum contour trajectories; traversing and determining whether the maximum contour information formed by each maximum contour trajectory and other maximum contour trajectories at the start and end points intersects; if there is an intersection, recording the intersection relationship between the path segments corresponding to the maximum contour trajectory in a route intersection table. The path segments with intersection relationships in the route intersection table are used to indicate that each AGV model may conflict with a specific AGV model on other path segments when traveling on the current path segment; and traversing the actual contour information of each AGV model on each path segment in the route intersection table to obtain the contour trajectory of each AGV model on each path segment in the route intersection table.
[0009] This embodiment obtains two types of contour information for each AGV model: one is the actual contour information conforming to the AGV's length and width, and the other is the maximum contour information obtained by constructing the AGV's maximum bounding square using the maximum values of the length and width. This embodiment uses the maximum contour information of each AGV model to deploy at the start and end points of each path segment. Each path segment with deployed maximum contour information forms a maximum contour trajectory. Then, it first checks pairwise whether the maximum contour information of the start / end points of each maximum contour trajectory intersects with the maximum contour information of other maximum contour trajectories. The path segments corresponding to the intersecting maximum contour trajectories are then written into a route intersection table, representing path segment relationships that may or may not conflict, preparing for subsequent conflict calculations between path segments and specific AGV models. Subsequently, in this embodiment, the actual contour information of each AGV model is deployed only on the intersecting path segments in the route intersection table to obtain the contour trajectory of each path segment. Thus, when creating the path conflict table later, it is only necessary to analyze the interference of the contour trajectory in the potentially conflicting path segments to obtain the path segments that have conflicted, which speeds up the creation efficiency of the path conflict table. It is not necessary to calculate the contour trajectory of each path segment in the topology map using the actual contour information of each AGV model and then traverse and analyze the interference, thereby reducing the amount of calculation and calculation time of the AGV control system.
[0010] In one optional implementation, the actual contour information of each AGV model is traversed across each path segment in the route intersection table to obtain the contour trajectory of each AGV model on each path segment in the route intersection table. This includes: determining the rectangular distance traveled by the current AGV at each step on the current path segment based on the actual contour information of the current AGV according to the current AGV's travel direction; determining the number of rectangular trajectories of the current AGV on the current path segment by the ratio of the length of the current path segment to the rectangular distance; calculating the center point coordinates of each rectangular trajectory of the current AGV based on the initial position center point coordinates of the current AGV, the number of rectangular trajectories, and the length of the current path segment; calculating the rectangle vertex coordinates of each rectangular trajectory of the current AGV using the center point coordinates of each rectangular trajectory of the current AGV and the actual contour information of the current AGV; and forming the contour trajectory of the current AGV on the current path segment using the rectangle vertex coordinates of each rectangular trajectory of the current AGV.
[0011] In this embodiment of the invention, the contour trajectory of an AGV on a path segment is divided into multiple rectangular trajectories connected end to end, according to the direction of AGV movement. Each rectangular trajectory represents an actual contour information of the AGV. In this way, when subsequent steps determine whether different models of AGVs will conflict when traveling on two path segments, it is only necessary to compare the starting and ending rectangular trajectories of one contour trajectory with all rectangular trajectories of the other contour trajectory in turn, based on the coordinates of the rectangle vertices of the rectangular trajectories. As long as at least one of the starting and ending rectangular trajectories conflicts, it can be determined that a conflict will occur when the currently set AGVs are traveling on the two paths. This not only ensures the accuracy of conflict determination but also significantly reduces the complexity of conflict calculation and improves computational efficiency.
[0012] In an optional implementation, the method further includes: for path segments in the route intersection table, determining whether the starting point of each path segment is a spin point by the slope of each pair of adjacent segments; determining the number of rotations of each AGV at each spin point by the ratio of the target rotation angle of each spin point to the rotation step size of each AGV model; calculating the rectangular vertex coordinates of each AGV model during each rotation based on the actual contour information of each AGV model when it does not rotate, the target rotation angle, and the number of rotations; and forming the rotation trajectory of each AGV model at each spin point by using the rectangular vertex coordinates of each AGV model during each rotation.
[0013] This embodiment also calculates the rotation trajectory of each AGV model at each spin point based on the spin situation of the AGV. Subsequent steps determine whether there is a spin conflict by intersecting the spin trajectory with at least one of the starting rectangular trajectory and the ending rectangular trajectory of a certain AGV on another path segment. This further avoids the collision problem when the AGV travels to the next target task path segment and further prevents multiple AGV collisions.
[0014] In one optional implementation, determining the interference between pairwise contour trajectories and creating a path conflict table based on the interfering contour trajectories includes: traversing and determining whether each rectangular trajectory of each AGV model on each path segment in the route intersection table intersects with the starting and ending rectangular trajectories of each AGV model on each path segment in the route intersection table; if each rectangular trajectory of the current AGV model on the current path segment intersects with at least one of the starting and ending rectangular trajectories of a certain AGV model on another path segment, then recording the segment numbers of the two path segments involved in the determination, the intersecting starting and / or ending points, and the AGV models involved in the determination in the segment conflict resource table; and recording the intersecting starting and / or ending points... The point number and the AGV model involved in the judgment are recorded in the point conflict resource table; iterate through and judge whether the rotation trajectory of each AGV model at its spin point in the route intersection table intersects with the starting rectangular trajectory and ending rectangular trajectory of each AGV model on each path segment in the route intersection table; if the rotation trajectory of the current AGV model at the current spin point intersects with at least one of the starting rectangular trajectory and ending rectangular trajectory of a certain AGV model on another path segment, then the line segment number of the path segment involved in the judgment, the starting point and / or ending point of the intersection, the AGV model involved in the judgment, the spin point number, and the spin angle are recorded in the spin point conflict resource table; the line segment conflict resource table, the point conflict resource table, and the spin point conflict resource table constitute the path conflict table.
[0015] Based on the contour trajectory and rotation trajectory calculated in the above embodiments, this embodiment creates a line segment conflict resource table, a point conflict resource table, and a spin point conflict resource table, respectively. This allows an AGV to determine whether it can travel to the target task path line segment before executing a task by checking the line segment conflict resource table. If it cannot travel to the target task path line segment, it can further determine whether the inability to travel to the target task path line segment is due to the starting point or the ending point. In the case of AGV spin, it determines whether spin can be executed and the next travel task after spin, thereby significantly improving the accuracy and reliability of preventing multi-AGV collisions.
[0016] In one optional implementation, when controlling the current AGV to perform a task, the system queries the path conflict table for other task path segments that may conflict with the target task path segment of the current AGV's next journey, and determines whether there is a specific model AGV recorded in the path conflict table that will definitely conflict with the current AGV on the other task path segments. This includes: querying the segment conflict resource table for the first conflicting segment number and the first specific model AGV of the other task path segments that will definitely conflict, based on the model of the current AGV and the segment number of the target task path segment for the next journey; determining whether there is a first specific model AGV on the path segment with the first conflicting segment number; if so, querying the point conflict resource table... Based on the first conflict segment number and the first specific AGV model, query the conflict point number to suspend the issuance of tasks to the current AGV that travel to the path point corresponding to the conflict point number. The target task path segment passes through the path point with the conflict point number. When the next target task path segment needs to spin, query the spin point conflict resource table for the second conflict segment number and the second specific AGV model of other task path segments that will definitely conflict, based on the current AGV model, spin angle, and spin point number. Determine whether the second specific AGV model exists on the path segment with the second conflict segment number. If it exists, output the spin conflict information to suspend the issuance of tasks to the current AGV that travel to the target task path segment.
[0017] Secondly, embodiments of the present invention provide a multi-AGV control device, comprising: a map data acquisition module for acquiring path segments in a topology map, wherein the path segments are obtained by dividing each complete path in the topology map using several path points; an AGV contour acquisition module for acquiring contour information of each AGV model in the current scene; a contour trajectory module for traversing the contour information of each AGV model on each path segment to obtain the contour trajectory of each AGV model on each path segment; and a conflict table creation module for determining the interference between pairs of contour trajectories and creating a path conflict table based on the interfering contour trajectories, wherein the path conflict table records situations where each AGV model will definitely conflict with a specific AGV model on other path segments while traveling on each path segment; and the path... The planning module plans a task path for each AGV in the current scene based on the received task instructions, and divides each task path into several task path segments according to the path points. The conflict detection module is used to query the path conflict table for other task path segments that may conflict with the target task path segment of the current AGV's next journey when controlling the current AGV to execute a task, and to determine whether there are any specific AGV models recorded in the path conflict table that will definitely conflict with the current AGV on other task path segments. The first control module is used to pause the issuance of the task to the current AGV to the target task path segment if such a conflict exists, until the conflict is resolved before issuing the task to the current AGV to the target task path segment. The second control module is used to issue the task to the current AGV to the target task path segment if such a conflict does not exist.
[0018] Thirdly, the present invention provides a computer device, comprising: a memory and a processor, the memory and the processor being communicatively connected to each other, the memory storing computer instructions, and the processor executing the computer instructions to perform the method described in the first aspect or any corresponding embodiment thereof.
[0019] Fourthly, the present invention provides a computer-readable storage medium storing computer instructions for causing a computer to perform the method described in the first aspect or any corresponding embodiment thereof. Attached Figure Description
[0020] To more clearly illustrate the specific embodiments of the present invention or the technical solutions in the prior art, the drawings used in the description of the specific embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are some embodiments of the present invention. For those skilled in the art, other drawings can be obtained from these drawings without creative effort.
[0021] Figure 1This is a flowchart illustrating a multi-AGV control method according to an embodiment of the present invention;
[0022] Figure 2 This is a schematic diagram of the structure of a topology map according to an embodiment of the present invention;
[0023] Figure 3 This is a schematic diagram of the contour trajectory according to an embodiment of the present invention;
[0024] Figure 4 This is a schematic diagram of the structure of a multi-AGV control device according to an embodiment of the present invention;
[0025] Figure 5 This is a schematic diagram of the hardware structure of a computer device according to an embodiment of the present invention. Detailed Implementation
[0026] To make the objectives, technical solutions, and advantages of the embodiments of the present invention clearer, the technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.
[0027] According to an embodiment of the present invention, a multi-AGV control method embodiment is provided. It should be noted that the steps shown in the flowchart in the accompanying drawings can be executed in a computer system such as a set of computer-executable instructions. Furthermore, although a logical order is shown in the flowchart, in some cases, the steps shown or described may be executed in a different order than that shown here.
[0028] This embodiment provides a multi-AGV control method for an AGV control system. The AGV control system can be deployed in a computer device, which in this embodiment includes, but is not limited to, a cloud server, a local server, and a personal computer. The AGV control system acts as a central control system, uniformly sending instructions to each AGV to enable them to move within a topology map and coordinate the execution of their respective tasks. Figure 1 This is a flowchart of a multi-AGV control method according to an embodiment of the present invention, which includes the following steps:
[0029] Step S101: Obtain path segments in the topology map. Path segments are obtained by dividing each complete path in the topology map using several path points.
[0030] Specifically, the AGV control system first acquires the path segments and path points in the topology map, such as... Figure 2As shown, the topology map is a regional map of the AGV's working scenario. Multiple task paths are preset in this map. Each complete task path is divided into path segments by path points, and each path point has a corresponding number, such as... Figure 2 In this context, 54, 62, 63, and 64 are all path points. Path points can be parking points or points that the AGV passes through. A path segment is a straight line or curve connecting two path points, such as the line segment between point 54 and point 62. Each line segment also contains unique identification information. Figure 2 (Not shown in the image). In other words, AGVs must move on points and line segments on the map, and when AGVs are performing tasks, the task path planned by the AGV control system for each AGV must also consist of path segments on the topology map.
[0031] Step S102: Obtain the outline information of each AGV model in the current scene.
[0032] Specifically, since different AGV models have different designs, their corresponding outlines vary in size. To solve the problem of multiple AGV collisions, it is necessary to consider the external outline of the AGV, and thus use the external outline of the AGV to plan the AGV control method, preparing for solving the problem of multiple AGV collisions. In this embodiment, the obtained AGV outline information includes, but is not limited to, rectangular outlines and circular outlines, that is, the smallest bounding rectangle or smallest bounding circle of the AGV, or it can be the smallest bounding polygon. Generally, in order to more closely approximate the actual shape of the AGV, the AGV outline information can be easily represented by the coordinates of the outline vertices, and the number of coordinates should not be too large, otherwise it will increase the computational complexity. In a specific embodiment, this application uses the smallest bounding rectangle to represent the AGV outline information.
[0033] Step S103: Traverse the contour information of each AGV model on each path segment to obtain the contour trajectory of each AGV model on each path segment.
[0034] Specifically, based on different AGV models, this embodiment uses the contour information of each AGV model to simulate movement on each path segment, calculates the corresponding contour trajectory, and thus obtains the contour trajectory of each AGV model on each path segment. Specifically, the obtained path segments can be split first, that is, the number of path segments matching the AGV model is copied into multiple copies. For example, the vehicle contour information is loaded and saved into an array m_rgn to obtain m_rgn. i (i = 1, 2, 3…N) where N represents the total number of vehicle types (in this embodiment, different vehicle types correspond to different outlines by default; in fact, N represents the total number of outline types); the path segments in the loaded topology map are saved to the m_line array. i(i = 1, 2, 3, ..., nn), where nn represents the total number of line segments in the topological map; traverse the vehicle outline array and generate a split line segment array m_line from all line segments containing vehicle outline information. j _rgn i (j=1,2,3,…nn,i=1,2,3,…N), thus each model corresponds to the total number of path segments. Then, the contour information of each AGV model is simulated to move on each path segment, and the corresponding contour trajectory is calculated, thus obtaining the space occupied by the external contour of each AGV model when it is moving on each line segment.
[0035] Step S104: Determine the interference between pairs of contour trajectories, and create a path conflict table based on the interfering contour trajectories. The path conflict table is used to record the situations in which each type of AGV will definitely conflict with a specific type of AGV on other path segments when traveling on each path segment.
[0036] Specifically, the contour trajectories calculated in step S103 are compared pairwise on the topology map to determine whether one contour trajectory overlaps with another in space. For example, if both the first AGV and the second AGV have rectangular contours, then the first AGV traveling on a path segment occupies part of the space on both sides of that path segment, and the entire space it occupies constitutes its contour trajectory. Similarly, the second AGV traveling on another path segment also occupies part of the space on both sides of that path segment, and the entire space it occupies constitutes another contour trajectory. It is then determined whether the edges of the spaces occupied by the first AGV and the second AGV overlap. If they overlap, interference occurs between the two contour trajectories. Subsequently, this embodiment creates a path conflict table based on the interfering contour trajectories. The path conflict table records which specific AGV model traveling on which path segment will definitely conflict with a specific AGV model traveling on another path segment.
[0037] Step S105: Based on the received task instructions, plan a task path for each AGV in the current scene, and divide each task path into several task path segments according to the path points.
[0038] Specifically, after the path conflict table is created, the AGV control system begins receiving task instructions input by the user (e.g., picking up goods at a designated location, delivering goods, patrolling a designated area, etc.). Based on the received task instructions, the AGV control system plans a task path for each AGV in the current scenario. For example, with 5 AGVs, the AGV control system plans its own task path for each AGV. If an AGV has no task, no task path needs to be planned, and the default task path is empty (the path planning algorithm is existing technology and will not be described in detail in this embodiment; for example, the KM algorithm can be used). It should be noted that the task path refers to a complete path, for example... Figure 2 The path is from path point 49 to path point 54 and then to path point 68. Then, according to the path points in the topology map, each task path is divided into several task path segments to prepare for the subsequent steps to analyze whether each AGV will collide or conflict when traveling on each path segment.
[0039] Step S106: When controlling the current AGV to perform a task, query the path conflict table for other task path segments that may conflict with the target task path segment of the current AGV's next journey, and determine whether there are specific AGV models recorded in the path conflict table that will definitely conflict with the current AGV on other task path segments.
[0040] Specifically, after the AGV control system plans the corresponding task path for each AGV, it needs to issue the respective task path to the AGV for execution. Before issuing the task, based on the premise that each task path has been divided into task path segments in this embodiment, for any AGV that needs to travel (hereinafter referred to as the current AGV), it first queries the path conflict table for other task path segments that may conflict with the target task path segment of the current AGV's next travel. For example, if the current AGV (model 1) is about to travel to segment 1, then it queries the path conflict table for segment segments that conflict with segment 1, which are segment 2 and segment 3. If model 2 travels on segment 2, a conflict will occur, but other model types will not. If model 3 travels on segment 3, a conflict will occur, but other model types will not. Then, it determines whether there are specific AGV models that will definitely collide with the current AGV, as recorded in the path conflict table, on other task path segments. For example, the AGV system uses technologies such as cameras and positioning devices of each AGV to detect whether vehicle model 2 actually exists on line segment 2 and whether vehicle model 3 actually exists on line segment 3. If both exist, it means that the current AGV will collide when it travels to line segment 1. If neither exists, it means that the current AGV will not collide when it travels to line segment 1.
[0041] Step S107: If the conflict exists, pause sending the task to the target task path segment to the current AGV until the conflict is resolved, and then send the task to the target task path segment to the current AGV.
[0042] Step S108: If it does not exist, then send the task of traveling to the target task path segment to the current AGV.
[0043] Specifically, based on the query results of the path conflict table and the matching of the actual AGV positions, the corresponding control strategy is selected. If a specific type of AGV exists on the corresponding line segment, the task to travel to the target task path segment is temporarily suspended from being sent to the current AGV, preventing the AGV from traveling to that line segment and thus preventing the task from being sent; in other words, the current AGV waits. If the target task path segment does not exist, the task to travel to the target task path segment is sent to the current AGV, causing the current AGV to travel to the corresponding position. In this embodiment, the AGV control system sends task paths to each AGV dynamically in segments. Each task path segment is sent by querying the path conflict table. If there is a conflict, the segmented route is not sent. It should be noted that in this embodiment, the AGV control system continuously queries the conflict status of the current conflicting road segment. If the specific type of AGV on the conflicting path segment corresponding to the current AGV is moved away, the conflict is resolved, and the segmented route is sent. In addition, if the conflicting AGV is in a working state, the current AGV waits. As the tasks of the conflicting AGVs are completed, the conflict of the current AGV can be resolved, thus continuing to determine whether there are conflicts in the remaining task path segments. If the conflicting AGV is idle, this embodiment controls the conflicting AGV to move to a parking space without conflict, thereby resolving the conflict between the current AGVs.
[0044] The solution provided by this invention incorporates the external contour of the AGV into the path segment's travel process, and records the interference between pairs of contour trajectories, along with the corresponding path segments and the specific AGV models that might conflict, in a path conflict table. Thus, when the AGV control system coordinates and controls each AGV to execute a task, the task path to be traveled by each AGV is divided into task path segments. These task path segments are then sequentially issued to each AGV as instruction units. Before issuing task path segments to each AGV, the path conflict table is used to determine whether a specific AGV model actually exists on other task path segments where a conflict might occur. If such a AGV exists, the issuance of task path segments to the corresponding AGV is paused until the conflict is resolved; otherwise, the task path segments are directly issued to the corresponding AGV. This solution utilizes the conflict data recorded in the path conflict table to determine in real time whether each AGV will collide with other AGVs with larger outlines when actually performing its tasks. This solves the problem of unavoidable collisions when AGVs of different models travel on different paths. Furthermore, by querying the collision information through the pre-created path conflict table, the AGV control system only needs to perform a simple table lookup operation, eliminating the need for on-site collision analysis using image vision or other technologies during AGV operation. This solution is simple to implement and the system responds quickly.
[0045] In some alternative implementations, step S102 includes:
[0046] Step a1: Obtain the length and width of each AGV model in the current scene;
[0047] Step a2: Create the minimum bounding rectangle of each AGV model based on its length and width, as the actual outline information of each AGV model.
[0048] Step a3: Using the maximum value of the length and width corresponding to each AGV model, create the maximum bounding square of each AGV model as the maximum outline information of each AGV model.
[0049] In an optional implementation, step S103 includes:
[0050] Step b1: Deploy the maximum contour information of each AGV model at the start and end points of each path segment to obtain multiple maximum contour trajectories.
[0051] Step b2: Iterate through and determine whether the maximum contour information formed by each maximum contour trajectory and other maximum contour trajectories at the start and end points intersects.
[0052] Step b3: If there is an intersection, record the intersection relationship between the path segments corresponding to the maximum contour trajectory in the route intersection table. The path segments with intersection relationships in the route intersection table are used to indicate that each type of AGV may conflict with a specific type of AGV on other path segments when it travels on the current path segment.
[0053] Step b4: Traverse the actual contour information of each AGV model onto each path segment in the route intersection table to obtain the contour trajectory of each AGV model on each path segment in the route intersection table.
[0054] Specifically, this embodiment of the invention also creates a route intersection table to record situations where certain vehicle models may collide on certain path segments. Specifically, it records the path segments where collisions may occur and the corresponding vehicle models on those path segments. The route intersection table is used to quickly find path segments with a high probability of collision. Then, in the route intersection table, this embodiment generates the contour trajectory of each AGV model on each path segment for the path segments with a high probability of collision. Based on the generated contour trajectories, it determines whether these potentially conflicting path segments will actually collide, thereby improving the computational efficiency of the path collision table and avoiding pairwise analysis of all line segments in the topology map, thus reducing computational complexity. To achieve the above process, this embodiment first obtains two types of contour information for each AGV model, for example... Figure 3In this embodiment, AGV1 and AGV2 are used. One type has actual outline information that conforms to the length and width of the AGV, while the other has maximum outline information obtained by constructing the maximum bounding square of the AGV using the maximum values of its length and width. Then, in this embodiment, the maximum outline information of each AGV model is deployed at the start and end points of each path segment (the center of the maximum outline information coincides with the path point). Each path segment with deployed maximum outline information forms a maximum outline trajectory. First, the maximum value of the AGV outline length and width (max) is calculated, and then the coordinates of the start and end points of the path segment are calculated, which are the start point (x...). min ,y min ), endpoint (x) max ,y max Finally, the maximum contour information of the vehicle at the start and end points of the route is obtained through the coordinates and the maximum value (max). For example, the coordinates of the four vertices of the maximum contour information at the start point are:
[0055] (x min -max,y min -max),(x min -max,y min +max),(x min +max,y min +max),(x min +max,y min -max).
[0056] Next, each pair of maximum contour trajectories is checked for intersections between the start / endpoint information of the maximum contour trajectories and those of other maximum contour trajectories. The path segments corresponding to the intersecting maximum contour trajectories are then written into the route intersection table, representing path segment relationships that may or may not conflict. This prepares for subsequent conflict calculations between path segments and specific AGV models. Specifically, this can be achieved by iterating through all the split line segment arrays m_line. j _rgn i (j=1,2,3,…nn,i=1,2,3,…N), determine whether the maximum rectangular outline formed by line segment j with car model i at the start and end points differs from that of other car models, and whether the maximum rectangular outlines formed by line segments at the start and end points intersect. If they intersect, record them in the route intersection table. For example... Figure 3 The endpoint of line segment 1 (path point 2) and the starting point of line segment 2 (path point 2) intersect at the maximum contour information, thus line segment 1 for AGV1 and line segment 2 for AGV2 are intersecting path segments that may conflict. Figure 3 This is merely an example for ease of understanding and is not intended to be limiting. For instance, if the maximum contour information of different vehicle models is deployed at the starting and ending points of two parallel path segments, and the maximum contour information intersects, the two parallel path segments are also recorded in the route intersection table. An example of a route intersection table is as follows:
[0057] Table 1. Route Intersection Table
[0058]
[0059] Note: If AGV1 of model 1 needs to move on line segment 1, and AGV2 of model 2 needs to move on line segment 2, the two cars may collide, i.e., their outlines intersect.
[0060] Subsequently, in this embodiment, the actual contour information of each AGV model (considering the actual contour of the AGV's length and width) is deployed on the intersecting path segments in the route intersection table to obtain the contour trajectory of each path segment. Thus, when creating the path conflict table later, it is only necessary to analyze the path segments that will definitely conflict by utilizing the interference of the contour trajectory in the potentially conflicting path segments, which speeds up the creation efficiency of the path conflict table. It is not necessary to calculate the contour trajectory of each path segment in the topology map using the actual contour information of each AGV model and then traverse and analyze the interference, thereby reducing the computational load and computation time of the AGV control system.
[0061] In some alternative implementations, step b4 above includes:
[0062] Step c1: Based on the current AGV's travel direction, determine the rectangular distance the current AGV travels at each step on the current path segment from the actual contour information of the current AGV.
[0063] Step c2: Determine the number of rectangular trajectories of the current AGV on the current path segment by using the ratio of the length of the current path segment to the rectangular distance;
[0064] Step c3: Based on the initial position center point coordinates of the current AGV, the number of rectangular trajectories, and the length of the current path segment, calculate the center point coordinates of each rectangular trajectory of the current AGV.
[0065] Step c4: Using the center point coordinates of each rectangular trajectory of the current AGV and the actual contour information of the current AGV, calculate the coordinates of the rectangular vertices of each rectangular trajectory of the current AGV.
[0066] Step c5: The contour trajectory of the current AGV on the current path segment is formed by the coordinates of the vertices of each rectangular trajectory of the current AGV.
[0067] Specifically, such as Figure 3As shown, when generating a contour trajectory by deploying the actual contour information of the AGV on each path segment, the rectangular distance segment of each step of the AGV's movement is first calculated based on the AGV's travel direction. Specifically, if the AGV moves along the long side of the rectangle, the segment equals the length of the actual contour information; if the AGV moves along the wide side of the rectangle, the segment equals the width of the actual contour information. Then, the number of rectangular trajectories (Count) of the AGV within the current path segment can be obtained based on the length of the current path segment. Figure 3 The dashed box in the diagram is used, where Count = Length / segment + 1. Then, the center point of each AGV rectangular trajectory (dashed box) is calculated.
[0068] x center =m_Start x +(Length*i / Count)*cos(m_angSlant)(i=1,2,3…Count)
[0069] y center =m_Start y +(Length*i / Count)*sin(m_angSlant)(i=1,2,3…Count)
[0070] Where: m_Start x Let m_Start be the coordinate of the starting point of the path segment along the x-axis. y y is the coordinate of the starting point of the path segment in the y-axis direction, Length is the length of the path segment, Count is the number of rectangular trajectories generated by the AGV in the path segment, and m_angSlant is the slope of the path segment.
[0071] Finally, using the center point coordinates of each rectangular trajectory of the current AGV and the actual contour information of the current AGV, the coordinates of the vertices of each rectangular trajectory of the current AGV are calculated, and their coordinates are as follows:
[0072]
[0073]
[0074]
[0075]
[0076] In the formula, V_heigth represents the length of the actual contour information of the AGV, V_width represents the width of the actual contour information, and the coordinates of all the vertices of the rectangles form the contour trajectory of the current AGV on the current path segment.
[0077] In this way, the subsequent steps of creating the path conflict table, when determining whether a conflict will occur when different AGV models are driven on two path segments, only require comparing the starting and ending rectangular trajectories of one contour trajectory with all rectangular trajectories of the other contour trajectory based on the coordinates of the rectangle vertices. If at least one of the starting and ending rectangular trajectories conflicts, it can be determined that a conflict will occur when the two paths are driven by the currently set AGV model. This significantly reduces the complexity of conflict calculation and improves computational efficiency while ensuring the accuracy of conflict determination. In other words, assuming that the contour trajectories of two path segments are generated through the above steps, the rectangular trajectories at the starting and ending positions of one contour trajectory (e.g., ...) are compared sequentially. Figure 3 The solid line contours at the beginning and end points of the middle section) and the entire rectangular trajectory of another contour trajectory (e.g.) Figure 3 If all dashed and solid outlines in the first outline trajectory intersect, and at least one rectangle at the start and end of the first outline trajectory intersects with any rectangle of the other outline trajectory, it means that the corresponding AGVs traveling on these two path segments will definitely collide. Therefore, it is not necessary to judge whether the outline at the middle position of the first path segment will interfere, which can significantly reduce the complexity of conflict calculation and improve calculation efficiency.
[0078] In some optional embodiments, the multi-AGV control method provided by the present invention further includes the following steps:
[0079] Step d1: For the path segments in the route intersection table, determine whether the starting point of each path segment is a spin point by the slope of each pair of adjacent segments.
[0080] Step d2: Determine the number of rotations of each AGV model at each spin point by using the ratio of the target rotation angle at each spin point to the rotation step size of each AGV model.
[0081] Step d3: Calculate the coordinates of the rectangle vertices for each AGV model during each rotation based on the actual contour information of each AGV model before rotation, the target rotation angle, and the number of rotations.
[0082] Step d4: The rotation trajectory of each AGV at each spin point is formed by the coordinates of the rectangular vertices of each AGV during each rotation.
[0083] Specifically, this embodiment determines whether the starting point of each line segment in the intersecting route table is a spin point. If it is a spin point, a rectangle for the AGV's rotation trajectory is generated. By additionally calculating the rotation trajectory of each AGV model at each spin point based on the AGV's spin behavior, subsequent steps can include spin conflict situations in the path conflict table. Similarly, by identifying the intersection of the spin trajectory with at least one of the starting and ending rectangular trajectories of a certain AGV model on another path segment, a spin conflict problem of the AGV can be determined, thereby further avoiding collisions when the AGV travels to the next target task path segment and further preventing multi-AGV collisions. The specific steps for calculating the AGV's rotation trajectory at the spin point are as follows: determine all adjacent line segments in the intersecting route table, and determine whether the slopes of each pair of adjacent line segments are the same. If the slopes are different, it indicates that the AGV needs to turn. The point where the two line segments meet end to end is the spin point, and the different slope angles ang1 and ang2 (radians) are saved to the set {spin_bound}. i In the sequence (=1,2..n), the rotation step size (in radians) of the AGV for each rotation is set as fReso = PI / 12. The target rotation angle of the spin point is calculated as fSpin = ang2 - ang1. Then, the number of rotations of the AGV at the spin point is calculated as nCount = fSpin / , and each rotation will generate a rotation rectangle. Afterward, based on the actual contour information of the AGV before rotation, the target rotation angle, and the number of rotations, the coordinates of the vertices of the rectangle for each spin of the AGV are calculated.
[0084] fx=ptLocal.x*cos(m_fRad+i*fReso)-ptLocal.y*sin(m_fRad+i*fReso)(i=1,2,...nCout),
[0085] fy=ptLocal.y*cos(m_fRad+i*fReso)+ptLocal.x*sin(m_fRad+i*fReso)(i=1,2,...nCout)where ptLocal x This represents the coordinates of the four vertices in the x-axis direction of the actual contour information of the AGV when it is not spinning. (ptLocal) y m_fRad represents the coordinates of the four vertices of the AGV's actual profile when it is not spinning, and m_fRad represents the initial angle of the AGV.
[0086] In some alternative implementations, step S104 includes:
[0087] Step e1: Iterate through and determine whether the rectangular trajectories of each AGV model on each path segment in the route intersection table intersect with the starting rectangular trajectories and ending rectangular trajectories of each AGV model on each path segment in the route intersection table.
[0088] Step e2: If the rectangular trajectories of the current AGV model on the current path segment intersect with at least one of the starting rectangular trajectories and the ending rectangular trajectories of the AGV model on another path segment, then the line segment numbers of the two path segments involved in the judgment, the starting point and / or ending point of the intersection, and the AGV model involved in the judgment are recorded in the line segment conflict resource table.
[0089] Step e3: Record the point numbers of the intersecting start and / or end points and the AGV models involved in the judgment into the point conflict resource table;
[0090] Step e4: Iterate through and determine whether the rotation trajectory of each AGV model at its respective rotation point in the route intersection table intersects with the starting rectangular trajectory and ending rectangular trajectory of each AGV model on each path segment in the route intersection table.
[0091] Step e5: If the rotation trajectory of the current AGV at the current spin point intersects with at least one of the starting rectangular trajectory and the ending rectangular trajectory of another AGV on a certain path segment, then the segment number of the path segment involved in the judgment, the starting point and / or ending point of the intersection, the AGV model involved in the judgment, the spin point number, and the spin angle are recorded in the spin point conflict resource table. The segment conflict resource table, the point conflict resource table, and the spin point conflict resource table constitute the path conflict table.
[0092] Specifically, the path conflict table created in this embodiment of the invention comprises three parts: a line segment conflict resource table, a point conflict resource table, and a spin point conflict resource table. The logic for determining line segment conflicts, point conflicts, and spin point conflicts can be referenced to the principle descriptions in steps c1-c5 and the latter half of steps d1-d4 above. In programming language terms, the specific process for creating the line segment conflict resource table, point conflict resource table, and spin point conflict resource table can be understood as follows:
[0093] Path segments in a topology map are represented as m_line i (i = 1…N), where N is the number of path segments in the topology map, and for any line segment m_line i First, quickly query the intersecting route table to find all other path segments that may intersect with it, forming a set {m_line}. j}, traverse the intersecting set {m_line} according to steps c1 to c5. j The line segments of} are used to generate the various AGVs in {m_linr jVarious contour trajectories of}. Determine m_line i The contour trajectory and set {m_line j Do the contour trajectories of m_line intersect? i Any rectangular trajectory in the contour trajectory and {m_line j If the starting rectangular trajectories of} intersect, then record m_line. i With {m_line j The starting point conflict information of m_line is added to the line segment conflict resource table. i Any rectangular trajectory in the contour trajectory and {m_line j If the endpoint rectangular trajectories of} intersect, then record m_line. i With {m_line j The endpoint conflict information is added to the line segment conflict resource table. Simultaneously, the line segment numbers of the two path segments involved in the judgment and the AGV models involved in the judgment are recorded in the line segment conflict resource table. Additionally, the point numbers of the intersecting start and / or end points, and the AGV models involved in the judgment, are also recorded in the point conflict resource table, as shown in Tables 2 and 3 below.
[0094] Table 2: Resource Table for Line Segment Conflicts
[0095]
[0096] Explanation: Assume that AGV1 of vehicle type 1 needs to move on line segment 1. A search in the line segment conflict resource table reveals that the conflicting line segment is line segment 2, and the conflicting vehicle type is 2. Then, using positioning and camera technologies, it begins to detect whether an AGV2 of vehicle type 2 actually exists on line segment 2. If no AGV2 of vehicle type 2 is found on line segment 2, AGV1 can move. If an AGV2 of vehicle type 2 is found at the start or end point of line segment 2, or on the line segment itself, AGV1 cannot move to line segment 1, and the task is paused.
[0097] Table 3: Conflict Resource Table
[0098]
[0099] Note: The line segment conflict resource table only indicates that an AGV's movement to a certain line segment would result in a conflict, but it cannot specify the exact location within that line segment where the conflict would occur. Therefore, if AGV1 (model 1) wants to move to point 3 on line segment 2, a lookup in the point conflict resource table reveals that if another AGV (model 1) is on line segment 1, then AGV1 is not allowed to move to point 3. By combining Tables 2 and 3, it is possible to quickly determine whether an AGV can move to a certain path segment and, more specifically, whether it can move to a particular point within that path segment.
[0100] In addition, the embodiments of the present invention determine the line segment m_line i The set of rotational trajectories and intersecting path segments {m_line j Check if the rectangular trajectories at the starting point intersect. If they do, record the intersection of m_line. i (i = 1…N) starting point and {m_line j The spin conflict information at the starting point is added to the spin point conflict resource table. If the line segment m_line... i End point rotation trajectory and line segment {m_line j If the endpoint rectangular trajectories of} intersect, then record m_line. i End point and {n_line j The spin conflict information at the endpoint. Similarly, the spin conflict information includes the segment number of the path segment involved in the judgment, the starting point and / or ending point of the intersection, the AGV model involved in the judgment, the spin point number, and the spin angle. The specific form of the spin point conflict resource table is shown in Table 4.
[0101] Table 4 Spin Point Conflict Resource Table
[0102]
[0103] Explanation: If AGV1 (model 1) is currently at point 28, and wants to move to another location (line segment or point), it needs to spin. The system then queries the spin point conflict resource table. If the spin angle is (0, 90 degrees), it finds conflicting line segment 16 and conflicting model 3. The AGV control system then checks if AGV2 (model 3) actually exists at the starting point of conflicting route 16. If AGV2 exists and is model 3, AGV1 cannot move to its desired location; otherwise, it can move to its desired location.
[0104] Based on the contour trajectory and rotation trajectory calculated in the above embodiments, this embodiment creates a line segment conflict resource table, a point conflict resource table, and a spin point conflict resource table. This allows an AGV to determine whether it can travel to the target task path segment before executing a task by checking the line segment conflict resource table. If it cannot travel to the target task path segment, the point conflict resource table can be used to determine whether the inability to travel to the target task path segment is at the start or end point, or the point conflict resource table can be used to quickly find the specific location where the current AGV cannot travel. Furthermore, if the AGV is spinning, it can determine whether the spinning can be performed and the next travel task after the spinning, thereby significantly improving the accuracy and reliability of preventing multi-AGV collisions.
[0105] In some alternative implementations, step S106 includes:
[0106] Step f1: Query the segment conflict resource table based on the current AGV model and the segment number of the target task path segment for the next trip, and find the first conflicting segment number and the first specific AGV model of other task path segments that will definitely conflict.
[0107] Step f2: Determine whether a first specific model AGV exists on the path segment with the first conflicting line segment number;
[0108] Step f3: If it exists, query the conflict point number from the point conflict resource table according to the first conflict line segment number and the first specific model AGV. This is used to suspend the issuance of tasks that travel to the path point corresponding to the conflict point number to the current AGV. The target task path line segment passes through the path point of the conflict point number.
[0109] Step f4: When the target task path segment of the next trip needs to spin, query the spin point conflict resource table for the second conflicting segment number and the second specific AGV of other task path segments that will definitely conflict, based on the current AGV model, spin angle and spin point number.
[0110] Step f5: Determine whether a second specific model AGV exists on the path segment with the second conflicting line segment number;
[0111] Step f6, if it exists, output spin conflict information to suspend the task of traveling to the target task path segment to the current AGV.
[0112] Specifically, this embodiment implements a control scheme to prevent multiple AGV collisions by querying the line segment conflict resource table, the point conflict resource table, and the spin point conflict resource table. The specific execution logic of the AGV control system has been described in detail in the embodiments of creating the line segment conflict resource table, the point conflict resource table, and the spin point conflict resource table in steps e1 to e5 above. Please refer to the relevant descriptions in the above embodiments, and they will not be repeated here.
[0113] The technical solution proposed in this application solves the problem of collisions and conflicts occurring when AGVs with different profiles are performing tasks. By incorporating vehicle profile information and map information into the safe driving process, when loading map information and vehicle profile information, line segment conflict resource tables, point conflict resource tables, and spin point conflict resource tables are pre-calculated. This allows for real-time acquisition of AGV conflict and collision information when multiple AGVs are performing tasks. After the AGV control system plans the task path for the AGVs, it dynamically distributes tasks in segments according to the conflict resource tables, improving the operating efficiency of the AGV control system.
[0114] This embodiment also provides a multi-AGV control device for implementing the above embodiments and preferred embodiments; details already described will not be repeated. As used below, the term "module" can refer to a combination of software and / or hardware that performs a predetermined function. Although the device described in the following embodiments is preferably implemented in software, hardware implementation, or a combination of software and hardware, is also possible and contemplated.
[0115] This embodiment provides a multi-AGV control device, such as Figure 4 As shown, it includes:
[0116] The map data acquisition module 601 is used to acquire path segments in the topology map. Path segments are obtained by dividing each complete path in the topology map using several path points. For details, please refer to the relevant description of step S101 in the above method embodiment, which will not be repeated here.
[0117] The AGV contour acquisition module 602 is used to acquire the contour information of each AGV model in the current scene. For details, please refer to the relevant description of step S102 in the above method embodiment, which will not be repeated here.
[0118] The contour trajectory module 603 is used to traverse the contour information of each AGV model onto each path segment to obtain the contour trajectory of each AGV model on each path segment. For details, please refer to the relevant description of step S103 in the above method embodiment, which will not be repeated here.
[0119] The conflict table creation module 604 is used to determine the interference between pairs of contour trajectories and create a path conflict table based on the interfering contour trajectories. The path conflict table is used to record the situations in which each type of AGV will definitely conflict with a specific type of AGV on other path segments when traveling on each path segment. For details, please refer to the relevant description of step S104 in the above method embodiment, which will not be repeated here.
[0120] The path planning module 605 plans a task path for each AGV in the current scene based on the received task instructions, and divides each task path into several task path segments according to the path points. For details, please refer to the relevant description of step S105 in the above method embodiment, which will not be repeated here.
[0121] The conflict detection module 606 is used to query the path conflict table for other task path segments that may conflict with the target task path segment of the current AGV's next journey when controlling the current AGV to perform a task, and to determine whether there are any specific model AGVs recorded in the path conflict table that will definitely conflict with the current AGV on the other task path segments. For details, please refer to the relevant description of step S106 in the above method embodiment, which will not be repeated here.
[0122] The first control module 607 is used to, if a conflict exists, suspend the dispatch of tasks to the current AGV that travel to the target task path segment until the conflict is resolved. For details, please refer to the relevant description of step S107 in the above method embodiment, which will not be repeated here.
[0123] The second control module 608 is used to issue a task to the current AGV to travel to the target task path segment if the target task does not exist. For details, please refer to the relevant description of step S108 in the above method embodiment, which will not be repeated here.
[0124] Further functional descriptions of the above modules and units are the same as those in the corresponding embodiments described above, and will not be repeated here.
[0125] In this embodiment, a multi-AGV control device is presented in the form of a functional unit. Here, a unit refers to an ASIC (Application Specific Integrated Circuit) circuit, a processor and memory that execute one or more software or fixed programs, and / or other devices that can provide the above functions.
[0126] This invention also provides a computer device.
[0127] Please see Figure 5 , Figure 5 This is a schematic diagram of the structure of a computer device provided in an optional embodiment of the present invention, such as... Figure 5As shown, the computer device includes one or more processors 10, memory 20, and interfaces for connecting the components, including high-speed interfaces and low-speed interfaces. The components communicate with each other via different buses and can be mounted on a common motherboard or otherwise installed as needed. The processors can process instructions executed within the computer device, including instructions stored in or on memory to display graphical information of a GUI on external input / output devices (such as display devices coupled to the interfaces). In some alternative implementations, multiple processors and / or multiple buses can be used with multiple memories and multiple memory modules, if desired. Similarly, multiple computer devices can be connected, each providing some of the necessary operations (e.g., as a server array, a group of blade servers, or a multiprocessor system). Figure 5 Take a processor 10 as an example.
[0128] Processor 10 may be a central processing unit, a network processor, or a combination thereof. Processor 10 may further include a hardware chip. The hardware chip may be an application-specific integrated circuit (ASIC), a programmable logic device (PLD), or a combination thereof. The programmable logic device may be a complex programmable logic device (CAMP), a field-programmable gate array (FPGA), a general-purpose array logic (GDA), or any combination thereof.
[0129] The memory 20 stores instructions executable by at least one processor 10 to cause at least one processor 10 to perform the method shown in the above embodiments.
[0130] The memory 20 may include a program storage area and a data storage area. The program storage area may store the operating system and applications required for at least one function; the data storage area may store data created based on the use of the computer device. Furthermore, the memory 20 may include high-speed random access memory and may also include non-transitory memory, such as at least one disk storage device, flash memory device, or other non-transitory solid-state storage device. In some alternative embodiments, the memory 20 may optionally include memory remotely located relative to the processor 10, and these remote memories may be connected to the computer device via a network. Examples of such networks include, but are not limited to, the Internet, intranets, local area networks, mobile communication networks, and combinations thereof.
[0131] The memory 20 may include volatile memory, such as random access memory; the memory may also include non-volatile memory, such as flash memory, hard disk or solid-state drive; the memory 20 may also include a combination of the above types of memory.
[0132] The computer device also includes a communication interface 30 for communicating with other devices or communication networks.
[0133] This invention also provides a computer-readable storage medium. The methods described above according to embodiments of the invention can be implemented in hardware or firmware, or implemented as computer code that can be recorded on a storage medium, or implemented as computer code downloaded via a network and originally stored on a remote storage medium or a non-transitory machine-readable storage medium and then stored on a local storage medium. Thus, the methods described herein can be processed by software stored on a storage medium using a general-purpose computer, a dedicated processor, or programmable or dedicated hardware. The storage medium can be a magnetic disk, optical disk, read-only memory, random access memory, flash memory, hard disk, or solid-state drive, etc.; further, the storage medium can also include combinations of the above types of memory. It is understood that computers, processors, microprocessor controllers, or programmable hardware include storage components capable of storing or receiving software or computer code, which, when accessed and executed by the computer, processor, or hardware, implements the methods shown in the above embodiments.
[0134] Although embodiments of the invention have been described in conjunction with the accompanying drawings, those skilled in the art can make various modifications and variations without departing from the spirit and scope of the invention, and such modifications and variations all fall within the scope defined by the appended claims.
Claims
1. A multi-AGV control method, characterized in that, The method includes: Obtain path segments from the topology map. The path segments are obtained by dividing each complete path in the topology map using several path points. Obtain the outline information of each AGV model in the current scene; obtaining the outline information of each AGV model in the current scene includes: obtaining the length and width of each AGV model in the current scene; creating the minimum bounding rectangle of each AGV model based on the length and width of each AGV model as the actual outline information of each AGV model; using the maximum value of the length and width of each AGV model, creating the maximum bounding square of each AGV model as the maximum outline information of each AGV model. The process involves iterating through the contour information of each AGV model onto each path segment to obtain the contour trajectory of each AGV model on each path segment. This includes: deploying the maximum contour information of each AGV model at the start and end points of each path segment to obtain multiple maximum contour trajectories; determining whether each maximum contour trajectory intersects with the maximum contour information formed by other maximum contour trajectories at the start and end points; if there is an intersection, recording the intersection relationship between the path segments corresponding to the maximum contour trajectory in a route intersection table. The path segments with intersection relationships in the route intersection table indicate that each AGV model may conflict with a specific AGV model on other path segments when traveling on the current path segment; and iterating through the actual contour information of each AGV model onto each path segment in the route intersection table to obtain the contour trajectory of each AGV model on each path segment in the route intersection table. Determine the interference between pairs of contour trajectories and create a path conflict table based on the interfering contour trajectories. The path conflict table is used to record the situations in which each type of AGV will definitely conflict with a specific type of AGV on other path segments when it travels on each path segment. Based on the received task instructions, a task path is planned for each AGV in the current scene, and each task path is divided into several task path segments according to the path points. When controlling the current AGV to perform a task, query the path conflict table for other task path segments that may conflict with the target task path segment of the current AGV's next journey, and determine whether there is a specific model AGV recorded in the path conflict table that will definitely conflict with the current AGV on the other task path segments. If the conflict exists, the task of traveling to the target task path segment is suspended from being sent to the current AGV until the conflict is resolved, and then the task of traveling to the target task path segment is sent to the current AGV. If it does not exist, then the task of traveling to the target task path segment is sent to the current AGV.
2. The method according to claim 1, characterized in that, The actual contour information of each AGV model is traversed along each path segment in the route intersection table to obtain the contour trajectory of each AGV model on each path segment in the route intersection table, including: Based on the current AGV's travel direction, determine the rectangular distance the current AGV travels at each step on the current path segment from the actual outline information of the current AGV; The number of rectangular trajectories of the current AGV on the current path segment is determined by the ratio of the length of the current path segment to the distance of the rectangle. Based on the initial position center point coordinates of the current AGV, the number of rectangular trajectories, and the length of the current path segment, calculate the center point coordinates of each rectangular trajectory of the current AGV; Using the center point coordinates of each rectangular trajectory of the current AGV and the actual contour information of the current AGV, calculate the coordinates of the rectangle vertices of each rectangular trajectory of the current AGV; The contour trajectory of the current AGV on the current path segment is formed by the coordinates of the vertices of each rectangular trajectory of the current AGV.
3. The method according to claim 2, characterized in that, The method further includes: For the path segments in the intersection table, determine whether the starting point of each path segment is a spin point by the slope of each pair of adjacent segments; The number of rotations of each AGV at each spin point is determined by the ratio of the target rotation angle at each spin point to the rotation step size of each AGV model. Calculate the rectangle vertex coordinates of each AGV model during each rotation based on the actual contour information of each AGV model when it has not rotated, the target rotation angle, and the number of rotations. The rotation trajectory of each AGV at each spin point is formed by the coordinates of the rectangular vertices of each AGV during each rotation.
4. The method according to claim 3, characterized in that, The process of determining the interference between pairwise contour trajectories and creating a path conflict table based on the interfering contour trajectories includes: Iterate through and determine whether the rectangular trajectories of each AGV model on each path segment in the route intersection table intersect with the starting rectangular trajectories and ending rectangular trajectories of each AGV model on each path segment in the route intersection table. If the rectangular trajectories of the current AGV model on the current path segment intersect with at least one of the starting rectangular trajectories and the ending rectangular trajectories of the AGV model on another path segment, then the line segment numbers of the two path segments involved in the judgment, the starting point and / or ending point of the intersection, and the AGV model involved in the judgment are recorded in the line segment conflict resource table. Record the point numbers of the intersecting start and / or end points, and the AGV models involved in the judgment, into the point conflict resource table; Iterate through the routes and determine whether the rotation trajectory of each AGV model at its respective rotation point in the route intersection table intersects with the starting rectangular trajectory and ending rectangular trajectory of each AGV model on each path segment in the route intersection table. If the rotation trajectory of the current model AGV at the current spin point intersects with at least one of the starting rectangular trajectory and the ending rectangular trajectory of a certain model AGV on another path segment, then the line segment number of the path segment involved in the judgment, the starting point and / or ending point of the intersection, the AGV model involved in the judgment, the spin point number and the spin angle are recorded in the spin point conflict resource table. The line segment conflict resource table, the point conflict resource table, and the spin point conflict resource table constitute the path conflict table.
5. The method according to claim 4, characterized in that, When controlling the current AGV to execute a task, the process of querying the path conflict table for other task path segments that could conflict with the target task path segment of the current AGV's next journey, and determining whether there are specific AGV models recorded in the path conflict table that will definitely conflict with the current AGV on the other task path segments, includes: From the line segment conflict resource table, based on the current AGV model and the line segment number of the target task path line segment for the next trip, query the first conflicting line segment number of other task path line segments that will definitely conflict and the first specific model AGV. Determine whether the first specific model AGV exists on the path segment with the first conflict line segment number; If it exists, query the conflict point number from the point conflict resource table according to the first conflict line segment number and the first specific model AGV, and use it to suspend the issuance of tasks that travel to the path point corresponding to the conflict point number to the current AGV. The target task path line segment passes through the path point of the conflict point number. When the target task path segment of the next trip needs to spin, the second conflicting segment number and the second specific AGV model are retrieved from the spin point conflict resource table according to the current AGV model, spin angle and spin point number. Determine whether a second specific type of AGV exists on the path segment with the second conflicting line segment number; If a spin conflict exists, output spin conflict information to pause the dispatch of tasks that have traveled to the target task path segment to the current AGV.
6. A multi-AGV control device, characterized in that, The device includes: The map data acquisition module is used to acquire path segments in the topology map. The path segments are obtained by dividing each complete path in the topology map by several path points. The AGV contour acquisition module is used to acquire the contour information of each model of AGV in the current scene. The acquisition of the contour information of each model of AGV in the current scene includes: acquiring the length and width of each model of AGV in the current scene; creating the minimum bounding rectangle of each model of AGV based on the length and width of each model of AGV as the actual contour information of each model of AGV; and using the maximum value of the corresponding length and width of each model of AGV to create the maximum bounding square of each model of AGV as the maximum contour information of each model of AGV. The contour trajectory module is used to traverse the contour information of each AGV model onto each path segment to obtain the contour trajectory of each AGV model on each path segment. This process includes: deploying the maximum contour information of each AGV model at the start and end points of each path segment to obtain multiple maximum contour trajectories; determining whether each maximum contour trajectory intersects with the maximum contour information formed by other maximum contour trajectories at the start and end points; if there is an intersection, recording the intersection relationship between the path segments corresponding to the maximum contour trajectory in a route intersection table. The path segments with intersection relationships in the route intersection table indicate that each AGV model may conflict with a specific AGV model on other path segments when traveling on the current path segment; and traversing the actual contour information of each AGV model onto each path segment in the route intersection table to obtain the contour trajectory of each AGV model on each path segment in the route intersection table. The conflict table creation module is used to determine the interference between two contour trajectories and create a path conflict table based on the interfering contour trajectories. The path conflict table is used to record the situations in which each type of AGV will definitely conflict with a specific type of AGV on other path segments when it travels on each path segment. The path planning module plans a task path for each AGV in the current scene according to the received task instructions, and divides each task path into several task path segments according to the path points. The conflict detection module is used to query the path conflict table for other task path segments that may conflict with the target task path segment of the current AGV's next journey when controlling the current AGV to perform a task, and to determine whether there is a specific model of AGV recorded in the path conflict table that will definitely conflict with the current AGV on the other task path segments. The first control module is used to pause sending tasks to the current AGV that travel to the target task path segment if the conflict exists, until the conflict is resolved before sending tasks to the current AGV that travel to the target task path segment. The second control module is used to send the task of traveling to the target task path segment to the current AGV if it does not exist.
7. A computer device, characterized in that, include: A memory and a processor, the memory and the processor being communicatively connected to each other, the memory storing computer instructions, the processor executing the computer instructions to perform the method of any one of claims 1 to 5.
8. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer instructions for causing a computer to perform the method of any one of claims 1 to 5.
Citation Information
Patent Citations
Multi-AGV anti-collision cooperative path planning method
CN110989570A
AGV (automated guided vehicle) traffic control method and apparatus
CN106547271A
Anti-collision method for multiple AGVs (Automatic Guided Vehicle) under same-field operation condition
CN114170844A