Collision condition application device, method, program, and path generation device

By identifying vertex-edge and edge-edge collision pairs and assigning time intervals, the system efficiently generates paths for multiple agents on roadmaps, addressing computational bottlenecks and enhancing pathfinding success and efficiency.

JP7831191B2Active Publication Date: 2026-03-17OMRON CORP
View PDF 6 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2022-08-09
Publication Date
2026-03-17

AI Technical Summary

Technical Problem

Existing methods for multi-agent pathfinding on roadmaps, which extend the MAPF problem from discrete to continuous time, face computational bottlenecks due to collision detection requirements, especially when handling non-grid graphs, leading to impractical computation times as the number of agents increases.

Method used

A system that extracts vertex-edge and edge-edge pairs likely to collide, calculates time intervals for collisions, and assigns collision conditions to a roadmap, allowing efficient path generation for multiple agents over continuous time.

Benefits of technology

Enables rapid route generation for multiple agents on roadmaps by minimizing collision detection computations and increasing the space of searchable solutions, thereby improving success rates and reducing computational costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007831191000001
    Figure 0007831191000001
  • Figure 0007831191000002
    Figure 0007831191000002
  • Figure 0007831191000003
    Figure 0007831191000003
Patent Text Reader

Abstract

To generate a route of a multi-agent on a road map in continuous time, in a short time.SOLUTION: When a plurality of agents moves on a road map 40 including a plurality of vertices and a plurality of edges connecting the vertices, an extraction unit 32 extracts a vertex-edge pair and an edge-edge pair in which the agents are likely to collide with each other. Based on a difference between a time at which one agent is present at a vertex of the vertex-edge pair and a time at which the other agent starts moving from an end point of an edge and a difference between a time at which the one agent starts moving from an end point of one edge of the edge-edge pair and a time at which the other agent starts moving from an end point of the other edge, a calculation unit 34 calculates a time interval in which a collision between both agents may occur. Collision condition information in which identification information of the vertex and the edge included in each pair is associated with the time interval is given to the road map 40.SELECTED DRAWING: Figure 2
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a collision-condition imparting device, a collision-condition imparting method, a collision-condition imparting program, and a route generation device.

Background Art

[0002] The problem of searching for a route in which a plurality of agents having sizes move from their respective starting points to their respective destinations without colliding with each other within one environment is called MAPF (Multi-Agent Path Finding). In a general MAPF problem, on a grid graph or a road map representing the routes where agents can move within the environment, the movement of each agent is determined under discrete time.

[0003] As a technology related to the MAPF problem, for example, an operation management control device has been proposed that plans the operations and routes for a plurality of unmanned vehicles to efficiently move to the target nodes by considering the competition of travel routes and adjacent nodes (Patent Document 1). In this device, the movement routes and node reservation sequences of each unmanned vehicle, the position and destination of the transported goods, etc., the current position and movement direction of each unmanned vehicle, the coordinates of each node on the travel route, its connection relationship and cost, etc., and the data of the Petri net model are stored in the memory. Also, this device determines the optimal travel route and operation order of the unmanned vehicle using the information stored in the memory.

[0004] Also, for example, an operation planning system has been proposed that performs operation planning for a plurality of moving bodies traveling on a travel route network including a plurality of travel routes (Patent Document 2). This system is based on the position information of a plurality of moving bodies, the travel route structure information representing the structure of the travel route network, and a plurality of route plans that specify the order of one or more designated areas to be passed by each of the plurality of moving bodies for a plurality of designated areas in the travel route network, and generates a plurality of travel timing plans that specify the timing for the plurality of moving bodies to travel on the travel route so that no competition occurs between the moving bodies on the travel route.

[0005] Furthermore, for single agents, a method called SIPP (Safe Interval Path Planning) has been proposed, which performs pathfinding in the presence of obstacles over a continuous time period (Non-Patent Document 1). [Prior art documents] [Patent Documents]

[0006] [Patent Document 1] Japanese Patent Application Publication No. 10-312217 [Patent Document 2] Japanese Patent Publication No. 2020-149370 [Non-patent literature]

[0007] [Non-Patent Document 1] Mike Phillips and Maxim Likhachev, "SIPP: Safe Interval Path Planning for Dynamic Environments", Computer Science 2011 IEEE International Conference on Robotics and Automation, 9 May 2011. [Overview of the project] [Problems that the invention aims to solve]

[0008] However, if the movement of each agent is determined under discrete time, time is divided into turns common to all agents, and the actions of each agent are determined turn by turn. This presents a problem in that it increases the constraints on avoiding collisions between agents, and pathfinding can become difficult.

[0009] It is conceivable to extend the MAPF problem in discrete time to continuous time by combining it with methods that handle continuous time, such as SIPP. However, when applying SIPP to a roadmap, which is a non-grid graph, collision detection between agents becomes a computational bottleneck. This is because applying SIPP requires prior knowledge of all movement obstacles on the roadmap and when and where collisions may occur. Therefore, in the case of multiple agents, the paths of each agent are determined one by one in some order of priority. In this case, as the number of agents increases, enormous computations are required, making it difficult to generate the paths of each agent, which are the solution to the MAPF problem, in a realistic amount of time.

