Multi-robot path planning method, apparatus and computing device

The multi-robot path planning method addresses collision challenges by predicting and re-planning paths for target robots, improving operational efficiency and reducing computational overhead in logistics warehouses.

JP2025527811APending Publication Date: 2025-08-22BEIJING GEEKPLUS TECH CO LTD
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
JP2025512712
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-09-07
Filing Date
2023-08-28
Publication Date
2025-08-22

AI Technical Summary

Technical Problem

Existing path planning methods for autonomous mobile robots in logistics warehouses face challenges in efficiently avoiding collisions, particularly with centralized methods experiencing high computational overhead and dynamic events leading to unpredictable collisions, while distributed methods struggle with real-time response and frequent re-planning needs.

Method used

A multi-robot path planning method that predicts potential collisions based on travel information, identifies robots likely to collide, and re-plans paths for target robots meeting specific collision types, thereby reducing collisions before they occur.

Benefits of technology

The method effectively reduces collisions by proactively re-planning paths for target robots, enhancing operational efficiency and reducing computational complexity.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025527811000001_ABST
    Figure 2025527811000001_ABST
Patent Text Reader

Abstract

The present disclosure provides a multi-robot path planning method, apparatus, and computing device, the multi-robot path planning method including the steps of: acquiring travel information for multiple robots; predicting collision information for each robot based on the travel information for each robot, where the collision information includes a collision type in which the robot collides with another robot; calculating statistics of the collision information of robots whose collision type is a first collision type based on the collision information of each robot; and determining, based on the statistical results, a robot that meets a re-planning condition corresponding to the first collision type as a target robot, where the first collision type is any one of multiple collision types; and re-planning a path for the target robot based on the first collision type.
Need to check novelty before this filing date? Find Prior Art

Description

Priority information

[0001] This application claims priority from a Chinese patent application filed on September 7, 2022, bearing application number 202211091138.8, the entire contents of which are incorporated herein by reference. [Technical Field]

[0002] The present disclosure relates to the field of warehousing technology, and more particularly to multi-robot path planning methods, apparatus, and computing devices. [Background technology]

[0003] As logistics warehouses become more intelligent and automated, automated guided vehicles (AGVs), also known as autonomous mobile robots, are increasingly taking on handling and picking tasks within the warehouse. To improve the efficiency of handling and picking by autonomous mobile robots, rationally planning the paths of autonomous mobile robots has become an important research direction in the field of warehouse technology. Summary of the Invention

[0004] Embodiments of the present disclosure provide a multi-robot path planning method, apparatus, and computing device.

[0005] According to a first aspect of an embodiment of the present disclosure, there is provided a multi-robot path planning method, the method including: first, a step of acquiring travel information for multiple robots; then, a step of predicting collision information for each robot based on the travel information for each robot, where the collision information includes a collision type in which the robot collides with another robot; next, a step of calculating, based on the collision information of each robot, the collision information of robots whose collision type is a first collision type; and, based on the statistical result, a step of determining, as a target robot, a robot that meets a re-planning condition corresponding to the first collision type, where the first collision type is any one of multiple collision types; and finally, a step of re-planning a path for the target robot based on the first collision type.

[0006] According to a second aspect of an embodiment of the present disclosure, there is provided a multi-robot path planning device, the device including: an acquisition module configured to acquire travel information for a plurality of robots; a prediction module configured to predict collision information for each robot based on the travel information for each robot, where the collision information includes a collision type in which the robot collides with another robot; a determination module configured to collect statistics on collision information for robots whose collision type is a first collision type based on the collision information of each robot, and to determine a robot that meets a re-planning condition corresponding to the first collision type as a target robot based on the statistical results, where the first collision type is one of a plurality of collision types; and a re-planning module configured to re-plan a path for the target robot based on the first collision type.

[0007] According to a third aspect of an embodiment of the present disclosure, there is provided a computing device including a memory and a processor, wherein the memory stores computer-readable instructions, and the processor, when executing the computer-readable instructions, implements steps of the multi-robot path planning method of the first aspect.

[0008] According to a fourth aspect of an embodiment of the present disclosure, there is provided a computer-readable storage medium having computer-readable instructions stored thereon, the computer-readable instructions, when executed by a processor, achieving the steps of the multi-robot path planning method of the first aspect. [Brief explanation of the drawings]

[0009] [Figure 1] FIG. 1 is a schematic diagram of a multi-robot path planning system provided by some embodiments of the present disclosure. [Figure 2] FIG. 1 is a schematic diagram of a multi-robot path planning method provided by some embodiments of the present disclosure. [Figure 3A] 1 is a schematic diagram of a head-on collision provided by some embodiments of the present disclosure. FIG. [Figure 3B] FIG. 1 is a schematic diagram of a follow-up collision provided by some embodiments of the present disclosure. [Figure 3C] FIG. 1 is a schematic diagram of an intersection collision provided by some embodiments of the present disclosure. [Figure 3D] FIG. 1 is a schematic diagram of a stay collision provided by some embodiments of the present disclosure. [Figure 4] 10 is a flowchart of a facing collision of a multi-robot path planning method provided by some embodiments of the present disclosure. [Figure 5] 10 is a flowchart of intersections and follow-up collisions of a multi-robot path planning method provided by some embodiments of the present disclosure. [Figure 6] FIG. 1 is a schematic diagram of another multi-robot path planning method provided by some embodiments of the present disclosure. [Figure 7A] FIG. 1 is a schematic diagram of another multi-robot path planning method provided by some embodiments of the present disclosure. [Figure 7B] FIG. 1 is a schematic diagram of robot navigation information provided by some embodiments of the present disclosure. [Figure 8] FIG. 1 is a schematic diagram of a multi-robot path planning apparatus provided by some embodiments of the present disclosure. [Figure 9] 1 is a schematic diagram of a computing device provided by some embodiments of the present disclosure. DETAILED DESCRIPTION OF THE INVENTION

[0010] In the following description, numerous specific details are set forth to provide a thorough understanding of this disclosure. However, the disclosure is not limited to the specific implementations disclosed below, as the disclosure can be implemented in many ways other than as described herein, and those skilled in the art will be able to make similar applications without violating the connotations of the disclosure.

[0011] In one or more embodiments of the present disclosure, the terms used are intended to describe particular embodiments and are not intended to limit one or more embodiments of the present disclosure. Unless the context clearly indicates otherwise, the singular forms "a," "the," and "the" used in one or more embodiments of the present disclosure and the appended claims are intended to include the plural forms. Furthermore, the term "and / or" used in one or more embodiments of the present disclosure refers to and includes any or all possible combinations of one or more of the associated listed items.

[0012] It should be noted that, although one or more embodiments of the present disclosure may use terms such as "first," "second," etc. to describe various pieces of information, these pieces of information should not be limited to these terms. These terms are used only to distinguish between the same types of information. For example, a "first" may be referred to as a "second," and similarly, a "second" may be referred to as a "first," without departing from the scope of one or more embodiments of the present disclosure.

[0013] First, a statement of terminology pertaining to the following examples of this disclosure is provided.

[0014] Automated Guided Vehicle (AGV): Its distinctive feature is unmanned operation. AGVs are equipped with an automatic guidance system that ensures that they can travel automatically along a predetermined route without the need for manual operation, transporting goods and materials automatically from their starting point to their destination.

[0015] Route replanning: Consists of a route plan and a miracle plan. The sequence points or curves connecting the start and end positions are called routes, and the policy that constitutes the route is called a route plan. Route replanning usually involves re-executing the route plan when the existing route cannot be driven.

[0016] Robot collision: This refers to a situation in which a path edge or path point of a moving robot overlaps with another robot.

[0017] Head-on collision: Two robots pass through a point at 180 degrees from each other or cross the same side.

[0018] Intersection collision: Two robots pass the same point at 90 degrees from each other.

[0019] Stay collision: A point on a robot's path is the end point of another robot.

[0020] Follow-up collision: Two robots pass the same point in the same direction or cross the same edge.

[0021] As logistics warehouses become more intelligent and automated, AGVs are increasingly used for handling and picking tasks within the warehouse. To facilitate AGV dispatch and control, warehouses are generally divided into a grid map consisting of route points and a grid map consisting of route edges. The multi-robot (e.g., AGV) path planning problem is an important factor affecting warehouse efficiency and is a very challenging issue in both theoretical research and practical application.

[0022] Illustratively, centralized and distributed methods can be used to plan a robot's travel path.

[0023] In some cases, centralized methods can use a path planning algorithm to search for collision-free paths for multiple robots in the spatiotemporal dimension. For example, a reservation table can store the path points for each robot in a warehouse, represented as (x, y, t), indicating that the path point will reach coordinate position (x, y) at time t. The path planning algorithm requires that two robots cannot occupy the same node or pass through the same edge in the same time step; otherwise, a path collision is considered. However, the algorithm is highly complex, and the search space expands exponentially with the number of robots. This makes it difficult to meet the huge computational overhead and real-time response requirements for path planning for hundreds or thousands of robots.

