Route search device, route search method, and route search program
By dividing the search area into hierarchical partial areas and focusing the search within selected areas, the method addresses the inefficiency of conventional route search methods, enhancing computational efficiency for autonomous flying robots.
Patent Information
- Application Number
- JP2021055262
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-03-29
- Publication Date
- 2025-12-16
- Estimated Expiration
- 2041-03-29
AI Technical Summary
Conventional route search methods for autonomous flying robots require excessive computational resources as the search area increases, leading to inefficiencies in calculating flight paths.
A path search method that divides the search area into hierarchical partial areas, allowing for a tentative path search followed by a focused search within selected areas using a graph structure to reduce computational load.
This approach effectively suppresses the increase in computational requirements as the search area expands, optimizing route calculation efficiency.
Smart Images

Figure 0007786883000001 
Figure 0007786883000002 
Figure 0007786883000003
Abstract
Description
[Technical Field]
[0001] The present invention relates to a route search device, a route search method, and a route search program. [Background technology]
[0002] BACKGROUND ART Conventionally, autonomous flying robots have been proposed that are capable of calculating a flight path from a current position to a predetermined target position in the shortest possible manner and flying autonomously along that flight path.
[0003] For example, Patent Document 1 describes a technology that divides a space (flightable space) excluding obstacles such as buildings and trees into voxels of a predetermined size, determines a graph structure with a node at the center of gravity of each voxel, and applies a route search algorithm such as the A* (A-star) route search method to the graph structure to search for the shortest route from the starting position to the target position and determine the flight route. [Prior art documents] [Patent documents]
[0004] [Patent Document 1] Japanese Patent Application Laid-Open No. 2014-119901 Summary of the Invention [Problem to be solved by the invention]
[0005] However, in the above-described conventional technology, the number of voxels increases as the area to be searched for a route becomes larger, which poses a problem in that the amount of calculation required for the route search becomes enormous. The present invention has been made in consideration of the above problems, and has as its object to suppress an increase in the amount of calculation required for route searching as the target area for route searching becomes larger. [Means for solving the problem]
[0006] According to one aspect of the present invention, there is provided a path search device for determining a travel path from a start position to a destination position within a movable area. The path search device includes: a tentative path search unit that searches for a tentative path from the start position to a destination position in a graph structure having nodes corresponding to each of a plurality of partial areas obtained by dividing area data representing the movable area and edges connecting the nodes of adjacent partial areas; a search target area setting unit that selects one of the plurality of partial areas as a search target area in which to search for a travel path based on the tentative path; and a travel path search unit that searches for a travel path in the graph structure having nodes corresponding to each of a plurality of second partial areas, which are a plurality of partial areas obtained by further dividing the partial area selected as the search target area, and edges connecting the nodes of adjacent second partial areas.
[0007] According to another aspect of the present invention, there is provided a path search method for determining a travel path from a start position to a target position within a movable area. The path search method causes a computer to execute the following steps: searching for a tentative path from the start position to the target position in a graph structure having nodes corresponding to each of a plurality of partial areas obtained by dividing area data representing the movable area and edges connecting the nodes of adjacent partial areas; selecting one of the plurality of partial areas as a search target area in which to search for a travel path based on the tentative path; and searching for a travel path in the graph structure having nodes corresponding to each of a plurality of second partial areas, which are a plurality of partial areas obtained by further dividing the partial area selected as the search target area, and edges connecting the nodes of adjacent second partial areas.
[0008] According to yet another aspect of the present invention, there is provided a path search program for determining a travel path from a start position to a target position within a movable area. The path search program causes a computer to execute the following steps: a process of searching for a tentative path from the start position to the target position in a graph structure having nodes corresponding to each of a plurality of partial areas obtained by dividing area data representing the movable area and edges connecting the nodes of adjacent partial areas; a process of selecting one of the plurality of partial areas as a search target area in which to search for a travel path based on the tentative path; and a process of searching for a travel path in the graph structure having nodes corresponding to each of a plurality of second partial areas, which are a plurality of partial areas obtained by further dividing the partial area selected as the search target area, and edges connecting the nodes of adjacent second partial areas. [Effects of the Invention]
[0009] According to the present invention, it is possible to suppress an increase in the amount of calculation required for route search that accompanies an increase in the target area for route search. [Brief explanation of the drawings]
[0010] [Figure 1] 1 is a schematic diagram illustrating an example of the configuration of a mobility control system according to an embodiment of the present invention. [Figure 2] FIG. 2 is a block diagram illustrating an example of the functional configuration of the autonomous flying robot of FIG. 1. [Figure 3] 2 is a block diagram illustrating an example of a functional configuration of a management device in FIG. 1. [Figure 4] FIG. 10 is a diagram illustrating an example of a movable area indicated by movable area information. [Figure 5] FIG. 10 is an explanatory diagram (part 1) of an example of a process for dividing a movable area in the first layer (top layer). [Figure 6] FIG. 10 is an explanatory diagram (part 2) of an example of the division process of the movable area in the first layer. [Figure 7] FIG. 10 is an explanatory diagram (part 3) of an example of the division process of the movable area on the first layer. [Figure 8] FIG. 10 is an explanatory diagram (part 4) of an example of the division process of the movable area on the first layer. [Figure 9] FIG. 2 is a diagram illustrating an example of a first-layer graph structure. [Figure 10] FIG. 10 is a diagram showing an example of a circumscribed rectangular parallelepiped of a partial region of the first layer. [Figure 11] FIG. 10 is an explanatory diagram (part 1) of an example of division processing of a movable area in the second layer (lower layer). [Figure 12] FIG. 10 is an explanatory diagram (part 2) of an example of the division process of the movable area on the second layer. [Figure 13] FIG. 10 is a diagram illustrating an example of a graph structure of a second layer. [Figure 14] FIG. 10 is a diagram showing a state in which a start position and a target position are set. [Figure 15] FIG. 10 is a diagram showing a tentative route set in the first layer. [Figure 16] FIG. 10 is an explanatory diagram of an example of a process for setting a search target area in the first layer. [Figure 17] FIG. 10 is a diagram showing a tentative route set in the second layer (lower layer). [Figure 18] FIG. 10 is an explanatory diagram (part 1) of an example of a process for setting a search target area in the second layer. [Figure 19] FIG. 10 is an explanatory diagram (part 2) of an example of the process of setting a search target area in the second layer. [Figure 20] FIG. 10 is an explanatory diagram (part 3) of an example of the process of setting a search target area in the second layer. [Figure 21] FIG. 10 is an explanatory diagram (part 4) of an example of the process of setting a search target area in the second layer. [Figure 22] 1 is a flowchart (part 1) of an example of a route search method according to an embodiment. [Figure 23] 10 is a flowchart (part 2) of an example of a route search method according to an embodiment. [Figure 24] 23 is a flowchart of an example of a subroutine of step S5 in FIG. 22. DETAILED DESCRIPTION OF THE INVENTION
[0011] Hereinafter, embodiments of the present invention will be described with reference to the drawings. Note that the embodiments of the present invention shown below are merely examples of devices and methods for embodying the technical concept of the present invention, and the technical concept of the present invention does not limit the structure, arrangement, etc. of the components to those described below. The technical concept of the present invention can be modified in various ways within the technical scope defined by the claims. In this embodiment, the present invention is applied to a mobile control system that controls the movement of a drone, which is an autonomous flying robot, as a mobile object, but the present invention is not limited to this. For example, the present invention may be applied to a mobile control system that controls the movement of an autonomous mobile robot that travels within a two-dimensional movable area.
[0012] <System configuration> Hereinafter, the configuration of an embodiment of the present invention will be described with reference to FIG. 1, which shows a schematic configuration of a mobility control system 1000 to which the present invention is applied. (Mobility control system 1000) The mobility control system 1000 includes a management device 100 and one or more autonomous flying robots 200. The management device 100 and the autonomous flying robots 200 communicate with each other via a predetermined closed network (such as a wireless LAN). The management device 100 is an example of a route search device.
[0013] (Autonomous Flying Robot 200) The autonomous flying robot 200 is, for example, a small unmanned quadrotor helicopter. Note that the present invention is not limited to a small unmanned quadrotor helicopter, and can be similarly applied to a small unmanned single-rotor helicopter. The autonomous flying robot 200 receives information (route information, described later) relating to a flight path, which is an example of a movement path, from the management device 100, and controls itself to fly along that flight path.
[0014] 2, the autonomous flying robot 200 includes a position and orientation sensor 210, a communication unit 220, a storage unit 230, a control unit 240, a motor 250, and a rotor 260. The position and attitude sensor 210 acquires the current position and attitude of the autonomous flying robot 200. The position and attitude sensor 210 includes, for example, a receiver that receives radio waves (navigation signals) transmitted from navigation satellites (artificial satellites) such as the Global Navigation Satellite System (GNSS), an acceleration sensor that measures acceleration, an electronic compass that measures orientation, and a gyro sensor that measures angular velocity. For example, the receiver of the position and attitude sensor 210 receives navigation signals transmitted from a plurality of navigation satellites and outputs them to the control unit 240 , and the electronic compass and gyro sensor output measurement signals to the control unit 240 . Instead of a receiver, other known sensors, such as a laser scanner and a barometric pressure sensor, may be used to obtain the current position and attitude information using known prior art techniques.
[0015] The communication unit 220 is a communication module for communicating with the management device 100 . The storage unit 230 is an information storage device such as a ROM (Read Only Memory), a RAM (Random Access Memory), or an HDD (Hard Disk Drive). The storage unit 230 stores various programs and various data, and inputs and outputs this information to and from the control unit 240. The various data includes information used in each process of the control unit 240, such as position and orientation information 232 and path information 234.
[0016] Position and attitude information 232 is a history of positions and attitudes in which the current position and attitude of autonomous flying robot 200 acquired by position and attitude sensor 210 are cyclically stored a predetermined number of times. Here, the most recent position and attitude in the history are particularly referred to as the current position and current attitude, and other positions and attitudes are sometimes referred to as past positions and past attitudes. The route information 234 is information about the flight path along which the autonomous flying robot 200 is scheduled to travel. Specifically, it is a sequence of coordinates on the flight path. The route information 234 is received from the management device 100.
[0017] The control unit 240 is a computer equipped with a processor such as a CPU (Central Processing Unit), and peripheral devices such as a ROM, a RAM, etc. The processor of the control unit 240 executes a computer program stored in the storage unit 230 to realize the functions of the control unit 240 described below. The control unit 240 functions as a position and attitude calculation means 242, a flight control means 244, and the like.
[0018] The position / attitude calculation means 242 calculates the current position and attitude of the autonomous flying robot 200 in a three-dimensional movement area (e.g., flight space) from the output of the position / attitude sensor 210, and stores it in the memory unit 230 as position / attitude information 232. For example, the position / attitude calculation means 242 obtains latitude, longitude, and altitude from the navigation signal output by the position / attitude sensor 210, and converts them into a position in the coordinate system of the moving area using pre-stored conversion rules.
[0019] Furthermore, the position / orientation calculation means 242 obtains the current orientation in the coordinate system of the moving area from the measurement signals of the acceleration sensor and gyro sensor output by the position / orientation sensor 210 . The direction in the coordinate system of the moving area may be obtained from the measurement signal of the electronic compass output by the position and orientation sensor 210, and the current orientation may be calculated using further measurement signals from other sensors. As described above, the position and attitude sensor 210, the communication unit 220, and the position and attitude calculation means 242 (control unit 240) work together to detect the current position and attitude of the autonomous flying robot 200.
[0020] It should be noted that the position / posture calculation means 242 transmits the current position to the management device 100 via the communication unit 220 every time it calculates the current position. The flight control means 244 refers to the route information 234 and the position and attitude information 232 and controls the rotation speed of the motor 250 so that the autonomous flying robot 200 moves along the flight route described in the route information 234 . Specifically, the flight control means 244 controls the rotation speed of the motor 250 so as to reduce the error between the position (coordinates) at the current time recorded in the route information 234 and the current position recorded in the position and attitude information 232.
[0021] Furthermore, the autonomous flying robot 200 is equipped with four units each consisting of four rotors 260 and four motors 250 whose rotation axes are respectively connected to the corresponding rotors 260 . Each motor 250 is connected to the control unit 240 and receives a rotation speed command from the control unit 240. The four rotors 260 rotate independently, causing the autonomous flying robot 200 to generate acceleration in any direction.
[0022] (Management device 100) The management device 100 is installed at a predetermined location (for example, within the movement area of the autonomous flying robot 200), determines the target location to which the autonomous flying robot 200 will fly, and based on the current location received from the autonomous flying robot 200, calculates the flight path from the current location to the target location and transmits it to the autonomous flying robot 200. In addition, the management device 100 may communicate with a center device (not shown) installed in a remote monitoring center via a wide area network (Internet, mobile phone network, etc.), receive instructions from the center device, set a target position based on the instructions, and transmit various information related to the autonomous flying robot 200 to the center device.
[0023] 3, the management device 100 includes a communication unit 110, a storage unit 120, and a control unit . The communication unit 110 is a communication module for communicating with the autonomous flying robot 200 . The storage unit 120 is an information storage device such as a ROM, RAM, or HDD. The storage unit 120 stores various programs and various data, and inputs and outputs this information to and from the control unit 130. The various data includes information used in each process of the control unit 130, such as movable area information 121, position information 122, partial area information 123, graph structure information 124, and route information 125.
[0024] (Moveable area information 121) The movable area information 121 is information consisting of coordinate data that represents the spatial range (solid) of a three-dimensional space in which the autonomous flying robot 200 can fly. Note that when the present invention is applied to the movement control of an autonomous flying robot that travels in a two-dimensional movable area, the movable area information 121 may be two-dimensional area information. The movable area information 121 is generated based on, for example, the positions and shapes of obstacles that exist within the area in which the autonomous flying robot 200 flies. In addition to obstacles, the movable area information 121 may also be generated based on information that limits the flight range of the autonomous flying robot 200, such as the property of the owner of the autonomous flying robot 200 or the permitted flight altitude range stipulated by a government agency.
[0025] For example, the movable area information 121 may include voxel set information obtained by equally dividing a target area, including the area in which the autonomous flying robot 200 flies, into voxels. The movable area information 121 may include a voxel ID for each voxel, position information for the voxel, and information on the presence or absence of an obstacle in each voxel. The movable area in which the autonomous flying robot 200 can fly can be represented as a set of voxels in which no obstacles exist.
[0026] (location information 122) The position information 122 is information that indicates the current position and target position of the autonomous flying robot 200. When the current position is received from the autonomous flying robot 200, it is stored in the position information 122 in association with the aircraft ID of the autonomous flying robot 200. When the target position of the autonomous flying robot 200 is set, the target position is stored in the position information 122 in association with the aircraft ID of the autonomous flying robot 200.
[0027] (Partial area information 123) The partial area information 123 is information indicating a plurality of partial areas obtained by dividing the movable area indicated by the movable area information 121. The information on the partial area may include, for example, the voxel IDs of the voxels included in the partial area. The partial area information 123 has a hierarchical structure. The partial area in the first hierarchy, which is the highest hierarchy, is a partial area obtained by dividing the entire movable area into a convex area and a connected area other than the convex area.
[0028] The partial areas of the second hierarchical level, which is one level below the first hierarchical level, are obtained by dividing each of the partial areas of the first hierarchical level, which is one level above, so that they are areas that are smaller than the standard size set for each hierarchical level. Similarly, the partial regions of the nth layer are obtained by dividing each of the partial regions of the (n-1)th layer so that they are smaller than the reference size. The reference size of the nth layer is set to a value smaller than the reference size of the (n-1)th layer.
[0029] Hereinafter, the minimum value of the reference size may be, for example, the size of a voxel. That is, at the lowest level, the movable area may be divided into partial areas of voxel size. The minimum value of the reference size may also be set to a value larger than the voxel size. Furthermore, the partial region information 123 may include information on a circumscribing rectangular parallelepiped that circumscribes each of these partial regions.
[0030] (Graph Structure Information 124) The graph structure information 124 is graph structure information that represents the positional relationships (especially the connection relationships between the partial areas) obtained by dividing the movable area indicated by the movable area information 121 (i.e., the partial areas indicated by the partial area information 123). The graph structure information 124 has a hierarchical structure similar to the partial area information 123. The graph structure of the nth layer has nodes corresponding to each partial area of the nth layer and edges connecting the nodes of pairs of partial areas of the nth layer that are adjacent to each other (i.e., touching each other).
[0031] The position of the node of each partial region may be set, for example, to the center position of the voxel that is closest to the center position (center of gravity position) of the partial region and that is located within the partial region. Furthermore, the graph structure information 124 includes information on edges (hereinafter sometimes referred to as "inter-layer edges") connecting nodes of a partial area in the nth layer to nodes of a partial area in the (n-1)th layer above that includes this partial area. (Route information 125) The route information 125 is information calculated by the route search unit 133, and is a sequence of coordinates of each position on a route that starts from a start position, passes through the positions of each intermediate node, and reaches a target position. The control unit 130 transmits the route information 125 to the autonomous flying robot 200 via the communication unit 110. The autonomous flying robot 200 stores route information 234 based on the received route information 125. For example, the autonomous flying robot 200 stores the route information 125 as the route information 234.
[0032] (control unit 130) The control unit 130 is a computer equipped with a processor such as a CPU, and peripheral devices such as a ROM, a RAM, etc. The processor of the control unit 130 executes a computer program stored in the storage unit 120 to realize the functions of the control unit 130 described below. The control unit 130 functions as an area dividing unit 131, a graph generating unit 132, a route searching unit 133, a search target area setting unit 134, etc. The route searching unit 133 is an example of the "tentative route searching unit" and the "travel route searching unit" described in the claims.
[0033] The area dividing unit 131 executes partial area processing. In the partial area processing, the area dividing unit 131 divides the movable area indicated by the movable area information 121 into a convex area and a connected area, and acquires the divided areas as partial areas of the first hierarchical level. The area dividing unit 131 also divides the partial areas of the first hierarchical level into areas that are equal to or smaller than the reference size of the second hierarchical level, and acquires the divided areas as partial areas of the second hierarchical level.
[0034] Similarly, the process of dividing the partial area of the (n-1)th layer into areas that are smaller than the reference size of the nth layer, and obtaining the divided areas as partial areas of the nth layer, is repeated until the reference size reaches a predetermined minimum value. The region dividing unit 131 stores the information on the obtained partial regions in the storage unit 120 as partial region information 123 .
[0035] The graph generating unit 132 executes a graph generating process, in which the graph generating unit 132 generates a graph structure representing the positional relationships between the partial regions of the partial region information 123 for each layer. Furthermore, the graph generating unit 132 adds to the graph structure an inter-layer edge that connects the node of the partial area in the nth layer with the node of the partial area in the (n-1)th layer immediately above that containing this partial area. The graph generating unit 132 stores information about the generated graph structure in the storage unit 120 as graph structure information 124 .
[0036] The partial region processing by the region dividing unit 131 and the graph generation processing by the graph generating unit 132 may be performed only once before searching for the movement path of the autonomous flying robot 200, for example, before the autonomous flying robot 200 starts moving to the target position. In addition, after the autonomous flying robot 200 starts moving to the target position, the partial region processing and graph generation processing may be executed in real time as appropriate. By executing partial area processing and graph generation processing after the autonomous flying robot 200 starts moving to the target position, even if the movable area changes due to the movement of an obstacle, the movement path can be changed in accordance with the change in the movable area.
[0037] Next, an example of partial region processing by the region dividing unit 131 and graph generation processing by the graph generating unit 132 will be described with reference to FIGS. As described above, voxel set information obtained by equally dividing the target area, including the area in which the autonomous flying robot 200 flies, into voxels is stored in advance as the movable area information 121. The presence or absence of an obstacle is stored in each voxel, and the movable area is expressed as a set of voxels without obstacles. Figure 4 is a diagram showing an example of the movable area 1.
[0038] First, the area dividing unit 131 divides the movable area 1 into partial areas of the first layer, which is the highest layer. The partial area processing in the first layer will be described below. Note that the area dividing method is not limited to the following description, and it is sufficient for the area dividing unit 131 to divide the movable area 1 into partial areas of the first layer using any method. The area dividing unit 131 calculates the distance value between the voxel and the obstacle closest to the voxel for each voxel in the movable area 1. Referring to Figure 5, the region dividing unit 131 selects voxel 2, which has the largest distance value from the obstacle. The region dividing unit 131 expands a rectangular parallelepiped from the selected voxel 2, calculates a rectangular parallelepiped whose interior contains only voxels within the movable region 1, and sets this rectangular parallelepiped as the convex region 3. Note that the boundary of the movable area 1 is not necessarily flat. For this reason, each time a convex area is calculated, it is possible to confirm whether a voxel that touches the outside of the convex area is located within the movable area 1 and whether the area after adding the voxel to the convex area will still be a convex area, and then add the voxel to the convex area to expand the convex area.
[0039] See Figure 6. From the region remaining after excluding convex region 3 from movable region 1, voxel 5 with the greatest distance from the obstacle is selected, and a rectangular parallelepiped is expanded from voxel 5 to calculate convex region 6. Similarly, from the region remaining after excluding convex regions 3 and 6 from movable region 1, voxel 8 with the greatest distance from the obstacle is selected, and a rectangular parallelepiped is expanded from voxel 8 to calculate convex region 9.
[0040] Similarly, voxel 11 with the greatest distance value from the obstacle is selected from the area remaining after excluding convex areas 3, 6, and 9 from movable area 1, and a rectangular parallelepiped 12 is expanded from voxel 11 as shown in Figure 7. If rectangular parallelepiped 12 interferes with the calculated convex area 3, rectangular parallelepiped 12 is not set as a convex area, and the process of generating the convex area is terminated. 8, the region dividing unit 131 clusters the voxels in the region excluding the convex regions 3, 6, and 9 from the movable region 1, and forms connected regions 13, 14, and 15. As a result of the above, the area dividing unit 131 divides the movable area 1 into convex areas 3, 6, and 9 and connected areas 13 to 15, and stores them as partial areas of the first layer.
[0041] Next, the graph generation unit 132 generates a graph structure of the first layer, as shown in Fig. 9. The graph generation unit 132 sets nodes n3, n6, n9, and n13 to n15 that represent the positions of the partial regions 3, 6, 9, and 13 to 15, respectively. For example, the graph generating unit 132 sets the center positions of voxels that are closest to the center positions of the partial regions 3, 6, 9, 13 to 15 and that are located within the partial regions 3, 6, 9, 13 to 15 as nodes n3, n6, n9, n13 to n15, respectively.
[0042] The graph generation unit 132 sets an edge e that connects nodes of adjacent partial regions (i.e., partial regions that are in contact with each other). For example, the graph generation unit 132 may calculate the path of the edge e on a graph in which the in-contact voxels are connected by edges, using an algorithm such as the A* (A-star) path search algorithm or the Dijkstra algorithm. The graph generation unit 132 stores the graph structure in which nodes n3, n6, n9, and n13 to n15 are connected by edge e as the graph structure of the first layer. Note that it is sufficient to store the identifiers of the nodes at both ends and the edge length as information about edge e, and it is not necessary to store the path information of the edge. 10, the area dividing unit 131 calculates circumscribing rectangular parallelepipeds A3, A6, A9, and A13 to A15 that circumscribe each of the partial areas 3, 6, 9, and 13 to 15, and stores them as part of the partial area information 123.
[0043] Next, the region dividing unit 131 divides each of the partial regions 3, 6, 9, 13 to 15 of the first layer to generate partial regions of a lower layer (second layer). In the following description of the partial region processing and graph generation processing, the layer for which the partial regions and graphs are to be generated will be referred to as the "layer of interest." The method of dividing the regions is not limited to the following description, and it is sufficient for the region dividing unit 131 to divide the partial regions of the layer one level higher than the layer of interest into partial regions of the layer of interest.
[0044] See Figure 11. If a partial region in the layer one level above the layer of interest (the first layer in this case) is a convex region, the partial region is divided by the standard size of the layer of interest. For example, convex region 3 is divided into convex regions 18 and 19 of the standard size and convex region 20, which is smaller than the standard size, and these convex regions are designated as partial regions 18 to 20 of the layer of interest. Convex regions 6 and 9 are smaller than the standard size, so they are not divided and are designated as partial regions 21 and 22 of the layer of interest.
[0045] See Figure 12. If a partial region in the layer one level above the layer of interest is a connected region, it is divided into a convex region and a connected region, similar to the partial region processing in the first layer described above. For example, connected region 14 is divided into convex region 23 and connected regions 24 to 26, and connected region 13 is divided into convex region 29 and connected space 28, each of which is designated as a partial region in the layer of interest. The connected region 15 is included in a single rectangular parallelepiped, and is therefore not divided but is treated as a partial region 27 in the layer of interest.
[0046] See Fig. 13. Graph generation unit 132 generates a graph structure for the layer of interest (the second layer in this case). The method for generating the graph structure is the same as the method for generating the graph structure for the first layer described above. The graph structure of the second layer includes nodes n18 to n29 of the partial regions 18 to 29 of the second layer, and edges e that connect the nodes of adjacent partial regions among these nodes n18 to n29.
[0047] Thereafter, the same process is repeated, dividing the partial area of the (n-1)th layer into areas smaller than the reference size of the nth layer, obtaining the divided areas as partial areas of the nth layer, and generating a graph structure of the nth layer, until the reference size reaches a predetermined minimum value. The lowest layer among the layers in which the partial regions and graph structures are generated is referred to as the "lowest layer." The reference size of the lowest layer may be, for example, the size of a voxel, or may be larger than the voxel size.
[0048] When the autonomous flying robot 200 performs partial region processing and graph generation processing in real time as needed after starting to move toward the target position, the region dividing unit 131 may dynamically change the minimum value of the reference size (i.e., the reference size of the lowest layer). For example, the region dividing unit 131 may change the minimum value of the reference size according to the movement speed of the autonomous flying robot 200. For example, the higher the movement speed, the larger the minimum value of the reference size. This allows route calculation to be completed quickly when the movement speed of the autonomous flying robot 200 is high and a rapid search for a movement route is required. Furthermore, for example, the region dividing unit 131 may change the minimum value of the reference size depending on the time elapsed since the start of the calculation of the partial region processing and the graph generation processing. For example, the longer the elapsed time, the larger the minimum value of the reference size. This allows the route calculation to be completed quickly.
[0049] Furthermore, the graph generating unit 132 adds to the graph structure an inter-layer edge that connects the node of the partial area in the nth layer with the node of the partial area in the (n-1)th layer immediately above that containing this partial area. For example, the graph generation unit 132 may calculate the path of the inter-layer edges on a graph in which adjacent voxels are connected by edges, using an algorithm such as the A* (Aster) path search algorithm or the Dijkstra algorithm. In this case, the path is calculated so as to pass through only a partial area of the (n-1)th layer. As information about the inter-layer edges, it is sufficient to store the identifiers of the nodes at both ends and the edge length information; it is not necessary to store the path information for the inter-layer edges.
[0050] In the graph generation process described above, in order to reduce the amount of calculation required for calculating edges, instead of calculating the path of edges on a graph in which voxels are connected by edges, the path of edges may be calculated on a graph structure one layer below the layer of interest. In this case, after the region dividing unit 131 performs partial region processing up to the lowest layer, the graph generating unit 132 generates graph structures in order from the lowest layer to the highest layer.
[0051] See Fig. 3. The route search unit 133 and the search target area setting unit 134 execute a route search process. In the route search process, a movement route for moving the autonomous flying robot 200 from the start position of the movement of the autonomous flying robot 200 (for example, the current position of the autonomous flying robot 200) to a specified target position is searched for. The route search process is executed, for example, when a target position is specified, when an obstacle is detected on the searched travel route, when the autonomous flying robot 200 deviates significantly from the searched travel route, etc.
[0052] The path search unit 133 searches for a path from the start position to the goal position in the graph structure of each layer. Of these paths, the path searched in the graph structure of the lowest layer is ultimately output as the travel path for the autonomous flying robot 200. The paths provisionally searched in the first layer and in the layers below the second layer except for the lowest layer are referred to as "provisional paths."
[0053] When searching for a route from the start position to the destination position in the nth layer (n≧2), which is a layer lower than the second layer, the search target area setting unit 134 limits a partial area of the (n-1)th layer based on the tentative route calculated in the (n-1)th layer, and sets it as the search target area for searching for a travel route in the nth layer. Hereinafter, in the explanation of the route search process, the nth layer that is the target of the route search may be referred to as the "layer of interest."
[0054] The route search unit 133 restricts the nth layer graph structure generated by the graph generation unit 132 by excluding nodes of the partial area of the nth layer that are not included in the search target area of the (n-1)th layer set by the search target area setting unit 134, and edges connected to these nodes, and searches for an nth layer route from the start position to the target position in the restricted graph structure. This makes it possible to limit the graph structure of the lowest hierarchy for searching for a travel route, thereby suppressing an increase in the amount of calculation required for route search as the movable area 1 becomes larger.
[0055] Next, an example of a route search process performed by the route search unit 133 and the search target area setting unit 134 will be described with reference to FIGS. First, the route search unit 133 sets a start position 30 and a target position 31 within the movable area 1 as shown in FIG.
[0056] See Fig. 15. Next, the route search unit 133 generates a tentative route from the start position 30 to the target position 31 in the graph structure of the first layer, and calculates the route length L. At this time, the path search unit 133 finds a path 32 between the start position 30 and a node n9 of the partial area 9 of the first layer to which the start position 30 belongs. The route search unit 133 may find the route 32 using, for example, the information on the inter-layer edges described above.
[0057] Specifically, a path 32 is obtained by sequentially connecting inter-layer edges from the node of the partial area in the lowest layer including the starting position 30 to node n9 in the first layer. If the partial region 9 to which the start position 30 belongs is a convex region, the path 32 may be a path that directly connects the start position 30 and the node n9. Similarly, a path 33 between the target position 31 and node n3 of the partial region 3 of the first layer to which the target position 31 belongs is obtained.
[0058] Furthermore, in the graph structure of the first layer, a path 34 from node n9 to node n3 is searched for. The route search unit 133 connects route 32, route 34, and route 33 to form a tentative route (32+34+33) that extends from the start position 30 to the target position 31. The route search unit 133 calculates the sum of the route length LS of route 32, the route length LM of route 34, and the route length LG of route 33 as the route length L of the tentative route (32+34+33) = (LS+LM+LG).
[0059] Next, in order to limit the target range for searching the movement path of the autonomous flying robot 200 from the movable area 1, the search target area setting unit 134 selects one of the partial areas 3, 6, 9, 13 to 15 of the first hierarchical level as a candidate for the search target area based on the tentative route (32+34+33) searched by the route search unit 133. See Fig. 16. For example, the search target area setting unit 134 may select, as a candidate for the search target area, a partial area located inside an ellipsoid 35 formed by a locus of moving points whose sum of distances from the focal points 30 and 31 is the path length L of the tentative path (32+34+33), with the start position 30 and the target position 31 as focal points. Here, "located inside the ellipsoid" means that at least a part of the partial area is located inside the ellipsoid (i.e., the partial area is in contact with the ellipsoid).
[0060] The sum of the distances of two straight lines between a point on the surface of such an ellipsoid 35 and the start position 30 and the target position 31 is equal to the path length L of the tentative path (32+34+33). Therefore, the path length of a path that passes through a partial area located outside the ellipsoid 35 is longer than the path length L of the tentative path (32+34+33). Therefore, the search target area setting unit 134 excludes the partial areas located outside the ellipsoid 35 from the search target area, as partial areas that cannot be passed through by the shortest path.
[0061] 16, partial regions 3, 6, 9, 13 to 15 are in contact with the ellipsoid 35, and therefore no partial regions are excluded from the search target region. The search target region setting unit 134 selects all of partial regions 3, 6, 9, 13 to 15 as candidates for the search target region. In order to simplify the calculation for determining whether the ellipsoid 35 is in contact with the partial regions 3, 6, 9, 13 to 15, it may be determined whether the partial regions 3, 6, 9, 13 to 15 are in contact with the ellipsoid 35 based on the determination of whether the ellipsoid is in contact with the circumscribed rectangular parallelepipeds A3, A6, A9, A13 to A15 shown in Figure 10. In addition, if the movable area 1 is a two-dimensional area, a partial area located inside the ellipse formed by the trajectory of the moving point, whose sum of the distances from the focal points 30 and 31 is the path length L of the temporary path (32 + 34 + 33), may be selected as the area to be searched.
[0062] Furthermore, the method of setting the search target area based on the tentative route (32+34+33) is not limited to the method using an ellipsoid or ellipse as described above. Since the range that can be taken by the shortest route from the start position 30 to the target position 31 is narrowed down by determining the tentative route (32+34+33), the search target area can be selected in various ways by using the tentative route (32+34+33). For example, a partial area located inside a rectangular parallelepiped circumscribing the tentative route (32+34+33) may be selected as the search target area. Alternatively, a partial area located inside an area within a predetermined distance from the tentative route (32+34+33) may be selected as the search target area.
[0063] Next, the search target area setting unit 134 selects, as the search target area, partial areas that are adjacent to (in contact with) two or more partial areas from among partial areas 3, 6, 9, 13 to 15 selected as candidates for the search target area based on the tentative route (32+34+33). In other words, partial areas that are in contact with only one partial area are excluded from the search target area. This is because the only route that passes through a partial area that is in contact with only one partial area is one that enters and returns from the same partial area, and therefore it is clear that this will not be the shortest route.
[0064] However, the partial region 9 including the start position 30 and the partial region 3 including the target position 31 are selected as search target regions. 16, in this example, there are no partial areas that are adjacent to only one partial area. Therefore, the search target area setting unit 134 selects all of partial areas 3, 6, 9, 13 to 15 as search target areas, and ends the route search process in the first layer.
[0065] See Fig. 17. The path search unit 133 sets the second layer, which is one layer lower than the first layer, as the layer of interest. The path search unit 133 generates a path from the start position 30 to the target position 31 in a graph structure that excludes, from the graph structure of the second layer, the nodes of the partial areas of the second layer that are not included in the search target area of the first layer selected by the search target area setting unit 134, and the edges connected to these nodes. In this example, since all of the partial areas 3, 6, 9, and 13 to 15 of the first layer have been selected as the search target area, the path search unit 133 generates a path in the entire graph structure of the second layer. If the lowest level is the second level, the route search unit 133 stores the generated route information in the storage unit 120 as route information 125 of the travel route along which the autonomous flying robot 200 will travel. If the lowest level is a level lower than the second level, the generated route becomes a tentative route.
[0066] The route search unit 133 performs processing similar to the route search processing in the first layer to find a route 40 between the start position 30 and node n22 in the partial region 22 in the second layer to which the start position 30 belongs, and a route 41 between the target position 31 and node n19 in the partial region 19 in the second layer to which the target position 31 belongs. In addition, the route search unit 133 searches for a route 42 from node n22 to node n19 in the graph structure in the second layer. The route search unit 133 connects the route 40, the route 42, and the route 41 to form a tentative route (40+42+41) from the start position 30 to the target position 31, and calculates the route length L.
[0067] Next, the search target area setting unit 134 selects one of the partial areas 18 to 29 in the second layer as a candidate for the search target area based on the tentative route (40+42+41). The process of selecting a candidate for the search target area based on the tentative route is the same as the process in the first layer. For example, as shown in Figure 18, the starting position 30 and the target position 31 are used as foci, and a partial area located inside an ellipsoid 43 formed by the locus of moving points whose sum of distances from these foci 30 and 31 is the path length L of the tentative path (40 + 42 + 41) may be selected as a candidate search target area.
[0068] In this example, partial regions 24 and 25 do not contact ellipsoid 43 and cannot be said to be located inside ellipsoid 43, so partial regions 24 and 25 are excluded from the search target region. Search target region setting unit 134 excludes nodes n24 and n25 of partial regions 24 and 25 and edges connected to these nodes from the second-layer graph structure. Next, the search target area setting unit 134 selects, as the search target area, partial areas adjacent to two or more partial areas among the partial areas 18 to 23 and 26 to 29 selected as candidates for the search target area based on the tentative route (40+42+41). However, the partial area 22 including the start position 30 and the partial area 19 including the target position 31 are selected as the search target area.
[0069] In the example of Fig. 19, partial regions 18, 20, 21, and 23 are excluded from the search target region because they only border one other partial region, as shown in Fig. 20. Nodes n18, n20, n21, and n23 of partial regions 18, 20, 21, and 23 and the edges connected to these nodes are excluded from the second-layer graph structure.
[0070] Furthermore, of the remaining partial regions 19, 22, 26, 27, 28, and 29, partial regions 26 and 27 that border only one other partial region are excluded from the search target region (see FIG. 21). Nodes n26 and n27 of partial regions 26 and 27 and the edges connected to these nodes are excluded from the second-level graph structure. The above process is repeated until there are no more partial areas that border only one other partial area, other than the partial area 22 that includes the start position 30 and the partial area 19 that includes the target position 31. When there are no more partial areas that border only one other partial area, the route search process at the second layer is terminated.
[0071] The route search unit 133 and the search target area setting unit 134 repeat the route search process while changing the focused layer to a lower layer one layer at a time until the lowest layer becomes the focused layer. When searching for a route at the nth layer, the route is searched for in a graph structure having nodes of the subareas at the nth layer included in the search target area at the (n-1)th layer and edges connecting nodes of adjacent (contacting) subareas among these subareas.
[0072] For example, in the route search process at the third layer, a route is searched for in a graph structure having nodes of the third layer partial areas included in the second layer partial areas 19, 22, 28, and 29, and edges connecting nodes of adjacent partial areas among these partial areas. The route search unit 133 stores information about the route searched for in the lowest hierarchy in the storage unit 120 as route information 125 of the travel route along which the autonomous flying robot 200 should travel. This completes the route search process.
[0073] In addition, based on the provisional route searched for in the route search process at a certain level (referred to as "Level 1"), one of the partial areas at a level higher than Level 1 (referred to as "Level 2") may be reselected as the search target area, and then the route search process below Level 2 may be rerun. For example, a partial area of the first layer located inside the ellipsoid 43 set based on the tentative route (40+42+41) searched in the route search process in the second layer may be reselected as the search target area, and the route search process in the second layer and below may be redone. Since the ellipsoid 43 set in the second layer is smaller than the ellipsoid 35 set in the first layer, it may be possible to exclude more partial regions from the search target region.
[0074] In the embodiment described above, an example has been described in which the movement path of the autonomous flying robot 200 is determined by the management device 100. Alternatively, the movement path may be determined by the autonomous flying robot 200. That is, the control unit 240 of the autonomous flying robot 200 may realize the functions of the above-mentioned area division unit 131, graph generation unit 132, path search unit 133, and search target area setting unit 134, and the memory unit 230 of the autonomous flying robot 200 may store the movable area information 121, position information 122, partial area information 123, and graph structure information 124.
[0075] (operation) Next, an example of a route search method according to the embodiment will be described with reference to FIGS. In step S1, the path search unit 133 acquires the starting position from which the autonomous flying robot 200 starts moving. In step S2, the path search unit 133 acquires a target position to which the autonomous flying robot 200 is to be moved.
[0076] The route search unit 133 and the search target area setting unit 134 repeat the following steps S3 to S16 while changing the area of interest layer by layer from the top layer (first layer) to the bottom layer in each layer of the partial area and graph structure. In step S3, the route search unit 133 acquires a node S1 of a partial region that includes the start position (to which the start position belongs) in the region of interest. In step S4, the route search unit 133 acquires a node G1 of a partial region that includes the target position (to which the target position belongs) in the region of interest.
[0077] In step S5, the route search unit 133 calculates the route length LS between the start position and node S1. Figure 24 is a flowchart of an example of a subroutine of step S5. In step S20, the route search unit 133 initializes a variable of the route length LS to zero. In step S21, the route search unit 133 sets the partial area of the lowest hierarchy that includes the start position as the partial area of interest C.
[0078] In step S22, the path search unit 133 determines whether the level of the attention partial area C is the same as the level of the node S1. If the level of the attention partial area C is not the same as the level of the node S1 (step S22: N), the process proceeds to step S23. In step S23, the path search unit 133 acquires the edge path length LE of the inter-layer edge connecting the node of the partial area C of interest and the node of the partial area U of the next higher layer including the partial area C of interest. In step S24, the route search unit 133 adds the route length LE to the route length LS.
[0079] In step S25, the route search unit 133 sets the partial region U as a new partial region of interest C, and the process returns to step S22. On the other hand, if the determination in step S22 is that the hierarchical level of the target partial area C is the same as the hierarchical level of node S1 (step S22: Y), the subroutine ends, the cumulative result of the path length LE up to that point is set as the path length LS, and the processing returns to step S6 in Figure 22.
[0080] See Figure 22. In step S6, the path length LG between the target position and node G1 is calculated. The calculation routine for the path length LG is similar to that for the path length LS, and is equivalent to the process in which the "start position," "path length LS," and "node S1" in the subroutine of step S5 described with reference to Figure 24 are replaced with "target position," "path length LG," and "node G1." See Fig. 23. In step S7, the search target area setting unit 134 determines whether the layer of interest is the top layer (first layer). If the layer of interest is the top layer (step S7: Y), the process proceeds to step S8. If the layer of interest is not the top layer (step S7: N), the process proceeds to step S11.
[0081] In step S8, the search target area setting unit 134 sets all partial areas in the layer of interest as candidates for the search target area. In step S9, the search target area setting unit 134 identifies a partial area that is adjacent to only one other partial area from among the search target area candidates set in step S8. In step S10, the search target area setting unit 134 excludes the partial area identified in step S9 from the search target area of the layer of interest. Then, the nodes of the partial area that are not included in the search target area of the layer of interest and the edges connected to these nodes are deleted from the graph structure of the layer of interest. After that, the process proceeds to step S12.
[0082] On the other hand, if the determination in step S7 is that the layer of interest is not the top layer (step S7: N), in step S11 the search target area setting unit 134 sets the partial area of the layer of interest that is included in the search target area of the layer one level higher as the search target area of the layer of interest.Then, from the graph structure of the layer of interest, the nodes of the partial area that is not included in the search target area of the layer of interest and the edges connected to these nodes are deleted.Then, the processing proceeds to step S12. In step S12, the path search unit 133 searches for a path between node S1 and node G1 in the graph structure of the target layer, and calculates the path length LM of the path found.
[0083] In step S13, the search target area setting unit 134 calculates the path length L=LS+LM+LG of the path from the start position 30 to the target position 31. Note that if the layer of interest is the lowest layer, steps S13 to S16 may be omitted. In step S14, the search target area setting unit 134 calculates an ellipsoid formed by the locus of moving points, with the start position and the target position as focal points, and the sum of the distances from these focal points being the path length L. In step S15, the search target region setting unit 134 identifies a partial region that is not located inside the ellipsoid and a partial region that is adjacent to only one other partial region.
[0084] In step S16, the search target area setting unit 134 excludes the partial area identified in step S15 from the search target area of the layer of interest, and then deletes the nodes of the partial area that are not included in the search target area of the layer of interest and the edges connected to these nodes from the graph structure of the layer of interest. Steps S3 to S16 are repeated until the region of interest reaches the lowest layer, and then the process proceeds to step S17. In step S17, the path search unit 133 outputs the path from the start position 30 to the target position 31 found in the graph structure of the lowest hierarchy as the travel path for moving the autonomous flying robot 200. Then, the process ends.
[0085] (Effects of the embodiment) (1) The management device 100 determines a travel route from the start position to the destination position within the movable area. The route search unit 133 searches for a tentative route from the start position to the destination position in a graph structure having nodes corresponding to each of a plurality of partial areas obtained by dividing area data representing the movable area and edges connecting the nodes of adjacent partial areas. The search target area setting unit 134 selects one of the plurality of partial areas as a search target area for searching for a travel route based on the tentative route. The route search unit 133 searches for a travel route in a graph structure having nodes corresponding to each of a plurality of second partial areas, which are a plurality of partial areas obtained by further dividing the partial area selected as the search target area, and edges connecting the nodes of adjacent second partial areas. This makes it possible to restrict the graph structure used to search for a travel route, thereby suppressing an increase in the amount of calculation required for route search as the movable area becomes larger.
[0086] (2) When the movable area is a three-dimensional area, the search target area setting unit 134 may select, as the search target area, a partial area located inside an ellipsoid formed by the locus of moving points whose foci are the start position and the target position, and whose sum of the distances from these foci is the path length of the tentative path. When the movable area is a two-dimensional area, the search target area setting unit 134 may select as the search target area a partial area located inside an ellipse formed by the locus of moving points, with the starting position and the target position as foci, and the sum of the distances from these foci being the path length of the tentative path. This makes it possible to exclude from the search target area any partial area that is not passed through on the shortest route from the start position to the target position.
[0087] (3) The search target area setting unit 134 may select, as the search target area, a partial area that is adjacent to two or more partial areas among the plurality of partial areas. This allows partial areas that are not passed through on the shortest path from the start position to the target position to be excluded from the search target area.
[0088] (4) The graph generation unit 132 may generate a graph structure by placing nodes at predetermined positions in each partial region and placing edges connecting the nodes of adjacent partial regions. This allows the generation of a graph structure that expresses the positional relationships between the partial regions.
[0089] (5) The area division unit 131 may divide area data representing a movable area into a plurality of partial areas, re-divide the partial areas into partial areas of a predetermined standard size or smaller, and repeat the process of re-dividing the partial areas while gradually reducing the standard size until it reaches a predetermined minimum size. This allows for the generation of partial areas of a hierarchically structured movable area so that the partial area in the nth layer is finer than the partial area in the (n-1)th layer, which is the layer immediately above. This allows for the search area for searching for a route in the finer nth layer to be limited based on the tentative route calculated in the coarser (n-1)th layer, thereby reducing the amount of calculation required for route calculation.
[0090] (6) The region dividing unit 131 may change the minimum size depending on the moving speed of the moving object moving on the moving path. Also, the region dividing unit 131 may change the minimum size depending on the elapsed time since the calculation of the moving path started. This allows, for example, the route calculation to be completed quickly.
[0091] (7) The route search unit 133 may re-search for a tentative route in a graph structure having nodes corresponding to each second partial area and edges connecting the nodes of adjacent second partial areas. The search target area setting unit 134 may select, based on the re-searched tentative route, one of multiple partial areas belonging to a higher hierarchy than the hierarchy to which the second partial area belongs, as the search target area. This makes it possible to exclude more partial areas from the search target area. [Explanation of symbols]
[0092] 100... management device, 110... communication unit, 120... memory unit, 121... movable area information, 122... position information, 123... partial area information, 124... graph structure information, 125... route information, 130... control unit, 131... area division unit, 132... graph generation unit, 133... route search unit, 134... search target area setting unit, 200... autonomous flying robot, 210... position and attitude sensor, 220... communication unit, 230... memory unit, 232... position and attitude information, 234... route information, 240... control unit, 242... position and attitude calculation means, 244... flight control means, 250... motor, 260... rotor, 1000... movement control system
Claims
1. A path search device that finds a movement path from a start position to a target position within a movable area, a tentative route search unit that searches for a tentative route from the start position to the target position in a graph structure of the (n-1)th layer having nodes corresponding to each of the partial areas of the (n-1)th layer and edges connecting nodes of adjacent partial areas of the (n-1)th layer, where the partial areas obtained by dividing the movable area are defined as partial areas of a first layer and the partial areas obtained by dividing each of the partial areas of the (n-1)th layer are defined as partial areas of an nth layer (where n is a natural number of 2 or more representing each layer); a search target area setting unit that selects one of the partial areas of the (n-1)th level as a search target area of the (n-1)th level for searching the travel route based on the tentative route searched in the (n-1)th level; a travel route searching unit that searches for the travel route in a graph structure obtained by excluding, from the nth layer graph structure having nodes corresponding to the nth layer partial areas and edges connecting nodes of adjacent nth layer partial areas, nodes of the nth layer partial areas that are not included in the (n-1)th layer search target area selected by the search target area setting unit and edges connected to these nodes; A route search device comprising:
2. The route search device according to claim 1, characterized in that, when the movable area is a three-dimensional area, the search target area setting unit selects, as the search target area, a partial area of the (n-1)th level located inside an ellipsoid formed by a locus of moving points whose foci are the start position and the target position and whose sum of distances from these foci is the path length of the tentative path.
3. The route search device according to claim 1, characterized in that, when the movable area is a two-dimensional area, the search target area setting unit selects, as the search target area, a partial area of the (n-1)th level located inside an ellipse formed by a locus of moving points whose foci are the start position and the target position and whose sum of distances from these foci is the path length of the tentative path.
4. The route search device according to claim 2 or 3, characterized in that the search target area setting unit selects, as the search target area, a partial area of the (n-1)th level that is adjacent to two or more partial areas of the (n-1)th level.
5. a region dividing unit that divides the partial region of the (n-1)th layer into regions that are equal to or smaller than a reference size set for each layer, and acquires the divided regions as partial regions of the nth layer, repeating this process until the reference size of the nth layer reaches a predetermined minimum size; 5. The route search device according to claim 1, wherein the reference size of the nth layer is set to a value smaller than the reference size of the (n-1)th layer.
6. 6. The route search device according to claim 5, wherein the area dividing unit changes the minimum size in accordance with a moving speed of a moving object moving on the moving route.
7. 7. The route search device according to claim 5, wherein the area division unit changes the minimum size in accordance with an elapsed time from when calculation of the travel route starts.
8. the tentative route search unit re-searches for the tentative route in the n-th layer graph structure, the search target area setting unit selects one of the partial areas of the (n-1)th layer as the search target area of the (n-1)th layer based on the tentative route searched for in the nth layer; 8. The route search device according to claim 1, wherein:
9. A route search method for determining a movement route from a start position to a target position within a movable area, comprising: a process of searching for a tentative path from the start position to the target position in a graph structure of the (n-1)th layer having nodes corresponding to each of the partial areas of the (n-1)th layer and edges connecting nodes of adjacent partial areas of the (n-1)th layer, where the partial areas obtained by dividing the movable area are defined as partial areas of a first layer and the partial areas obtained by dividing each of the partial areas of the (n-1)th layer are defined as partial areas of an nth layer (where n is a natural number of 2 or more representing each layer); a process of selecting one of the partial areas of the (n-1)th layer as a search target area of the (n-1)th layer for searching the travel route based on the tentative route searched in the (n-1)th layer; a process of searching for the travel route in a graph structure obtained by excluding nodes of partial areas of the nth layer that are not included in the selected search target area of the (n-1)th layer and edges connected to these nodes from the graph structure of the nth layer, the graph structure having nodes corresponding to each partial area of the nth layer and edges connecting nodes of adjacent partial areas of the nth layer; A route search method characterized by causing a computer to execute the above.
10. A path search program for determining a path from a start position to a target position within a movable area, a process of searching for a tentative path from the start position to the target position in a graph structure of the (n-1)th layer having nodes corresponding to each of the partial areas of the (n-1)th layer and edges connecting nodes of adjacent partial areas of the (n-1)th layer, where the partial areas obtained by dividing the movable area are defined as partial areas of a first layer and the partial areas obtained by dividing each of the partial areas of the (n-1)th layer are defined as partial areas of an nth layer (where n is a natural number of 2 or more representing each layer); a process of selecting one of the partial areas of the (n-1)th layer as a search target area of the (n-1)th layer for searching the travel route based on the tentative route searched in the (n-1)th layer; a process of searching for the travel route in a graph structure obtained by excluding nodes of partial areas of the nth layer that are not included in the selected search target area of the (n-1)th layer and edges connected to these nodes from the graph structure of the nth layer, the graph structure having nodes corresponding to each partial area of the nth layer and edges connecting nodes of adjacent partial areas of the nth layer; A route search program that causes a computer to execute the above.
Citation Information
Patent Citations
Route searching device
JP1990306400A
Route searching method
JP1996334375A
Method and apparatus for generating route in vehicle navigation system
JP1998197269A
Autonomous mobile robot
JP2014119901A
Methods and systems for determining a path of an object moving from an initial state to final state set while avoiding one or more obstacle
JP2020004421A