[0010] The present invention has been made in view of the above points, and aims to enable the generation of routes for multiple agents on a roadmap over a continuous period of time in a short amount of time. [Means for solving the problem]

[0011] To achieve the above objective, the collision condition assigning device according to the present invention includes, when multiple agents move on a roadmap including multiple vertices and multiple edges connecting the vertices, an extraction unit that extracts a first pair of vertices and edges that are likely to collide with the agents present at the vertices or the agents moving along the edges, and a second pair of edges that are likely to collide with the agents, and the difference between the time when one agent is present at each of the vertices of the first pair and the time when the other agent starts moving from the endpoint of the edge, and The system includes a calculation unit that calculates a time interval in which a collision occurs between one agent and the other agent, based on the difference between the time at which one agent starts moving from the endpoint of one edge of each of the second pair and the time at which the other agent starts moving from the endpoint of the other edge of the second pair, and an assignment unit that assigns information relating the identification information of the vertices and edges included in the first pair to the time interval, and information relating the identification information of each of the two edges included in the second pair to the time interval, to the roadmap as a condition for a collision between the agents.

[0012] Furthermore, the extraction unit may extract the first pair and the second pair from the plurality of vertices and plurality of edges included in the roadmap using an algorithm for enumerating pairs of points whose distance from each other is less than or equal to a certain value within a given set of points, an algorithm for enumerating points that exist within a given region within a given set of points, and an algorithm for enumerating pairs of intersecting line segments within a given set of line segments.

[0013] Furthermore, assuming the agent is a circle with a predetermined diameter, the extraction unit may extract, as the first pair, pairs of vertices and edges included in the roadmap that satisfy at least one of the following conditions: the distance between at least one endpoint of an edge and the vertex is less than the predetermined value, and the length of the perpendicular drawn from the vertex to the edge is less than the predetermined value. The second pair may also extract, as the second pair, pairs of edges that satisfy at least one of the following conditions: the distance between at least one endpoint of one edge and the other edge is less than the predetermined value, and the edges intersect.

[0014] Furthermore, in order to achieve the above objective, the path generation device according to the present invention is configured to include a generation unit that generates a path for each of a plurality of agents moving on the roadmap to which the collision condition assigning device has assigned conditions for collisions between the agents, such that the time when an agent is present at a vertex included in the path and the time when an agent starts moving from the endpoint of an edge are not included in the time interval of the conditions.

[0015] Furthermore, when the generation unit sequentially generates paths for the agents one by one, it may generate a path such that when it generates a path for the first agent and then generates a path for the second agent, the difference between the time when the agent is present at a vertex included in the path generated for the first agent and the time when the agent starts moving from the endpoint of the edge is not included in the time interval, and the second agent is present at the vertex or starts moving from the endpoint of the edge at that time.

[0016] Furthermore, in order to achieve the above objective, the collision condition assignment method according to the present invention includes an extraction unit that, when multiple agents move on a roadmap including multiple vertices and multiple edges connecting the vertices, extracts a first pair of vertices and edges that are likely to collide with the agents present at the vertices or the agents moving along the edges, and a second pair of edges that are likely to collide with the agents. The calculation unit then calculates the time when one agent is present at each of the vertices in the first pair and the time when the other agent starts moving from the endpoint of the edge. The method involves calculating the time interval in which a collision occurs between one agent and the other agent based on the difference between the time and the time when one agent starts moving from the endpoint of one edge of each of the second pair, and the time when the other agent starts moving from the endpoint of the other edge of each of the second pair. The assigning unit then assigns to the roadmap information as a condition for the agents to collide, information associating the identification information of the vertices and edges included in the first pair with the time interval, and information associating the identification information of each of the two edges included in the second pair with the time interval.

[0017] Also, in order to achieve the above object, the collision condition imparting program according to the present invention causes a computer, when a plurality of agents move on a roadmap including a plurality of vertices and a plurality of edges connecting between the vertices, to determine a first pair of a vertex and an edge where the agents existing at the vertex or the agents moving on the edge may collide with each other, and a second pair of one edge and another edge where the agents may collide with each other. An extraction unit that extracts the pairs, a calculation unit that calculates a time interval during which a collision occurs between one agent and the other agent for a difference between a time when one agent exists at each vertex of the first pair and a time when the other agent starts moving from an end point of the edge, and a difference between a time when one agent starts moving from an end point of one edge of the second pair and a time when the other agent starts moving from an end point of the other edge, and an information that associates the identification information of the vertex and the edge included in the first pair with the time interval, and an information that associates the identification information of each of the two edges included in the second pair with the time interval, as a program for functioning as an imparting unit that imparts the information to the roadmap as a condition for the agents to collide with each other.