[0024] In some cases, distributed methods can plan paths for a single robot. During the path planning process, distributed methods plan paths based on the principle of avoiding congestion and deadlocks. For example, when searching for a path for a single robot, a reservation table or a complete map can be used to analyze the robot's congestion status, and additional heuristic costs can be added to guide the search and avoid some potential conflicts. However, in a logistics warehouse environment, dynamic events frequently occur, such as stopping to avoid oncoming vehicles, braking to slow down, and starting to accelerate. This can lead to robots experiencing many unpredictable path collisions during operation, preventing them from operating normally.

[0025] To solve the above problems, the present disclosure provides a multi-robot path planning method that predicts the possibility of a collision between the robots based on the travel information of each robot before the robots collide, selects robots that are likely to collide, determines the selected robot that meets a re-planning condition corresponding to a first collision type as a target robot, and performs path re-planning for the target robot based on the first collision type. Therefore, the multi-robot path planning method provided by the embodiments of the present disclosure can rationally avoid collisions by re-planning the path of the target robot before a collision occurs, and the target robot that performs path re-planning meets the re-planning conditions, resulting in higher re-planning efficiency.

[0026] FIG. 1 is a schematic diagram of a multi-robot path planning system provided by some embodiments of the present disclosure. As shown in FIG. 1, the system includes a path planning side 101 and a robot side 102.

[0027] In some examples, the path planning side 101 may include a memory 1011 and a processor 1012. Here, the memory 1011 stores program code of path planning rules created in advance, and the processor 1012 executes the program code of the path planning rules to perform path planning for the robot on the robot side 102.

[0028] In some examples, robot side 102 may include at least one robot(s), such as robot 1021, robot 1022, and robot 1023.

[0029] For example, the path planning side 101 can obtain information on how multiple robots (e.g., robot 1021, robot 1022, and robot 1023) should travel from the robot side 102, and then predict collision information for each robot based on the information on how each robot should travel, and based on the collision information for each robot, compile statistics on the collision information of robots whose collision type is the first collision type, and based on the statistical results, determine a robot that meets the re-planning conditions corresponding to the first collision type as a target robot, and finally perform path re-planning for the target robot based on the first collision type.

[0030] Hereinafter, a multi-robot path planning method provided by an embodiment of the present disclosure will be described in combination with the drawings.

[0031] 2 is a schematic diagram of a multi-robot path planning method provided by some embodiments of the present disclosure, which in some examples may be performed by the path planning side 101 in the above embodiments. As shown in FIG. 2, the method includes the following steps 202 to 208:

[0032] Step 202: Information on how the multiple robots should move is obtained.

[0033] For example, each robot in the plurality of robots may be any one of the robots in a warehouse storage scene, such as a transport robot for transporting containers or shelves.

[0034] In some examples, the information to be traveled is information related to a pre-planned trip, for example, the information to be traveled may be at least one of the current position of the robot, the location of the end point, the route to be traveled, and the length of time required to complete the end point task.

[0035] In addition, obtaining information on how multiple robots should move is then used to predict a collision between any one of the multiple robots and another robot by analyzing and judging the information on how the multiple robots should move.

[0036] The embodiment of the present disclosure obtains information on how multiple robots should move, and then analyzes the information on how the multiple robots should move to predict collision information between each robot and other robots, thereby realizing prediction of collision information for multiple robots.

[0037] In some embodiments, the step of obtaining information on how the plurality of robots should travel may include obtaining information on how the plurality of robots should travel at the current detection time according to a preset detection period.

[0038] In some examples, the preset detection period refers to a preset time period for collision detection. For example, the detection period may be set to a short time interval, such as 3 seconds. The current detection time refers to obtaining information on how the robot should travel from the current detection time.

[0039] For example, if the total travel time of the route that robot A must travel is 8 seconds, the total travel time of the route that robot B must travel is 10 seconds, and the preset detection period is 3 seconds, then travel information for robot A and robot B at 3, 6, and 9 seconds is acquired, respectively. Here, the travel information for robot A at 6 seconds includes at least the travel information for robot A at 6 to 8 seconds, and the travel information for robot B at 6 seconds includes at least the travel information for robot B at 6 to 10 seconds.

[0040] In addition, the preset detection cycle interval is usually short, for example, 3 seconds. One collision detection is triggered every short fixed period to obtain the information on the directions of the multiple robots at the current detection time. Multiple collision detections may be performed within a short period of time, further improving the frequency of analysis of the information on the directions of the multiple robots, and subsequently improving the timeliness of detecting multiple robot collisions and re-planning the robots.

[0041] An embodiment of the present disclosure obtains information on how multiple robots should travel at the current detection time according to a preset detection period, thereby enabling information on how multiple robots should travel at the current detection time to be obtained based on a fixed detection period, thereby realizing collision detection according to a time period and improving the standardity of collision detection.

[0042] Step 204: Predict collision information for each robot based on the travel information for each robot, where the collision information includes the collision type that the robot collides with other robots.

[0043] For example, the collision information may further include information such as the time of collision between the robot and another robot, the location where the collision occurred, and the identifier of the robot where the collision occurred, etc. Here, the identifier of the robot may include the name of the robot.

[0044] In some embodiments, when predicting collisions that may exist for each robot based on the travel information of each robot, collision predictions may be performed for the entire travel path from the current position of each robot to the end position. In some examples, the travel information of each robot may be compared to perform collision predictions from the start path point to the end path point of each robot, and collision information for each robot that has a collision at a path point may be recorded.

[0045] In some embodiments, the step of predicting collision information for each robot based on the travel information for each robot includes the steps of determining target travel data for each robot within a predetermined collision detection range based on the travel information for each robot; determining that the first robot and the second robot have collided if it is identified based on the target travel data for the first robot and the second robot that the first robot and the second robot pass through the same path point within a predetermined time period; identifying a collision type between the first robot and the second robot based on the target travel data for the first robot and the second robot; and generating collision information for the first robot based on the collision type.

[0046] For example, the first robot and the second robot may be any two different robots among a plurality of robots. The same path point passed by the first robot and the second robot within a predetermined time period may be any one path point within a predetermined collision detection range. For example, the same path point passed by the first robot and the second robot within a predetermined time period may be referred to as a first path point, and here, the first path point may be any one path point among a plurality of path points within a predetermined collision detection range. Note that the following embodiment may be described illustratively using an example in which the same path point is the first path point.

[0047] In some examples, a preset collision detection range may be used to determine the size of the collision detection window. For example, the preset collision detection range may be a range of a fixed length from the current position of the robot. For example, the preset collision detection range may be measured in terms of the number of cells and expressed as a window size (e.g., WindowSize). For example, the window size of the preset collision detection range may be 10 cells.

[0048] In some examples, the target driving data is used to indicate driving data within a predetermined collision detection range of the information to be driven. For example, the target driving data may include a path to be driven by the robot within the predetermined collision detection range, path points, path edges, and a time to reach each path point.

[0049] In some examples, the preset time period refers to a preset time interval, for example, 5 seconds, 10 seconds, etc.

[0050] In some examples, the collision type is used to indicate the type of collision that occurred between the robots; for example, the collision types may include an oncoming collision, a follow-up collision, a crossing collision, and a staying collision.

[0051] For example, the first robot and the second robot passing through the same path point may include the first robot and the second robot coming from the same direction and passing through the same path point (e.g., the first path point), or the first robot and the second robot traveling along the same direction and passing through the same path point, or the first robot and the second robot traveling in directions that are 90 degrees apart from each other and passing through the same path point.

[0052] FIG. 3A is a schematic diagram of a head-on collision provided by some embodiments of the present disclosure.

[0053] In some examples, the head-on collision type occurs when two robots travel in directions that form 180 degrees with each other and pass through the same path point or the same path edge. As shown in Figure 3A, the path that robot A should travel is 2 → 3 → 4, and the path that robot B should travel is 4 → 3 → 2. Robot A and robot B travel in opposite directions and both pass path points 2, 3, and 4. In this case, a head-on collision occurs between robot A and robot B.

[0054] FIG. 3B is a schematic diagram of a follow-up collision provided by some embodiments of the present disclosure.

[0055] In some examples, the follow-up collision type indicates that two robots are traveling in the same direction and passing through the same path points. As shown in Figure 3B, the path that robot A should travel is 2 → 3 → 4, and the path that robot B should travel is 2 → 3 → 4. Robot A and robot B are traveling in the same direction and both pass path points 2, 3, and 4. In this case, a follow-up collision occurs between robot A and robot B.

[0056] FIG. 3C is a schematic diagram of an intersection collision provided by some embodiments of the present disclosure.

[0057] In some examples, the crossing collision type indicates that two robots are traveling in directions that form a 90-degree angle with each other and pass through the same path point. As shown in Figure 3C, the path that robot A should travel is 2 → 3 → 4, and the path that robot B should travel is 1 → 3 → 5. Robots A and B are traveling in directions that form a 90-degree angle with each other and both pass path point 3. In this case, robots A and B cross each other at path point 3.

