Robot Path Planning Method, Apparatus and Electronic Device
Through the improved A* algorithm that subdivides conflict types and calculates traffic costs, the problem of path conflict in multi-robot scenarios is solved, and flexible path planning is realized in complex environments.
Patent Information
- Application Number
- CN202210074429.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-01-21
- Publication Date
- 2025-07-18
- Estimated Expiration
- 2042-01-21
AI Technical Summary
The existing A* pathfinding algorithm is difficult to flexibly handle complex path conflicts in multi-robot scenarios, especially in complex environments such as double-way roads, and cannot effectively coordinate path resource conflicts between robots.
By obtaining path information of other robots in the environment, subdividing conflict types are opposite, cross, follow and stay, calculating traffic costs based on the conflict types, and improving the A* algorithm to determine the total cost of the node.
Achieve flexibility in multi-robot path planning in complex environments, allowing the application of multiple scenarios such as dual-way streets, and avoiding the limitations of single-way street rules.
Smart Images

Figure CN114527751B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the technical field of path planning, and particularly to a method and apparatus for robot path planning and an electronic device. Background Art
[0002] The problem to be solved by the A* pathfinding algorithm is how to quickly find a shortest path to the target node in the presence of obstacles, and it can be applied in many scenarios. For example, in the robot global path planning scenario, according to the given target position and the global map, the A* algorithm can be used to calculate the optimal route for the robot from the starting position to the target position as the global route of the robot.
[0003] The basic principle of the A* pathfinding algorithm is that first, the global map is virtualized and grid-divided into small squares, and each small square can be used as a node in the map, so that the map can be represented by a two-dimensional array. During the pathfinding process, starting from the starting node, by exploring the reachable nodes around (which can be simply referred to as surrounding nodes, for example, 4 or 8 squares adjacent to the starting point), a node is selected from them, and then this node is used as a new starting point for cyclic exploration until the end point is found.
[0004] Among them, when exploring nodes from the surrounding nodes, it is necessary to calculate the cost of each surrounding node and select the one with the smallest cost. Among them, in the basic A* pathfinding algorithm, the cost F of the surrounding node N consists of two parts, G and H. G represents the movement cost from the starting point S to the node N, and H represents the estimated movement cost from the node N to the end point E (when calculating this estimated movement cost, obstacles are ignored).
[0005] However, in the multi-robot scenario, there will be a situation where different robots compete for path resources with each other. Therefore, how to coordinate path conflicts is a difficult point in multi-robot path planning. For this reason, an enhanced A* algorithm has been proposed in the prior art. In this algorithm, on the basis of the F cost and the G cost, a traffic cost T is added. Specifically, a reservation table can be used to save the nodes involved in the paths of other robots in the environment. The reservation table is updated in real time and has a time window limit. For the nodes that appear in the reservation table, an additional traffic cost T will be generated. For the same node, the higher the reservation volume (that is, the more robots that need to pass through this node), the greater the traffic cost T, and the greater the total cost of this node.
[0006] Although the above enhanced A* algorithm considers the traffic cost of nodes, this algorithm relies on the one-way street rule to avoid head-on collisions. This makes the algorithm not flexible enough and difficult to apply in some more complex scenarios. Summary of the Invention
[0007] This application provides a robot path planning method, device and electronic device, which can perform path planning for multiple robots in a complex environment and have stronger applicability.
[0008] This application provides the following solutions:
[0009] A robot path planning method, comprising:
[0010] During the process of path planning for the current robot, when exploring multiple surrounding nodes of the current starting node S, obtain the path information of other robots in the environment; wherein, the path information includes a node sequence and / or information on the stay situation at the node.
[0011] For at least one conflicting robot that may conflict with the current robot at the surrounding node N, determine the corresponding conflict type according to the path information respectively corresponding to the at least one conflicting robot.
[0012] According to the conflict type, respectively determine the traffic cost caused by the at least one conflicting robot to the current robot at the surrounding node N, so as to determine the total cost of the surrounding node N.
[0013] Wherein, the obtaining of the path information of other robots in the environment includes:
[0014] Obtain the uncompleted path information of other robots in the environment, so as to determine the conflict type corresponding to the at least one conflicting robot according to the uncompleted path information.
[0015] Wherein, the determining of the corresponding conflict type according to the path information respectively corresponding to the at least one conflicting robot includes:
[0016] For a conflicting robot that does not need to stay at the surrounding node N, determine the first direction angle information from the previous node F to the surrounding node N in the path of the conflicting robot.
[0017] Determine the second direction angle information of the current robot from the current starting node S to the surrounding node N.
[0018] According to the first direction angle information and the second direction angle information, determine whether the conflict type is a head-on, crossing or following type of conflict.
[0019] Wherein, the determining of the traffic cost generated by the at least one conflicting robot to the current robot at the surrounding node N according to the conflict type includes:
[0020] Determine the basic traffic costs respectively corresponding to the head-on, crossing or following type of conflicts.
[0021] Predict the probability that the conflict robot conflicts with the current robot at the surrounding node N;
[0022] According to the basic traffic cost and the probability of conflict, respectively determine the traffic cost generated by the at least one conflict robot for the current robot at the surrounding node N.
[0023] Among them, the prediction of the probability that the conflict robot conflicts with the current robot at the surrounding node N includes:
[0024] For the conflict robot i, according to the unfinished path of the conflict robot i, determine the current node C where the conflict robot i is located, and the first distance from the current node C to the surrounding node N according to the unfinished path;
[0025] Determine the second distance from the current starting node S of the current robot to the surrounding node N;
[0026] Predict the probability that the current robot conflicts with the conflict robot i according to the first distance and the second distance.
[0027] Among them, the determination of the traffic cost caused by the at least one conflict robot for the current robot at the surrounding node N according to the conflict type includes:
[0028] For the conflict robot that needs to stay at the surrounding node N, according to the unfinished path information, determine the start time t1 and the end time t2 of the conflict robot staying at the surrounding node N;
[0029] Predict the time t from the current starting node S of the current robot to the surrounding node N;
[0030] If the predicted time t is within the interval [t1, t2], then according to the time length from time t to t2, the movement speed of the robot, and the unit distance movement cost, determine the traffic cost caused by the staying conflict robot for the current robot at the surrounding node N.
[0031] Among them, it also includes:
[0032] If the predicted time t is outside the interval [t1, t2], then determine that the traffic cost caused by the staying conflict robot for the current robot at the surrounding node N is 0.
[0033] A robot path planning device, comprising:
[0034] A path information acquisition unit, which is used to obtain the path information of other robots in the environment when exploring multiple surrounding nodes of the current starting node S during the path planning for the current robot; wherein, the path information includes a node sequence and / or information on the staying situation at the nodes.
[0035] A conflict type determination unit, which is used to determine the corresponding conflict type for at least one conflicting robot that may conflict with the current robot at the surrounding node N according to the path information respectively corresponding to the at least one conflicting robot.
[0036] A traffic cost determination unit, which is used to respectively determine the traffic cost caused by the at least one conflicting robot to the current robot at the surrounding node N according to the conflict type, so as to be used to determine the total cost of the surrounding node N.
[0037] A computer-readable storage medium, on which a computer program is stored, and when the program is executed by a processor, the steps of the method described in any one of the foregoing items are implemented.
[0038] An electronic device, comprising:
[0039] One or more processors; and
[0040] A memory associated with the one or more processors, the memory is used to store program instructions, and when the program instructions are read and executed by the one or more processors, the steps of the method described in any one of the foregoing items are executed.
[0041] According to the specific embodiments provided by the present application, the present application discloses the following technical effects:
[0042] In the embodiment of the present application, when exploring multiple surrounding nodes of the current starting node S during the path planning for the current robot, the path information of other robots in the environment can be obtained first, where the path information may include a node sequence and / or the stay situation information at the nodes. In this way, for at least one conflicting robot that may conflict with the current robot at the surrounding node N, the corresponding conflict type can be determined first according to the path information corresponding to each of the at least one conflicting robot. Then, according to the conflict type, the traffic cost caused by each of the at least one conflicting robot at the surrounding node N to the current robot can be determined respectively, so as to determine the total cost of the surrounding node N. That is to say, through the solution provided by the embodiment of the present application, the conflict types of conflicting robots on the same node can be subdivided into multiple types, so that the traffic conflicts generated by each conflicting robot at a specific node can be determined according to the specific conflict type. Therefore, multi-robot path planning can be performed in a more complex environment, and there is no need to define one-way road rules, and it can be used in more scenarios such as two-way roads.
[0043] Of course, it is not necessary for any product implementing the present application to achieve all the above advantages simultaneously. BRIEF DESCRIPTION OF THE DRAWINGS
[0044] In order to more clearly illustrate the technical solutions in the embodiments of the present application or the prior art, the following will briefly introduce the drawings required in the embodiments. Obviously, the drawings in the following description are only some embodiments of the present application. For those of ordinary skill in the art, without creative efforts, other drawings can be obtained according to these drawings.
[0045] Figure 1 It is a schematic diagram of the A* algorithm;
[0046] Figure 2 It is a schematic diagram of the system architecture provided by the embodiment of the present application;
[0047] Figure 3 It is a flowchart of the method provided by the embodiment of the present application;
[0048] Figure 4 It is a schematic diagram of multiple conflict types provided by the embodiment of the present application;
[0049] Figure 5 It is a schematic diagram of the algorithm flow provided by the embodiment of the present application;
[0050] Figure 6 It is a schematic diagram of the device provided by the embodiment of the present application;
[0051] Figure 7 It is a schematic diagram of the electronic device provided by the embodiment of the present application. Detailed implementation manner
[0052] The following will clearly and completely describe the technical solutions in the embodiments of the present application with reference to the accompanying drawings in the embodiments of the present application. Obviously, the described embodiments are only a part of the embodiments of the present application, rather than all the embodiments. All other embodiments obtained by those of ordinary skill in the art based on the embodiments in the present application belong to the scope of protection of the present application.
[0053] For the A* pathfinding algorithm involved in the embodiments of the present application, first, in combination with Figure 1 , a brief introduction to the process of the A* pathfinding algorithm will be given. As Figure 1 shown, assume that S is the starting node of pathfinding, E is the destination node, and O is the location of the obstacle. Then, in the A* algorithm, starting from point S, explore its surrounding nodes and calculate the costs of each surrounding node respectively. Among them, in the embodiments of the present application, it is assumed that the robot can only move in the four directions of forward, backward, left, and right. Therefore, only the four surrounding nodes of the starting node in the front, back, left, and right directions need to be explored. Among them, when calculating the costs of each surrounding node respectively, in the basic A* algorithm, the movement cost G from the starting node S to each surrounding node can be calculated respectively, and the estimated movement cost H from each surrounding node to the destination node E can be calculated respectively. Add the two parts of the costs to obtain the cost of each surrounding node. For example, as Figure 1 shown, for the starting node S, the costs of its four surrounding nodes are 60, 60, 60, and 40 respectively. Then, the one with the minimum cost can be determined as the next starting node. For example, it can be the node with a cost of 40 in the figure as the new starting node S1. After that, explore the surrounding nodes of the starting node S1 and calculate the costs of each surrounding node respectively. Of course, if there are obstacle points among the surrounding nodes, there is no need to calculate their costs, and they can be defaulted to nodes that cannot be reached. And so on, the driving path can be determined node by node.
[0054] In the enhanced A* algorithm described in the background art section, in addition to considering the G cost and H cost of each surrounding node, the traffic cost T of the node is also considered. That is, when performing path planning for the current robot, the unfinished path information of other robots that have already performed path planning and have unfinished paths can be obtained first. In this way, it can be known which nodes these other robots need to pass through respectively. From the perspective of nodes, it can be determined how many robots pass through each node respectively. For example, for Figure 1As shown in the S1 node, there are three other robots A, B, and C that need to pass through the S1 node. Then the other robots A, B, and C will generate traffic costs for the S1 node. In addition, in the prior art, the traffic cost is calculated under the assumption that each robot can only travel in one direction. Therefore, as long as each other robot passes through a certain node, the traffic cost generated for the node is the same. For example, assuming that the traffic cost generated by a single robot for a node is t, when three robots need to pass through a certain node, the traffic cost generated on the node is 3t.
[0055] However, in environments such as warehousing, the driving and operating behaviors of robots (e.g., handling robots that perform "shelf to person" or "cargo box to person" tasks) are relatively complex. For example, robots need to travel in both directions, so when the current robot conflicts with other robots at a certain node, there may be multiple different types of conflicts, such as opposite conflicts, cross conflicts, or following conflicts, etc. For different types of conflicts, the traffic costs generated may be different. For example, the cost of following conflicts may be relatively large, while the traffic costs of opposite or cross conflicts are relatively large. In addition, since the robot may need to stop at a certain node to perform operations such as loading and unloading, it will occupy the node for a period of time to operate. If the current robot and other robots have this type of conflict at a certain node, the traffic cost will be relatively large, etc.
[0056] Therefore, in the embodiment of the present application, the existing enhanced A* algorithm is further improved for the complex robot path planning environment such as the above-mentioned warehousing. In this scheme, in the process of path planning for the current robot, the path information of other robots in the environment can be obtained; wherein, the path information can be a specific node sequence, and / or the robot's stay information at the node. In this way, not only can it be known which nodes other robots will pass through, but also it can be determined from which direction other robots will reach specific nodes, whether they will stay at a certain node, how long they need to stay, and so on. Through this information, it can not only be determined whether other robots may conflict with the current robot at a certain node, but also the specific conflict type can be determined, so that according to different conflict types, the traffic cost caused by each other robot at certain specific nodes can be determined respectively, and then the total cost of the specific node can be calculated. In this way, multi-robot path planning can be performed in a more complex environment, and there is no need to limit the one-way street rules, and it can be used in more scenes such as two-way streets.
[0057] From the perspective of system architecture, Figure 2As shown, embodiments of the present application can deploy the algorithm provided by embodiments of the present application in a path planning system. Specifically, the path planning system can be applied in environments such as warehouses. Additionally, map data of the warehouse, including information such as the identifiers of each node and the coordinates in the warehouse, can be pre-saved in the system. The path planning system can plan a path for each specific robot. After each path planning for a robot is completed, the correspondence between the robot and the already planned path planning information can be saved. Specifically, the path planning information can include a starting node, a destination node, and multiple intermediate nodes, and each node forms a sequence in a certain order. The robot can then travel according to this node sequence. Among them, at the position of the destination node or a certain intermediate node, the robot may need to stop, complete operations such as loading and unloading goods, and then continue to travel, and so on. Furthermore, there can be another storage system for recording and updating the real-time position information of each robot. In this way, when path planning is required for a certain current robot (it can be that a new task is generated in the task system and assigned to a certain robot for execution, etc.), the information of the starting node where the current robot is located can be obtained. Additionally, it can be obtained which other robots currently have unfinished paths (that is, a certain path has been planned, but the robot has not yet traveled to the end. For example, a certain path requires passing through 10 nodes in total, but a certain robot has just reached the 5th node, then the path composed of the remaining five nodes is an unfinished path). The specific unfinished path can be determined according to the path planning results corresponding to each other robot and the current positions of other robots, and can include a node sequence composed of multiple nodes, whether to stop at a certain node, and the length of time required to stop, and so on. Furthermore, based on the path information of other robots, it can be determined whether there may be a conflict with the current robot at a certain node, and the specific type of conflict, and then the traffic cost at the specific node can be calculated. Furthermore, path planning can be completed for the current robot. The path planning result can be provided to the current robot, and the correspondence between the current robot and the path planning information can also be saved.
[0058] The following provides a detailed introduction to the specific implementation solutions provided by embodiments of the present application.
[0059] First, from the perspective of the path planning system described above Figure 2 in embodiments of the present application, a method for robot path planning is provided. Referring to Figure 3 , this method can include:
[0060] S301: During the process of path planning for the current robot, when exploring multiple surrounding nodes of the current starting node S, obtain the path information of other robots in the environment; wherein, the path information includes a node sequence and / or information on the stop situation at the node.
[0061] The current robot is the one that needs to perform path planning. It may be that a new task has been generated in the task system and assigned to a certain robot for execution. At this time, this robot is the current robot that needs to perform path planning. Or, during the robot's driving process, if a deadlock conflict occurs with another robot, then a new path needs to be planned for one of the robots. At this time, this robot also becomes the current robot in the embodiments of the present application, and so on.
[0062] During the process of path planning, it can be carried out based on the A* algorithm. That is, first, the current node where the current robot is located is determined as the starting node. Starting from this starting node, the surrounding nodes are explored, and the one with the minimum cost among them is determined as the new starting node, and the exploration of the surrounding nodes continues, and so on. That is to say, the process of exploring the surrounding nodes of the starting node is carried out cyclically. With the completion of each cycle, a new starting node can be found, and then the next round of cycle begins. Therefore, the current starting node in the embodiments of the present application can include the starting node corresponding to the location where the current robot is located, or can also include the new starting node determined after the exploration of the surrounding nodes of a specific node is completed.
[0063] Among them, in the embodiments of the present application, when calculating the cost of each node, it is necessary to consider the traffic cost of each node. That is, it is necessary to consider the conflict situation between other robots and the current robot at specific nodes, and it is also necessary to determine what type of conflict may occur between specific other robots and the current robot.
[0064] To achieve the above object, when specifically exploring the surrounding nodes of the current starting node, the path information of other robots in the environment can be determined first. Each specific path information can include a specific node sequence (that is, a sequence formed by arranging multiple nodes in a certain order), and the stay situation information at specific nodes (including whether to stay at a certain node and the expected length of stay time, etc.). In specific implementation, since other robots may have traveled through some nodes according to the planned path and these nodes no longer affect the path planning of the current robot, in a preferred implementation manner, only the uncompleted path information of other robots can be obtained. Specifically, the complete path planning result corresponding to other robots can be obtained, and then according to the current position information of other robots, the uncompleted path information of other robots can be determined. Among them, information such as whether to stay at a certain node can also be included in the path planning information. For example, if a certain node is the path end point of a certain robot, it can be determined as a node that needs to stay. According to information such as the specific operation type at this end point, the required stay time can be determined, and according to the current distance from the end point, the start time and end time of the expected stay can be determined, etc.
[0065] It should be noted here that after specifically obtaining the path information of other robots, it can be saved in the form of a "reservation table". That is to say, if a certain robot needs to pass through node A, it means that the robot has reserved node A. In this way, after determining the paths of other robots in the current state, it can be determined which nodes have been reserved by these other robots, and the number of times each node has been reserved by other robots respectively. In addition, in the embodiments of the present application, the following information can also be saved in the reservation table: for a robot that has reserved a certain node, from what direction the robot will arrive at this node, and whether it needs to stay at this node. Among them, regarding the direction information, it can be determined according to the relative position relationship between the previous node and this node in the specific path. For example, assume that traveling forward in a certain direction (for example, Figure 4 the X-axis direction shown) is set to 0 degrees, left is 90 degrees, backward is 180 degrees, right is 270 degrees, etc. In this way, as long as it is known from which node a robot arrives at the current node and the position of the previous node relative to the current node, it can be determined from what direction the robot arrives at this node. For example, in the example shown in Figure 4 assume that robots A, B, and C will all pass through node N. Among them, the dotted lines represent the uncompleted paths corresponding to each robot. It can be seen that robot A will arrive at node N from the 180-degree direction, robot B will arrive at node N from the 270-degree direction, and robot C will arrive at node N from the 0-degree direction, etc.
[0066] In addition, it should be noted that although when specifically finding a path according to the A* algorithm, the path needs to be determined node by node, and other robots are also in the process of moving, for one A* path finding process, the reservation table (the unfinished paths of other robots) used can be fixed. This is because one A* path finding process will be completed in a very short time, only taking milliseconds or even less time to obtain a complete path from the starting point to the ending point, and the positions of other robots usually will not be updated within such a short time. Or rather, the reservation table is a "snapshot" of the unfinished paths of other robots when one A* search is about to start, and the unfinished paths of other robots will not change and do not need to be re-obtained during the search process. Of course, if another A* path finding needs to last for several seconds or even longer, the positions of other robots and the reservation table can be updated during the path finding process.
[0067] S302: For at least one conflicting robot that may conflict with the current robot at the surrounding node N, determine the corresponding conflict type according to the path information corresponding to each of the at least one conflicting robot.
[0068] Among them, when exploring the surrounding nodes of the current starting node, the cost information corresponding to each surrounding node N can be calculated respectively. Among them, calculating the cost information can include calculating the traffic cost of each node. Regarding the traffic cost of a specific surrounding node, in the embodiments of the present application, first, for this specific surrounding node, it can be determined which other robots also need to pass through this surrounding node, and in what direction the other robots reach this surrounding node, whether they need to stop at this node, and so on. Among them, for other robots that also need to pass through a certain surrounding node, they belong to the conflicting robots that may conflict with the current robot at this surrounding node. Then, the corresponding conflict type can be determined according to the unfinished path information of such conflicting robots. Among them, if there are multiple conflicting robots that conflict with the current robot at the same surrounding node, the corresponding conflict types can be determined respectively according to the unfinished path information corresponding to each conflicting robot.
[0069] Among them, in order to determine the specific conflict type, various conflict types can be defined in advance. Specifically, in the embodiments of the present application, the conflict type can be subdivided into four types: head-on, following, crossing, and staying. Among them, the head-on conflict means that two robots pass through the same node or cross the same edge in a 180-degree direction; the following and crossing conflicts respectively mean that two robots pass through the same node in the same direction and a 90-degree direction; the staying conflict means that a certain node on the path of the robot is the ending point of other robots or other nodes that need to stop for operations, etc.
[0070] In this way, when specifically determining the conflict type, it is possible to first determine whether each conflicting robot needs to stop at a surrounding node N. For the conflicting robots that do not need to stop at the surrounding node N, first, the first direction angle information from the previous node F to the surrounding node N in the unfinished path of the conflicting robot can be determined; at the same time, the second direction angle information from the current starting node S of the current robot to the surrounding node N can also be determined. Then, based on the first direction angle information and the second direction angle information, it can be determined whether the conflict type is a head-on, crossing, or following type of conflict.
[0071] For example, in Figure 4 In the example shown, the current starting node of the current robot is node S. When calculating the cost of its surrounding node N, it is found that robots A, B, and C will all pass through this node N. Among them, robot A will reach node N from the 180-degree direction, robot B will reach node N from the 270-degree direction, and robot C will reach node N from the 0-degree direction. And the direction of the current robot from the current starting node S to the surrounding node N is 0 degrees. Therefore, based on this direction information, the conflict type with each conflicting node can be determined. For example, when robot A reaches this surrounding node N, it may have a head-on conflict with the current robot; when robot B reaches this surrounding node N, it may have a crossing conflict with the current robot; when robot C reaches this surrounding node N, it may have a following conflict with the current robot, and so on. In addition, if a conflicting robot needs to stop at the surrounding node N, then this conflicting robot may have a stop conflict with the current robot.
[0072] S303: According to the conflict type, respectively determine the traffic cost caused by the at least one conflicting robot to the current robot at the surrounding node N, so as to determine the total cost of the surrounding node N.
[0073] After determining the conflict type corresponding to the specific conflicting robot, the traffic cost caused by the at least one conflicting robot to the current robot at the surrounding node N can be determined respectively. Specifically, depending on the different specific conflict types, the specific traffic costs generated can also be different. Among them, for head-on, crossing, or following type of conflicts, there can be different traffic cost calculation methods from stop type conflicts.
[0074] Among them, for conflicts of the head-on, crossing, or following types, in a preferred implementation, different basic traffic costs can be configured for the head-on, crossing, or following type of conflicts respectively, and the probability of a conflict robot colliding with the current robot at the surrounding node N can be predicted. In this way, based on the basic traffic cost and the probability of the collision, the traffic cost generated by at least one conflict robot for the current robot at the surrounding node N can be determined respectively, and then the traffic costs generated by each conflict robot for the current robot at this surrounding node N are added together to obtain the traffic cost of this surrounding node N (if there are still conflict robots that need to stay at this surrounding node N, the traffic cost brought by this kind of staying conflict needs to be added).
[0075] Specifically, when configuring the basic traffic cost for conflicts of the head-on, crossing, or following types, the basic traffic costs caused by various conflicts can be configured in combination with the map features and / or robot business behaviors in the specific warehousing environment. For example, from light to heavy, they can be: (1) For following conflicts, it may slow down the walking speed of the robot behind, but usually does not cause deadlocks, etc., so the basic traffic cost is the lowest; (2) Crossing conflicts generally occur at intersections, and robots need to decelerate, stop and give way, accelerate, etc., which will affect the walking speed, and its basic traffic cost can be higher than that of following conflicts; (3) Head-on conflicts may cause deadlocks. For example, in some relatively narrow roadway areas, if a head-on conflict occurs, one party may need to turn around and re-plan the path, so the cost caused is relatively large, and so on. In addition, for staying conflicts, when other robots reach the end point, they generally need to continue to operate in place, such as lifting or lowering the shelf, picking up or placing the cargo box, pallet, etc., so it may cause the blocked robot to wait for a long time.
[0076] In addition, although the conflict robot will pass through the surrounding node N, since the distances of other robots reaching this surrounding node N may be different from the distance of the current robot reaching this surrounding node N, in fact, this kind of conflict may not necessarily occur. Therefore, when specifically calculating the traffic cost, the probability of a specific conflict robot colliding with the current robot at the surrounding node N can also be determined. Then, in combination with the specific conflict type and the corresponding basic traffic cost, the traffic cost generated by a specific conflict robot at node N can be calculated.
[0077] Among them, when calculating the probability of a specific conflict occurring, predictions can be made separately for each conflicting robot. Among them, for the conflicting robot i, based on the unfinished path of the conflicting robot i, the current node C where the conflicting robot i is located can be determined, and the first distance from the current node C to the surrounding node N can be determined according to the unfinished path. At the same time, the second distance from the current starting node S of the current robot to the surrounding node N can also be determined. After that, the probability of the current robot conflicting with the conflicting robot i can be predicted based on the first distance and the second distance.
[0078] Specifically, when calculating the above probability, a quasi-normal distribution curve can be used to describe the probability of conflict between two robots. For example, the calculation method can be:
[0079]
[0080] Among them, A and B represent the two robots in conflict, and lA and lB represent the distances from the current positions of A and B to the conflict node N. σ is the standard deviation of the normal distribution, which controls the speed at which the conflict probability decays with the distance difference. Among them, the smaller the distance difference |l A -l B | between the two robots and the conflict node, the greater the conflict probability; the greater the distance difference, the conflict probability will decay from 1 to infinitely close to 0.
[0081] After calculating the above probability of conflict occurring, the traffic cost caused by each conflicting robot can be equal to the product of the basic traffic cost corresponding to the corresponding conflict type and the conflict probability. For example, for the example shown above Figure 4 Robots A, B, and C are all conflicting robots that conflict with the current robot at the surrounding node N. Among them, the conflict type corresponding to robot A is head-on, and the assumed corresponding conflict probability is P1; the conflict type corresponding to robot B is crossing, and the assumed corresponding conflict probability is P2; the conflict type corresponding to robot C is following, and the assumed corresponding conflict probability is P3. In addition, assume that the basic traffic cost corresponding to the head-on type is t1, the basic traffic cost corresponding to the crossing type is t2, and the basic traffic cost corresponding to the following type is t3. Then the traffic cost of this surrounding node N can be (assuming that there are no conflicting robots of the staying type on this node):
[0082] T = t1 * P1 + t2 * P2 + t3 * P3
[0083] Of course, in practical applications, for conflicts of the above head-on, crossing, following and other types, the basic traffic costs corresponding to various conflict types can also be directly used for calculation without considering the probability of conflict occurring. That is, in the above example, the above formula can be simplified to T = t1 + t2 + t3, and so on.
[0084] In addition, for the conflicting robots that need to stay at the surrounding node N, the start time t1 and the end time t2 of the stay of the conflicting robots at the surrounding node N can be determined according to the unfinished path information. At the same time, the estimated time t for the current robot to move from the current start node S to the surrounding node N can be calculated. Then, if the estimated time t is within the interval [t1, t2], the traffic cost caused by the staying conflicting robot at the surrounding node N to the current robot can be determined according to the time length from time t to t2, the movement speed of the robot, and the moving cost per unit distance. Otherwise, if t is not within the above interval, the traffic cost caused by the staying conflict is 0.
[0085] Among them, for the conflicting robots of the staying type, they may currently be on the way to the surrounding node N, or may have reached the surrounding node N and worked for a period of time. When estimating t1 and t2, if the conflicting robot is on the way to the surrounding node N, the time for the conflicting robot to reach the surrounding node N can be estimated according to the current distance between the conflicting robot and the surrounding node N, so as to determine t1. Then, according to information such as the operation type of the conflicting robot at the surrounding node, the staying duration of the conflicting robot at the node can be estimated, and then the end operation time point t2 can be determined. If the conflicting robot has reached the surrounding node N and worked for a period of time, the current time can be determined as t1, and according to information such as the operation type of the conflicting robot at the surrounding node, the staying duration of the conflicting robot at the node can be estimated, and then according to the time length that the conflicting robot has stayed at the surrounding node, the end operation time point t2 can be determined. Of course, in this case, t must be within the interval [t1, t2]. Among them, when specifically calculating the traffic cost caused by this staying conflict, the following method can be used for calculation:
[0086] stayCost = (t2 - t) * v * g
[0087] Among them, v represents the average walking speed of the robot, and g represents the moving cost between two adjacent nodes. It should be noted here that if the size of the grid in the map is uniform, g can be a constant. However, in practical applications, there may be cases where the sizes of different grids are not equal. At this time, the value of g can be determined according to the specific size of the grid. For example, g = grid size * moving cost per unit distance, and so on. Among them, the specific size of the grid can be saved in the map data.
[0088] After determining that various types of conflicts may occur at a certain surrounding node N and the corresponding traffic costs respectively, the traffic costs corresponding to the conflicting robots can be added up to obtain the traffic cost that may be generated when the current robot chooses to walk to the surrounding node N.
[0089] After obtaining the traffic cost T corresponding to the surrounding node N, based on the aforementioned costs G and H corresponding to the surrounding node N, the total cost of the surrounding node N can be obtained. That is:
[0090] F * (N) = G(N) + H * (N) + T(N)
[0091] Among them,
[0092] G(N) = distance(N, S) * g
[0093] H * (N) = distance(N, E) * g
[0094] distance(N, S) represents the actual shortest distance between the current surrounding node N and the current starting point S, and g represents the movement cost per unit distance. distande(N, E) represents the product of the Manhattan distance between the current surrounding node N and the end point E.
[0095] Through the above method, the total costs of the surrounding nodes of the current starting node can be obtained. After that, the one with the minimum total cost can be used as the new starting node, and a new round of exploration can be continued for the surrounding nodes of the new starting node.
[0096] In summary, in a preferred embodiment of the present application, the specific processing flow can be as Figure 5 shown:
[0097] (1) Determine the current robot that needs to perform path planning;
[0098] (2) Save the unfinished path information of other robots into the reservation table (which can include the node sequences of other robots to be used to determine the direction information to reach each node, whether to stay, operation type and other information).
[0099] (3) Starting from the current node where the current robot is located, execute the A* algorithm for path search, select the one with the minimum total cost value as the new starting node, and initiate a new round of exploration.
[0100] (4) In each round of exploration, it can first be judged whether the end point has been found. If so, the process ends; otherwise, proceed to the next step;
[0101] (5) Expand the surrounding node N from the current starting node;
[0102] (6) Calculate the cost G(N) and cost H(N) of node N;
[0103] (7) Determine all the conflicting robots that conflict with node N;
[0104] (8) Determine the conflict types of each conflicting robot, and calculate the traffic cost generated by each conflicting robot at node N according to the specific conflict type. Add up the traffic costs generated by multiple conflicting robots at node N to obtain the traffic cost T(N) of node N;
[0105] (9) Let F * (N) = G(N) + H * (N) + T(N), and return to step (3).
[0106] In summary, through the embodiments of the present application, during the process of path planning for the current robot, when exploring multiple surrounding nodes of the current starting node S, the path information of other robots in the environment can be obtained first. Among them, the path information may include a node sequence and / or information about the stay situation at the node. In this way, for at least one conflicting robot that may conflict with the current robot at the surrounding node N, the corresponding conflict type can be determined first according to the path information corresponding to each of the at least one conflicting robot. Then, according to the conflict type, the traffic cost caused by the at least one conflicting robot to the current robot at the surrounding node N can be determined respectively, so as to determine the total cost of the surrounding node N. That is to say, through the solution provided by the embodiments of the present application, the conflict types of conflicting robots on the same node can be subdivided into multiple types, so that the traffic conflicts generated by each conflicting robot at a specific node can be determined according to the specific conflict type. Therefore, multi-robot path planning can be performed in a more complex environment, and there is no need to define one-way road rules, and it can be used in more scenarios such as two-way roads.
[0107] It should be noted that the embodiments of the present application may involve the use of user data. In actual applications, user-specific personal data can be used in the solutions described herein within the scope permitted by applicable laws and regulations (for example, with the user's explicit consent, giving the user a practical notice, etc.) in compliance with the requirements of the applicable laws and regulations of the country where it is located.
[0108] Corresponding to the foregoing method embodiments, the embodiments of the present application further provide a robot path planning device. See Figure 6 , and the device may include:
[0109] A path information acquisition unit 601 is configured to obtain path information of other robots in the environment when exploring multiple surrounding nodes of the current starting node S during path planning for the current robot; wherein, the path information includes a node sequence and / or information on the stay situation at the nodes.
[0110] A conflict type determination unit 602 is configured to determine corresponding conflict types for at least one conflicting robot that may conflict with the current robot at the surrounding node N according to the path information respectively corresponding to the at least one conflicting robot.
[0111] A traffic cost determination unit 603 is configured to respectively determine the traffic costs caused by the at least one conflicting robot to the current robot at the surrounding node N according to the conflict types, so as to determine the total cost of the surrounding node N.
[0112] Among them, the path information acquisition unit may specifically be configured to:
[0113] Obtain the uncompleted path information of other robots in the environment, so as to determine the conflict types corresponding to the at least one conflicting robot according to the uncompleted path information.
[0114] Specifically, the conflict type determination unit may specifically include:
[0115] A first direction information determination subunit is configured to, for a conflicting robot that does not need to stay at the surrounding node N, determine the first direction angle information from the previous node F to the surrounding node N in the path of the conflicting robot.
[0116] A second direction information determination subunit is configured to determine the second direction angle information from the current starting node S to the surrounding node N of the current robot.
[0117] A conflict type determination subunit is configured to determine whether the conflict type is a head-on, crossing or following type of conflict according to the first direction angle information and the second direction angle information.
[0118] At this time, the specific traffic cost determination unit may include:
[0119] A basic traffic cost determination subunit is configured to determine the basic traffic costs respectively corresponding to the head-on, crossing or following type of conflicts.
[0120] A conflict probability prediction subunit is configured to predict the probability of the conflicting robot conflicting with the current robot at the surrounding node N.
[0121] A traffic cost determination subunit, configured to determine, according to the basic traffic cost and the probability of conflict, the traffic cost generated by the at least one conflicting robot for the current robot at the surrounding node N.
[0122] In a specific implementation manner, the conflict probability prediction subunit may specifically include:
[0123] A first distance determination subunit, configured to, for a conflicting robot i, determine the current node C where the conflicting robot i is located according to the unfinished path of the conflicting robot i, and determine a first distance from the current node C to the surrounding node N according to the unfinished path.
[0124] A second distance determination subunit, configured to determine a second distance from the current starting node S of the current robot to the surrounding node N.
[0125] A probability determination subunit, configured to predict the probability of conflict between the current robot and the conflicting robot i according to the first distance and the second distance.
[0126] In addition, for conflicts of the stay type, the traffic cost determination unit may be configured to:
[0127] For a conflicting robot that needs to stay at the surrounding node N, determine the start time t1 and the end time t2 of the stay of the conflicting robot at the surrounding node N according to the path information.
[0128] Estimate the time t for the current robot to move from the current starting node S to the surrounding node N.
[0129] If the estimated time t is within the interval [t1, t2], then determine the traffic cost caused by the staying conflicting robot for the current robot at the surrounding node N according to the time length from time t to t2, the movement speed of the robot, and the unit distance movement cost.
[0130] In addition, the traffic cost determination unit may also be configured to:
[0131] If the estimated time t is outside the interval [t1, t2], then determine that the traffic cost caused by the staying conflicting robot for the current robot at the surrounding node N is 0.
[0132] In addition, an embodiment of the present application further provides a computer-readable storage medium, on which a computer program is stored, and when the program is executed by a processor, the steps of the method described in any one of the foregoing method embodiments are implemented.
[0133] And an electronic device, including:
[0134] One or more processors; and
[0135] A memory associated with the one or more processors, the memory being configured to store program instructions that, when read and executed by the one or more processors, perform the steps of the method according to any one of the foregoing method embodiments.
[0136] Wherein, Figure 7 Exemplarily shows the architecture of an electronic device, which may specifically include a processor 710, a video display adapter 711, a disk drive 712, an input / output interface 713, a network interface 714, and a memory 720. The above-mentioned processor 710, video display adapter 711, disk drive 712, input / output interface 713, network interface 714, and the memory 720 may be communicatively connected via a communication bus 730.
[0137] Wherein, the processor 710 may be implemented in the form of a general-purpose CPU (Central Processing Unit), a microprocessor, an application-specific integrated circuit (ASIC), or one or more integrated circuits, etc., and is configured to execute relevant programs to implement the technical solution provided by this application.
[0138] The memory 720 may be implemented in the form of a ROM (Read Only Memory), a RAM (Random Access Memory), a static storage device, a dynamic storage device, etc. The memory 720 may store an operating system 721 for controlling the operation of the electronic device 700, and a basic input / output system (BIOS) for controlling the low-level operations of the electronic device 700. Additionally, it may also store a web browser 723, a data storage management system 724, a path planning processing system 725, and so on. The above-mentioned path planning processing system 725 may be the application program that specifically implements the operations of the foregoing steps in the embodiments of this application. In summary, when implementing the technical solution provided by this application through software or firmware, the relevant program codes are stored in the memory 720 and are called and executed by the processor 710.
[0139] The input / output interface 713 is used to connect to an input / output module to implement information input and output. The input / output module may be configured as a component in the device (not shown in the figure) or externally connected to the device to provide corresponding functions. Among them, the input device may include a keyboard, a mouse, a touch screen, a microphone, various sensors, etc., and the output device may include a display, a speaker, a vibrator, an indicator light, etc.
[0140] The network interface 714 is used to connect to a communication module (not shown in the figure) to enable communication interaction between this device and other devices. The communication module can achieve communication through wired means (such as USB, network cable, etc.) or wireless means (such as mobile network, WIFI, Bluetooth, etc.).
[0141] The bus 730 includes a path for transmitting information between various components of the device (such as the processor 710, video display adapter 711, disk drive 712, input / output interface 713, network interface 714, and memory 720).
[0142] It should be noted that although the above device only shows the processor 710, video display adapter 711, disk drive 712, input / output interface 713, network interface 714, memory 720, bus 730, etc., in the specific implementation process, the device may also include other components necessary for normal operation. In addition, those skilled in the art can understand that the above device may also only include the components necessary to implement the solution of this application, and does not necessarily include all the components shown in the figure.
[0143] From the description of the above embodiments, those skilled in the art can clearly understand that this application can be implemented by means of software plus a necessary general hardware platform. Based on this understanding, the technical solution of this application, in essence, or the part that makes a contribution to the prior art, can be embodied in the form of a software product. This computer software product can be stored in a storage medium, such as ROM / RAM, magnetic disk, optical disk, etc., and includes several instructions to enable a computer device (which can be a personal computer, server, or network device, etc.) to execute the methods described in various embodiments or some parts of the embodiments of this application.
[0144] Each embodiment in this specification is described in a progressive manner. The same or similar parts between each embodiment can be referred to each other, and the key point of each embodiment is to illustrate the differences from other embodiments. In particular, for a system or system embodiment, since it is basically similar to the method embodiment, the description is relatively simple, and the relevant parts can be referred to the partial description of the method embodiment. The above-described system and system embodiments are only illustrative. The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they can be located in one place or distributed to multiple network units. Some or all of the modules can be selected according to actual needs to achieve the purpose of the solution of this embodiment. Those of ordinary skill in the art can understand and implement it without creative work.
[0145] The above has introduced in detail the robot path planning method, device and electronic device provided by the present application. Specific examples are used in this article to elaborate on the principle and implementation manner of the present application. The description of the above embodiments is only used to help understand the method and its core idea of the present application; at the same time, for those of ordinary skill in the art, according to the idea of the present application, there will be changes in the specific implementation manner and application scope. In summary, the content of this specification should not be construed as a limitation to the present application.
Claims
1. A robot path planning method, characterized in that, Including: During the process of path planning for the current robot, when exploring multiple surrounding nodes of the current starting node S, obtain the path information of other robots in the environment; wherein, the path information includes a node sequence and / or information on the stay situation at the nodes. For at least one conflicting robot that may conflict with the current robot at the surrounding node N, according to the path information corresponding to each of the at least one conflicting robot, determine the corresponding conflict type and the basic traffic cost corresponding to each conflict type, and predict the probability that the conflicting robot conflicts with the current robot at the surrounding node N; wherein, when making the probability prediction, for the conflicting robot i, according to the unfinished path of the conflicting robot i, determine the current node C where the conflicting robot i is located, and the first distance from the current node C to the surrounding node N according to the unfinished path, and determine the second distance from the current starting node S of the current robot to the surrounding node N, so as to predict the probability that the current robot conflicts with the conflicting robot i according to the first distance and the second distance. According to the basic traffic cost corresponding to the conflict type and the probability of conflict, respectively determine the traffic cost caused by the at least one conflicting robot to the current robot at the surrounding node N, so as to determine the total cost of the surrounding node N.
2. The method according to claim 1, wherein: The obtaining the path information of other robots in the environment includes: Obtain the unfinished path information of other robots in the environment, so as to determine the conflict type corresponding to the at least one conflicting robot according to the unfinished path information.
3. The method according to claim 1, wherein: The determining the corresponding conflict type according to the path information corresponding to each of the at least one conflicting robot includes: For a conflicting robot that does not need to stay at the surrounding node N, determine the first direction angle information from the previous node F to the surrounding node N in the path of the conflicting robot; Determine the second direction angle information from the current starting node S of the current robot to the surrounding node N; According to the first direction angle information and the second direction angle information, determine whether the conflict type is a head-on, crossing or following type of conflict.
4. The method according to claim 1, wherein: The respectively determining the traffic cost caused by the at least one conflicting robot to the current robot at the surrounding node N according to the conflict type includes: For a conflicting robot that needs to stay at the surrounding node N, according to the unfinished path information, determine the start time t1 and the end time t2 of the conflicting robot staying at the surrounding node N; Estimate the time t for the current robot to travel from the current starting node S to the surrounding node N; If the predicted time t is within the interval [t1, t2], then according to the time length from time t to t2, the movement speed of the robot, and the cost of moving per unit distance, determine the traffic cost caused by the conflicting robot staying at the surrounding node N for the current robot.
5. The method according to claim 4, characterized in that Further included: If the predicted time t is outside the interval [t1, t2], then determine that the traffic cost caused by the conflicting robot staying at the surrounding node N for the current robot is 0.
6. A robot path planning device, characterized in that, Included: A path information acquisition unit, configured to acquire the path information of other robots in the environment when exploring multiple surrounding nodes of the current starting node S during the path planning process for the current robot; wherein, the path information includes a node sequence and / or the stay situation information at the nodes. A conflict type determination unit, configured to, for at least one conflicting robot that may conflict with the current robot at the surrounding node N, determine the corresponding conflict type and the basic traffic cost corresponding to each conflict type according to the path information corresponding to each of the at least one conflicting robot, and predict the probability that the conflicting robot conflicts with the current robot at the surrounding node N; wherein, when performing the probability prediction, for the conflicting robot i, according to the unfinished path of the conflicting robot i, determine the current node C where the conflicting robot i is located, and the first distance from the current node C to the surrounding node N according to the unfinished path, and determine the second distance from the current starting node S of the current robot to the surrounding node N, so as to predict the probability that the current robot conflicts with the conflicting robot i according to the first distance and the second distance. A traffic cost determination unit, configured to respectively determine the traffic cost caused by the at least one conflicting robot at the surrounding node N for the current robot according to the basic traffic cost corresponding to the conflict type and the probability of conflict, so as to determine the total cost of the surrounding node N.
7. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 5.
8. An electronic device, characterized in that, Included: One or more processors; And A memory associated with the one or more processors, the memory is used to store program instructions, and when the program instructions are read and executed by the one or more processors, the steps of the method according to any one of claims 1 to 5 are executed.
Citation Information
Patent Citations
Design method of distributed autonomous robot traffic coordination mechanism
CN111638717A
Multi-robot path planning method based on conflict detection
CN112835364A