Effects of the Invention

[0018] According to the collision condition imparting device, method, program, and route generation device according to the present invention, it is possible to perform route generation for multi-agents on a roadmap in a short time continuously over time.

Brief Description of the Drawings

[0019] [Figure 1] It is a block diagram showing the hardware configuration of the route generation device. [Figure 2] It is a block diagram showing an example of the functional configuration of the route generation device. [Figure 3] It is a diagram showing an example of a roadmap. [Figure 4] It is a diagram showing an example of the data configuration of the roadmap. [Figure 5]This is a diagram for explaining vertex-edge pairs and edge-edge pairs. [Figure 6] This is a diagram for explaining the time interval of collision conditions. [Figure 7] This is a diagram showing an example of the data structure of a load map with collision conditions. [Figure 8] This is a diagram showing an example of the generated path. [Figure 9] This is a diagram for explaining path generation using collision conditions including a time interval. [Figure 10] This is a diagram for explaining path generation when the collision conditions do not include a time interval. [Figure 11] This is a diagram showing an example where a deadlock has occurred. [Figure 12] This is a flowchart showing the flow of the collision condition application process. [Figure 13] This is a flowchart showing the flow of the path generation process. [Figure 14] This is a graph showing the experimental results of comparing this method with a comparative method.

Embodiments for Carrying Out the Invention

[0020] Hereinafter, an example of an embodiment of the present invention will be described while referring to the drawings. In each drawing, the same or equivalent components and parts are given the same reference numerals. Also, the dimensions and ratios of the drawings are exaggerated for the convenience of explanation and may be different from the actual ratios.

[0021] FIG. 1 is a block diagram showing the hardware configuration of a path generation apparatus 10 according to this embodiment. As shown in FIG. 1, the path generation apparatus 10 includes a CPU (Central Processing Unit) 12, a memory 14, a storage device 16, an input device 18, an output device 20, a storage medium reader 22, and a communication I / F (Interface) 24. Each configuration is connected to be communicable with each other via a bus 26.

[0022] The storage device 16 stores a path generation program for executing collision condition assignment processing and path generation processing, which will be described later. The CPU 12 is a central processing unit that executes various programs and controls each component. Specifically, the CPU 12 reads a program from the storage device 16 and executes the program using memory 14 as a workspace. The CPU 12 controls each component and performs various calculations according to the program stored in the storage device 16.

[0023] Memory 14 consists of RAM (Random Access Memory) and temporarily stores programs and data as a working area. Storage device 16 consists of ROM (Read Only Memory), HDD (Hard Disk Drive), SSD (Solid State Drive), etc., and stores various programs including the operating system and various data.

[0024] The input device 18 is a device for performing various inputs, such as a keyboard or mouse. The output device 20 is a device for outputting various information, such as a display or printer. The output device 20 may also function as the input device 18 by using a touch panel display. The storage medium reader 22 reads data stored on various storage media such as CD (Compact Disc)-ROM, DVD (Digital Versatile Disc)-ROM, Blu-ray disc, and USB (Universal Serial Bus) memory, and writes data to the storage media. The communication interface 24 is an interface for communicating with other devices, and standards such as Ethernet (registered trademark), FDDI, and Wi-Fi (registered trademark) are used.

[0025] Next, the functional configuration of the route generation device 10 according to this embodiment will be described. Figure 2 is a block diagram showing an example of the functional configuration of the route generation device 10. As shown in Figure 2, the route generation device 10 includes a collision condition assignment unit 30 and a generation unit 38 as its functional configuration. The collision condition assignment unit 30 further includes an extraction unit 32, a calculation unit 34, and an assignment unit 36. The collision condition assignment unit 30 is an example of the "collision condition assignment device" of the present invention. Each functional configuration is realized by the CPU 12 reading a route generation program stored in the storage device 16, expanding it into the memory 14, and executing it.

[0026] The collision condition assignment unit 30 acquires a roadmap 40. Figure 3 shows an example of a roadmap 40. As shown in Figure 3, the roadmap 40 includes multiple vertices and multiple edges connecting the vertices. In Figure 3, the black dots are vertices, and the line segments connecting the vertices are edges. As shown in Figure 3, unlike a grid graph, the roadmap 40 is a planar graph in which the length of each edge is not common, each vertex can take any position on a two-dimensional plane, and edges can intersect.

[0027] Figure 4 shows an example of the data structure of the roadmap 40. In the example in Figure 4, the roadmap 40 includes a vertex information table 42 and an edge information table 44. The vertex information table 42 stores the vertex ID, which is the identification information of each vertex, and the position information of each vertex in association with each other. The edge information table 44 stores the edge ID, which is the identification information of each edge, and the vertex IDs of the vertices corresponding to the two endpoints of each edge in association with each other.