[0058] FIG. 3D is a schematic diagram of a stay collision provided by some embodiments of the present disclosure.

[0059] In some cases, the stay collision type indicates that a specific path point on a robot's path is the end point of another robot's path. As shown in Figure 3B, the path that Robot A should travel is 2 → 3 → 4, and the path that Robot B should travel is 5 → 3. If path point 3 is the end point of Robot B, and Robot A passes path point 3, a stay collision occurs between Robot A and Robot B at path point 3.

[0060] In addition, collisions between each robot are predicted according to each route point, and collisions that may occur at any route point, such as collision types, are predicted. After predicting the collision types that occur at each route point, the collision types that occur for each robot are statistically calculated.

[0061] The solution of the embodiments of the present disclosure can detect the window size and the number of re-planned robots by flexibly adjusting the preset collision detection range, thereby improving the accuracy of robot collision detection.

[0062] In some embodiments, before generating collision information for the first robot based on the collision type, the method may further include determining target position parameters for the first robot and the second robot based on target running data of the first robot and the second robot.

[0063] In some embodiments, generating collision information for the first robot based on the collision type includes generating collision information for the first robot based on the collision type if the target position parameters meet predetermined position constraints.

[0064] In some examples, the target position parameters refer to position parameters relative to pre-defined position constraints. For example, the target position parameters may include a time for the robot to reach the first path point and / or the current position of the robot.

[0065] In some examples, the preset position constraints refer to preset conditions that constrain a particular position-identifying collision. For example, for a stay collision, the preset position constraints may include whether a robot that reaches a collision path point (e.g., a first path point) has the first path point as its end point. For an oncoming collision, the preset position constraints may include whether the distance between the first robot and the second robot is sufficiently short.

[0066] In some examples, different collision types may correspond to different preset position constraints, and setting the preset position constraints may reduce erroneous predictions of robot collision information. For example, robot A and robot B both pass through the same path point 5. If robot A's current position is path point 5 and robot B needs to continue moving, robot B needs two connecting edges to reach path point 5. If the preset distance threshold is set to 1, the distance between robot A and robot B is greater than the preset distance threshold 1, and therefore it can be determined that the preset position constraints are not satisfied between robot A and robot B, and therefore robot A and robot B will not collide at path point 5.

[0067] In some examples, the target position parameters may include a time to reach the same path point (e.g., the first path point), and the predetermined position constraints include the first robot reaching the same path point (e.g., the first path point) slower than the second robot and / or the difference in the time to reach the same path point (e.g., the first path point) between the first robot and the second robot is less than a predetermined time threshold.

[0068] In some instances, the same path point is the path point where the collision occurred, for example, if robot A and robot B both passed through a first path point, the first path point is the path point where the collision occurred.

[0069] Exemplarily, the preset time threshold refers to a preset minimum time interval during which the two robots do not collide at the first path point, i.e., if the difference in time between the first robot and the second robot reaching the first path point is less than the preset time threshold, a collision may occur between the first robot and the second robot.

[0070] For example, the preset time threshold may be set to 10 seconds. For example, if the times it takes for Robot A and Robot B to reach the first path point are 20 seconds and 15 seconds, respectively, the difference in the times it takes for Robot A and Robot B to reach the first path point is 5 seconds. Since the time difference of 5 seconds is smaller than the preset time interval of 10 seconds, Robot A and Robot B may collide with each other at the first path point.

[0071] For example, if robot A and robot B both pass a first path point and it is determined that the first path point is the end point of robot A but not that of robot B, if robot A arrives later than robot B, it is determined that there is no staying conflict between robot A and robot B, and if robot A arrives earlier than robot B, it is determined that there is a staying conflict between robot A and robot B. In other words, if the first robot arrives at the first path point later than the second robot, there is a possibility that there will be a collision between the first robot and the second robot.

[0072] In some examples, whether the path collision point is reached early or late can determine at least one of a stay collision, a crossing collision, an oncoming collision, and a follow-up collision, and similarly, the difference in time to reach the path collision point can determine at least one of a stay collision, a crossing collision, an oncoming collision, and a follow-up collision. The embodiments of the present disclosure are not limited thereto.

[0073] The embodiments of the present disclosure consider constraints in the time dimension by setting a predetermined constraint as whether the difference between the time to arrive at a robot path point early and the time to arrive at a robot path point late is less than a predetermined time threshold, thus making the final determined collision information more accurate.

[0074] In some embodiments, identifying a collision type between the first robot and the second robot based on the target driving data of the first robot and the second robot includes: identifying a driving direction of the first robot and the second robot based on the target driving data of the first robot and the second robot when it is determined based on the target driving data of the first robot and the second robot that the first robot and the second robot have passed through the same path edge; determining a collision type between the first robot and the second robot to be a follow-up collision when the driving directions of the first robot and the second robot are the same; determining a collision type between the first robot and the second robot to be a head-on collision when the driving directions of the first robot and the second robot are different; and determining a collision type between the first robot and the second robot to be a crossing collision when it is determined based on the target driving data of the first robot and the second robot that the first robot and the second robot do not pass through the same path edge.

[0075] In some examples, after it is determined that the first robot and the second robot have collided, the type of collision between the first robot and the second robot can be determined based on the target driving data. First, it may be determined whether the first robot and the second robot pass through the same path edge. If the first robot and the second robot pass through the same path edge, it may be further determined whether the driving directions of the first robot and the second robot are the same. If they are the same, it may be determined that the first robot and the second robot have a follow-up collision. If they are not the same, it may be determined that the first robot and the second robot have a head-on collision. If the first robot and the second robot do not pass through the same path edge, it may be determined that the first robot and the second robot have a crossing collision.

[0076] In some examples, the same path edge refers to any one of multiple path edges on the path to be traveled. For example, the same path edge that the first robot and the second robot passed through is the first path edge. Here, the same path edge (e.g., the first path edge) may include the first path point. The travel direction is determined based on the path to be traveled in the target travel data.

[0077] Illustratively, robots that have encountered a collision can be stored in a conflict set (e.g., conflictSet). For example, robots with different conflict types can be stored in different conflict sets, or robots with different conflict types can all be stored in one conflict set.

[0078] In some examples, if the current path point of robot A is N1 and the previous path point is N, the path edge passed by robot A can be represented as (N, N1), and if the current path point of another robot B is N and passes through (N, N1), and the distance between the current positions of robot A and robot B is 1 grid and is less than the preset distance threshold of 2 grids, if robot B is behind robot A, there will be a follow-up collision between robot A and robot B, and robot B can be stored in the collision set.

[0079] In some other examples, when the current path point of robot A is N and the next path point is N1, the path edge that robot A should travel is (N, N1), and when the current path point of another robot B is N1, the path edge that robot A should travel is (N1, N), that is, robot A and robot B pass through the same path edge (N, N1) in a 180-degree direction, so that there is a head-on collision between robot A and robot B, and robot B can be stored in the collision set.

[0080] In some other examples, if robot A's current path point is N1 and its next path point is N, and robot B's current path point is M and its next path point is N, then there is an intersection collision between robot A and robot B, and robot B can be stored in the collision set.

[0081] An embodiment of the present disclosure determines the collision type between the first robot and the second robot by identifying the first robot and the second robot based on the path points, path edges, and running direction, thereby improving the accuracy of generating collision information for the first robot and further improving the accuracy of determining the target robot.

[0082] In some embodiments, identifying a collision type between the first robot and the second robot based on the target driving data of the first robot and the second robot includes determining that the collision type between the first robot and the second robot is a stay collision if identifying, based on the target driving data of the first robot and the second robot, that the second robot has the first path point as its end point and the first robot does not have the first path point as its end point.

[0083] For example, the end point of a robot may refer to the end point of a path along which the robot should travel.

[0084] In some examples, when a first robot and a second robot pass through the same path point (e.g., the first path point) and a path collision exists, based on the target running data of the first robot and the second robot, it is identified whether the first robot and the second robot have the first path point as their end point; if the second robot has the first path point as its end point and the first robot does not have the first path point as its end point, it is determined that a stay collision exists for the first robot and that the second robot is a collision robot of the first robot.

[0085] For example, if it is determined that the second robot has the first path point as its end point and the first robot does not have the first path point as its end point, it can further determine whether the first robot arrives at the first path point later than the second robot, and if the first robot arrives at the first path point later than the second robot, it is determined that there is a stay collision between the first robot and the second robot at the first path point.

[0086] In some examples, it is determined that there is no staying collision between the first robot and the second robot when both the first robot and the second robot end at the first path point.

[0087] For example, if robot A and robot B pass through the same path point N, and robot A arrives earlier than robot B, with path point N as the path end point, there is a stay collision for robot B, and robot B can be stored in the collision set.

