Route search device, route search method, and program
The route search device effectively generates conflict-free path plans for multiple vehicles by predicting obstacle paths and using CBS and MCTS algorithms, addressing the challenge of uncontrollable obstacles in MAPF.
Patent Information
- Application Number
- JP2024540819
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2022-01-13
- Filing Date
- 2022-12-13
- Publication Date
- 2025-11-27
- Estimated Expiration
- 2042-12-13
Smart Images

Figure 0007776808000002 
Figure 0007776808000003 
Figure 0007776808000004
Abstract
Description
[Technical Field]
[0001] The present disclosure relates generally to path planning problems involving multiple vehicles. [Background technology]
[0002] A technique for solving a problem of finding a path for multiple vehicles, called the Multi-Agent Pathfinding (MAPF) problem, has been developed. Non-Patent Document 1 discloses various algorithms for solving the MAPF problem. [Prior art documents] [Non-patent literature]
[0003] [Non-Patent Document 1] Roni Stern, Nathan Sturtevant, Ariel Felner, Sven Koenig, Hang Ma, Thayne Walker, Jiaoyang Li, Dor Atzmon, Liron Cohen, TKSatish Kumar, Eli Boyarski, and Roman Bartak, "Multi-Agent Pathfinding: Definitions, Variants, and Benchmarks," [online], January 19, 2019, [retrieved December 24, 2021], Internet<arXiv,https: / / arxiv.org / pdf / 1906.08291.pdf> [Non-patent document 2] Guni Sharon, Roni Stern, Ariel Felner, and Nathan R. Sturtevant, "Conflict-based search for optimal multi-agent pathfinding," Elsevier, Artificial Intelligence, Volume 219, pp. 40-66, February 2015. Summary of the Invention [Problem to be solved by the invention]
[0004] Non-Patent Document 1 does not disclose an algorithm that can handle uncontrollable moving obstacles such as humans. This disclosure provides a novel technique for finding a set of paths for multiple vehicles in the presence of one or more uncontrollable moving obstacles. [Means for solving the problem]
[0005] A route search device according to the present disclosure includes at least one processor and a memory storing instructions. The at least one processor is configured to execute the instructions to acquire vehicle information, obstacle information, and map information, the vehicle information including a current position and a destination position of each of a plurality of vehicles, the obstacle information including a position history of one or more moving obstacles, and the map information including a map of a space in which the vehicles and the moving obstacles move, generate one or more obstacle paths for each moving obstacle during a target time window of a predetermined length based on the obstacle information and the map information, generate a plurality of candidate route sets based on the vehicle information, the obstacle paths, and the map information, the candidate route sets including vehicle paths during the target time window for each vehicle, the vehicle paths not competing with the other vehicle routes and the obstacle paths, evaluate the candidate route sets by a subsequent heuristic search of the vehicle routes within the candidate route sets, select one of the candidate route sets based on the evaluation of the candidate route sets, and output the selected candidate route set.
[0006] A route search device according to the present disclosure is executed by a computer and includes acquiring vehicle information, obstacle information, and map information, the vehicle information including a current position and a destination position of each of a plurality of vehicles, the obstacle information including a position history of one or more moving obstacles, and the map information including a map of a space in which the vehicles and the moving obstacles move, generating one or more obstacle paths for each moving obstacle during a target time window of a predetermined length based on the obstacle information and the map information, generating a plurality of candidate route sets based on the vehicle information, the obstacle paths, and the map information, the candidate route sets including vehicle paths during the target time window for each vehicle, the vehicle paths not competing with the other vehicle paths and the obstacle paths, evaluating the candidate route sets by a heuristic search for the vehicle paths within the candidate route sets, and selecting one of the candidate route sets based on the evaluation of the candidate route sets and outputting the selected candidate route set.
[0007] A non-transitory computer-readable storage medium of the present disclosure stores a program that causes a computer to: acquire vehicle information, obstacle information, and map information, wherein the vehicle information includes a current position and a destination position of each of a plurality of vehicles, the obstacle information includes historical positions of one or more moving obstacles, and the map information includes a map of a space in which the vehicles and the moving obstacles move; generate one or more obstacle paths for each moving obstacle during a target time window of a predetermined length based on the obstacle information and the map information; generate a plurality of candidate route sets based on the vehicle information, the obstacle paths, and the map information, wherein the candidate route sets include vehicle paths for each vehicle during the target time window, the vehicle paths not competing with the other vehicle paths and the obstacle paths; evaluate the candidate route sets by a subsequent heuristic search of the vehicle paths within the candidate route sets; and select one of the candidate route sets based on the evaluation of the candidate route sets and output the selected candidate route set. [Effects of the Invention]
[0008] In accordance with the present disclosure, a novel technique for finding a set of paths for multiple vehicles in the presence of one or more uncontrollable moving obstacles is provided. is provided . [Brief explanation of the drawings]
[0009] [Figure 1] 1 shows an overview of a route search device according to a first embodiment. [Figure 2] FIG. 2 is a block diagram showing an example of a functional configuration of the route search device. [Figure 3] FIG. 2 is a block diagram showing an example of a hardware configuration of a computer that realizes the route search device. [Figure 4] 4 is a flowchart illustrating the flow of processing performed by the route search device of the first embodiment. [Figure 5] The initial state of the MCTS search tree used in the evaluation part is shown. [Figure 6] The search tree for the first example of MCTS employed in the evaluation section is shown below. [Figure 7] The search tree for the second example of MCTS employed in the evaluation section is shown below. DETAILED DESCRIPTION OF THE INVENTION
[0010] An embodiment of the present disclosure will be described below with reference to the drawings. The same elements are assigned the same reference numerals throughout the drawings, and redundant description will be omitted as necessary. The storage unit is composed of one or more storage devices.
[0011] Embodiment 1 <Summary> 1 shows an overview of a route search device 2000 according to embodiment 1. It should be noted that the overview shown in FIG. 1 shows an example of the operation of the route search device 2000 to make it easier to understand the route search device 2000, and is not intended to limit or narrow the range of possible operations of the route search device 2000.
[0012] The route search device 2000 operates to generate a route plan 40 for a collection of vehicles 20. The route plan 40 is a collection of routes 50 and includes a route 50 for each of the multiple vehicles 20. The routes 50 are time-series data indicating the position of the corresponding vehicle 20 at each point in time (hereinafter, a point in time is also referred to as a "time step"). Each vehicle 20 can be configured to move from its start position to its destination position within a target space along the corresponding route 50. The start position and the destination position are defined in advance for each vehicle 20. The target space is any location where the vehicles 20 can move, such as a warehouse or a factory.
[0013] Vehicle 20 may be any moving object that can be controlled to move along an assigned path. In some implementations, vehicle 20 may be any type of autonomous moving vehicle, such as an automatic guided vehicle (AGV), a drone, etc. In other implementations, vehicle 20 may be any type of manually operated moving object.
[0014] To avoid collisions between vehicles 20, the path plan 40 is required to be non-conflicting, i.e., each path 50 does not conflict with any of the other paths 50 in the path plan 40. It is also assumed that not only vehicles 20 but also one or more moving obstacles, such as people, are moving in the target space. Therefore, to avoid collisions between the vehicle 20 and the moving obstacles, the path 50 is also required to not conflict with the paths of the moving obstacles. Hereinafter, for clarity, the path of the vehicle 20 and the path of the moving obstacle are referred to as the "vehicle path" and the "obstacle path," respectively. The obstacle path is the path of the moving obstacle along which the moving obstacle is predicted to move.
[0015] A moving obstacle is any moving object that is uncontrollable from the viewpoint of the path search device 2000. For example, a moving obstacle is a moving object (e.g., a human) that does not move along an allocated path. In another example, a moving obstacle is a moving object that moves along an allocated path that is not revealed to the path search device 2000.
[0016] The route search device 2000 generates a route plan 40 for each of consecutive time windows having a predetermined length denoted as WL. The route plan 40 for a target time window is generated at or before the start time of that time window. Hereinafter, the time window for which the route search device 2000 is generating a route plan 40 will be referred to as the "target time window."
[0017] The start time of vehicle 20 movement is set to 0. In this case, a route plan 40 is generated for each of a first time window W_1 from 0 to WL, a second time window W2 from WL to 2*WL, ..., and an nth time window W_n from (n-1)*WL to n*WL. Time window W_n is the latest time window in which the last vehicle 20 reaches its destination. Unless otherwise specified, the start time of vehicle 20 movement, i.e., the start time of the first time window W1, is set to 0 as described above.
[0018] To generate a route plan 40 for a target time window, the route search device 2000 operates as follows. The route search device 2000 acquires vehicle information 60, map information 70, and obstacle information 80. The vehicle information 60 indicates the current position and destination position of each vehicle 20. The current position of the vehicle 20 represents the position of the vehicle 20 at the start of the target time window (i.e., at the end of the previous time window). When the target time window is the first time window, the current position corresponds to the starting position where the movement of the vehicle 20 begins. The obstacle information 80 indicates the position history of each moving obstacle.
[0019] The path search device 2000 generates one or more sets of obstacle paths of the moving obstacles during the target time window by predicting the action of each moving obstacle during the target time window using the map information 70 and the obstacle information 80. Hereinafter, the set of obstacle paths will be referred to as an "obstacle path set."
[0020] The path search device 2000 then generates multiple candidate path plans 40 based on the vehicle information 60, the map information 70, and the obstacle path set. A candidate path plan 40 is a set of vehicle paths of the vehicle 20 during the target time window. Hereinafter, the candidate path plans 40 are referred to as "candidate path sets." Each candidate path set is generated so as to be conflict-free; that is, all vehicles 20 do not collide with other vehicles 20 or moving obstacles. In some implementations, a variant of the conflict-based search (CBS) algorithm is used to generate the multiple candidate path sets.
[0021] After generating the plurality of candidate route sets, the route search device 2000 evaluates the plurality of candidate route sets. The candidate route sets are evaluated by a subsequent heuristic search. In some implementations, a Monte Carlo Tree Search (MCTS) algorithm is used for the heuristic search.
[0022] The route search device 2000 selects one of the multiple candidate route sets based on the evaluation of the sets, and outputs the selected candidate route set as the route plan 40 for the target time window. For example, the candidate route set with the highest evaluation is selected as the route plan 40 for the target time window.
[0023] <Examples of effects> In real situations, vehicles such as AGVs may move through spaces where uncontrollable moving obstacles such as humans are also moving. For the safety of the space, it is preferable to plan the vehicle's path so that the vehicles do not collide with each other or with moving obstacles.
[0024] According to the path search device 2000 of the first embodiment, the path of an uncontrollable moving obstacle is predicted based on the position history of the moving obstacle. Then, the path of the vehicle 20 is generated taking the path of the moving obstacle into consideration. Therefore, the path of the vehicle 20 can be generated so as not to conflict with not only the paths of other vehicles but also the path of the moving obstacle. If the moving obstacle is a human, a safe environment can be provided for the human beings who are active there.
[0025] More specifically, the route search device 2000 generates multiple candidate routes for the vehicle 20 for a target time window, which is a period of a predetermined length. The multiple candidates are then evaluated by a subsequent heuristic search (e.g., MCTS) of these candidates, and one of the candidates is selected as the route plan 40 for the target time window. In this way, the route search device 2000 can provide a preferred route plan 40 with less calculation time.
[0026] Specifically, due to the unpredictability of moving objects, it takes a lot of calculation time to generate a single route plan 40 that is guaranteed to be free of conflicts until all vehicles 20 reach their destinations. On the other hand, a heuristic search algorithm may be able to generate a route plan 40 in less calculation time, but a route plan 40 generated by heuristic search alone is not guaranteed to be free of conflicts. In this regard, the route search device 2000 generates candidate route plans 40 that are guaranteed to be free of conflicts during the target time window and then evaluates them by heuristic search, thereby generating a preferred route plan 40 that is guaranteed to be free of conflicts in less calculation time.
[0027] The route search device 2000 of the first embodiment will be described in more detail below.
[0028] <Example of functional configuration> 2 shows an example of the functional configuration of the route search device 2000. The route search device 2000 includes an acquisition unit 2020, a prediction unit 2040, a candidate generation unit 2060, an evaluation unit 2080, and an output unit 2100.
[0029] The acquisition unit 2020 acquires vehicle information 60, map information 70, and obstacle information 80. The prediction unit 2040 generates one or more obstacle path sets for the target time window based on the map information 70 and the obstacle information 80. The candidate generation unit 2060 generates multiple candidate path sets for the target time window based on the vehicle information 60, the map information 70, and the obstacle path sets for the target time window. The evaluation unit 2080 evaluates the candidate path sets by a subsequent heuristic search of the candidate path sets. The output unit 2100 selects one of the candidate path sets based on the evaluation of the candidate path sets, and outputs the selected candidate path set as the route plan 40 for the target time window.
[0030] <Example of hardware configuration> The route search device 2000 may be realized by one or more computers. Each of the one or more computers may be a dedicated computer manufactured for realizing the route search device 2000, or may be a general-purpose computer such as a personal computer (PC), a server machine, or a mobile device.
[0031] The route search device 2000 may be realized by installing an application on a computer. The application is realized by a program that causes the computer to function as the route search device 2000. In other words, the program is an implementation of the functional units of the route search device 2000.
[0032] 3 is a block diagram showing an example of the hardware configuration of a computer 1000 that realizes the route search device 2000. In FIG. 3, the computer 1000 includes a bus 1020, a processor 1040, a memory 1060, a storage device 1080, an input / output interface 1100, and a network interface 1120.
[0033] The bus 1020 is a data transmission channel through which the processor 1040, memory 1060, storage device 1080, input / output interface 1100, and network interface 1120 transmit and receive data to and from each other. The processor 1040 is a processor such as a central processing unit (CPU), a graphics processing unit (GPU), or a field-programmable gate array (FPGA). The memory 1060 is a main memory element such as a random access memory (RAM) or a read-only memory (ROM). The storage device 1080 is an auxiliary memory element such as a hard disk, a solid state drive (SSD), or a memory card. The input / output interface 1100 is an interface between the computer 1000 and peripheral devices such as a keyboard, a mouse, and a display device. The network interface 1120 is an interface between the computer 1000 and a network. The network may be a local area network (LAN) or a wide area network (WAN).
[0034] The storage device 1080 may store the above-mentioned programs. Processor The 1040 executes a program to realize each functional unit of the route search device 2000 .
[0035] The hardware configuration of the computer 1000 is not limited to the configuration shown in Fig. 3. For example, as described above, the route search device 2000 may be realized by a plurality of computers. In this case, the computers may be connected to each other via a network.
[0036] <Processing flow> 4 is a flowchart illustrating an example of the overall flow of processing performed by the route search device 2000 of embodiment 1. Note that the flow of processing performed by the route search device 2000 is not limited to that shown in FIG.
[0037] The acquisition unit 2020 acquires map information 70 (S102). Steps S104 to S116 constitute a loop process L1 that is performed for each time window Wi until all vehicles 20 reach their destinations. Note that i represents the index of the current iteration of the loop process L1. For each iteration of the loop process L1, the time window Wi is the target time window.
[0038] In step S104, the route search device 2000 determines whether all vehicles 20 have reached their destinations in the route plan 40 of the previous time window. If all vehicles 20 have reached their destinations in the route plan 40 of the previous time window, execution of the loop process L1 ends, and therefore the process shown in Fig. 4 ends. On the other hand, if there are one or more vehicles 20 that have not reached their destinations in the route plan 40 of the previous time window, the next iteration of the loop process L1 is performed.
[0039] The acquisition unit 2020 acquires vehicle information 60 and obstacle information 80 (S106). The prediction unit 2040 generates one or more obstacle path sets for the time window W i (i.e., the target time window) based on the map information 70 and the obstacle information 80 (S108). The candidate generation unit 2060 generates multiple candidate path sets for the time window W i based on the vehicle information 60, the map information 70, and the obstacle path sets for the time window W i (S110). The evaluation unit 2080 evaluates the candidate path sets for the time window W i by a subsequent heuristic search of the candidate path sets (S112). The output unit 2100 selects one of the candidate path sets based on the evaluation of the candidate path sets and outputs the selected candidate path set as the route plan 40 for the time window W i (S114).
[0040] Step S116 marks the end of loop processing L1, and therefore step S104 is performed next.
[0041] <Getting map information 70: S102> The acquisition unit 2020 acquires map information 70 (S102). The map information 70 represents a map of the target space. Theoretically, the map may represent a graph G=(V, E), where V is a set of vertices and E is a set of edges. A vertex represents a position, and an edge represents a connection between positions.
[0042] There are various ways to implement a map of an object space. In some implementations, the map is implemented as a two-dimensional (2D) or three-dimensional (3D) grid map, where each location is represented by a cell in the grid map, and each connection between locations is represented by a connection between cells in the grid map.
[0043] Map information 70 may also indicate the location of each stationary obstacle, such as a wall, ledge, etc. Each obstacle is defined by one or more locations (e.g., cells of a grid map) that are permanently occupied at least during the movement of vehicle 20.
[0044] There may be various methods for acquiring the map information 70. For example, the map information 70 is stored in advance in a storage unit accessible by the route search device 2000. In this case, the acquisition unit 2020 acquires the map information 70 from the storage unit. In another example, the acquisition unit 2020 may acquire the map information 70 by receiving the map information 70 transmitted from another computer.
[0045] <Acquisition of vehicle information 60: S106> The acquisition unit 2020 acquires the vehicle information 60 (S106). The vehicle information 60 indicates the current position and destination position of each vehicle 20. If the target time window is the first time window W1, the current position of the vehicle 20 corresponds to the starting position where the vehicle 20 starts moving. Otherwise, the current position of the vehicle 20 corresponds to the last position of the vehicle 20 instructed by the route plan 40 of the previous time window.
[0046] Since the destination position of the vehicle 20 is common to all time windows, DepartmentIt is not necessary for acquisition 2020 to obtain the destination position from outside of route search device 2000 for each iteration of loop process L1 except for the first iteration. Thus, in some implementations, acquisition 2020 may cache the destination position of vehicle 20 in route search device 2000 (e.g., in storage device 1080) for the first iteration of loop process L1 and obtain it from the cache for other iterations. In this case, vehicle information 60 is not required to include the destination position of vehicle 20 except for the first iteration of loop process L1.
[0047] The acquisition unit 2020 may acquire the vehicle information 60 in a manner similar to the manner for acquiring the map information 70 described above.
[0048] <Obstacle information 80 acquisition: S106> In step S106, the acquisition unit 2020 acquires obstacle information 80. The obstacle information 80 includes a position history of a moving obstacle moving in the target space. The position history of the moving obstacle can be represented by time-series data of the moving obstacle's position (for example, a pair of a time step and a position of the moving obstacle).
[0049] The obstacle information 80 can be generated in various ways. For example, the obstacle information 80 can be generated by analyzing video data generated by a camera installed to capture the target space. In another example, the obstacle information 80 can be generated by repeatedly obtaining location information from a sensor device (such as a Global Positioning System (GPS) sensor) attached to or carried by a moving obstacle. If the moving obstacle is a person, the sensor may be a GPS sensor installed on the person's mobile device, such as a smartphone.
[0050] <Generating a set of obstacle paths: S108> The prediction unit 2040 generates one or more obstacle path sets for the target time window Wi based on the obstacle information 80 for the target time window and the map information 70 (S108). To generate the obstacle path sets, the prediction unit 2040 predicts the movement of moving obstacles during the target time window based on the obstacle information 80.
[0051] There are various well-known methods for predicting the movement of an object based on the object's position history, and any of them can be adopted to predict the movement of a moving obstacle. In some implementations, the predictor 2040 uses a motion simulator (hereinafter referred to as an "obstacle motion simulator") that simulates and predicts the movement of an object. The obstacle motion simulator may be a random simulator in which moving obstacles are supposed to move randomly. Other models, such as a path-based model or some other rule-based model, may also be applied in the obstacle motion simulator.
[0052] To predict the paths of the moving obstacles, the predictor 2040 may call an obstacle motion simulator to perform a predetermined number of simulations based on the historical positions of the moving obstacles indicated by the obstacle information 80. Then, for each moving obstacle, the predictor 2040 may select the most frequently visited path as the obstacle path for that moving obstacle. The set of selected obstacle paths is used as the obstacle path set.
[0053] When the predictor 2040 generates N obstacle paths (N>1) for each moving obstacle, the predictor 2040 may select the top N paths in terms of visit count for each moving obstacle as the obstacle paths for that moving obstacle. Then, the predictor 2040 generates multiple obstacle path sets by combining the obstacle paths of the moving obstacles. When there are K moving obstacles, the predictor 2040 can obtain a maximum of N^K obstacle path sets.
[0054] <Providing a set of candidate routes: S110> The candidate generator 2060 generates a plurality of candidate route sets for the target time window (S110). The candidate route set for the target time window is a candidate for the route plan 40 for the target time window. The candidate route set includes vehicle routes for each vehicle 20 during the target time window. The vehicle routes in the candidate route set do not conflict with each other. Furthermore, the vehicle routes in the candidate route set do not conflict with obstacle routes in the obstacle route set for the target time window.
[0055] In some implementations, the candidate generator 2060 performs a deterministic algorithm that can find routes for multiple vehicles that are guaranteed not to conflict with each other (in other words, a deterministic algorithm that solves the MAPF problem). There are various deterministic algorithms that generate conflict-free routes for multiple vehicles. For example, the candidate generator 2060 may perform a modified CBS algorithm. The original CBS is disclosed in Non-Patent Document 2. Hereinafter, the original CBS will be referred to as the "original CBS," and the modified CBS adopted in the route search device 2000 will be referred to as the "variant CBS."
[0056] CBS is a two-level search algorithm divided into a high-level search and a low-level search. The high-level search is performed using a binary search tree called a "constraint tree" (CT). Each node in the CT contains (1) time and location constraints associated with conflicts detected by the low-level search performed in its parent node, (2) a single candidate solution (i.e., a candidate set of routes for all vehicles) that satisfies all constraints implied by the node and its ancestors, and (3) a solution evaluation that is the sum of the total route durations of all vehicles in the original CBS. In the original CBS, the root node of the CT contains an empty set of constraints.
[0057] The constraints included in the nodes indicate which vehicles are prohibited from occupying which positions at which times. For example, it is detected that vehicles A1 and A2 are in conflict with each other at position L1 at time T1. In this case, to avoid the conflict, a constraint such as "vehicle A1 must not occupy position L1 at time T1" or "vehicle A2 must not occupy position L1 at time T1" may be adopted.
[0058] For each node in CT, a low-level search is invoked for the vehicle whose path needs to be re-planned. In the original CBS, the A* search algorithm is adopted as the path planning algorithm to find a new path for the vehicle while satisfying the constraints imposed by the current node and its ancestors. However, in the variant CBS, the path planning algorithm used in the low-level search is not limited to the A* search algorithm.
[0059] The variant CBS differs from the original CBS in at least three ways: (1) the root node of the CT contains a constraint based on the obstacle path set, (2) conflicts between target time windows should be resolved, not all conflicts, and (3) multiple solutions are output. These points are explained in detail below.
[0060] <<(1) Constraints based on the set of obstacle paths>> To avoid conflicts between the vehicle 20 and the moving obstacle, the variant CBS is required to explore a set of paths for the vehicle 20 taking into account the obstacle path set. Specifically, the obstacle path of a moving obstacle can be used to generate constraints for avoiding collisions with the moving obstacle. For example, if a moving obstacle is located at position L1 at time T1, no vehicle 20 is allowed to occupy position L1 at time T1.
[0061] Therefore, the candidate generator 2060 generates constraints for avoiding collisions with moving obstacles based on the obstacle paths included in the obstacle path set for the target time window, and adds the generated constraints to CT of the variant CBS. Since all vehicles 20 must avoid collisions with moving obstacles, the constraints for avoiding collisions with moving obstacles are common to all vehicles 20. Therefore, the constraints for avoiding collisions with moving obstacles are added to the root node of CT.
[0062] <<(2) Resolving conflicts between target time windows>> The original CBS detects all conflicts that occur during the entire journey of all vehicles 20 and adds constraints to the nodes of CT to avoid the detected conflicts. However, the vehicle routes in the candidate route set are not required to be conflict-free until all vehicles 20 reach their destinations, but are required to be conflict-free during the target time window.
[0063] Therefore, the variant CBS detects conflicts that occur during the target time window and adds constraints to the nodes of the CT to avoid the detected conflicts, thereby generating a conflict-free vehicle route at least during the target time window. By not taking into account conflicts after the target time window, the variant CBS can generate a conflict-free vehicle route at least during the target time window in less calculation time than generating a conflict-free vehicle route until the end of the vehicle route.
[0064] <<Multiple solution output>> The original CBS outputs a single optimal solution under the assumption that there are no uncontrollable obstacles, such as moving obstacles. On the other hand, the variant CBS is formed to output multiple solutions to evaluate solutions taking into account uncontrollable obstacles. Specifically, the variant CBS provides multiple solutions by generating multiple CTs that provide different solutions from each other. At the root node of each CT, low-level search is invoked to generate an initial set of vehicle paths under the constraint that "each vehicle's path must be different from any path for that vehicle generated at the root node of a different CT for that vehicle." Note that the constraint based on the obstacle path set is shared with all CTs.
[0065] Suppose a low-level search is invoked at the root node of the i-th CT to generate a path for vehicle V1, in which case vehicle V1 is prohibited from visiting any path for vehicle V1 generated at the root node of the (i-1)-th CT from the first CT.
[0066] The candidate generator 2060 converts each of the multiple solutions output from the variant CBS into a candidate path set. The vehicle path of the vehicle 20 in the variant CBS solution indicates the position of the vehicle 20 until the vehicle 20 reaches its destination, and the vehicle path of the vehicle 20 in the candidate path set indicates the position of the vehicle 20 during the target time window. Thus, for each vehicle 20, the candidate generator 20 may remove the position of the vehicle 20 after the end of the target time window from the vehicle path of the vehicle 20 included in the variant CBS solution to generate the vehicle path of the vehicle included in the candidate path set.
[0067] <Evaluation of candidate route set: S112> The evaluator 2080 evaluates the candidate route set by heuristically searching for a sequence of vehicle routes in the candidate route set. For example, a heuristic search algorithm classified as MCTS may be adopted to evaluate the candidate route set.
[0068] MCTS has been applied to games such as Go and chess to solve the problem of "which of the possible actions should be selected in the next step?" To this end, MCTS generates a search tree with a root node and multiple child nodes of the root node. The root node represents the current state. Each edge between the root node and its child nodes represents one of the possible next actions. The child nodes of the root node represent the state after the action represented by its parent edge is taken. MCTS then iteratively expands the search tree to evaluate each possible next action by repeatedly performing a set of steps: 1) selection step, 2) expansion step, 3) rollout step, and 4) backpropagation step.
[0069] The selection step is the step of selecting the node to be expanded (i.e., the node to which the new child node will be added). The expansion step is the step of generating and adding new child nodes to the selected node. The rollout step is the step of performing a random rollout from the new child node. The backpropagation step is the step of assigning a reputation score to the new child node and updating the reputation scores of the new child node's ancestors based on the results of the rollout.
[0070] In the case of the path search device 2000, each candidate path set for the target time window describes a set of possible actions for the vehicle 20 for the next time window and can be treated as a possible action for the next step in the context of MCTS. Therefore, the evaluation unit 2080 evaluates multiple candidate path sets by performing MCTS on a search tree that represents the problem of "which of the candidate path sets should be selected as the path plan 40 for the next time window?" Note that the actions of the vehicle 20 and moving obstacles may include waiting and possible movements (e.g., moving up, down, left, or right in a 2D grid map). Hereinafter, the vehicle 20 and moving obstacles are collectively referred to as "entities."
[0071] Figure 5 shows the initial state of the search tree of MCTS adopted by the evaluation unit 2080. The search tree 130 includes a root node 131, an edge 132, a node 133, an edge 134, and a node 135. The root node 131 represents the current state that can be defined by the vehicle information 60 and the obstacle information 80.
[0072] The search tree 130 in the initial state is divided into two layers. The first layer represents the selection of the obstacle path set, and the second layer represents the selection of the candidate path set. The edge 132 represents the set of possible actions taken by the moving obstacle during the target time window, which corresponds to the obstacle path set of the target time window. In Figure 5, the i-th obstacle path set is denoted as OPSi. The node 133 represents the state after the action represented by the parent edge 132 is taken. The state after the action represented by the obstacle path set OPSi is taken is denoted as Si in Figure 5.
[0073] The edge 134 represents the set of possible actions taken by the vehicle 20 during the target time window, which corresponds to the candidate path set of the target time window. In Figure 5, the j-th candidate path set under the i-th obstacle path set is denoted as CPSi-j. The node 135 represents the state after the action represented by the parent edge 134 is taken. The state after the action represented by the candidate path set CPSi-j is taken is denoted as Si-j in Figure 5.
[0074] After initializing the search tree 130, the evaluation unit 2080 heuristically explores various patterns of the entity's future actions by expanding the search tree 130 from the node 135, and calculates the evaluation score (e.g., Upper Confidence Tree (UCT)) of each node in the search tree to evaluate each pattern of the action. Below, two example methods for evaluating the candidate path set by MCTS will be described.
[0075] <<The First Example of MCTS>> FIG. 6 shows a search tree for a first example of MCTS employed in the evaluation unit 2080. In this example, the start time of the target time window and the length of the time window are denoted as Ts and WL, respectively. The search tree 130 is expanded by adding edges 136, each representing a set of actions taken by all moving obstacles or all vehicles 20 at a single time step. To clarify this feature, in FIG. 6, the search tree 130 is divided into layers 140, each corresponding to a single time step. The layer 140 is further divided into two sublayers 141 and 142. The edges 136 in the sublayer 141 represent the set of actions taken by all moving obstacles at the corresponding time step, and the edges 136 in the sublayer 142 represent the set of actions taken by all vehicles 20 at the corresponding time step. Note that the order of the sublayers 141 and 142 may be interchangeable. A node 137 represents a state after the action represented by its parent edge 136 has been taken.
[0076] As described above, the MCTS repeats a set of steps: selection, expansion, rollout, and backpropagation. In the selection step of the first example of the MCTS, a node is selected based on its evaluation score. Specifically, the evaluator 2080 starts from the root node and selects successive child nodes until it reaches a leaf node of the search tree 130, and treats the selected leaf node as the node to be expanded. At each level of the search tree 130, the evaluator 2080 selects the node with the highest evaluation score.
[0077] Note that for the first execution of the selection step, the node to be expanded may be selected without an evaluation score. For example, the evaluator 2080 may randomly select one of the nodes 135. In another example, the node 135 generated from the solution with the highest score in the variant CBS may be selected as the node to be expanded.
[0078] In the unfolding step, the evaluator 2080 generates new edges 136 and new nodes 137 and attaches them to the node to be unfolded. If a new edge 136 is generated for sublayer 141, the evaluator 2080 generates a new edge 136 that represents the set of actions of all moving obstacles. On the other hand, if a new edge 136 is generated for sublayer 142, the evaluator 2080 generates a new edge 136 that represents the set of actions of all vehicles 20.
[0079] The evaluator 2080 generates a set of actions to be assigned to the new edge 136 by determining the type of action for each entity (i.e., for each moving obstacle or for each vehicle 20). The type of action may be selected randomly from the possible actions of each entity. However, the set of actions assigned to the new edge 136 must be different from any set of actions already assigned to its sibling edges, i.e., edges 136 that share a parent node with the new edge 136. The possible actions can be determined based on the location of the entity indicated by the node to be expanded and the map indicated by the map information 70. If the possible actions depend on the type of entity, the type of entity for which the new edge 136 is generated is also taken into consideration to determine the possible actions.
[0080] The evaluator 2080 generates a new node 137 based on the state represented by its parent node (i.e., the node to be expanded) and the action represented by the new edge 136. Specifically, the state to be represented by the node 137 may be generated by changing the position of the entity from the position indicated by the parent node according to the action represented by the new edge 136.
[0081] In the rollout step, the evaluator 2080 performs random rollout from the new node 137 until all vehicles 20 have completed their movements, which may end when all vehicles 20 have reached their destinations or when a deadlock occurs. In the rollout, the evaluator 2080 may repeatedly perform random selection of an action from the possible actions for each entity in turn.
[0082] In the backpropagation step, the evaluator 2080 assigns an evaluation score to the new node 137 and updates the evaluation scores of each ancestor of the new node 137 (including nodes 133 and 135). In the path search device 2000, the evaluation score may be defined to represent how suitable a set of vehicle paths is for controlling the vehicle 20.
[0083] The evaluation score may be defined to reflect the cost of a set of vehicle paths, such as makespan or total time. The makespan of a set of paths is the time required for all vehicles 20 to reach their destinations (in other words, the length of all longest vehicle paths). Meanwhile, the total time of a set of paths is the sum of the times required for each vehicle 20 to reach its destination (in other words, the total length of the vehicle paths of all vehicles 20). The evaluation score may also be defined to reflect the occurrence of contention and deadlock.
[0084] In some embodiments, the assessment score is defined as a variant of the UCT as follows:
number
[0085] The reward can be defined to reflect the above factors, such as cost, competition, and deadlock. Specifically, the reward can be defined to increase as the cost decreases. The reward can be defined to decrease as the number of competitions increases. The reward in case of deadlock can be defined to be smaller than the reward in case of no deadlock.
[0086] MCTS repeatedly performs a set from the selection step to the backpropagation step until a predetermined end condition is satisfied. Then, the evaluation unit 2080 obtains, as a result of the evaluation by MCTS, the evaluation scores of the nodes <135> each corresponding to one of the candidate path sets.
[0087] There may be various well-known conditions for terminating MCTS, and one or more of those conditions can be adopted in the first example of MCTS performed by the evaluation unit 2080. For example, the end condition may be "executing the set of steps a predetermined number of times" or "the expiration of a predetermined length of period after starting the execution of MCTS".
[0088] <<Second Example of MCTS>> FIG. 7 shows a search tree of the second example of MCTS employed in the evaluation unit 2080. This algorithm differs from the first example of MCTS in the unit of expansion in the expansion step. The unit of expansion in the first example of MCTS is "all moving obstacles or a single action of all vehicles 20 in a single time step." Therefore, each edge 136 added in the expansion step represents a set of actions of all moving obstacles or all vehicles 20 in a single time step. On the other hand, the unit of expansion in the second example of MCTS is "a set of actions of all moving obstacles or all vehicles 20 during a time window." Therefore, each edge 138 added in the expansion step represents a set of actions of all moving obstacles or all vehicles 20 during a time window. In order to distinguish between the search tree 130 of the second example of MCTS and the search tree 130 of the first example of MCTS, the edge and node added below node 135 in the search tree of the second example of MCTS will be referred to as "edge 138" and "node 139," respectively.
[0089] The search tree 130 of the second example of MCTS includes multiple layers 143, each corresponding to a single time window, and is divided into two sublayers 144 and 145. The edges 138 in sublayer 144 represent the set of actions taken by all moving obstacles in the corresponding time window, and the edges 138 in sublayer 145 represent the set of actions taken by all vehicles 20 in the corresponding time window.
[0090] As will be described in detail below, the set of actions represented by edges 138 in sublayer 145 is determined so that paths do not conflict with each other. Therefore, the second example of MCTS can explore various patterns of paths that are guaranteed not to conflict for periods longer than a single time window. On the other hand, the first example of MCTS can explore various patterns of paths in less computational time than the second example of MCTS.
[0091] Below, we will explain in detail each of the selection step to backpropagation step performed by the second example of MCTS. For ease of explanation, we will explain the unfolding step before the selection step.
[0092] In the expansion step, the second example of MCTS expands the search tree 130 by adding new edges 138 and new nodes 139 to the leaf nodes selected in the selection step. To generate the new edges 138, the evaluator 2080 determines the set of actions of all moving obstacles or all vehicles 20 during a time window subsequent to the time window corresponding to the leaf node selected in the selection step (hereinafter referred to as the "expanded time window").
[0093] The evaluator 2080 determines the set of actions for all moving obstacles for the expanded time window in a manner similar to how the predictor 2040 generates the set of obstacle paths for the time window of interest. Specifically, the evaluator 2080 may use the obstacle simulator described above to generate the set of actions for all moving obstacles when adding new edges 138 to the sublayer 144. The location history of the moving obstacles is represented by the node to be expanded and its ancestors.
[0094] The evaluator 2080 determines a set of actions for all vehicles 20 for the expanded time window in a manner similar to how the candidate generator 2060 generates a set of candidate paths for the target time window. Specifically, when adding a new edge 138 to the sublayer 145, the evaluator 2080 may generate a set of actions for all vehicles 20 using the variant CBS described above. The current position of the vehicle 20 is represented by the node to be expanded. The obstacle path set is represented by the parent edge of the node to be expanded. Hereinafter, the set of paths for the vehicle 20 generated by the evaluator 2080 will be referred to as a "vehicle path set" to distinguish it from the candidate path set.
[0095] As described above, the variant CBS generates multiple vehicle path sets. Therefore, the evaluator 2080 selects one of the vehicle path sets generated by the variant CBS and assigns it to the new edge 138. The other vehicle path sets are retained in association with the node to be expanded for future use. Specifically, in the selection step of the iteration in which the new node 138 is added to the sublayer 145, the evaluator 2080 determines whether there are any vehicle path sets associated with the node to be expanded that have not yet been assigned to the new edge 138.
[0096] If there are vehicle path sets that have not yet been assigned to a new edge 138, the evaluator 2080 selects the nodes associated with those vehicle path sets as nodes to be expanded in the selection step, and selects one of those vehicle path sets to generate a new node 138 representing the selected vehicle path set in the expansion step. Otherwise, the evaluator 2080 selects a leaf node to be expanded in the selection step based on the node's evaluation score.
[0097] Also, when a new edge 138 is added to the sublayer 144, the evaluator 2080 selects the leaf node to be expanded based on the node's evaluation score in a selection step.
[0098] After creating new edge 138, evaluator 2080 creates new node 139 and attaches new edge 138 and new node 139 to the node to be expanded. New node 139 may be created in the same manner as new node 137.
[0099] With respect to the rollout step and backpropagation step, the second example of MCTS functions in the same manner as the first example of MCTS. Specifically, in the rollout step, the second example of MCTS performs a random rollout from new node 139, in which an action for each entity is randomly selected in order, until the rollout reaches its end. Then, in the backpropagation step, the second example of MCTS assigns a reputation score to new node 139 and updates the reputation scores of the ancestors of new node 139. The definition of the reputation score in the second example of MCTS may be the same as that in the first example of MCTS.
[0100] The second example of MCTS repeats the set of steps from the selection step to the backpropagation step until a predetermined condition is met, which may be the same as the condition employed in the first example of MCTS.
[0101] <Path Plan 40 Output: S114> The output unit 2100 selects one of the candidate path sets based on the evaluation of the sets and outputs the selected candidate path set as the path plan 40 for the target time window (S114). In some embodiments, from the search tree 130 of the MCTS, the output unit 2100 selects the node 135 with the largest evaluation score among all the nodes 135. Then, the output unit 2100 selects the candidate path set corresponding to the parent edge 134 of the selected node 135 as the candidate path set to be output (i.e., the candidate path set to be adopted as the path plan 40 for the target time window). The output unit 2100 outputs information, called output information, indicating the candidate path set selected as the path plan 40.
[0102] The output information may be output in various ways. For example, the output unit 2100 may store the output information in a storage device. In another example, the output unit 2100 may send the output information to another computer, such as a computer that distributes the vehicle route indicated by the route plan 40 to each vehicle 20. In another example, the output unit 2100 may output the output information to a display device so that the route plan 40 is displayed on the display device.
[0103] Although the present disclosure has been described with reference to the embodiments, the present disclosure is not limited to the above-described embodiments. Various modifications that can be understood by those skilled in the art can be made to the configuration and details of the present disclosure within the scope of the present disclosure. Furthermore, each embodiment can be combined with other embodiments as appropriate.
[0104] The program of the present disclosure includes instructions (or software code) that, when loaded into a computer, cause the computer to perform one or more functions described in the embodiments. The program may be stored in a non-transitory computer-readable medium or a tangible storage medium. By way of example and not limitation, computer-readable media or tangible storage media include random-access memory (RAM), read-only memory (ROM), flash memory, solid-state drive (SSD) or other memory technology, CD-ROM, digital versatile disc (DVD), Blu-ray® disc or other optical disk storage, magnetic cassette, magnetic tape, magnetic disk storage or other magnetic storage device. The program may also be transmitted on a transitory computer-readable medium or communication medium. By way of example and not limitation, transitory computer-readable media or communication media include electrical, optical, acoustic, or other forms of propagated signals.
[0105] This application claims priority based on Japanese Patent Application No. 2022-003872, filed on January 13, 2022, the disclosure of which is incorporated herein in its entirety. [Explanation of symbols]
[0106] 20 vehicles 40 Route Planning 50 routes 60 Vehicle Information 70 Map Information 80 Obstacle Information 130 Search tree 131 Root Node 132 Edge 133 nodes 134 Edge 135 nodes 136 Edge 137 nodes 138 Edge 139 nodes 140 layers 141 sublayer 142 sublayer 143 layers 144 sublayer 145 sublayer 1000 computers 1020 Bus 1040 processor 1060 memory 1080 storage device 1100 Input / Output Interface 1120 Network Interface 2000 Route Search Device 2020 Acquisition Department 2040 Forecasting Department 2060 Candidate generation section 2080 Evaluation Department 2100 Output section
Claims
1. Acquire vehicle information, obstacle information, and map information, the vehicle information includes a current position and a destination position of each of the plurality of vehicles; the obstacle information includes a history of the locations of one or more moving obstacles; the map information includes a map of a space in which the vehicle and the moving obstacle move, generating one or more obstacle paths for each of the moving obstacles during a time window of interest of a predetermined length based on the obstacle information and the map information; generating a set of multiple candidate routes based on the vehicle information, the obstacle path, and the map information; the set of candidate routes includes vehicle routes during the time window of interest for each of the vehicles; the vehicle path does not conflict with other vehicle paths and obstacle paths; evaluating the set of candidate routes by heuristically searching for continuations of the vehicle route within the set of candidate routes; a route search device that selects one of the set of candidate routes based on an evaluation of the set of candidate routes, and outputs the selected set of candidate routes.
2. generating the set of candidate paths includes performing a modified competition-based search algorithm; The modified competition-based search algorithm comprises: generating a constraint to avoid a conflict between the vehicle and the moving obstacle based on the obstacle path, and adding the generated constraint to a root node of a conflict tree; resolving conflicts between the time windows of interest; and and outputting two or more solutions to generate the plurality of sets of candidate routes.
3. the set of candidate paths is evaluated by performing a Monte Carlo tree search; The Monte Carlo tree search generating a search tree in which a root node holds a child node for each of the set of candidate paths; the child nodes have parent edges that represent a set of actions of the moving obstacles and the vehicle during the time window of interest represented by the set of candidate paths and the obstacle paths; repeatedly performing a set of selection steps, deployment steps, rollout steps, and backpropagation steps; In the selection step, nodes to be expanded are selected based on the evaluation score of each node; In the expanding step, A new edge and a new node pair are generated, The generated pair is added to the node to be expanded; the new edge represents one or more actions for one or more of the vehicle and the moving obstacle; In the rollout step, rollout is performed to generate a sequence of paths of the vehicles and the moving obstacles until all the vehicles reach their destinations or until a deadlock occurs; The path search device according to claim 1 , wherein in the backpropagation step, the evaluation score is calculated for the node to be expanded and an ancestor of the node based on a result of the rollout.
4. the new edge represents an action of the vehicle or the moving obstacle at the time step; The path search device according to claim 3 , wherein the new edges are generated for each of the vehicles and the moving obstacles in turn during the repeated execution of the unfolding step.
5. The path search device according to claim 3 , wherein the new edge represents a set of actions of the vehicle and the moving obstacle during a time window.
6. 4. The route search device according to claim 3, wherein the evaluation score is calculated based on a cost of the route for the vehicle obtained as a result of the rollout, a number of conflicts that occur in the rollout, whether a deadlock occurs in the rollout, or two or more of these.
7. obtaining vehicle information, obstacle information, and map information; the vehicle information includes a current position and a destination position of each of the plurality of vehicles; the obstacle information includes a history of the locations of one or more moving obstacles; the map information includes a map of a space in which the vehicle and the moving obstacle move, generating one or more obstacle paths for each of the moving obstacles during a time window of interest of a predetermined length based on the obstacle information and the map information; generating a set of multiple candidate routes based on the vehicle information, the obstacle path, and the map information; the set of candidate routes includes vehicle routes during the time window of interest for each of the vehicles; the vehicle path does not conflict with other vehicle paths and obstacle paths; evaluating the set of candidate routes by heuristically searching for continuations of the vehicle route within the set of candidate routes; A computer-implemented route search method comprising the steps of selecting one of the set of candidate routes based on an evaluation of the set of candidate routes and outputting the selected set of candidate routes.
8. generating the set of candidate paths includes performing a modified competition-based search algorithm; The modified competition-based search algorithm comprises: generating a constraint to avoid a conflict between the vehicle and the moving obstacle based on the obstacle path, and adding the generated constraint to a root node of a conflict tree; resolving conflicts between the time windows of interest; and and outputting two or more solutions to generate the plurality of sets of candidate routes.
9. A method for causing a computer to acquire vehicle information, obstacle information, and map information, the vehicle information includes a current position and a destination position of each of the plurality of vehicles; the obstacle information includes a history of the locations of one or more moving obstacles; the map information includes a map of a space in which the vehicle and the moving obstacle move, generating one or more obstacle paths for each of the moving obstacles during a time window of interest of a predetermined length based on the obstacle information and the map information; generating a set of multiple candidate routes based on the vehicle information, the obstacle path, and the map information; the set of candidate routes includes vehicle routes during the time window of interest for each of the vehicles; the vehicle path does not conflict with other vehicle paths and obstacle paths; causing the computer to evaluate the set of candidate routes by heuristically searching for continuations of the vehicle route within the set of candidate routes; and selecting one of the sets of candidate routes based on an evaluation of the sets of candidate routes and outputting the selected set of candidate routes.
10. generating the set of candidate paths includes performing a modified competition-based search algorithm; The modified competition-based search algorithm comprises: generating a constraint to avoid a conflict between the vehicle and the moving obstacle based on the obstacle path, and adding the generated constraint to a root node of a conflict tree; resolving conflicts between the time windows of interest; and and outputting two or more solutions to generate the plurality of sets of candidate paths.
Citation Information
Patent Citations
Mobile body control system and mobile body control method
JP2009205652A
Route planning generation device of mobile body
JP2017151687A
A cost-critical dynamic window approach to optimal mutual collision avoidance
JP2020534621A
Running control device, running control method and computer program
JP2021149216A
Computer-implemented method, computer system, and computer-readable medium for generating 2D navigation maps for collision-free movement by multiple robots
JP2021535504A