[0028] The collision condition assignment unit 30 assigns collision conditions (details will be described later) to the acquired roadmap 40 and stores it as a roadmap with collision conditions 50. The following describes the functional configuration of the collision condition assignment unit 30, which assigns collision conditions to the roadmap 40, specifically the extraction unit 32, calculation unit 34, and assignment unit 36.

[0029] The extraction unit 32 extracts locations where agents located at vertices or agents moving along edges may collide when multiple agents move along the roadmap 40. The extraction unit 32 extracts pairs of vertices and edges, and pairs of edges, as shown in Figure 5, as locations where collisions are possible. These pairs of vertices and edges are an example of the "first pair" of the present invention, and the pairs of edges are an example of the "second pair" of the present invention. Hereinafter, pairs of vertices and edges will be referred to as "vertex-edge pairs," and pairs of edges will be referred to as "edge-edge pairs."

[0030] In the vertex-edge pairs in Figure 5, A1 represents an agent located at a certain vertex, and A2 represents an agent that starts moving from the endpoint of a certain edge. In this case, agent A2 may collide with agent A1, which is located at a certain vertex, as it moves along the edge, so such vertex-edge pairs are extracted as locations where collisions are possible. Similarly, in the edge-edge pairs in Figure 5, A1 represents an agent that starts moving from the endpoint of a certain edge, and A2 represents an agent that starts moving from the endpoint of another edge. In this case, agents A1 and A2 may collide as they move along their respective edges, so such edge-edge pairs are extracted as locations where collisions are possible.

[0031] Specifically, the extraction unit 32 uses the following algorithm to extract vertex-edge pairs and edge-edge pairs from among the multiple vertices and multiple edges included in the roadmap 40. (1) An algorithm for enumerating pairs of points in a given set whose distance from each other is less than or equal to a certain value. (2) An algorithm for enumerating points that exist within a given region from a given set of points. (3) An algorithm for enumerating pairs of intersecting line segments in a given set of line segments

[0032] Regarding (1) above, the Fixed-Radius Near Neighbors Algorithm is a well-known example. This algorithm divides points into buckets on a grid and calculates the distance between pairs of points that are adjacent or in the same bucket. The time complexity of this algorithm is O(V+M), where V is the total number of points and M is the number of pairs that can be found.

[0033] Regarding (2) above, partition trees and the like are well known. This algorithm simplifies region searching by cleverly recursively partitioning a set of points in advance. In addition to this, there are various other algorithms for (2) above, including those that require heavy pre-computation but have lighter queries per instance.

[0034] Regarding (3) above, the Bentley-Ottmann Algorithm and others are known. This algorithm manages line segments that intersect with the scan line while scanning a plane and detects the intersection. The time complexity of this algorithm is O((E+M)logE), where E is the total number of line segments and M is the number of pairs that can be found.

[0035] More specifically, the extraction unit 32 extracts vertex-edge pairs and edge-edge pairs using the following method, under the assumption that the roadmap 40 lies on a two-dimensional plane, all edges are line segments, and all agents are circles with the same radius r. Note that if enough vertices are taken in the roadmap 40, curves can be approximated by line segments. Also, agents may be approximated by larger circles to tighten collision conditions. Therefore, the above assumptions are not considered to pose a practical problem.

[0036] The extraction unit 32 extracts vertex-edge pairs that satisfy at least one of the following conditions: (i) the distance between at least one endpoint of an edge and the vertex is less than 2r, and (ii) the length of the perpendicular drawn from the vertex to the edge is less than 2r. Pairs satisfying (i) can be efficiently extracted by applying the algorithm in (1) above, and pairs satisfying (ii) can be efficiently extracted by applying the algorithm in (2) above.

[0037] Furthermore, the extraction unit 32 extracts edge-edge pairs that satisfy at least one of the following conditions: (i) the distance between at least one endpoint of one edge and the other edge is less than 2r, and (ii) the edges intersect. Pairs that satisfy (i) can be efficiently extracted by applying the algorithm in (2) above, and pairs that satisfy (ii) can be efficiently extracted by applying the algorithm in (3) above.

[0038] The calculation unit 34 calculates the temporal conditions under which collisions occur between agents present at a vertex or agents moving along an edge, for each vertex-edge pair and edge-edge pair extracted by the extraction unit 32.

[0039] Specifically, the calculation unit 34 calculates the time interval in which a collision occurs between one agent and the other agent, based on the difference between the time when one agent is present at a vertex of a vertex-edge pair and the time when the other agent begins moving from the endpoint of the edge. The calculation unit 34 also calculates the time interval in which a collision occurs between one agent and the other agent, based on the difference between the time when one agent begins moving from the endpoint of one edge of the edge-edge pair and the time when the other agent begins moving from the endpoint of the other edge.