[0088] An embodiment of the present disclosure determines whether a stationary collision exists between the first robot and the second robot by identifying the end points of the first robot and the second robot, and subsequently improves the accuracy of generating collision information for the first robot, thereby further improving the accuracy of determining the target robot.

[0089] In some embodiments, after obtaining the travel data of the plurality of robots, the method further includes entering the travel information of the plurality of robots into a preset information table.

[0090] In some embodiments, predicting collision information for each robot based on the travel information for each robot includes traversing a preset information table and predicting collision information for each robot based on the travel information for each robot in the preset information table.

[0091] In some examples, the preset information table refers to a preset table for recording robot travel information. For example, the acquired travel information for multiple robots can be entered into the preset information table.

[0092] For example, after acquiring information on the directions of multiple robots, the information may be entered into a preset information table, and then when predicting collision information for each robot, the preset information table may be directly traversed and the collision information for each robot may be predicted based on the direction information for each robot that has been traversed. Alternatively, after acquiring information on the directions of multiple robots, the direction information for each robot may be directly read and the collision information for each robot may be predicted.

[0093] The embodiment of the present disclosure predicts collision information of robots based on the travel information of each robot obtained through traversal, and the obtained prediction results are more comprehensive and accurate, further ensuring the comprehensiveness of the travel information of each robot.

[0094] Step 206: Based on the collision information of each robot, the collision information of the robots whose collision type is the first collision type is statistically calculated, and based on the statistical results, the robot that meets the re-planning conditions corresponding to the first collision type is determined as the target robot.

[0095] For example, the first collision type may be any one of a plurality of collision types, such as an oncoming collision, a follow-up collision, an intersection collision, or a stop collision.

[0096] In some examples, the statistical results refer to results obtained by collecting statistics on collision information of robots that have experienced collisions. For example, the statistical information may include the number of collisions that have occurred for each robot. For example, the statistical information for robot A may include the fact that robot A has experienced three oncoming collisions and six crossing collisions. The statistical information for robot B may include the fact that robot B has experienced four crossing collisions and two stop collisions.

[0097] In some examples, the re-planning condition refers to a condition that determines that the robot needs to perform path re-planning, and the re-planning conditions corresponding to different collision types may be different.

[0098] Illustratively, robots that meet the re-planning conditions (ie, target robots) may be stored in a re-planning set (eg, rePlanSet).

[0099] In some embodiments, when the first collision type is a head-on collision, the step of collecting collision information of robots whose collision type is the first collision type based on the collision information of each robot and determining a robot with re-planning conditions corresponding to the first collision type as the target robot based on the statistical results includes the steps of: for at least one third robot with which a head-on collision has occurred, collecting statistics on the number of robots that have collided with each third robot based on the collision information of each third robot and obtaining the number of head-on collisions for each third robot; and determining the third robot with the highest number of head-on collisions as the target robot among the at least one third robot.

[0100] In some examples, the number of facing collisions refers to the number of facing collisions that occurred with any one robot (e.g., the third robot). For example, the number of facing collisions that occurred with robot A is 3, and the number of facing collisions that occurred with robot B is 5.

[0101] In some examples, the number of collisions corresponding to the same type of collision occurring between any two robots may be one or more. For example, if the number of robots that have experienced head-on collisions with robot A includes one robot B, two robots C, and one robot D, the number of head-on collisions for robot A will be four.

[0102] For example, the robot with which a head-on collision occurred may be called the third robot, and there may be multiple third robots, and the number of head-on collisions that occurred for each of the multiple third robots may be different. Of the multiple third robots, the third robot with the largest number of head-on collisions can be determined as the target robot.

[0103] In some embodiments, for at least one third robot with which a head-on collision has occurred, the step of collecting statistics on the number of robots that have collided with each third robot based on the collision information of the at least one third robot to obtain the number of head-on collisions for each third robot includes collecting statistics on the number of robots that have collided with each third robot based on the collision information of each third robot for at least one third robot in the collision set to obtain the number of head-on collisions for each third robot. After determining the third robot with the largest number of head-on collisions as the target robot, the method further includes removing the target robot from the collision set and storing the target robot in the re-planning set until no third robot with which a head-on collision has occurred exists in the collision set.

[0104] In some embodiments, performing path replanning for the target robot based on the first collision type includes performing path replanning for each target robot in the replanning set based on a head-on collision.

[0105] For example, a collision set refers to a set that records robots that have various collisions. For example, a collision set may store robots that have oncoming collisions, or robots that have crossing collisions.

[0106] In some examples, for any one robot in the collision set, the number of robots that have collided head-on with the robot is counted based on the collision information of the robot, where the counting of the number of robots may be when the robot has collided head-on with a specific robot one or more times.

[0107] For example, the target robot may be stored in a preset re-planning set rePlanSet, for example, the initial value of the re-planning set may be null.

[0108] For example, after determining the third robot with the largest number of opposing conflicts in the conflict set (conflictSet) as the target robot, the target robot can be moved from the conflict set conflictSet to the rePlanSet, i.e., the target robot is removed from the conflict set conflictSet and added to the rePlanSet.

[0109] In some examples, after completing the movement of the first target robot, it can continue to determine whether there are any third robots with which front-running collisions have occurred among the remaining third robots in the updated conflict set conflictSet (from which the target robot has been removed), and if so, determine the third robot with the largest number of front-running collisions as the second target robot, remove the second target robot from the conflict set conflictSet, and move it to the rePlanSet. This process is repeated until there are no third robots with front-running collisions in the conflict set conflictSet.

[0110] For example, after moving the third robot with the most number of on-coming collisions in the conflict set rePlanSet to the re-planned set rePlanSet, the number of on-coming collisions for each third robot in the conflict set rePlanSet is recalculated, and the third robot with the most number of on-coming collisions is moved to the re-planned set rePlanSet, and this is repeated until the third robot with the on-coming collision no longer exists in the conflict set conflictSet, or until the conflict set conflictSet is empty.

[0111] For example, the number of opposing collisions for each robot can be calculated using the following equation (1).

number

[0112] where c represents the collision type, opposite represents an opposing collision, i represents the robot number, n represents the size of the collision set conflictSet, and j represents the path point number of the incomplete path. Qtyci represents the number of collisions of type c for the i-th robot, and Qtyci,j represents the number of collisions of type c for the j-th path point for the i-th robot.

[0113] For example, robot A's oncoming collision robots include robot B and robot C, robot B's oncoming collision robots include robot A, and robot C's oncoming collision robots include robot A and robot D. In the first round of sorting, the conflict set is conflictSet={A,B,C} and the rePlan set is rePlanSet={empty}. If the conflict counts of robots A, B, and C are 2, 1, and 2, respectively, robot A can be selected as the target robot, robot A can be removed from conflictSet, and robot A can be added to rePlanSet. In the second round of sorting, conflictSet={B,C} and rePlanSet={A}. Since A has already been determined as the target robot, it no longer contributes to collisions. Therefore, the conflict counts of B and C are updated to 0 and 1, respectively. In this case, robot C can be determined as the target robot.

[0114] FIG. 4 is a flowchart of a multi-robot path planning method for head-on collision provided by some embodiments of the present disclosure. As shown in FIG. 4, the method includes the following steps 402 to 408.

[0115] Step 402: Determine the number of opposing collisions for each third robot in the conflictSet.

[0116] Step 404: The third robot with the largest number of on-coming collisions is determined as the target robot.

[0117] Step 406: Determine whether the conflictSet is empty, or whether the number of opposing collisions of each third robot is 0.

[0118] If conflictSet is empty or the number of face-to-face conflicts for each third robot is 0, then end. If conflictSet is not empty or the number of face-to-face conflicts for each third robot is not 0, then jump to step 408.

[0119] Step 408: The target robot is removed from the conflictSet and added to the rePlanSet.

[0120] Return to step 402.

[0121] The embodiments of the present disclosure reduce the number of robots in the collision set by removing the target robot from the collision set and then storing it in the re-planning set, which then facilitates statistics on the number of on-coming collisions for the remaining robots in the collision set, and then facilitates direct extraction and re-planning of the robots in the re-planning set, thereby improving the speed of re-planning for robots in which collisions exist.

[0122] In some embodiments, when the first collision type is a stay collision, the step of collecting collision information of robots whose collision type is the first collision type based on the collision information of each robot and determining a robot that meets the re-planning condition corresponding to the first collision type as the target robot based on the statistical results includes the step of, for the fourth robot with which a stay collision occurred, collecting statistics on the end point work time length of the robot that collided with the fourth robot based on the collision information of the fourth robot and determining the fourth robot as the target robot if the end point work time length exceeds a predetermined time length threshold.

[0123] For example, the fourth robot may be any one of the multiple robots with which a stationary collision occurs.

[0124] In some examples, the end point task time length refers to the length of time that the robot that collided with the fourth robot performs the task after reaching the end point of the route it is to travel. For example, if the robot that collided with the fourth robot is a container robot, after the container robot reaches the end point, it may perform container insertion and removal tasks, including raising and lowering forks and removing / returning containers. Therefore, the length of time used for raising and lowering forks and removing / returning containers is the end point task time length of the container robot.

