Route generation device, route generation method, and route generation program
The PA* algorithm enables efficient parallel search for multiple routes by dividing the search range into meshes and comparing scores, overcoming the limitations of traditional systems in generating shortest paths for varied start and goal points.
Patent Information
- Application Number
- JP2024029449
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-02-29
- Publication Date
- 2025-09-10
AI Technical Summary
Existing route search systems are limited in efficiently searching for multiple routes with different start and/or goal points, as they typically search one route at a time without parallel processing.
A route generation device and method that employs the Parallel A-Star (PA*) algorithm to simultaneously search for multiple routes by dividing the search range into meshes, calculating scores based on actual and estimated costs, and comparing information in parallel to efficiently generate the shortest paths.
The PA* algorithm allows for the efficient generation of multiple routes by searching them in parallel, ensuring the shortest paths are found regardless of the search order, addressing the limitations of traditional route search systems.
Smart Images

Figure 2025132103000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to a route generation device, a route generation method, and a route generation program. [Background technology]
[0002] Conventionally, systems for searching for optimal routes for moving bodies, including ships and aircraft, are known. For example, the optimal route search system disclosed in Patent Document 1 includes a cost calculation device, a storage device, a route search device, and a display device. The cost calculation device calculates predicted data based on ship performance data and ocean weather data, such as costs or weights based on at least ship speed, fuel consumption, and sea margin between multiple nodes set from a specific sea area to a destination. The storage device stores the predicted data. The route search device searches for an optimal route from a specific sea area to a destination based on the predicted data stored in the storage device. The display device displays a route chart based on the optimal route searched by the route search device. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Patent Application Laid-Open No. 2007-057499 Summary of the Invention [Problem to be solved by the invention]
[0004] The system of Patent Document 1 searches for a route between two points. Route search technology is used in a variety of industrial fields. Depending on the industrial field, there is a need to efficiently search for multiple routes. [Means for solving the problem]
[0005] A route generation device according to one aspect of the present disclosure includes a processing device configured to search for multiple routes that have different start points and / or goal points, and the processing device is configured to simultaneously start searching for the multiple routes and search for the multiple routes in parallel while comparing information on the multiple routes.
[0006] A route generation method according to one aspect of the present disclosure is a route generation method for searching for multiple routes in which at least one of the start point and the finish point is different, in which the search for the multiple routes is started simultaneously and the routes are searched for in parallel while comparing information about the multiple routes.
[0007] A route generation program according to one aspect of the present disclosure is a route generation program that causes a computer to execute a process of searching for multiple routes each having a different start point and / or finish point, and includes a step of simultaneously starting to search for the multiple routes, and a step of searching for the routes in parallel while comparing information about the multiple routes. [Effects of the Invention]
[0008] According to the present invention, a plurality of routes can be efficiently searched for. [Brief explanation of the drawings]
[0009] [Figure 1] 1 is a block diagram showing a configuration of an embodiment of a route generation device; [Figure 2] 10(a) to 10(f) are schematic diagrams of search ranges showing an example of a route search using the A* algorithm according to one embodiment. [Figure 3] 1 is a flowchart showing an outline of a route search processing procedure using the PA* algorithm according to one embodiment. [Figure 4] 10 is a flowchart showing details of a route search procedure using the PA* algorithm according to one embodiment. [Figure 5] 5(a) to 5(d) are maps for explaining an example of a route search according to an embodiment. [Figure 6] 6(a) to 6(d) are maps for explaining an example of a route search according to an embodiment. [Figure 7] 7(a) to 7(d) are maps for explaining an example of a route search according to an embodiment. [Figure 8] 8(a) to 8(d) are maps for explaining an example of a route search according to an embodiment. [Figure 9] 9(a) to 9(d) are maps for explaining an example of a route search according to an embodiment. [Figure 10] 10(a) to 10(d) are maps for explaining an example of a route search according to an embodiment. [Figure 11] 11(a) to 11(d) are maps for explaining an example of a route search according to an embodiment. [Figure 12] FIG. 12 is a map for explaining an example of a route search result according to an embodiment. DETAILED DESCRIPTION OF THE INVENTION
[0010] Hereinafter, an embodiment of a route generation device, a route generation method, and a route generation program will be described. As shown in FIG. 1, the path generation device 10 includes an input device 11, an output device 12, a processing device 13, and a communication device 14.
[0011] The input device 11 includes, for example, a keyboard and a mouse, and is used to input various types of information. The information is a request or instruction from an operator. The information is, for example, information necessary for generating a route for the mobile object 15, and includes the starting point, destination, departure time from the starting point, arrival time at the destination, a route change command, and a route creation command.
[0012] The mobile object 15 includes an aircraft. The aircraft includes unmanned aircraft and unmanned aerial vehicles. An unmanned aerial vehicle is an aircraft that can be used for aviation purposes with a person on board and has a device that allows it to fly without a pilot on board. An unmanned aerial vehicle is an aircraft that can be used for aviation purposes, but is structurally incapable of being used for aviation purposes with a person on board, and can be flown by remote control or automatic pilot.
[0013] The mobile body 15 includes a ship. The ship includes an autonomous ship. An autonomous ship is a ship that can navigate using an automatic control function without humans operating navigation equipment. An autonomous ship includes an unmanned ship. An unmanned ship is a ship without a crew on board, and has an autonomous navigation function that allows it to navigate at a predetermined speed along a set route while avoiding obstacles, for example.
[0014] The output device 12 outputs various types of information. The output device 12 includes a display device that displays information visually. Examples of the display device include an electroluminescence display, a liquid crystal display, an LED (Light Emitting Diode) display, and a plasma display. The information includes, for example, route information of the moving object 15 generated by the processing device 13.
[0015] The processing device 13 has a processing circuit including any one of the following three components A1, A2, and A3. A1. One or more processors that operate according to a computer program, which is software. The processor includes a CPU (Central Processing Unit) and memory.
[0016] A2. One or more dedicated hardware circuits, such as an application specific integrated circuit (ASIC), that perform at least some of the processing. The ASIC includes a CPU and memory.
[0017] A3. A hardware circuit that combines configurations A1 and A2. The memory is a computer-readable medium that stores a program that describes processes or instructions for the computer. In this embodiment, the computer is a CPU. The memory includes RAM (Random Access Memory) and ROM (Read Only Memory). The CPU executes various controls by executing the program stored in the memory at a predetermined calculation cycle.
[0018] The processing device 13 has a storage device 13A. The storage device 13A includes an auxiliary storage device such as a hard disk, and stores various programs and data. The CPU of the processing device 13 loads programs from the storage device 13A into memory based on instructions from the input device 11, and executes the programs loaded into memory to realize various functions.
[0019] The program includes a route search program. The route search program is a program based on a route search algorithm. The route search algorithm is an algorithm for generating a route from the departure point to the destination of the mobile object 15. In this embodiment, the route search algorithm is * (Parallel A-Star) algorithm is adopted. * The algorithm is a type of best-first search, A * The algorithm uses an algorithm that searches for multiple routes simultaneously. The processing device 13 executes a route search program based on information input via the input device 11, thereby calculating the route of the moving object 15. A * Algorithms and PA * The details of the algorithm will be described later.
[0020] The communication device 14 can communicate with the mobile object 15 via a relay infrastructure 16. The relay infrastructure 16 includes various communication facilities and communication networks that serve as the foundation for relaying communications between the communication device 14 and the mobile object 15. The communication facilities include, for example, ground stations, which are radio stations installed on the ground, satellite stations, which are radio stations mounted on artificial satellites, and unmanned aircraft stations, which are radio stations mounted on small unmanned aircraft. The communication networks include, for example, the Internet, satellite communication networks, and radio relay networks using small wireless aircraft.
[0021] The communication device 14 exchanges information with the mobile body 15 via the relay infrastructure 16 in accordance with instructions from the processing device 13. The information that the communication device 14 transmits to the mobile body 15 includes route information that indicates the route of the mobile body 15 generated by the processing device 13. The mobile body 15 receives the route information and moves based on the received route information. The information that the communication device 14 receives from the mobile body 15 includes information necessary for the processing device 13 to generate a route for the mobile body 15, such as road closure information for the mobile body 15, weather information, and current location information for the mobile body 15.
[0022] * Algorithm> Next, A * The algorithm will now be described. A * In this algorithm, the search range is divided into a specified number of meshes, and meshes with a high score S are searched for first. This makes it possible to generate the shortest path between two points. Meshes are small regions into which the search range is divided. In this embodiment, for the sake of convenience, the search range is assumed to be a square projected onto a two-dimensional plane, and the search range is divided into square meshes in both the vertical and horizontal directions. The position of each mesh is represented by the distance from the origin set in the search range to the mesh. In other words, the position of each mesh can be represented by XY coordinates, where the horizontal direction of the search range is the X axis and the vertical direction is the Y axis.
[0023] As shown in the following formula (1), the score S is the sum of the actual cost C and the estimated cost H. The smaller the value of the score S, the better the score S. S=C+H …(1) The actual cost C is the distance traveled from the starting point to the current point. i is expressed by the following equation (2).
[0024] C i =C i-1 +α (vertical and horizontal α = 1, diagonal α = √2) … (2) However, "C i-1 " is the actual cost of the movement source. "α" is the movement cost of each mesh. The movement cost α when moving vertically or horizontally in the search range is "1". The movement cost α when moving diagonally in the search range is "√2".
[0025] The estimated cost H is the shortest distance from the current point to the goal point. The estimated cost H is expressed by the following equation (3). H=√{(x i -x g ) 2 +(y i -y g ) 2} …(3) However, "x i " is the X coordinate value of the current location. "x g " is the X coordinate value of the goal point. i " is the Y coordinate value of the current location. g " is the Y coordinate value of the goal point.
[0026] By using the shortest distance from the current point to the goal point as the estimated cost H, the closer you get to the goal point, the smaller the estimated cost H becomes. This means that meshes closer to the goal point are searched first. This makes it possible to efficiently generate the shortest route from the start point to the goal point.
[0027] * An example of algorithmic search Next, A * An example of a search using the algorithm will now be described. As shown in Figure 2(a), consider the case where the search range is divided into a 5x5 mesh. The start point and goal point are set in advance. For example, the start point is at coordinates (0,0) and the goal point is at coordinates (3,3). The meshes at coordinates (1,0), (1,2), and (2,2) are no-passage areas. The no-passage meshes are registered in a no-passage list prepared in advance. Because meshes registered in the no-passage list are not searched, it is possible to generate a route that bypasses the no-passage meshes.
[0028] In addition to the no-passage list, an open list and a closed list are also prepared in advance. The open list and the closed list are initially empty. Opens are registered in the open list when a route is searched. Opens are meshes that are candidates for search. Closeds are registered in the closed list when a route is searched. Closeds are meshes that have already been searched. The processing device 13 is responsible for the route search.
[0029] <First stage> Now, when starting a route search, the starting point is added to the open list. When adding the starting point to the open list, the score S is calculated. As shown in Figure 2(a), the score S of the starting point is "4.24". In addition, the mesh with the smallest score S in the open list is designated as the "parent". Currently, only the starting point is registered in the open list, so the starting point is the "parent". The "parent" is the mesh that will be the base mesh for the next mesh to be added to the open list.
[0030] Next, we check whether there are any "children" that are adjacent meshes to the "parent." As shown in Figure 2(a), there are two unsearched "children," excluding the no-passage mesh at coordinates (1,0). The "children" are the mesh at coordinates (0,1) and the mesh at coordinates (1,1).
[0031] For this reason, two "children" are added to the open list, and the scores S of the two "children" are calculated. The score S of the mesh with coordinates (0,1) is "4.61". The score S of the mesh with coordinates (1,1) is "4.24". The score S value is saved along with the coordinates of the "parent". The coordinates of the current "parent" are the coordinates of the starting point (0,0). In Figure 2(a), the coordinates of the "parent" are shown at the bottom of each mesh, i.e., below the score S.
[0032] The current "parent" has completed its task of adding the adjacent mesh to the open list, and is now added to the closed list. <Second stage> Next, as shown in Figure 2(b), the mesh with the smallest score S in the current open list is designated as the "parent." Currently, two meshes are registered in the open list. The coordinates of the two meshes are (0,1) and (1,1). Of the two meshes, the mesh with coordinates (1,1) has the smallest score S. Therefore, the mesh with coordinates (1,1) is designated as the new "parent."
[0033] Next, we check whether there are any "children" that are adjacent meshes to the "parent." As shown in Figure 2(b), except for the three no-traffic meshes at coordinates (1,0), coordinates (1,2), and coordinates (2,2), there are three unsearched "children," one "child" in the open list, and one "child" in the closed list.
[0034] The coordinates of the unsearched "children" are (0,2), (2,0), and (2,1). The coordinates of the "child" included in the open list are (0,1). Therefore, the three unsearched "children" are added to the open list, and the scores S of the three "children" are calculated. The score S of the mesh with coordinates (0,2) is "5.98". The score S of the mesh with coordinates (2,0) is "5.98". The score S of the mesh with coordinates (2,1) is "4.65". The score S value is saved along with the coordinates of the "parent". The coordinates of the current "parent" are (1,1).
[0035] The coordinates of the "child" included in the closed list are coordinates (0,0). The score S of coordinates (0,0) is "4.24", which is the same as the score S of the current "parent". In other words, the score S of the current "parent" is not smaller than the score S of the "child" included in the closed list. Therefore, the "child" at coordinates (0,0) remains registered in the closed list.
[0036] Once all "children" have been searched, the current "parent" at coordinates (1,1) is added to the closed list. <Third Stage> Next, the mesh with the smallest score S in the current open list is designated as the "parent." Currently, four meshes are registered in the open list. The coordinates of the four meshes are (0,1), (0,2), (2,0), and (2,1). Of the four meshes, the mesh with coordinates (0,1) has the smallest score S. Therefore, as shown in Figure 2(c), the mesh with coordinates (0,1) is designated as the new "parent."
[0037] Next, we check whether there are any "children" that are adjacent meshes to the "parent." As shown in Figure 2(c), except for the two no-traffic meshes at coordinates (1,0) and (1,2), there is one "child" in the open list and two "children" in the closed list.
[0038] The coordinates of the "child" included in the open list are coordinates (0,2). The score S of the mesh with coordinates (0,2) immediately before designating the mesh with coordinates (0,1) as the new "parent" is "5.98". The score S of the "parent" with coordinates (0,1) is "4.61", which is smaller than the score S of the "child" with coordinates (0,2). Therefore, the score S value of the "child" with coordinates (0,2) and the coordinates of its "parent" are updated. The score S of the "child" with coordinates (0,2) is updated from "5.98" in Figure 2(b) to "5.16" in Figure 2(c). The coordinates of the "parent" of the "child" with coordinates (0,2) are updated from coordinates (1,1) in Figure 2(b) to coordinates (0,1) in Figure 2(c).
[0039] The coordinates of the two "children" included in the closed list are coordinates (0,0) and coordinates (1,1). The score S of the "parent" with coordinates (0,1) is greater than the score S of the two "children" included in the closed list. Therefore, the "child" with coordinates (0,0) and the "child" with coordinates (1,1) remain registered in the closed list.
[0040] Once all "children" have been searched, the current "parent" at coordinates (0,1) is added to the closed list. <Fourth Stage> Next, the mesh with the smallest score S in the current open list is designated as the "parent." As shown in Figure 2(c), three meshes are currently registered in the open list. The coordinates of the three meshes are (0,2), (2,0), and (2,1). Of the three meshes, the mesh with coordinates (2,1) has the smallest score S. Therefore, as shown in Figure 2(d), the mesh with coordinates (2,1) is designated as the new "parent."
[0041] Next, we check whether there are any "children" that are adjacent meshes to the "parent." As shown in Figure 2(d), except for the three no-traffic meshes at coordinates (1,0), coordinates (1,2), and coordinates (2,2), there are three unsearched "children," one "child" in the open list, and one "child" in the closed list.
[0042] The coordinates of the unsearched "children" are coordinates (3,0), (3,1), and (3,2). The coordinates of the "child" included in the open list are coordinates (2,0). Therefore, the three unsearched "children" are added to the open list, and the score S is calculated. The score S of the mesh with coordinates (3,0) is "6.82". The score S of the mesh with coordinates (3,1) is "5.41". The score S of the mesh with coordinates (3,2) is "4.82". The score S value is saved along with the coordinates of the "parent". The coordinates of the current "parent" are coordinates (2,1).
[0043] The coordinates of the "child" included in the closed list are coordinates (1,1). The score S of coordinates (1,1) is "4.24", which is smaller than the score S of the current "parent". In other words, the score S of the current "parent" is greater than the score S of the "child" included in the closed list. Therefore, the "child" at coordinates (1,1) remains registered in the closed list.
[0044] Once all "children" have been searched, the current "parent" at coordinates (2,1) is added to the closed list. <Fifth Stage> Next, the mesh with the smallest score S in the current open list is designated as the "parent." Currently, five meshes are registered in the open list. The coordinates of the five meshes are (0,2), (2,0), (3,0), (3,1), and (3,2). Of the five meshes, the mesh with coordinates (3,2) has the smallest score S. Therefore, as shown in Figure 2(e), the mesh with coordinates (3,2) is designated as the new "parent."
[0045] Next, we check whether there are any "children" that are adjacent meshes to the "parent." As shown in Figure 2(e), excluding the no-traffic mesh at coordinates (2,2), there are two unsearched "children," one "child" in the open list, and one "child" in the closed list.
[0046] The coordinates of the unsearched "children" are coordinates (2,3) and coordinates (3,3). The coordinates of the "child" included in the open list are coordinates (3,1). Therefore, the two unsearched "children" are added to the open list and the score S is calculated. The score S of the "child" with coordinates (2,3) is "6.23". The score S of the "child" with coordinates (3,3) is "4.82". The score S value is saved along with the coordinates of the "parent". The coordinates of the current "parent" are coordinates (3,2).
[0047] The coordinates of the "child" included in the closed list are coordinates (2,1). The score S of coordinates (2,1) is "4.65", which is smaller than the score S of the current "parent". In other words, the score S of the current "parent" is greater than the score S of the "child" included in the closed list. Therefore, the "child" at coordinates (2,1) remains registered in the closed list.
[0048] Once all "children" have been searched, the current "parent" at coordinates (3,2) is added to the closed list. <Sixth Stage> Next, the mesh with the smallest score S in the current open list is designated as the "parent." Currently, six meshes are registered in the open list. The coordinates of the six meshes are (0,2), (2,0), (2,3), (3,0), (3,1), and (3,2). Of the six meshes, the mesh with coordinates (3,3) has the smallest score S. Therefore, as shown in Figure 2(f), the mesh with coordinates (3,3) is designated as the new "parent." The coordinates of the "parent" are the coordinates of the goal point. Therefore, the route search is terminated. By tracing the "parents" in order from the goal point, the shortest route R0 from the start point to the goal point is generated.
[0049] In this way, A * The algorithm can generate the shortest path from a single starting point to a single goal point. * In route search using an algorithm, multiple routes cannot be generated simultaneously. The route includes routes from multiple start points to a single goal point, routes from a single start point to multiple goal points, and routes from multiple start points to multiple goal points. Therefore, in this embodiment, PA is used as the route search algorithm. * It employs an algorithm.
[0050] <PA * Algorithm Overview> Next, P.A. *An overview of the algorithm will be explained. PA * The algorithm searches for multiple routes simultaneously and compares the information of each route to find the route in parallel. * In order for the algorithm to search multiple routes in parallel, it is necessary to prepare an independent map for each route. The map is, for example, a two-dimensional map showing the route search range, with an X axis as the horizontal axis and a Y axis as the vertical axis.
[0051] As shown in Fig. 3, the processing device 13 searches for a plurality of routes simultaneously (steps S51 to S54). In the example of Fig. 3, the number of routes is four, from the first route R1 to the fourth route R4. The processing device 13 also determines whether the routes interfere with each other (step S55). Interference occurs when the route itself overlaps with another route. For example, when the first route R1 is considered as the route itself, the second route R2 to the fourth route R4 are considered as another route.
[0052] For example, when two routes interfere with each other, the processing device 13 compares the scores S of the overlapping meshes of the two routes and adds the overlapping mesh to the no-passage list of the route with the worse score S, i.e., the route with the higher score S. After this, the processing device 13 performs a search again until the routes overlap again (YES in step S55).
[0053] When the paths do not overlap and the coordinates of the "parent" of each path match the coordinates of the goal point, the processing device 13 ends the search of each path (NO in step S55). If the mesh currently being searched for by the processing device 13 is included in the closed list of another route, the processing device 13 determines that the routes overlap. This allows the processing device 13 to search for the route by taking other routes into consideration. * The algorithm can generate the shortest path overall regardless of the search order of each path. * In the algorithm, the priority criterion for generating a route is determined by the score S, not the search order. Therefore, the shortest route overall can be generated for each route.
[0054] <PA * Algorithmic route search process Next, P.A. * The procedure for route search processing using the algorithm will now be described in detail. The route includes multiple routes.
[0055] As shown in FIG. 4, when starting the route search process, the processing device 13 first sets initial values (step S101). The setting of the initial values includes setting a start point, a goal point, and a map that is the search range. The number of start points, goal points, and maps is the same as the number of routes to be searched. The initial values are input via the input device 11. The map is divided into meshes with multiple rows and multiple columns. The position of each mesh on the map can be represented by coordinates that combine the position in the row direction and the position in the column direction.
[0056] Next, the processing device 13 creates various lists (step S102). The lists include an open list, a closed list, a comparison list, and a no-passage list. The number of open lists, closed lists, comparison lists, and no-passage lists is the same as the number of routes to be searched. The open list, closed list, and comparison list are initially empty. The open list registers open grids that are search candidates during route search. The closed list registers closed grids that have been searched during route search. The comparison list registers grids to be compared during route search. The no-passage list registers no-passage grids. The processing device 13 does not search grids registered in the no-passage list.
[0057] Next, the processing device 13 adds the start point to the open list (step S103) and checks whether the open list is empty (step S104). If the open list is empty (NO in step S104), the processing device 13 cannot generate a route and therefore ends the route search process. If the open list is not empty (YES in step S104), the processing device 13 proceeds to step S105.
[0058] In step S105, the processing device 13 designates the mesh in the open list that has the smallest score S as the reference "parent." At the start of the route search process, only the start point is registered in the open list, so the start point becomes the "parent."
[0059] Next, the processing device 13 determines whether the "parent" and the goal point are the same (step S106). If the parent and the goal point are the same (YES in step S106), the processing device 13 ends the route search process. By tracing the "parents" in order from the goal point, it is possible to generate the shortest route from the start point to the goal point. If the parent and the goal point are not the same (NO in step S106), the processing device 13 proceeds to step S108.
[0060] In step S108, the processing device 13 determines whether a "child" exists. A "child" is a mesh adjacent to a "parent." If a "child" exists (YES in step S108), the processing device 13 determines whether the "child" is included in the open list (step S109). If the "child" is included in the open list (YES in step S109), the processing device 13 proceeds to step S110.
[0061] In step S110, the processing device 13 determines whether the score S of the "parent" is better than the score S of the "child" included in the open list, i.e., whether the value of the score S of the "parent" is smaller than the value of the score S of the "child" included in the open list. If the score S of the "parent" is better than the score S of the "child" included in the open list (YES in step S110), the processing device 13 updates the "parent" and score S of the "child" included in the open list (step S111). Thereafter, the processing device 13 adds the "child" to the comparison list (step S112) and proceeds to the previous step S108.
[0062] In the previous step S110, when the score S of the "parent" is not better than the score S of the "child" included in the open list (NO in step S110), the processing device 13 adds the "child" included in the open list to the comparison list (step S112), and proceeds to the previous step S108. In this case, the "parent" and score S of the "child" are not updated.
[0063] If "child" is not included in the open list in the previous step S109 (NO in step S109), the processor 13 determines whether "child" is included in the closed list (step S113). If "child" is included in the closed list (YES in step S113), the processor 13 proceeds to the process in step S114.
[0064] In step S114, the processing device 13 determines whether the score S of the "parent" is better than the score S of the "child" included in the closed list, i.e., whether the value of the score S of the "parent" is smaller than the value of the score S of the "child" included in the closed list. If the score S of the "parent" is better than the score S of the "child" included in the closed list (YES in step S114), the processing device 13 proceeds to step S115. The smaller the value of the score S, the better the score S.
[0065] In step S115, the processing device 13 updates the "parent" and score S of the "child" included in the closed list. The processing device 13 also deletes the "child" from the closed list and adds the "child" to the open list. After this, the processing device 13 also adds the "child" to the comparison list (step S112), and proceeds to the previous step S108.
[0066] In the previous step S114, when the score S of the "parent" is not better than the score S of the "child" included in the closed list (NO in step S114), the processing device 13 also adds the "child" to the comparison list (step S112) and proceeds to the previous step S108.
[0067] If the "child" is not included in the closed list in the previous step S113 (NO in step S113), the processing device 13 updates the "parent" and score S of the "child" and adds the "child" to the open list (step S116). After that, the processing device 13 also adds the "child" to the comparison list (step S112), and proceeds to the previous step S108.
[0068] If there is no "child" in the previous step S108 (NO in step S108), the processing device 13 designates the mesh with the best score S in the comparison list as the "eldest son" (step S117), and proceeds to step S118. The smaller the value of the score S, the better the score S.
[0069] In step S118, the processor 13 checks whether "eldest son" is included in the closed list of the other path. When "eldest son" is included in the closed list of the other path (YES in step S118), the processor 13 proceeds to step S119.
[0070] In step S119, the processing device 13 checks whether the score S of the own route is worse than the score S of the other route. The score S of the own route is the score S of the "eldest son". The score S of the other route is the score S of the mesh that overlaps with the "eldest son" of the own route and is included in the closed list of the other route. The larger the value of the score S, the worse the score S is.
[0071] When the score S of the route is lower than the score S of the other route (YES in step S119), the processing device 13 adds "eldest son" to the no-passage list (step S120). If "eldest son" is included in the closed list of the route, the processing device 13 deletes "eldest son" from the closed list. After this, the processing device 13 proceeds to the previous step S104.
[0072] When the score S of the own route is not worse than the score S of the other route in the previous step S119 (NO in step S119), the processing device 13 adds the "parent" to the closed list (step S121) and proceeds to the previous step S104. When the score S of the own route is not worse than the score S of the other route, this means that the score S of the own route is better than the score S of the other route.
[0073] In the previous step S118, when the "eldest son" is not included in the closed list of the other path (NO in step S118), the processor 13 adds the "parent" to the closed list (step S121), and proceeds to the previous step S104.
[0074] When the "parent" is the same as the goal point, the processing device 13 ends the search for the route. The processing device 13 generates the shortest route from the start point to the goal point by tracing the "parents" in order from the goal point.
[0075] <PA * An example of algorithmic search Next, P.A. * An example of a search using the algorithm will be described below. The search conditions include, for example, the following three conditions B1, B2, and B3.
[0076] B1. The search range is divided into a mesh of 7 rows and 7 columns. B2. There are four search routes, from the first route R1 to the fourth route R4. B3. The same mesh is impassable.
[0077] When starting to search for each path, the processor 13 first sets initial values. Specifically, the initial values are set as follows. <Initial state> As shown in Figures 5(a) to 5(d), maps corresponding to the first route R1, second route R2, third route R3, and fourth route R4 are set. Each map indicates the search range for each route.
[0078] The first route R1 is a route from the first start point S1 to the goal point G. The coordinates of the first start point S1 are, for example, coordinates (0,0). The coordinates of the goal point G are, for example, coordinates (5,5).
[0079] The second route R2 is a route from the second start point S2 to the goal point G. The coordinates of the second start point S2 are, for example, coordinates (2, 2). The coordinates of the goal point G are the same as the coordinates of the goal point G of the first route R1, coordinates (5, 5).
[0080] The third route R3 is a route from the third start point S3 to the goal point G. The coordinates of the third start point S3 are, for example, coordinates (2, 4). The coordinates of the goal point G are the same coordinates (5, 5) as the goal point G of the first route R1.
[0081] The fourth route R4 is a route from the fourth start point S4 to the goal point G. The coordinates of the fourth start point S4 are, for example, coordinates (0, 6). The coordinates of the goal point G are the same coordinates (5, 5) as the goal point G of the first route R1.
[0082] Each map has a common no-entry area. For example, the coordinates of the no-entry areas are (2,3), (3,3), (3,5), (4,2), and (4,3). Each map shows the common no-entry area with a black mesh. Each map also has its own unique no-entry area. Each map shows the unique no-entry area with a gray mesh.
[0083] The coordinates of the no-passage areas specific to the map of the first route R1 are the coordinates (2,2) of the second start point S2, the coordinates (2,4) of the third start point S3, and the coordinates (0,6) of the fourth start point S4.
[0084] The coordinates of the no-passage areas specific to the map of the second route R2 are the coordinates (0,0) of the first start point S1, the coordinates (2,4) of the third start point S3, and the coordinates (0,6) of the fourth start point S4.
[0085] The coordinates of the no-passage areas specific to the map of the third route R3 are the coordinates (0,0) of the first start point S1, the coordinates (2,2) of the second start point S2, and the coordinates (0,6) of the fourth start point S4.
[0086] The coordinates of the no-passage areas specific to the map of the fourth route R4 are the coordinates (0,0) of the first start point S1, the coordinates (2,2) of the second start point S2, and the coordinates (2,4) of the third start point S3.
[0087] <Start searching all routes> When the setting of the initial values is completed, the processing device 13 starts searching the first route R1, the second route R2, the third route R3, and the fourth route R4 simultaneously.
[0088] As shown in FIG. 6(a) to FIG. 6(d), the processing device 13 *Each route (R1 to R4) is searched according to the algorithm. On each map, the searched route is indicated by a star. However, routes may overlap during the search process. For example, as shown in Figures 6(a) and (b), the first route R1 and the second route R2 overlap at coordinates (4,1). Also, as shown in Figures 6(c) and (d), the third route R3 and the fourth route R4 overlap at coordinates (4,5). When routes overlap, the processing device 13 compares the scores S of the overlapping meshes.
[0089] Specifically, the processing device 13 compares the score S of the mesh at coordinates (4,1) on the first route R1 with the score S of the mesh at coordinates (4,1) on the second route R2. The score S of the mesh at coordinates (4,1) on the first route R1 is "8.53", and the score S of the mesh at coordinates (4,1) on the second route R2 is "6.53".
[0090] The processing device 13 also compares the score S of the mesh at coordinates (4,5) on the third route R3 with the score S of the mesh at coordinates (4,5) on the fourth route R4. The score S of the mesh at coordinates (4,5) on the third route R3 is "3.41", and the score S of the mesh at coordinates (4,5) on the fourth route R4 is "5.41".
[0091] 7(a) and 7(b), the processing device 13 updates the no-passage area of the route with the lower score S, i.e., the higher score S, between the mesh at coordinates (4,1) on the first route R1 and the mesh at coordinates (4,1) on the second route R2. The processing device 13 designates the mesh at coordinates (4,1) on the first route R1 as the no-passage area. The no-passage area is designated by adding the target mesh to the no-passage list.
[0092] 7(c) and (d), the processing device 13 updates the no-passage area of the route with the lower score S, i.e., the higher score S, between the mesh at coordinates (4,5) on the third route R3 and the mesh at coordinates (4,5) on the fourth route R4. The processing device 13 designates the mesh at coordinates (4,5) on the fourth route R4 as the no-passage area. After this, the processing device 13 performs route search again until the routes overlap again.
[0093] 7(a) and 7(b), as a result of performing another search, the first route R1 and the second route R2 now overlap at the coordinate (5,2). The processing device 13 compares the score S of the mesh at the coordinate (5,2) on the first route R1 with the score S of the mesh at the coordinate (5,2) on the second route R2. The score S of the mesh at the coordinate (5,2) on the first route R1 is "9.41", and the score S of the mesh at the coordinate (5,2) on the second route R2 is "6.82".
[0094] As shown in FIGS. 7(c) and 7(d), the third route R3 and the fourth route R4 are being searched for without overlapping with other routes. 8(a) and 8(b), the processing device 13 updates the no-passage area of the route with the lower score S, i.e., the higher score S, between the mesh at coordinates (5,2) on the first route R1 and the mesh at coordinates (5,2) on the second route R2. The processing device 13 designates the mesh at coordinates (5,2) on the first route R1 as the no-passage area. After this, the processing device 13 performs route search again until the routes overlap again.
[0095] 8(a) and 8(d), as a result of performing another search, the first route R1 and the fourth route R4 now overlap at coordinates (3,6). The processing device 13 compares the score S of the mesh at coordinates (3,6) on the first route R1 with the score S of the mesh at coordinates (3,6) on the fourth route R4. The score S of the mesh at coordinates (3,6) on the first route R1 is "10.06", and the score S of the mesh at coordinates (3,6) on the fourth route R4 is "5.24".
[0096] As shown in FIGS. 8(b) and 8(c), the second route R2 and the third route R3 are being searched for without overlapping with other routes. 9(a) and 9(d), the processing device 13 updates the no-passage area of the route with the lower score S, i.e., the higher score S, between the mesh at coordinates (3,6) on the first route R1 and the mesh at coordinates (3,6) on the second route R2. The processing device 13 designates the mesh at coordinates (3,6) on the first route R1 as the no-passage area. After this, the processing device 13 performs route search again until the routes overlap again.
[0097] 9(a) and 9(c), as a result of performing another search, the first route R1 and the third route R3 now overlap at coordinates (3,4). The processing device 13 compares the score S of the mesh at coordinates (3,4) on the first route R1 with the score S of the mesh at coordinates (3,4) on the third route R3. The score S of the mesh at coordinates (3,4) on the first route R1 is "10.06", and the score S of the mesh at coordinates (3,4) on the third route R3 is "3.24".
[0098] As shown in FIGS. 9(b) and 9(d), the second route R2 and the fourth route R4 are being searched for without overlapping with other routes. 10(a) and 10(c), the processing device 13 updates the no-passage area of the route with the lower score S, i.e., the higher score S, between the mesh at coordinates (3,4) on the first route R1 and the mesh at coordinates (3,4) on the third route R3. The processing device 13 designates the mesh at coordinates (3,4) on the first route R1 as the no-passage area. After this, the processing device 13 performs route search again until the routes overlap again.
[0099] 10(a) and 10(b), as a result of performing another search, the first route R1 and the second route R2 now overlap at coordinates (5,4). The processing device 13 compares the score S of the mesh at coordinates (5,4) on the first route R1 with the score S of the mesh at coordinates (5,4) on the second route R2. The score S of the mesh at coordinates (5,4) on the first route R1 is "11.23", and the score S of the mesh at coordinates (5,4) on the second route R2 is "6.82".
[0100] As shown in FIGS. 10(c) and 10(d), the third route R3 and the fourth route R4 are being searched for without overlapping with other routes. 11(a) and 11(b), the processing device 13 updates the no-passage area of the route with the lower score S, i.e., the higher score S, between the mesh at coordinates (5,4) on the first route R1 and the mesh at coordinates (5,4) on the second route R2. The processing device 13 designates the mesh at coordinates (5,4) on the first route R1 as the no-passage area. After this, the processing device 13 performs route search again until the routes overlap again.
[0101] The processing device 13 ends the route search process when all the "heads" of the first route R1 to the fourth route R4 coincide with the goal point G before the routes overlap again. As shown in FIGS. 11(a) to 11(d), the processing device 13 generates the shortest route from each start point (S1 to S4) to the goal point G by tracing the "parents" in order from the goal point G on the map of each route (R1 to R4). The "parents" are the routes that have been searched for, and are indicated by stars on each map.
[0102] As shown in FIG. 12, each of the routes (R1 to R4) is generated without taking a detour. In addition, each of the routes (R1 to R4) is generated so as not to intersect with each other. That is, PA * By executing a route search process using the algorithm, multiple globally optimized routes can be derived. Global optimization involves generating the overall shortest route for multiple routes (R1 to R4).
[0103] In addition, just as when generating routes from multiple starting points (S1 to S4) to a single goal point G, it is possible to generate routes from a single starting point to multiple goal points, or routes from multiple starting points to multiple goal points.
[0104] <Effects of the embodiment> According to this embodiment, the following effects can be obtained. (1) The route generation device 10 includes a processing device 13 configured to search for multiple routes with different start points and / or goal points. The processing device 13 simultaneously starts searching for multiple routes and searches for routes in parallel while comparing information on the multiple routes. The information is, for example, a score S. This configuration makes it possible to search for a route while taking other routes into consideration. Therefore, multiple routes can be searched for efficiently.
[0105] (2) The processing device 13 divides multiple maps, which are set independently for each route, into vertical and horizontal meshes, and prioritizes searching meshes with a small value of the score S calculated for each divided mesh. The score S is the sum of the actual cost C, which is the travel distance from the start point to the current point, and the estimated cost H, which is the shortest distance from the current point to the goal point. The processing device 13 searches for routes while comparing the score S for each route. With this configuration, multiple routes can be efficiently searched by searching for routes while comparing the score S for each route.
[0106] (3) When two routes overlap, the processing device 13 compares the score S of the overlapping mesh of one route with the score S of the overlapping mesh of the other route, sets the overlapping mesh of the route with the larger score S as a no-passage area, and searches for routes again until the routes overlap again. With this configuration, by comparing the score S for each route and repeating the setting of no-passage areas and the re-searching of routes, it is possible to generate the overall shortest route for multiple routes.
[0107] (4) When the mesh currently being searched for the route is included in the mesh already searched for another route, the processing device 13 determines that the route overlaps with the other route. This configuration makes it possible to search for a route taking other routes into consideration.
[0108] (5) The route generation device 10 includes a communication device 14 configured to be able to communicate with the moving body 15. The route is the movement route of the moving body 15. The processing device 13 transmits route information indicating the generated movement route of the moving body 15 to the moving body 15 via the communication device 14. With this configuration, the moving body 15 can move on the route generated by the route generation device 10.
[0109] (6) The processing device 13 generates a plurality of routes corresponding to each of the plurality of moving bodies 15, and transmits information indicating the generated routes to each moving body 15 via the communication device 14. Each moving body 15 moves along the route generated by the processing device 13. This allows each moving body 15 to move without crossing each other. In other words, collisions between the moving bodies 15 can be avoided.
[0110] (7) A globally optimized route can be derived in the preliminary planning stage. Global optimization means optimizing multiple routes as a whole, rather than optimizing only a portion of the multiple routes. Global optimization includes generating the shortest overall route for multiple routes. This makes it possible to prevent unnecessary turns or long detours of the moving object 15. This, in turn, reduces the fuel consumption of the moving object 15.
[0111] (8) Even if a sudden course change occurs, the optimal route from the course change point can be instantly searched for, taking into account the routes of other moving bodies 15. <Other embodiments> This embodiment may be modified as follows.
[0112] The processing device 13 may generate a restart point when the routes overlap, and start a re-search from that restart point. The processing device 13 compares the scores S of the overlapping meshes of the two routes, and sets the search restart point for the route that was not prioritized, i.e., the route with the lowest score S. The processing device 13 may set, for example, a point that is "1 / 2" or "1 / 3" of the route length from the start point to the overlapping mesh as the search restart point. After this, the processing device 13 starts a re-search from the restart point. Compared to re-searching from the start point, the re-search range is narrowed, so the search time can be shortened.
[0113] The score S may be weighted by distance. For example, the vertical and horizontal distance, i.e., the vertical and horizontal movement cost α, is set to, for example, "2" instead of "1." In this case, vertical and horizontal routes are less likely to be selected, and diagonal routes are given priority over vertical and horizontal routes. The score S may also be weighted by parameters other than distance. Examples of parameters include time or fuel volume.
[0114] A time axis may be added to the map used for route search. This reduces constraints on route generation, allowing for more flexible route generation. The processing device 13 determines that there will be no collision even if the routes of the moving objects 15 intersect, depending on the speed and current position of the moving objects 15. It is sufficient that multiple moving objects 15 do not exist in the same position at the same time.
[0115] A spatial axis may be added to the map used for route search. This can be applied to generating routes for flying objects such as unmanned aerial vehicles. The processing device 13 determines that there will be no collision even if the routes of the moving objects 15 intersect if the route heights are different.
[0116] The route generated by the route generation device 10 is not limited to the route of the moving object 15. The route generation device 10 may generate, for example, a piping route or a wiring route. *By executing a route search process using an algorithm, it is possible to efficiently search for the shortest route for multiple pipes or the shortest route for multiple wires. Furthermore, the processing device 13 may output the generated piping route or wiring route via the output device 12. The output includes displaying the generated piping route or wiring route on the screen of the output device 12. In this way, the piping route or wiring route generated by the route generation device 10 can be visually confirmed via the output device 12.
[0117] In this specification, "at least one of A and B" means "A only, B only, or both A and B." For example, if "A" is interpreted as the starting point and "B" as the finishing point, "multiple routes with at least one different starting point and finishing point" includes the following three cases C1 to C3. However, the starting point and finishing point are different for each of the multiple routes.
[0118] C1. Multiple routes with different starting points. The goal of the multiple routes is the same. C2. Multiple routes with different finish points. The starting point of the multiple routes is the same. C3. Multiple routes with different starting and finishing points.
[0119] Case C3 includes, for example, a combination of a first route with a "start point (a1), a goal point (b1)" and a second route with a "start point (a2), a goal point (b2)." The first route and the second route have different start points and goal points.
[0120] Case C3 also includes, for example, a combination of a first route with a "start point (a), a goal point (b)" and a second route with a "start point (b), a goal point (a)." The first route and the second route have reversed start and goal points, and the start and goal points are different.
[0121] <Additional Notes> The path generation device described in this embodiment can be understood, for example, as follows. 1. A route generation device (10) according to a first aspect includes a processing device (13) configured to search for a plurality of routes each having a different start point and / or a different finish point. The processing device (13) is configured to simultaneously start searching for the plurality of routes and to search for the routes in parallel while comparing information on the plurality of routes.
[0122] According to the route generation device of the first aspect, it is possible to search for a route taking other routes into consideration, and therefore it is possible to efficiently search for a plurality of routes. 2. A route generation device (10) according to a second aspect is the route generation device (10) according to the first aspect, wherein the processing device (13) is configured to divide a plurality of maps set independently for each route into vertical and horizontal meshes, and to preferentially search the meshes having a small score value calculated for each divided mesh. The score is the sum of an actual cost, which is the travel distance from the start point to the current point, and an estimated cost, which is the shortest distance from the current point to the goal point. The processing device (13) is configured to search for the route while comparing the score for each route.
[0123] According to the route generation device of the second aspect, routes are searched for while comparing the scores of each route, thereby making it possible to efficiently search for a plurality of routes. 3. A route generation device (10) according to a third aspect is the route generation device (10) according to the second aspect, wherein the processing device (13) is configured such that, when two routes overlap, the processing device (13) compares the score of the overlapping mesh of one of the routes with the score of the overlapping mesh of the other route, sets the overlapping mesh of the route with the larger score value as a no-passage area, and re-searches the routes until the routes overlap again.
[0124] According to the route generation device (10) of the third aspect, by comparing the scores for each route, the setting of no-passage areas and the re-searching of routes are repeated, thereby making it possible to generate the overall shortest route for multiple routes.
[0125] 4. A route generation device (10) according to a fourth aspect is the route generation device (10) according to the third aspect, wherein the processing device (13) is configured to determine that the route and the other route overlap when the mesh currently being searched for the route is included in the mesh that has already been searched for another route.
[0126] According to the route generation device (10) of the fourth aspect, it is possible to search for a route taking other routes into consideration. 5. A route generation device (10) according to a fifth aspect is the route generation device (10) of any one of the first to fourth aspects, further comprising a communication device (14) configured to be able to communicate with a mobile body (15). The route is a movement route of the mobile body (15). The processing device (13) is configured to transmit route information indicating the generated movement route of the mobile body (15) to the mobile body (15) via the communication device (14).
[0127] According to the route generation device (10) of the fifth aspect, a moving object can move on a route generated by the route generation device. 6. A path generation device (10) according to a sixth aspect is the path generation device (10) of any one of the first to fourth aspects, further comprising an output device (12) configured to display various information. The path is a piping path or a wiring path. The processing device (13) is configured to display the generated piping path or the wiring path on the output device (12).
[0128] According to the path generation device (10) of the sixth aspect, the piping path or the wiring path generated by the path generation device can be confirmed via the output device. 7. A route generation method according to a seventh aspect is a route generation method for searching for multiple routes in which at least one of the start point and the finish point is different, and the search for the multiple routes is started simultaneously, and the routes are searched for in parallel while comparing information on the multiple routes.
[0129] According to the route generation method of the seventh aspect, it is possible to search for a route taking other routes into consideration, and therefore it is possible to efficiently search for a plurality of routes. 8. The route generation program according to the eighth aspect is a route generation program that causes a computer to execute a process of searching for multiple routes that have at least one different start point and finish point, and includes a step of simultaneously starting to search for the multiple routes, and a step of searching for the routes in parallel while comparing information on the multiple routes.
[0130] According to the route generation program of the eighth aspect, it is possible to search for a route while taking other routes into consideration, thereby making it possible to efficiently search for a plurality of routes. [Explanation of symbols]
[0131] 10...Path generation device 12...Output device 13...Processing equipment 14...Communication equipment
Claims
1. a processing device configured to search for a plurality of routes having at least one of a start point and a finish point different from each other; The processing device is configured to simultaneously start searching for a plurality of the routes and to search for the routes in parallel while comparing information on the plurality of routes.
2. the processing device is configured to divide a plurality of maps set independently for each of the routes into vertical and horizontal meshes, and to search preferentially the meshes having a smaller score value calculated for each of the divided meshes; The score is the sum of an actual cost, which is the distance traveled from the start point to the current point, and an estimated cost, which is the shortest distance from the current point to the goal point; The route generation device according to claim 1 , wherein the processing device is configured to search for the route while comparing the score for each of the routes.
3. The route generation device of claim 2, wherein the processing device is configured, when two routes overlap, to compare the score of the overlapping mesh of one of the routes with the score of the overlapping mesh of the other of the routes, set the overlapping mesh of the route with the larger score value as a no-passage area, and re-search the routes until the routes overlap again.
4. The route generation device according to claim 3, wherein the processing device is configured to determine that the route and the other route overlap when the mesh currently being searched for the route is included in the mesh that has already been searched for another route.
5. Further comprising a communication device configured to be able to communicate with the mobile object; the route is a travel route of the moving object, A route generation device according to any one of claims 1 to 4, wherein the processing device is configured to transmit route information indicating the generated travel route of the moving body to the moving body via the communication device.
6. further comprising an output device configured to display various information; the path is a piping path or a wiring path, 5. The path generation device according to claim 1, wherein the processing device is configured to display the generated piping path or wiring path on the output device.
7. A route generation method for searching for a plurality of routes having different start points or different finish points, comprising: A route generation method in which a search for a plurality of the routes is started simultaneously, and the routes are searched for in parallel while comparing information on the plurality of routes.
8. A route generation program that causes a computer to execute a process of searching for a plurality of routes having different start points and / or different goal points, initiating a search of a plurality of said paths simultaneously; and searching for the routes in parallel while comparing information on the plurality of routes.
Citation Information
Patent Citations
Optimal course search system
JP2007057499A