[0040] For example, as shown in Figure 6, suppose agent A1 departs from the endpoint of edge E1 at time t1, and agent A2 departs from the endpoint of edge E2 at time t2. In the example in Figure 6, the area where agent A1 moving along edge E1 and agent A2 moving along edge E2 may collide is near the intersection of edges E1 and E2 (the shaded area in Figure 6). Whether or not agent A1 and agent A2 collide depends on the difference between time t1 and time t2. For example, in the example in Figure 6, if agents A1 and A2 are moving at the same speed, if t1 and t2 are approximately the same time, agent A1 and agent A2 will not collide; that is, the two agents can pass each other. On the other hand, if t2 is a predetermined time later than t1, and this time difference causes both agents to reach the area where collision is possible at the same time, a collision will occur.

[0041] Taking this situation into consideration, the calculation unit 34 calculates the time intervals a to b in which the two agents collide when the time difference (t1-t2) between time t1 and time t2 falls within the range of time intervals a to b. The calculation unit 34 calculates time intervals a to b by applying, for example, the method described in Collision Detection for Agents in Multi-Agent Pathfinding (Reference 1). Reference 1: Thayne T. Walker, Nathan R. Sturtevant, "Collision Detection for Agents in Multi-Agent Pathfinding", moarXiv:1908.09707v3 [cs.RO], 15 Nov 2019.

[0042] The assigning unit 36 generates a tuple including the vertex ID of the vertex included in the vertex-edge pair, the edge ID of the edge, and the time interval calculated by the calculating unit 34 for that vertex-edge pair as collision condition information. Similarly, the assigning unit 36 generates a tuple including the edge ID of each of the two edges included in the edge-edge pair and the time interval calculated by the calculating unit 34 for that edge-edge pair as collision condition information. Then, the assigning unit 36 assigns the set of generated tuples to the road map 40 and stores it in a predetermined storage area of the route generation device 10 as a road map 50 with collision conditions.

[0043] FIG. 7 shows an example of the data configuration of the road map 50 with collision conditions. In the example of FIG. 7, the road map 50 with collision conditions has collision conditions 46 added to the data configuration of the road map 40 shown in FIG. 4. Note that in FIG. 7, a tuple (E1, E2, a < t1 - t2 < b), which is one of the collision conditions, represents that the time interval of the difference between the time t1 when the agent starts from each of the end points of the edges E1 and E2 of the edge-edge pair consisting of the edges E1 and E2 and the time t2 is a to b.

[0044] The generating unit 38 generates a route for each of the plurality of agents moving on the road map 50 with collision conditions. Specifically, the generating unit 38 generates a route such that the time when the agent exists at the vertex included in the route and the time when the agent starts moving from the end point of the edge are not included in the time interval of the collision conditions. For example, as shown in FIG. 8, the generating unit 38 generates, for each agent, a series of combinations of each vertex passed through from the starting vertex to the destination vertex and the time when starting to move from that vertex to the next vertex as a route.

[0045] More specifically, when the generation unit 38 sequentially generates the paths of the agents one by one, it generates the path of the first agent and then generates the path of the second agent. The generation unit 38 generates the path of each agent using, for example, the A* algorithm. In this case, the generation unit 38 searches for the shortest path from the starting point through a certain vertex to the destination point, and selects the vertex V for which the shortest arrival time has already been determined and the edge extending from the vertex V. The generation unit 38 obtains the collision condition including the selected vertex V and the edge extending from the vertex V from the collision conditions given to the collision-conditioned roadmap 50. If there is a corresponding collision condition, the generation unit 38 obtains the time when starting from the end point of the selected edge among the paths of other agents generated earlier. The generation unit 38 adjusts the departure time of the vertex V with the time interval included in the obtained collision condition as a constraint, and obtains candidates for the arrival time at the vertex beyond the edge. The generation unit 38 continues this process until the shortest arrival time at the destination point is determined, and generates a path by reversely tracing the optimal edge from the destination point based on the search history.

[0046] For example, as shown in FIG. 9, for agent A1, assume that a path passing through edge E1 is generated, and the agent starts moving from vertex V1, which is an end point of edge E1, at time τ11 and moves along edge E1. Next, in generating the path of agent A2, assume that it reaches vertex V2 from a certain edge and edge E2 having vertex V2 as an end point is selected. Also, assume that edge E1 and edge E2 are extracted as an edge-edge pair and a collision condition of (E1, E2, a < t1 - t2 < b) is given. In this case, the generation unit 38 generates a path in which the agent departs from vertex V2 at time τ21 and moves along edge E2 such that a < τ11 - τ21 < b is not satisfied. If there is no time τ21 that does not satisfy the time interval, or if the waiting time of the agent at vertex V2 becomes longer than a predetermined time when such a time τ21 is adopted, the generation unit 38 reselects another edge having vertex V2 as an end point. Also, it may reselect the next edge by going back to the previous edge.

[0047] The generation unit 38 may also employ an algorithm for generating paths for each agent, which involves sequentially selecting the next edge from the starting point. In this case as well, the departure time should be adjusted based on collision conditions when selecting edges.