[0125] In some examples, the preset time length threshold refers to a preset threshold for the time length of the end point task. For example, the preset time length threshold may be 1 minute. If the time length of the collision robot B of robot A working at the end point is 2 minutes, the preset time length threshold (1 minute) is exceeded, and therefore robot A can be determined as the target robot.

[0126] In some examples, if there are multiple robots that have collided with robot A at a specific path point, the robot that has been working at the end point for the longest time among the multiple robots may first be determined, and it is determined whether the end point working time corresponding to that robot exceeds a predetermined time length threshold. If so, robot A is determined to be the target robot.

[0127] For example, if there is a staying conflict on the forward path of the fourth robot, and the time length that the corresponding colliding robot works at the end point exceeds a preset time length threshold, the fourth robot is set as the target robot, i.e., the fourth robot is removed from the conflictSet and added to the rePlanSet.

[0128] In some embodiments, when the first collision type includes a crossing collision and a follow-up collision, the step of collecting collision information of robots whose collision type is the first collision type based on the collision information of each robot and determining a robot that meets the re-planning conditions corresponding to the first collision type as the target robot based on the statistical results includes the steps of: for at least one fifth robot that has experienced a crossing collision and / or a follow-up collision, collecting statistics on the number of robots that have experienced crossing collisions and follow-up collisions with each fifth robot based on the collision information of each fifth robot, and obtaining the total number of crossing collisions and follow-up collisions for each fifth robot; and determining the fifth robot with the largest total number of crossing collisions and follow-up collisions as the target robot among the at least one fifth robot.

[0129] In some examples, the total number of crossing collisions and follow-up collisions refers to the sum of the number of crossing collisions with any one robot (e.g., the fifth robot) and the number of follow-up collisions with that robot. For example, if the number of crossing collisions with robot A is 3 and the number of follow-up collisions with robot A is 2, the total number of crossing collisions and follow-up collisions with robot A is 5. If the number of crossing collisions with robot B is 1 and the number of follow-up collisions with robot B is 2, the total number of crossing collisions and follow-up collisions with robot B is 3.

[0130] In some examples, the number of corresponding collisions that have crossover collisions and / or follow-up collisions with any two robots may be one or more. For example, the number of robots that have crossover collisions and / or follow-up collisions with robot A may be one robot B, two robots C, and one robot D, i.e., the total number of collisions that have crossover collisions and follow-up collisions with robot A is four.

[0131] For example, a robot with which a crossover collision and a follow-up collision occurred may be referred to as the fifth robot, and there may be multiple fifth robots, and the total number of crossover collisions and follow-up collisions with each fifth robot may be different. Among the multiple fifth robots, the fifth robot with the largest total number of crossover collisions and follow-up collisions against each other may be determined as the target robot.

[0132] In some embodiments, the step of tallying, for at least one fifth robot that has experienced a crossing collision and / or a follow-up collision, the number of robots that have experienced a crossing collision and a follow-up collision with each fifth robot based on the collision information of each fifth robot to obtain a total number of crossing collisions and follow-up collisions for each fifth robot includes the step of tallying, for at least one fifth robot in the collision set, the number of robots that have experienced a crossing collision and a follow-up collision with each fifth robot based on the collision information of each fifth robot to obtain a total number of crossing collisions and follow-up collisions for each fifth robot.

[0133] In some embodiments, after determining the fifth robot having the largest total number of crossover collisions and follow-up collisions among at least one fifth robot as the target robot, the method further includes removing the target robot from the collision set and storing the target robot in the re-planning set until there are no fifth robots in the collision set whose total number is greater than a predetermined number threshold, or until the number of robots in the re-planning set exceeds a predetermined number.

[0134] For example, the fifth robot in the conflict set (conflictSet) that has the largest total number of intersection collisions and follow-up collisions is determined as the target robot, and the target robot is moved from the conflictSet to the rePlanSet, i.e., the target robot is removed from the conflictSet and added to the rePlanSet.

[0135] In some examples, after completing the movement of the first target robot, it is continued to determine whether there is a fifth remaining robot in the updated conflictSet (from which the target robot has been removed) whose total number of intersection and follow-up collisions is greater than a preset number threshold, and if so, move that robot from the conflict set conflictSet into the re-plan set rePlanSet. This is repeated until the total number of intersection and follow-up collisions in the conflict set conflictSet is less than the preset number threshold, or until the number of robots in the re-plan set rePlanSet exceeds the preset number.

[0136] In some examples, the preset number threshold refers to a preset threshold for the sum of the number of intersection collisions and follow-up collisions. For example, if the preset number threshold is 4 and the sum of the number of intersection collisions and follow-up collisions with robot A is 5, there is no need to determine a target robot in the conflict set conflictSet because the sum is greater than the preset conflict number threshold of 4.

[0137] For example, the total number of intersection collisions and follow-up collisions for each robot can be calculated using the following equation (2):

number

[0138] where c represents the collision type, follow represents a follow-up collision, cross represents a crossing collision, i represents the robot number, n represents the conflictSet size, and j represents the path point number of the incomplete path. Qtyci represents the number of collisions of type c for the i-th robot, and Qtyci,j represents the number of collisions of type c for the j-th path point for the i-th robot.

[0139] In some examples, the number of robots in the re-planning set rePlanSet exceeding a preset number may include the number of target robots in the re-planning set rePlanSet exceeding a preset number, or the number of target robots in the re-planning set rePlanSet exceeding an upper percentage limit.

[0140] For example, one target robot threshold may be preset for the rePlanSet set, e.g., 10, so that when the number of target robots in the rePlanSet set reaches 10, there is no need to store the target robots in the rePlanSet set. Alternatively, one percentage threshold may be preset for the rePlanSet set, e.g., if the percentage threshold is 10%, then when the number of robots in the conflict set conflictSet is 80, there is no need to move the target robots determined in the conflict set conflictSet to the rePlanSet set.

[0141] In some embodiments, performing path replanning for the target robot based on the first collision type includes performing path replanning for each target robot in the replanning set based on an intersection collision and a follow-up collision.

[0142] In some cases, intersection and follow-up collisions can be resolved by slowing down or stopping the robot that arrived last. If the total number of intersection and follow-up collisions exceeds a preset threshold, congestion may occur. In this case, path replanning can be performed using the robot that arrived last as the target robot. If the total number of intersection and follow-up collisions is below the preset threshold, the impact can be resolved by slowing down or stopping the robot. For example, intersection and follow-up collisions occur more frequently than on-coming collisions and oncoming collisions, and replanning all of them would require a large amount of calculation and be ineffective. Therefore, path replanning can be performed for robots whose total number of intersection and follow-up collisions exceeds a preset threshold (i.e., some robots), or all routes where intersection and / or follow-up collisions exist can be replanned, or a method can be selected according to the actual situation.

[0143] In addition, removing the target robot from the collision set and storing the target robot in the re-planning set may also be removing the target robot from the collision set, storing the identifier or name of the target robot and the corresponding travel information in the re-planning set, and then performing path re-planning for each target robot in the re-planning set based on the intersection collision and follow-up collision.

[0144] FIG. 5 is a flowchart of the intersection and follow-up collision of the multi-robot path planning method provided by some embodiments of the present disclosure. As shown in FIG. 5, the method includes the following steps 502 to 508.

[0145] Step 502: Determine the sum of the number of intersection collisions and follow-up collisions for each fifth robot in the conflictSet.

[0146] Step 504: Determine the fifth robot with the largest number of crossing collisions and follow-up collisions as the target robot.

[0147] Step 506: Determine whether there is a fifth robot in the collision set whose total number is greater than a preset number threshold, or determine whether the number of robots in the re-planning set exceeds a preset number.

[0148] If there is no fifth robot in the collision set whose total number is greater than the preset threshold number, or if the number of robots in the re-planning set exceeds the preset number, then the process ends. If there is a fifth robot in the collision set whose total number is greater than the preset threshold number, or if the number of robots in the re-planning set exceeds the preset number, then the process continues to step 508.

[0149] Step 508: The target robot is removed from the conflictSet and added to the rePlanSet.

[0150] Return to step 502.

[0151] Step 208: Based on the first collision type, perform path replanning for the target robot.

[0152] In some instances, different collision types may correspond to different route replanning strategies.

[0153] In some embodiments, the step of performing path replanning for the target robot based on the first collision type includes the steps of determining a basic traffic cost corresponding to the first collision type; predicting a probability that at least one colliding robot will collide with the target robot at a target path point, where the target path point is a path point within a predetermined range of the current position of the target robot; determining a traffic cost generated by each colliding robot for the target robot at the target path point based on the basic traffic cost and the probability of a collision occurring; and performing path replanning for the target robot based on each traffic cost.