[0048] Here, referring to Figure 10, we will explain the case where the collision condition does not include a time interval, and path generation is performed using a grid graph under discrete time. If the directions of movement of agent A1 and agent A2 at a certain time t are as indicated by the arrows, the shaded areas in Figure 10 become constraints during path generation as potential collision points in order to avoid collisions between the two agents.

[0049] Furthermore, as in the invention described in Patent Document 1, path planning using the Petri net model does not specify temporal conditions for collision locations, and prohibits simultaneous use of any location that has even a slight collision. These methods overestimate the probability of collisions, which can lead to increased computational costs for path generation and cause deadlocks as shown in Figure 11.

[0050] On the other hand, in this embodiment, by including a time interval in the collision condition, the portion that is prohibited from being used simultaneously in areas where collisions are possible can be limited to the minimum necessary range, as shown in Figure 6. As a result, the space of solutions (paths) to be searched increases, and the chances of finding a solution increase, thereby raising the success rate of path generation and reducing the computational cost for path generation.

[0051] Next, the operation of the route generation device 10 according to this embodiment will be described. Figure 12 is a flowchart showing the flow of collision condition assignment processing executed by the CPU 12 of the route generation device 10. Figure 13 is a flowchart showing the flow of route generation processing executed by the CPU 12 of the route generation device 10. The CPU 12 reads the route generation program from the storage device 16, loads it into the memory 14, and executes it. In this way, the CPU 12 functions as each functional configuration of the route generation device 10, and the collision condition assignment processing shown in Figure 12 and the route generation processing shown in Figure 13 are executed. The collision condition assignment processing and the route generation processing will be described in detail below.

[0052] First, let's explain the collision condition assignment process shown in Figure 12.

[0053] In step S10, the extraction unit 32 obtains the roadmap 40. Next, in step S12, the extraction unit 32 extracts vertex-edge pairs and edge-edge pairs as locations where agents at vertices or agents moving along edges may collide when multiple agents move along the roadmap 40.

[0054] Next, in step S14, the calculation unit 34 calculates the time interval in which a collision between the two agents occurs, based on the difference between the time when one agent is present at a vertex of a vertex-edge pair and the time when the other agent begins moving from the endpoint of the edge. The calculation unit 34 also calculates the time interval in which a collision between the two agents occurs, based on the difference between the time when one agent begins moving from the endpoint of one edge of the edge-edge pair and the time when the other agent begins moving from the endpoint of the other edge.

[0055] Next, in step S16, the assignment unit 36 ​​generates a tuple as collision condition information, which includes the vertex ID and edge ID of each vertex-edge pair, and the two edge IDs of each edge-edge pair, along with the calculated time interval. The assignment unit 36 ​​then assigns the generated tuple set to the roadmap 40 and stores it as a collision-condition-assigned roadmap 50 in a predetermined memory area of ​​the path generation device 10, and the collision condition assignment process ends.

[0056] Next, we will explain the route generation process shown in Figure 13. Here, we assume that each agent is assigned an agent ID, Ai (i=1,2,...,N, where N is the number of agents).

[0057] In step S30, the generation unit 38 sets the variable i, which identifies the agent ID, to 1. Next, in the loop processing of step S32, the collision-conditional roadmap 50 is used to search for the shortest path from the starting point of agent Ai to the destination point, passing through a certain vertex. Specifically, in step S34, the generation unit 38 selects vertex V and the edges extending from vertex V for which the shortest arrival time has already been determined.

[0058] Next, in step S36, the generation unit 38 obtains the collision conditions that include the selected vertex V and the edges extending from vertex V from the collision conditions assigned to the collision-condition-attached roadmap 50. The generation unit 38 also obtains the departure time t1 of the endpoints of the edges included in the obtained collision conditions from the paths of other agents that were generated earlier.

[0059] Next, in step S38, the generation unit 38 adjusts the departure time t2 of agent Ai, when it leaves vertex V, so that the difference between this time and the departure time t1 of other agents obtained is outside the time interval included in the obtained collision conditions, and finds candidate arrival times for the vertex at the end of the edge. If no adjustable time exists, the process returns to step S34, and the generation unit 38 re-selects vertex V and the edges extending from vertex V. The generation unit 38 repeats the processes in steps S34 to S38 until the shortest arrival time to the target point is determined. Once the shortest arrival time to the target point is determined, the loop process in step S32 ends, and the process moves to step S40. In step S40, the generation unit 38 generates a path by tracing the optimal edge backward from the target point based on the search history.

[0060] Next, in step S42, the generation unit 38 determines whether i has become N, which is the number of agents. If i = N, the process proceeds to step S46; otherwise, it proceeds to step S44. In step S44, the generation unit 38 increments i by 1 and returns to step S32. In step S46, the generation unit 38 outputs the paths for each agent generated in step S40, and the path generation process ends.