[0154] In some examples, the step of determining different basic transportation costs corresponding to each collision type includes the steps of: determining a plurality of routes having a total penalty value based on the current position of the target robot; and determining a route from the plurality of routes whose total penalty value is less than a predetermined basic transportation cost threshold as a replanned route; or searching surrounding nodes based on a route point corresponding to the current position of the robot, obtaining route information of other robots in the surrounding nodes, thereby determining the collision type; and based on the different basic transportation costs corresponding to different collision types, selecting a route point from the current route point to the next route point that satisfies the requirement that the current route point and the next route point meet the predetermined basic transportation cost threshold as the next route point, and thereby moving based on the next route point until the end point is reached.

[0155] In some examples, the base traffic cost is used to indicate the base traffic cost due to a collision corresponding to a collision type. For example, different base traffic costs may be set for oncoming collisions, crossing collisions, follow-up collisions, and stay-at-home collisions.

[0156] For example, a follow-up collision slows down the traveling speed of the robot behind, but usually does not result in a deadlock. Therefore, the basic transportation cost corresponding to a follow-up collision may be set low. Crossing collisions usually occur at intersections, and robots may slow down, stop to avoid the collision, or accelerate, thereby affecting their traveling speed. Therefore, the basic transportation cost corresponding to a crossing collision may be higher than that of a follow-up collision. Oncoming collisions may also cause deadlocks. For example, in some narrow alley areas, when an oncoming collision occurs, one robot must turn back and replan its route. Therefore, the cost of oncoming collisions is high. That is, the basic transportation cost corresponding to an oncoming collision may be higher than that of a crossing collision. In addition, in a stay collision, when other robots reach the end point, they often continue to perform tasks such as lifting and lowering shelves or removing containers or pallets, which may cause the blocked robot to wait for a long time. Therefore, the basic transportation cost corresponding to a stay collision may be set high. Therefore, the basic transportation costs of each collision type can be classified into follow-up collisions, crossing collisions, oncoming collisions, and stay collisions in order of decreasing order.

[0157] In some examples, the target path point refers to a path point within a preset range of the target robot's current position, and may be a path point around the path point corresponding to the target robot's current position.

[0158] In some examples, the travel cost generated by each robot for the target robot at the target path point is determined based on the basic travel cost and the probability of a collision. For example, when the current robot is currently located at path point L, there are surrounding path points M and N, and when searching for the surrounding path point M as the target path point, if the collision type corresponding to colliding robot A is face-off, the corresponding collision probability is P1 and the basic travel cost is t1, if the collision type corresponding to colliding robot B is crossing, the corresponding collision probability is P2 and the basic travel cost is t2, and if the collision type corresponding to colliding robot C is follow-up, the corresponding collision probability is P3 and the basic travel cost is t3. Therefore, the traffic cost generated by the collision robot A is t1*P1, the traffic cost generated by the collision robot B is t2*P2, and the traffic cost generated by the collision robot C is t3*P3, so the total traffic cost of the target route point (route point M) is t1*P1+t2*P2+t3*P3, or when searching for the surrounding route point N as the target route point, the total traffic cost of the target route point N is calculated, and from the total traffic costs corresponding to each surrounding route point, the target route point that meets the preset traffic cost threshold is selected as the next route point.

[0159] For example, after determining the transportation costs of route points M and N, the robot may continue to search for surrounding route points using route points M and N as the current route points until it reaches the end point of the route that the target robot should travel, which requires replanning.

[0160] In some examples, the route may be re-planned based on the transportation cost and selected based on the determined route length, so that the re-planned route meets a preset route length threshold, and a short route length allows the mobile transport task to be completed quickly, saving robot travel resources and occupied route resources.

[0161] The embodiment of the present disclosure selects a target path point that meets a preset traffic cost threshold from multiple target path points by searching the total traffic cost of the target path points, and repeats this process until all path points in the re-planned path meet the preset traffic cost threshold, thereby realizing path re-planning for the target robot, and the re-planned path also fully ensures the safety of the target robot's movement.

[0162] FIG. 6 is a schematic diagram of another multi-robot path planning method provided by some embodiments of the present disclosure. As shown in FIG. 6, the method includes the following steps 602 to 616.

[0163] Step 602: Trigger collision detection according to a preset detection cycle, and obtain information on how the multiple robots should move.

[0164] Step 604: Enter the travel information of the multiple robots into a preset information table.

[0165] Step 606: Determine the collision information of each robot within the preset collision detection range.

[0166] Step 608: Robots whose collision count is greater than 0 are added to conflictSet, and rePanSet is set to an empty set.

[0167] Step 610: Add the target robots that satisfy the re-planning condition for on-coming collision to rePanSet.

[0168] Step 612: Add the target robots that satisfy the stay collision re-planning condition to the rePanSet.

[0169] Step 614: Add target robots that satisfy the re-planning conditions for intersection and follow-up collision to rePanSet.

[0170] Step 616: Path replanning is performed for the target robots in rePanSet.

[0171] In the embodiment of the present disclosure, the order in which steps 610, 612, and 614 are performed is not limited.

[0172] 7A is a schematic diagram of another multi-robot path planning method provided by some embodiments of the present disclosure, and FIG. 7B is a schematic diagram of robot navigation information provided by some embodiments of the present disclosure. Hereinafter, the multi-robot path planning method will be described by way of an example in combination with FIG. 7A and FIG. 7B. As shown in FIG. 7A, the method includes the following steps 702 to 710.

[0173] Step 702: With a detection period of 3 seconds, the travel information for robot A is obtained as {4→5→6→3}, the travel information for robot B is {6→5→2}, and the travel information for robot C is {3→6→9}.

[0174] For example, the travel information for robots A, B, and C is as shown in FIG. 7B.

[0175] Step 704: Within the six grids of the preset collision detection range, it is determined that the target driving data of robot A is {4→5→6→3}, the target driving data of robot B is {6→5→2}, and the target driving data of robot C is {3→6}.

[0176] Step 706: Determine that the collisions existing at robot A include one oncoming collision with robot B and one staying collision with robot C, and that the collisions existing at robot B include one oncoming collision with robot A.

[0177] Step 708: For an oncoming collision, determine that robot B is the target robot to perform path replanning, and for a staying collision, determine that robot A is the robot to perform path replanning.

[0178] Step 710: The basic traffic cost corresponding to the oncoming collision is 5, and the basic traffic cost corresponding to the follow-up collision is 2, so that route replanning is performed for robot A to obtain {4→1→2→3}, and route replanning is performed for robot B to obtain {6→9→8→5→2}.

[0179] In an embodiment of the present disclosure, before a collision between robots occurs, a possible collision is first predicted, and robots that are likely to collide are selected. A target robot whose statistical results of collision information meet the re-planning conditions corresponding to the first collision is selected, and path re-planning is performed for it. In other words, the target robot is re-planned before a collision occurs, and the occurrence of a collision can be rationally avoided. Furthermore, the target robot for which path re-planning is performed meets the re-planning conditions, and the efficiency of re-planning is higher.

[0180] FIG. 8 is a schematic diagram of a multi-robot path planning apparatus provided by some embodiments of the present disclosure. As shown in FIG. 8 , the multi-robot path planning apparatus 800 includes an acquisition module 802, a prediction module 804, a decision module 806, and a re-planning module 808.

[0181] The acquisition module 802 is configured to acquire information on how the multiple robots should travel.

[0182] The prediction module 804 is configured to predict collision information for each robot based on the travel information for each robot, where the collision information includes a collision type in which the robot collides with another robot.

[0183] The determination module 806 is configured to, based on the collision information of each robot, compile statistics on the collision information of robots whose collision information is of a first collision type, and, based on the statistical results, determine a robot that meets the re-planning condition corresponding to the first collision type as a target robot, where the first collision type is any one of a plurality of collision types.

[0184] The re-planning module 808 is configured to perform path re-planning for the target robot based on the first collision type.

[0185] In some embodiments, the prediction module 804 is configured to: determine target driving data of each robot within a predetermined collision detection range based on the driving information of each robot; and determine that the first robot and the second robot have collided if it is identified based on the target driving data of the first robot and the second robot that the first robot and the second robot will pass through a first path point within a predetermined time period, where the first robot and the second robot are any two robots; identify a collision type between the first robot and the second robot based on the target driving data of the first robot and the second robot; and generate collision information for the first robot based on the collision type.

[0186] In some embodiments, the multi-robot path planner 800 further includes a target position parameter determination module configured to determine target position parameters of the first robot and the second robot based on the target driving data of the first robot and the second robot, and the prediction module 804 configured to generate collision information for the first robot based on the collision type if the target position parameters meet predetermined position constraints.

[0187] In some embodiments, the target position parameters include a time to reach the path point, and the predetermined position constraints include the first robot reaching the first path point slower than the second robot, and / or the difference in the time it takes the first robot and the second robot to reach the first path point is less than a predetermined time threshold.