[0061] As described above, in this embodiment, the path generation device has a collision condition assignment unit that extracts vertex-edge pairs and edge-edge pairs where multiple agents are likely to collide when moving on the roadmap. The collision condition assignment unit then calculates the time interval in which a collision between the two agents will occur, based on the difference between the time when one agent is present at the vertex of a vertex-edge pair and the time when the other agent starts moving from the endpoint of the edge. The collision condition assignment unit also calculates the time interval in which a collision between the two agents will occur, based on the difference between the time when one agent starts moving from the endpoint of one edge of an edge-edge pair and the time when the other agent starts moving from the endpoint of the other edge. The collision condition assignment unit then assigns collision conditions to the roadmap, associating the IDs of the vertices and edges included in each pair with the calculated time intervals. In this way, by preparing a roadmap in advance with collision conditions including time intervals assigned to locations where collisions are possible, path generation for multiple agents on the roadmap over a continuous period of time can be performed in a short time.

[0062] Furthermore, by including a time interval in the collision conditions, the number of collision points can be estimated to be minimal, increasing the space of searchable solutions (paths) and the chances of finding a solution. This increases the success rate of path generation and reduces the computational cost of path generation.

[0063] Currently, possible approaches to path generation include dividing the environment into a grid and using grid-specific planning algorithms, or using manually created roadmaps or roadmaps obtained through some method, and employing algorithms that only require collision detection, such as CCBS (Continuous Conflict Based Search). The former approach is difficult to apply when the environment's shape is not easily represented by a grid. Furthermore, the latter approach, using commonly known algorithms, lacks a realistic guarantee of time complexity, which can lead to lengthy path generation.

[0064] As in this embodiment, by adding collision conditions including time intervals to the roadmap, it is possible to obtain paths for various roadmaps using algorithms with low time costs, such as PSIPP (Prioritized Safe Interval Path Planning).

[0065] Furthermore, in this embodiment, when the collision condition assignment unit extracts locations where collisions are possible, it can efficiently extract the corresponding vertex-edge pairs and edge-edge pairs using an existing algorithm.

[0066] Here, we will describe the experimental results comparing the method of this embodiment (hereinafter referred to as "this method") with comparative methods. In this experiment, we solved the MAPF problem on a road map constructed using the well-known method PRM (Probabilistic Road Map) in an environment with obstacles. In addition, existing methods such as CCBS and PSIPP, which uses a road map without collision conditions including time intervals, were used as comparative methods.

[0067] Figure 14 is a graph showing the success rate of path generation (planning), with the horizontal axis representing the number of agents. The graph on the left shows the experimental results in an environment with obstacles, while the graph on the right shows the experimental results in an environment without obstacles. While the comparative method was limited to planning for several dozen agents, this method successfully planned for more than 100 agents. Furthermore, in an environment without obstacles, it successfully planned for nearly 2000 agents under a 30-second time limit.

[0068] This invention can be applied to quickly calculate safe routes for numerous robots moving around in a designated location, such as a factory or warehouse, for tasks like transporting goods, patrolling, or cleaning.

[0069] In the above embodiment, a configuration including a collision condition assignment unit within the route generation device was described. However, the collision condition assignment device, including the functional configuration of the collision condition assignment unit, and the route generation device, including the generation unit, may be implemented as separate devices. In this case, the collision-conditioned roadmap output from the collision condition assignment device may be used in a route generation device that applies a method other than PSIPP, or it may be used for purposes other than route generation.

[0070] Furthermore, although the above embodiment was described under the assumption that all agents are the same size, the agents may be of different sizes. In this case, the radius r of the agent used when extracting vertex-edge pairs and edge-edge pairs can be the radius of the circumscribed circle of the agent with the largest size.

[0071] Furthermore, the agents' speeds do not necessarily have to be constant; each agent and each edge may be allowed to accelerate and decelerate under predetermined speed and acceleration limits. In this case, the acceleration and deceleration of the agents should be taken into consideration when comparing them with the time interval included in the collision conditions.

[0072] Furthermore, the collision condition assignment process and path generation process, which the CPU reads and executes in the above embodiment, may be executed by various processors other than the CPU. Examples of such processors include PLDs (Programmable Logic Devices) such as FPGAs (Field-Programmable Gate Arrays) whose circuit configuration can be changed after manufacturing, and dedicated electrical circuits, which are processors with circuit configurations specifically designed to execute specific processes, such as ASICs (Application Specific Integrated Circuits). The collision condition assignment process and path generation process may be executed by one of these various processors, or by a combination of two or more processors of the same or different types (for example, multiple FPGAs, and a combination of a CPU and an FPGA). More specifically, the hardware structure of these various processors is an electrical circuit that combines circuit elements such as semiconductor elements.

[0073] Furthermore, although the above embodiment describes a configuration in which the route generation program is pre-stored (installed) in a storage device, the system is not limited to this. The program may be provided in a form stored on a storage medium such as a CD-ROM, DVD-ROM, Blu-ray disc, or USB memory. Alternatively, the program may be provided in a form that can be downloaded from an external device via a network. [Explanation of symbols]

[0074] 10 Route generation device 12 CPU 14 memory 16 Storage device 18 Input device 20 Output device 22 Storage medium reader 24 Communication I / F 26 bus 30 Collision condition setting unit 32 Extraction part 34 Calculation Unit 36 Granting section 38 Generation part 40 Roadmap 42 Vertex Information Table 44-sided information table 46 Collision conditions 50 Roadmap with Collision Conditions

Claims

1. When multiple agents move along a roadmap that includes multiple vertices and multiple edges connecting the vertices, an extraction unit extracts a first pair of vertices and edges that may collide with the agents at the vertices or with the agents moving along the edges, and a second pair of edges that may collide with the agents. A calculation unit calculates a time interval in which a collision occurs between one agent and the other agent, based on the difference between the time when one agent is present at each of the vertices of the first pair and the time when the other agent begins moving from the endpoint of the edge, and the difference between the time when one agent begins moving from the endpoint of one edge of each of the second pair and the time when the other agent begins moving from the endpoint of the other edge. An assignment unit assigns to the roadmap, as a condition for collision between the agents, information relating the identification information of the vertices and edges included in the first pair to the time interval, and information relating the identification information of each of the two edges included in the second pair to the time interval, A collision condition-setting device including a collision condition-setting device.

2. The collision condition assigning device according to claim 1, wherein the extraction unit extracts the first pair and the second pair from the plurality of vertices and plurality of edges included in the roadmap using an algorithm for enumerating pairs of points whose distance from each other is less than or equal to a certain value in a given set of points, an algorithm for enumerating points that exist within a given region in a given set of points, and an algorithm for enumerating pairs of intersecting line segments in a given set of line segments.

3. The extraction unit, assuming the agent is a circle with a predetermined diameter, selects from the plurality of vertices and the plurality of sides included in the roadmap, A pair of vertices and edges that satisfies at least one of the following conditions is extracted as the first pair: the distance between at least one of the endpoints of the edge and the vertex is less than the predetermined value, and the length of the perpendicular drawn from the vertex to the edge is less than the predetermined value. If the distance between at least one endpoint of one side and the other side is less than the predetermined value, and if the sides intersect, then pairs of sides that satisfy at least one of these conditions are extracted as the second pair. The collision condition application device according to claim 1.

4. A path generation device including a generation unit that generates a path for each of a plurality of agents moving on the roadmap to which conditions for collision between the agents have been assigned by the collision condition assigning device according to any one of claims 1 to 3, wherein the time at which an agent is present at a vertex included in the path and the time at which an agent starts moving from the endpoint of an edge are not included in the time interval of the conditions.

5. The path generation device according to claim 4, in which the generation unit sequentially generates paths for the agents one by one, generates a path for the first agent and then generates a path for the second agent, such that the difference between the time when the agent is present at a vertex included in the path generated for the first agent and the time when the agent starts moving from the endpoint of the edge is not included in the time interval, and the difference between that time and the time when the agent starts moving from the endpoint of the edge.

6. When multiple agents move along a roadmap that includes multiple vertices and multiple edges connecting the vertices, the extraction unit extracts a first pair of vertices and edges that may collide with the agents at the vertices or with the agents moving along the edges, and a second pair of edges that may collide with the agents. The calculation unit calculates the time interval in which a collision occurs between one agent and the other agent, based on the difference between the time when one agent is present at each vertex of the first pair and the time when the other agent begins moving from the endpoint of the edge, and the difference between the time when one agent begins moving from the endpoint of one edge of the second pair and the time when the other agent begins moving from the endpoint of the other edge. The assignment unit assigns to the roadmap, as a condition for collision between the agents, information relating the identification information of the vertices and edges included in the first pair to the time interval, and information relating the identification information of each of the two edges included in the second pair to the time interval. A method for assigning collision conditions.

7. Computers, When multiple agents move along a roadmap that includes multiple vertices and multiple edges connecting the vertices, an extraction unit extracts a first pair of vertices and edges that may collide with the agents at the vertices or with the agents moving along the edges, and a second pair of edges that may collide with the agents. A calculation unit calculates the time interval in which a collision occurs between one agent and the other agent, based on the difference between the time when one agent is present at each of the vertices of the first pair and the time when the other agent begins moving from the endpoint of the edge, and the difference between the time when one agent begins moving from the endpoint of one edge of each of the second pair and the time when the other agent begins moving from the endpoint of the other edge, and An assignment unit assigns to the roadmap, as a condition for collision between the agents, information relating the identification information of the vertices and edges included in the first pair to the time interval, and information relating the identification information of each of the two edges included in the second pair to the time interval. A program for assigning collision conditions to enable it to function as such.

Citation Information

Patent Citations

  • Collision preventing device for mobile robot system

    JP1991002909A

  • Running managing controller and its method

    JP1998312217A

  • Method and device for searching shortest route for automatic carrier

    JP1999249738A

  • Mobile device group control system

    JP2007293551A

  • Operation planning system, operation planning method, and computer program

    JP2020149370A