[0188] In some embodiments, the prediction module 804 is configured to: identify the driving directions of the first robot and the second robot based on the target driving data of the first robot and the second robot when it is identified, based on the target driving data of the first robot and the second robot, that the first robot and the second robot will pass through the same path edge; determine the collision type of the first robot and the second robot to be a follow-up collision when the path edge includes a path point, passes through the same path edge, and the driving directions of the first robot and the second robot are the same; determine the collision type of the first robot and the second robot to be a head-on collision when the driving directions of the first robot and the second robot are different; and determine the collision type of the first robot and the second robot to be a crossing collision when it is identified, based on the target driving data of the first robot and the second robot, that the driving directions of the first robot and the second robot will not pass through the same path edge.

[0189] In some embodiments, the prediction module 804 is configured to determine, based on the target driving data of the first robot and the second robot, that if it identifies that the second robot ends at the first path point and the first robot does not end at the first path point, the collision type between the first robot and the second robot is a stay collision.

[0190] In some embodiments, the first collision type includes a head-on collision, and the determination module 806, for at least one third robot with which a head-on collision has occurred, calculates the number of robots that have collided with each third robot based on the collision information of each third robot, obtains the number of head-on collisions for each third robot, and determines the third robot with the highest number of head-on collisions among the at least one third robot as the target robot.

[0191] In some embodiments, the determination module 806 is configured to, for at least one third robot in the collision set, count the number of robots that have collided with each third robot based on the collision information of each third robot, and obtain the number of head-on collisions for each third robot, where the collided robots are stored in the collision set. The multi-robot path planner 800 further includes a first execution module configured to remove the target robot from the collision set and store the target robot in a re-planning set until the third robot with which the head-on collision occurred is no longer present in the collision set, and the re-planning module 808 is configured to perform path re-planning for each target robot in the re-planning set based on the head-on collisions.

[0192] In some embodiments, the first collision type includes a stay collision, and the determination module 806 is configured to, for the fourth robot with which the stay collision has occurred, calculate the end point task time length between the fourth robot and the robot with which the stay collision has occurred based on the collision information of the fourth robot, and determine the fourth robot as the target robot if the end point task time length exceeds a predetermined time length threshold.

[0193] In some embodiments, the first collision type includes a crossing collision and a follow-up collision, and the determination module 806 is configured to, for at least one fifth robot that has experienced a crossing collision and / or a follow-up collision, calculate the number of robots that have experienced crossing collisions and follow-up collisions with each fifth robot based on the collision information of each fifth robot, obtain a total number of crossing collisions and follow-up collisions for each fifth robot, and determine the fifth robot with the largest total number of crossing collisions and follow-up collisions among the at least one fifth robot as the target robot.

[0194] In some embodiments, the determination module 806 is configured to, for at least one fifth robot in the collision set, calculate the number of robots that have crossover collisions and follow-up collisions with each fifth robot based on the collision information of each fifth robot to obtain a total number of crossover collisions and follow-up collisions for each fifth robot, where the collided robots are stored in the collision set. The multi-robot path planner 800 further includes a second execution module configured to remove the target robot from the collision set and store the target robot in the re-planning set until there are no fifth robots in the collision set whose total number is greater than a predetermined number threshold or until the number of robots in the re-planning set exceeds a predetermined number. The re-planning module 808 is configured to perform path re-planning for each target robot in the re-planning set based on the crossover collisions and follow-up collisions.

[0195] In some embodiments, the re-planning module 808 is configured to determine a basic traffic cost corresponding to the first collision type, predict the probability that at least one colliding robot will collide with the target robot at a target path point, where the target path point is a path point within a predetermined range of the current position of the target robot, respectively determine the traffic costs generated by each colliding robot for the target robot at the target path point based on the basic traffic cost and the probability of a collision occurring, and perform path re-planning for the target robot based on each traffic cost.

[0196] In some embodiments, the multi-robot path planner 800 further includes an entry module configured to enter travel information of the multiple robots into a preset information table, and the prediction module 804 is configured to traverse the preset information table and predict collision information of each robot based on the travel information of each robot in the preset information table.

[0197] The technical solution for the multi-robot path planning device provided in the above embodiments is based on the same concept as the technical solution for the multi-robot path planning method. For details not detailed in the technical solution for the multi-robot path planning device, please refer to the details explained in the technical solution for the multi-robot path planning method. Furthermore, each component of the device embodiments may be understood as a functional module that must be created to implement each step in the program flow or each step in the method, and each functional module is not limited to an actual functional division or separation. A device claim defined by such a set of functional modules may be understood as a functional module architecture that implements the solution primarily through a computer program described in the specification, and should not be understood as an actual device that implements the solution primarily through a hardware system.

[0198] 9 is a schematic diagram of a computing device provided in accordance with some embodiments of the present disclosure. As shown in FIG. 9, the computing device 900 includes a memory 910 and a processor 920. The processor 920 and the memory 910 are connected by a bus 930, and a database 950 is used to store data.

[0199] In some examples, computing device 900 further includes an access device 940 that enables computing device 900 to communicate over one or more networks 960. Examples of these networks include a combination of communication networks such as a Public Switched Telephone Network (PSTN), a Local Area Network (LAN), a Wide Area Network (WAN), a Personal Area Network (PAN), the Internet, and the like. The access device 940 may include any type of network interface, wired or wireless, such as one or more of a network interface card (NIC, Network Interface Controller), such as an IEEE 802.11 Wireless Local Area Network (WLAN, Wireless Local Area Networks) radio interface, a World Interoperability for Microwave Access (Wi-MAX, World Interoperability for Microwave Access) interface, an Ethernet interface, a Universal Serial Bus (USB, Universal Serial Bus) interface, a cellular network interface, a Bluetooth (registered trademark) interface, a Near Field Communication (NFC, Near Field Communication) interface, etc.

[0200] In some examples, the above components of computing device 900, and other components not shown in Figure 9, may be connected to each other via a bus or the like. For example, the block diagram of the computing device structure shown in Figure 9 is for illustrative purposes only and does not limit the scope of the present disclosure. Those skilled in the art may add or substitute other components.

[0201] In some examples, computing device 900 may be any type of fixed or mobile computing device, such as a mobile computer or mobile computing device (e.g., tablet computer, personal digital assistant, laptop, notebook computer, netbook, etc.), a mobile phone (e.g., smartphone), a wearable computing device (e.g., smart watch, smart glasses, etc.) or other type of mobile device, or a fixed computing device such as a desktop computer or PC. Computing device 900 may also be a mobile server or a fixed server.

[0202] The processor 920 is used to execute the computer-readable instructions of the multi-robot path planning method.

[0203] It should be noted that the technical solution of the computing device 900 provided in the above embodiment and the technical solution of the above multi-robot path planning method belong to the same concept, and for the contents not detailed in the technical solution of the computing device, please refer to the description of the technical solution of the above multi-robot path planning method.

[0204] In some examples, some embodiments of the present disclosure further provide a computer-readable storage medium having stored thereon computer instructions that, when executed by a processor, are used in a multi-robot path planning method.

[0205] It should be noted that the technical solution of the computer-readable storage medium provided by the above embodiment and the technical solution of the above multi-robot path planning method belong to the same structure, and for contents not detailed in the technical solution of the storage medium, please refer to the description of the technical solution of the above multi-robot path planning method.

[0206] The multi-robot path planning apparatus, computing device, and computer-readable storage medium provided by the embodiments of the present application can all be used to execute the corresponding multi-robot path planning methods provided above. Therefore, the beneficial effects that can be achieved by them should be referred to the beneficial effects of the corresponding methods provided above, and detailed descriptions thereof will be omitted here.

[0207] The foregoing describes specific embodiments of the present disclosure. Other embodiments are within the scope of the following claims. In some cases, the actions or steps recited in the claims can be performed in a different order than the order shown in the examples and still achieve desirable results. Also, the processes illustrated in the figures do not require the particular order shown or connected order to achieve desirable results. In some embodiments, multitasking and parallel processing are also possible or advantageous.

[0208] The computer instructions include computer program code, which may be in source code form, object code form, an executable file, or some intermediate form. The computer-readable medium includes any entity or device that can carry the computer program code, such as a storage medium, a USB memory, a mobile hard disk, a magnetic disk, an optical disk, a computer memory, a read-only memory (ROM), a random access memory (RAM), an electrical carrier signal, an electrical communication signal, and a software distribution medium.

[0209] Although each of the method embodiments described above is expressed as a combination of a series of operations for ease of explanation, those skilled in the art will appreciate that the present disclosure is not limited by the order of operations described, as some steps may be performed in other orders or simultaneously. Furthermore, those skilled in the art will appreciate that the embodiments described in the specification are preferred embodiments, and that the associated operations and modules are not necessarily required for the present disclosure.

[0210] In the above embodiments, the description of each embodiment has its own emphasis, and for the parts not detailed in a specific embodiment, please refer to the relevant descriptions of other embodiments.

[0211] The above-disclosed examples of the present disclosure are intended to facilitate the explanation of the present disclosure. The selectable examples are not all detailed, and the disclosure is not limited to the specific embodiments. Obviously, various modifications and variations are possible within the scope of the present disclosure. The present disclosure selects these examples to better explain the principles and practical applications of the present disclosure, thereby enabling those skilled in the art to understand and utilize the present disclosure. The present disclosure is limited only by the claims and their full scope of equivalents.

Claims

1. 1. A multi-robot path planning method, comprising: acquiring information on how a plurality of robots should travel; a step of predicting collision information of each of the robots based on travel information of each of the robots, the collision information including a collision type of a collision between the robot and another robot; a step of collecting statistics of collision information of robots whose collision type is a first collision type based on the collision information of each of the robots, and determining a robot that meets a re-planning condition corresponding to the first collision type as a target robot based on the statistical result, wherein the first collision type is any one of the plurality of collision types; performing path replanning for the target robot based on the first collision type; A multi-robot path planning method comprising:

2. The step of predicting collision information of each of the robots based on travel information of each of the robots includes: determining target travel data within a preset collision detection range of each of the robots based on travel information of each of the robots; a step of determining that the first robot and the second robot are colliding when it is identified based on the target traveling data of the first robot and the second robot that the first robot and the second robot have passed through the same path point within a preset period, the step being that the first robot and the second robot are any two robots among the plurality of robots; identifying a collision type between the first robot and the second robot based on target running data of the first robot and the second robot; generating collision information of the first robot based on the collision type; 10. The method of claim 1, comprising:

3. Before the step of generating collision information of the first robot based on the collision type, the method further comprises: determining target position parameters of the first robot and the second robot based on target travel data of the first robot and the second robot; The step of generating collision information of the first robot based on the collision type includes: The method of claim 2 , further comprising generating collision information for the first robot based on the collision type if the target position parameters meet preset position constraints.

4. the target location parameters include a time to reach the path point; 4. The method of claim 3, wherein the predetermined position constraints include the first robot arriving at the path point slower than the second robot, and / or the difference in the time it takes the first robot and the second robot to arrive at the path point is less than a predetermined time threshold.

5. The step of identifying a collision type between the first robot and the second robot based on target traveling data of the first robot and the second robot includes: if it is identified based on the target travel data of the first robot and the second robot that the first robot and the second robot will pass through the same path edge, identifying the travel directions of the first robot and the second robot based on the target travel data of the first robot and the second robot, wherein the path edge includes the path point; determining that a collision type between the first robot and the second robot is a follow-up collision when the running directions of the first robot and the second robot are the same; determining that a collision type between the first robot and the second robot is a head-on collision when the first robot and the second robot are traveling in different directions; determining, based on the target traveling data of the first robot and the second robot, that the first robot and the second robot do not pass through the same path edge, that a collision type between the first robot and the second robot is an intersection collision; 3. The method of claim 2, comprising:

6. The step of identifying a collision type between the first robot and the second robot based on target traveling data of the first robot and the second robot includes:

3. The method of claim 2, further comprising: determining, based on the target driving data of the first robot and the second robot, if it is identified that the second robot ends at the path point and the first robot does not end at the path point, that a collision type between the first robot and the second robot is a stay collision.

7. the first crash type includes a head-on crash; The step of calculating the collision information of the robots whose collision type is a first collision type based on the collision information of each of the robots, and determining, based on the statistical result, a robot that meets the re-planning condition corresponding to the first collision type as a target robot, includes: For at least one third robot with which a head-on collision has occurred, calculating the number of robots that have collided with each of the third robots based on the collision information of each of the third robots, and acquiring the number of head-on collisions for each of the third robots; determining, as the target robot, the third robot having the largest number of opposing collisions among the at least one third robot; 7. The method of claim 1, comprising:

8. The step of collecting statistics on the number of robots that have collided with each of the third robots based on the collision information of each of the third robots with respect to at least one of the third robots that has experienced a head-on collision and acquiring the number of head-on collisions of each of the third robots includes: a step of counting the number of robots that have collided with each of the third robots in a collision set based on collision information of each of the third robots, and acquiring the number of collisions of each of the third robots in a collision set, wherein the collision set stores the robots that have collided; After determining the third robot having the largest number of opposing collisions as the target robot among the at least one third robot, the method further comprises: and further comprising a step of deleting the target robot from the collision set and storing the target robot in a re-planning set until the third robot with which a collision has occurred is no longer present in the collision set; The step of re-planning a path for the target robot based on the first collision type includes: The method of claim 7 , further comprising the step of performing path replanning for each target robot in the replanning set based on the on-coming collisions.

9. the first collision type includes a stay collision; The step of calculating the collision information of the robots whose collision type is a first collision type based on the collision information of each of the robots, and determining, based on the statistical result, a robot that meets the re-planning condition corresponding to the first collision type as a target robot, includes: a step of collecting statistics of the end point task time length of the fourth robot with which the collision occurred, based on the collision information of the fourth robot; determining the fourth robot as the target robot when the end point task time length exceeds a preset time length threshold; 7. The method of claim 1, comprising:

10. the first collision type includes an intersection collision and a follow-up collision; The step of calculating the collision information of the robots whose collision type is a first collision type based on the collision information of each of the robots, and determining, based on the statistical result, a robot that meets the re-planning condition corresponding to the first collision type as a target robot, includes: For at least one fifth robot in which a crossing collision and / or a follow-up collision has occurred, calculating the number of robots that have crossed and / or followed-up collided with each of the fifth robots based on the collision information of each of the fifth robots, and obtaining a total number of crossing collisions and follow-up collisions for each of the fifth robots; determining, as the target robot, the fifth robot having the largest total number of crossover collisions and follow-up collisions among the at least one fifth robot; 7. The method of claim 1, comprising:

11. For at least one fifth robot in which a crossing collision and / or a follow-up collision has occurred, the step of calculating the number of robots that have crossed and / or followed-up collided with each of the fifth robots based on the collision information of each of the fifth robots to obtain the total number of crossing collisions and follow-up collisions of each of the fifth robots includes: For at least one fifth robot in a collision set, a step of calculating the number of robots that have crossing collisions and follow-up collisions with each fifth robot based on the collision information of each fifth robot to obtain a total number of crossing collisions and follow-up collisions with each fifth robot, wherein the collision set stores the robots that have collided; After determining, as the target robot, the fifth robot having the largest total number of crossover collisions and follow-up collisions among the at least one fifth robot, the method further comprises: removing the target robot from the collision set and storing the target robot in the re-planning set until the fifth robot whose total number is greater than a predetermined number threshold is no longer present in the collision set or the number of robots in the re-planning set exceeds a predetermined number; The step of re-planning a path for the target robot based on the first collision type includes: The method of claim 10 , further comprising performing path replanning for each target robot in the replanning set based on the intersection collisions and follow-up collisions.

12. The step of re-planning a path for the target robot based on the first collision type includes: determining a base traffic cost corresponding to the first collision type; predicting a probability that at least one collision robot will collide with the target robot at a target path point, the target path point being a path point within a preset range of a current position of the target robot; determining a travel cost incurred by each of the collision robots relative to the target robot at the target path point based on the basic travel cost and the probability of collision; replanning a path for the target robot based on each of the transportation costs; 10. The method of claim 1, comprising:

13. After the step of acquiring information on how the plurality of robots should travel, the method further comprises: further comprising a step of entering information on how the plurality of robots should travel into a preset information table; The step of predicting collision information of each of the robots based on travel information of each of the robots includes:

2. The method according to claim 1, further comprising the step of traversing the preset information table and predicting collision information for each of the robots based on the travel information for each of the robots in the preset information table.

14. 1. A multi-robot path planning device, comprising: an acquisition module configured to acquire information on how the plurality of robots should travel; a prediction module configured to predict collision information of each of the robots based on travel information of each of the robots, the collision information including a collision type of a collision between the robot and another robot; a determination module configured to collect collision information of robots of a first collision type based on the collision information of each of the robots, and determine a robot that meets a re-planning condition corresponding to the first collision type as a target robot based on the statistical result, wherein the first collision type is any one of a plurality of collision types; a re-planning module configured to perform path re-planning for the target robot based on the first collision type; A multi-robot path planning device including:

15. 1. A computing device comprising: Includes memory and a processor, 14. A computing device wherein the memory stores computer-readable instructions and the processor executes the computer-readable instructions to implement the steps of a multi-robot path planning method according to any one of claims 1 to 13.

16. 14. A computer-readable storage medium having stored thereon computer instructions which, when executed by a processor, cause the steps of the multi-robot path planning method of any of claims 1 to 13 to be implemented.

Citation Information

Patent Citations

  • System for planning path for moving robot

    JP2005032196A

  • Robot control unit

    JP2006133863A

  • Robot control device

    JP2006326703A

  • Control device and control method for mobile robot

    JP2019021202A

  • Mobile robot control system and mobile robot control method

    JP2020115397A