Information processing device, information processing method, and computer program
The information processing device optimizes graph map generation by varying node density near obstacles, reducing computational load and enhancing control precision for mobile objects in complex environments.
Patent Information
- Application Number
- JP2021183357
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-11-10
- Publication Date
- 2025-08-14
- Estimated Expiration
- 2041-11-10
AI Technical Summary
Existing methods for generating graph maps in complex spaces require a large number of nodes, leading to increased computational load and difficulty in precise control of mobile objects, especially near obstacles.
An information processing device that arranges nodes in a mobile environment based on distance from unmovable areas, varying node density to reduce the number of nodes while maintaining precise control, and generates edges between nodes to optimize the graph map.
Reduces the number of nodes and edges in the graph map, allowing for efficient and precise control of mobile objects, minimizing collisions and improving route generation speed.
Smart Images

Figure 0007723575000001 
Figure 0007723575000002 
Figure 0007723575000003
Abstract
Description
[Technical Field]
[0001] The present embodiment relates to an information processing device, an information processing method, and a computer program. [Background technology]
[0002] One method for generating a graph map of a target space is the Probabilistic Roadmap (PRM) method. In the PRM method, nodes are placed at random positions within a map representing the space, and a graph map is generated by connecting the nodes with edges. Another method for generating a graph map is to use a grid graph. In this method, the map corresponding to the space is divided into grids of a fixed size, with the centers of the grids being designated as nodes and nearby nodes being connected with edges.
[0003] To generate a graph map that corresponds to the complex structure of space or a graph map for a large space, it is necessary to place a sufficient number of nodes, which results in a problem of large graph map capacity. For example, the PRM method requires an increase in the number of randomly placed nodes. Methods that use grid graphs require a small grid size. As the capacity of the graph map increases, the computational load increases, and the amount of calculation required for path search using the graph map increases. A method for generating graph maps while suppressing capacity is desired. [Prior art documents] [Non-patent literature]
[0004] [Non-Patent Document 1] Kavraki, LE, P. Svestka, J.-C. Latombe, and MH Overmars. "Probabilistic roadmaps for path planning in high-dimensional configuration spaces," IEEE Transactions on Robotics and Automation. Vol. 12, No. 4, Aug 1996 pp. 566-580. Summary of the Invention [Problem to be solved by the invention]
[0005] The present embodiment provides an information processing device, an information processing method, and a computer program that enable a graph map of a target space to be generated while suppressing the volume. [Means for solving the problem]
[0006] The information processing device of this embodiment includes a processing unit that, based on map data including a first area in which a mobile body can move and a second area in which the mobile body cannot move, arranges a plurality of nodes in the first area at intervals according to the distance from the second area, generates a plurality of edges between the nodes according to the distance between the nodes, and generates a graph map based on the plurality of nodes and the plurality of edges. [Brief explanation of the drawings]
[0007] [Figure 1] FIG. 1 is a block diagram of an information processing apparatus according to a first embodiment. [Figure 2] FIG. 1 is a diagram showing an example of a spatial map. [Figure 3] FIG. 10 is a diagram showing an example of a graph map. [Figure 4] FIG. 3 is a diagram showing an example of expanding an unmovable area on the spatial map of FIG. 2; [Figure 5] FIG. 5 is a diagram showing an example of nodes arranged on the spatial map after the expansion process of FIG. 4. [Figure 6]4 is a flowchart showing an example of the operation of the information processing device in FIG. 1; [Figure 7] FIG. 10 is a diagram for explaining the operation of the information processing device according to the second embodiment. [Figure 8] FIG. 10 is a diagram schematically showing an example of arranging windows on a spatial map. [Figure 9] FIG. 10 is a diagram showing an example of a node arrangement pattern. [Figure 10] FIG. 10 is a diagram showing an example of generating edges between nodes in units of windows. [Figure 11] FIG. 10 is a diagram showing an example of generating edges between nodes in different windows. [Figure 12] FIG. 10 is a diagram showing an example of output data. [Figure 13] An example of creating an edge between a target node and another node is shown below. [Figure 14] FIG. 10 is a diagram for explaining a process of associating position information etc. of a destination position with a quasi-destination node. [Figure 15] FIG. 10 is a block diagram of an information processing apparatus according to a fifth embodiment. [Figure 16] FIG. 13 is a block diagram of an information processing apparatus according to a sixth embodiment. [Figure 17] FIG. 10 is a diagram showing an example in which an information processing device is provided in a moving object. [Figure 18] FIG. 1 is a diagram showing a hardware configuration of an information processing apparatus. DETAILED DESCRIPTION OF THE INVENTION
[0008] Hereinafter, an embodiment of the present invention will be described with reference to the drawings. (First embodiment) FIG. 1 is a block diagram of an information processing device 100 according to a first embodiment of the present invention. The information processing device 100 in FIG. 1 generates a graph map used to control the movement of a mobile object in a space such as a facility, warehouse, or inspection site (e.g., inside a tunnel). These spaces are also referred to as a mobile environment (real space) in which the mobile object actually moves. Examples of movement include vehicles such as AGVs (Automatic Guided Vehicles), drones, mobile robots, underwater exploration robots, and unmanned underwater vehicles, which can move based on commands. The graph map is generated by placing nodes corresponding to positions in the space in map data (space map) representing the structure of the space and generating edges between the nodes according to the distances between the nodes. When moving a mobile object from a starting position to a destination position, a route for moving the mobile object from a start node corresponding to the starting position to a destination node corresponding to the destination position is determined based on the graph map, and the mobile object is moved along the determined route. The determined route includes a start node, a destination node, nodes (intermediate nodes) passed through to get from the start node to the destination node, and edges between adjacent nodes. Placing a large number of nodes in the spatial map increases the number of route options and enables precise control of the moving object, but the capacity of the graph map increases. As a result, the amount of calculation required for route search increases, and it takes time to generate route information. On the other hand, simply reducing the number of nodes placed reduces the capacity of the graph map, but makes it difficult to precisely control the movement of the moving object. This causes problems, such as an increased possibility that the moving object will collide with an obstacle (e.g., a wall, a protrusion, a door, etc.) and difficulty in moving the moving object through a narrow area. The information processing device 100 according to this embodiment reduces the number of nodes placed in the spatial map to reduce the capacity, while generating a graph map that allows precise control of the moving object even near obstacles.
[0009] FIG. 2 shows an example of a spatial map in this embodiment. This spatial map is map data representing a mobile environment (real space) in which a mobile object actually moves. The map data is, for example, image data. The spatial map may be drawing data for design or construction, or data created by moving a mobile object in real space using SLAM (self-localization and map generation technology). Alternatively, the spatial map may be data manually generated by a human, or data generated by other methods. In the spatial map in FIG. 2, the values on the horizontal and vertical axes schematically represent horizontal and vertical distances, respectively, with the origin at the bottom left as the base point.
[0010] The spatial map in FIG. 2 includes a movable area A (first area) corresponding to an area where the mobile object can move and an unmovable area B (second area) corresponding to an area where the mobile object cannot move. For example, if the mobile object is a mobile robot, the movable area A corresponds to a surface or floor on which the mobile robot can move, and the unmovable area B corresponds to obstacles that impede the mobile robot's movement, such as walls, doors, protrusions, and ornaments. If the mobile object is a drone, the movable area A corresponds to an air route that the drone can fly, and the unmovable area B corresponds to obstacles that impede the drone's flight, such as walls, doors, protrusions, and ornaments. However, the movable area A and the unmovable area B are not limited to these examples. For example, in the case of a mobile robot, the unmovable area B may be a hole (depression) in the floor. The unmovable area B may be an area where movement is prohibited by rules, ordinances, or laws, while the movable area A may be an area where movement is not prohibited or where movement is permitted.
[0011] FIG. 3 shows an example of a graph map. The graph map in FIG. 3 includes multiple nodes N and edges E connecting the nodes N. The graph map in FIG. 3 is generated by arranging nodes in a spatial map that is the target of graph map generation, and generating edges between the nodes (connecting the nodes with edges) according to the distance between the nodes. The graph map is composed of, for example, an array of values. Note that the graph map in FIG. 3 is a diagram for generally explaining the structure of a graph map, and does not necessarily have to be generated from the spatial map in FIG. 2. When a mobile object is controlled based on a graph map, the mobile object can move along paths corresponding to edges generated between nodes, but cannot move directly between nodes for which no edges have been generated.
[0012] 1 includes an input unit 110, a communication unit 120, a processing unit 130, a storage unit 140, and an output unit 150. The processing unit 130 includes a preprocessing unit 131, a node arrangement unit 132, and an edge generation unit 133.
[0013] The input unit 110 receives data or information or collects data or information. A user may input data or information to the input unit 110. Examples of the input unit 110 include an input pin or collection unit for data or information, a keyboard, a mouse, a touch panel, a voice input unit (microphone), a gesture input unit, etc.
[0014] The communication unit 120 is a communication device that communicates with an external device via wired or wireless communication. The communication medium may be any medium, such as a local area network, a wide area network, a wired cable, infrared rays, a serial bus, etc. The external device is any device that can send and receive data or information, such as a server, a terminal device, or a storage device.
[0015] The storage unit 140 is a storage device capable of storing data or information. The storage unit 140 is any recording medium such as a memory, a hard disk, an optical disk, etc. The memory includes at least one of a volatile memory and a non-volatile memory.
[0016] The processing unit 130 acquires data or information necessary for processing in the processing unit 130 via at least one of the input unit 110 and the communication unit 120. The processing unit 130 acquires, as the data or information necessary for processing, a space map, which is map data of the space (mobile environment) for which a graph map is to be generated, characteristic information (specification information) of the moving object, and the like. For example, a user who is an operator of this device inputs an instruction to acquire the space map via the input unit 110, and the processing unit 130 acquires the space map by receiving the space map from the device specified by the acquisition instruction. The processing unit 130 stores the acquired space map in the storage unit 140. The characteristic information of the moving object can also be acquired in a similar manner. Note that if the space map or characteristic information of the moving object is stored in advance in the storage unit 140, the processing unit 130 may omit the process of acquiring the space map or characteristic information of the moving object. The characteristic information includes, for example, information on the size, remaining battery level, weight, etc. of the moving object. Furthermore, if the moving object is equipped with a camera, the characteristic information may include the camera's performance (angle of view, resolution, shutter speed, frame rate (FPS), etc.). The processing unit 130 is one or more electronic circuits including a control unit and an arithmetic unit. The electronic circuits are realized by analog or digital circuits, etc. For example, a general-purpose processor, a central processing unit (CPU), a microprocessor, a digital signal processor (DSP), an ASIC, an FPGA, or a combination thereof is possible. The functions of the processing unit 130 may also be executed by these electronic circuits using software.
[0017] When the processing unit 130 receives an instruction to generate a graph map from a user via the input unit 110, it reads out the spatial map stored in the storage unit 140 and performs processing to generate a graph map based on the spatial map. The user can input a generation instruction by, for example, pressing a generation instruction button on an application screen displayed on the output unit 150. In this embodiment, the spatial map shown in FIG. 2 is assumed as the spatial map from which the graph map is generated. The trigger for the processing unit 130 to generate a graph map is not limited to receiving a generation instruction from a user. For example, the processing unit 130 may start the graph map generation processing by executing a program including an instruction to generate the graph map.
[0018] The preprocessing unit 131 performs preprocessing on the spatial map. The preprocessing includes, for example, widening the unmovable area B in accordance with the width size of the moving object, so that the position of the moving object can be processed as one point (one coordinate) on the spatial map. For example, the edge of the unmovable area B is widened by the maximum width of the moving object's body, or the maximum width among the widths in each direction from the center of the moving object. Note that if there is an area in the movable area A where it has been determined in advance that the moving object will not move, a process of converting that area into an unmovable area may be performed as preprocessing. This makes it possible to reduce the number of nodes to be placed. Examples of the preprocessing may include other examples.
[0019] Figure 4 shows an example in which the spatial map in Figure 2 has been subjected to preprocessing to expand the unmovable area B. The edges of the unmovable area B are expanded by the maximum width of the body of the moving object. The unmovable area after the expansion process is designated as the unmovable area BF. The movable area narrowed by the expansion process is designated as the movable area AF. By using the spatial map after the expansion process, the moving object can be processed as not overlapping the unmovable area B, regardless of which pixel (position or coordinate) in the movable area AF the moving object is located at. However, such expansion process is not essential. If expansion process is not performed, it is sufficient to determine a position in the movable area A where the moving object can exist without overlapping the unmovable area B, taking into account the width size of the moving object.
[0020] The node arrangement unit 132 performs a process of arranging nodes in the movable area AF. The node arrangement unit 132 determines the arrangement of nodes so that the closer to the immovable area BF (obstacle, etc.) in the movable area AF, the smaller the intervals between nodes (the higher the node density), and the farther from the immovable area BF, the larger the intervals between nodes (the lower the node density). The node arrangement unit 132 arranges the nodes according to the determined arrangement. In this way, the node arrangement unit 132 arranges the nodes so that the intervals between nodes in a first portion of the movable area AF that is close to the immovable area BF are shorter than the intervals between nodes in a second portion of the movable area AF that is far from the immovable area BF. In other words, the node density in the first portion is higher than the node density in the second portion. An example of calculating the density of the first portion and the density of the second portion is shown below. The density of the first portion can be calculated by counting the number of nodes included in the first portion and dividing the count value by the area of the first portion. Similarly, the density of the second part can be calculated by counting the number of nodes included in the second part and dividing the count by the area of the second part. It is also possible to calculate the density of the first part and the density of the second part by other methods. For example, the first part can be divided into multiple cells, and the density of the first part can be calculated by dividing the number of cells containing nodes by the total number of cells. The density of the second part can also be calculated in a similar manner.
[0021] As a specific example of the process of arranging nodes, the following process is performed for all pixels within the movable area AF. (1) One pixel is selected as the target pixel. A certain range (range S) is set from the target pixel. The certain range is, for example, a rectangle, polygon, ellipse, circle, or other shape with the target pixel at its center. For all pixels within the certain range, it is determined whether they belong to the movable area AF or the unmovable area BF. The number of pixels belonging to the movable area AF (the first size of the part of range S that belongs to AF) is defined as N F Let the number of pixels belonging to the unmovable area BF (the second size of the part of the range S that belongs to BF) be N O Let N Fand N O Whether or not to set a node at the target pixel is determined based on the relationship between the two. More specifically, the probability P of placing a node at the target pixel is calculated using the following equation 1. P=N O / (N O +N F ) Equation 1 (2) Generate a random number between 0 and 1. (3) Determine whether the random number is equal to or greater than P. If the random number is less than P, place a node for the target pixel; if the random number is equal to or greater than P, do not place a node for the target pixel. (4) All pixels within the movable area AF are selected in turn as target pixels, and steps (1) to (3) are repeated.
[0022] The above process is an example, and other methods may be used, or the above process may be modified. For example, when performing processes (1) to (3) on pixels adjacent to a target pixel where a node is placed, the possibility of placing a node may be reduced by narrowing the range in which random numbers are generated to be closer to 1. This prevents the intervals between nodes from becoming too narrow.
[0023] Figure 5 shows an example of node placement on the spatial map after the expansion process in Figure 4. Each of the many small dots represents a node (N). The node density is high in areas close to the edge of the unmovable area BF, and the node density is lower in areas far from the edge of the unmovable area BF than in areas closer to the edge.
[0024] The edge generation unit 133 generates edges between nodes arranged by the node arrangement unit 132 according to the distance between the nodes. A weight is set for an edge according to the distance between the nodes at both ends of the edge. For example, the weight is set to be larger the longer the distance. However, it is also possible to set the weight to be larger the shorter the distance. As an example of edge generation, if the distance between nodes is less than a threshold, an edge is generated, and if it is equal to or greater than the threshold, an edge is not generated. Alternatively, a certain number or less of surrounding nodes may be selected in order of proximity to the node, and an edge may be generated between the selected node and the selected node. Alternatively, ranges may be divided from the node into short, medium, and long distances, and a certain number or less of nodes may be selected from each range, and an edge may be generated between the selected node and the selected node. Edges may also be generated by other methods.
[0025] The processing unit 130 generates a graph map of the target space (mobility environment) based on the nodes arranged by the node arrangement unit 132 and the edges generated by the edge generation unit 133. The graph map is, for example, array data including the arranged nodes and the generated edges. The processing unit 130 may store the generated graph map in the storage unit 140. The processing unit 130 generates output data that associates the graph map with a space map (map data), and provides the output data to the output unit 150. A specific example of the output data will be described later (see FIG. 12).
[0026] The output unit 150 displays the output data provided by the processing unit 130 in a display area. The output unit 150 is, for example, a display device such as a liquid crystal display device, an organic EL display device, or an aerial display, and the display area is a partial area of the screen or space of the display device. This allows the user to recognize the graph map generated by the information processing device 100 in association with the map data.
[0027] FIG. 6 is a flowchart illustrating an example of the operation of the information processing device 100. This operation can also be realized by causing a computer to execute a program. When the processing unit 130 receives an instruction to generate a graph map via the input unit 110 or the communication unit 120 (S101), it reads the spatial map from the storage unit 140 and performs preprocessing (S102). As an example, it performs a process of expanding the immovable area according to the size of the moving object. The processing unit 130 performs a process of arranging nodes based on the spatial map after the expansion process. Specifically, the processing unit 130 arranges the nodes so that the node density is high in areas close to the immovable area and low in areas far from the immovable area (S103). The processing unit 130 generates edges between the arranged nodes according to the distance between the nodes (S104). The processing unit 130 obtains data including the arranged nodes and the edges generated between the nodes as a graph map of the movement environment (space) (S104). The processing unit 130 associates the graph map with the spatial map to generate output data (S105). The output unit 150 displays the output data (same S105).
[0028] As described above, according to this embodiment, nodes are arranged so that the closer the nodes are to an unmovable area (such as an obstacle area), the smaller the intervals between the nodes (the higher the node density), and the farther the nodes are from an unmovable area, the larger the intervals between the nodes (the lower the node density). This makes it possible to reduce the number of nodes to be arranged while still providing fine control over moving objects near obstacles. Furthermore, by arranging fewer nodes, the number of edges to be generated is also reduced, making it possible to generate a graph map quickly, and the user can check the graph map in a short time after issuing an instruction to generate the graph map.
[0029] (Second embodiment) This example shows a process for arranging nodes so that the node density increases the closer they are to an unmovable area (such as an obstacle area) and decreases the farther they are from the unmovable area, which is different from the first embodiment. The block diagram of this embodiment is the same as that of the first embodiment, and the explanation will focus on the processes that have been changed or expanded from the first embodiment.
[0030] Rectangular windows (square in this example) of a variety of sizes are used as sample regions. Information about windows of each size is stored in storage unit 140. The window frame is assumed to have a width of one pixel. However, the window frame may have a width of two or more pixels. In this embodiment, the spatial map is assumed to be two-dimensional, and a two-dimensional window is used; however, if the spatial map is three-dimensional, a three-dimensional stereoscopic window (for example, a cubic window) may be used.
[0031] Fig. 7 is a diagram for explaining the operation in the second embodiment. On the right side of Fig. 7, windows of multiple sizes Wmax (W1), W2, W3, ..., Wmin are shown, and the windows are arranged from the top in descending order of size.
[0032] The processing unit 130 first selects the largest window Wmax. The upper left vertex of the selected window is associated with the leftmost pixel in the top row of the movable area AF of the spatial map after the expansion process shown in the left diagram of FIG. 7. However, the associated pixel is not limited to this pixel, and may be, for example, a pixel corresponding to a position a certain distance away from the unmovable area BF. It is determined whether the window can fit within the movable area AF without overlapping the unmovable area BF. If the window can fit within the movable area AF without overlapping the unmovable area BF, the window is placed at that position.
[0033] The processing unit 130 searches for a location where a window can be placed by selecting pixels while shifting the pixels by an arbitrary number in the right direction and performing the same process (see the line with an arrow extending horizontally in the left diagram of FIG. 7). That is, it searches for a location that does not overlap with an already placed window and does not overlap with the immovable area BF, and if such a location is found, it places the window in that location (the window is placed by associating its upper left vertex with the selected pixel). Note that after placing a window, it may skip pixels to the right by the window width and select the next pixel in the same row. It is also possible to leave a certain distance between windows to be placed.
[0034] Once pixels have been selected to the rightmost position (or pixels have been searched from the rightmost pixel up to the width of the window or the width plus a fixed value), the process moves to the next row. The vertically extending arrowed line in the left diagram of Figure 7 indicates a search in the row direction (vertical direction). Starting from the leftmost pixel, pixels are selected in the same manner as above, shifting an arbitrary number of pixels to search for a location that does not overlap with an already placed window and does not overlap with the immovable area BF. The window is placed at the searched location (the upper left vertex of the window is associated with the selected pixel above and the window is placed).
[0035] Thereafter, the same process is repeated until the last row in the movable area AF (or the row from the last row to the vertical width of the window or the size before that vertical width plus a fixed value) has been processed, at which point the window to be used is changed. That is, a window W2 of the next smallest size to the currently selected window is selected. Using a window of the selected size, the same process is repeated from the top row of the movable area AF. When there are no more places to place the window, a window W3 of the next smallest size is selected, and a search is made for a place where window W3 can be placed so that it does not overlap with any windows already placed, and the window is placed in the detected place. Thereafter, the same process is repeated until processing is completed for the smallest window Wmin.
[0036] In this way, a location where the largest window of a first size (first widow or first sample area) can be placed within the movable area is first searched for, and the first window is placed at the location (pixel) detected by the search. When there are no more locations to place the first window, that is, when no location where the nth window (n is an integer greater than or equal to 1) can be placed is found, a location where the n+1th window (sample area) having an n+1th size smaller than the nth window (sample area) can be placed without overlapping with the first window to the nth widow or other n+1th windows is searched for. The n+1th window is placed at the location detected by the search. Thereafter, the same process is repeated while incrementing n by 1 up to the maximum value.
[0037] In the above processing example, the largest window size is selected first, but the size to be selected first may be determined depending on the size of the target spatial map. Alternatively, the user may specify the size to be used first, and the processing unit 130 may use the specified size first.
[0038] In the above processing example, the search was performed from left to right and from top to bottom, but the search may also be performed from right to left, or from bottom to top, or any other method may be used.
[0039] Figure 8 shows a schematic example of windows arranged on a spatial map. Windows of various sizes are spread across the movable area AF.
[0040] The node placement unit 132 places nodes based on the placed window. Specifically, the node placement unit 132 places nodes based on the area edge (outer edge) of the placed window. For example, nodes are placed at regular intervals on the window frame (area edge). For example, nodes are placed every other pixel. In this case, nodes are placed at all or at least one of the vertices. Nodes may also be placed at the center of the window edges. Nodes may also be placed within the window. For example, a node may be placed at the center of the window.
[0041] Figure 9 shows examples of node placement patterns based on windows. Figure 9(A) shows an example in which nodes are placed at four vertices and the centers of four edges. Figure 9(B) shows an example in which nodes are placed at four vertices. Figure 9(C) shows an example in which, in addition to the nodes placed in Figure 9(A), a node is placed at the center of the window. Figure 9(D) shows an example in which nodes are placed along the edges more densely than in Figure 9(A). Figure 9(E) shows an example in which nodes are placed at three vertices and the centers of three edges when the window is triangular. Figure 9(F) shows an example in which, in addition to the nodes placed in Figure 9(E), a node is placed at the center of the triangle. By placing nodes based on the window frame (the edges of the shape) in this way, it is possible to reduce the overall number of nodes to be placed while obtaining a graph map that allows for detailed route control in areas near obstacles. Using a setting pattern that places a large number of nodes increases the complexity of the graph map, but enables more detailed route control (increasing the number of route options to reach the destination).
[0042] The edge generating unit 133 generates edges between the nodes arranged by the node arranging unit 132 according to the distance between the nodes. As in the first embodiment, any method may be used to generate edges.
[0043] As an example, the nodes between which edges are generated may be predetermined between specific nodes on a window-by-window basis. For example, if nodes are placed at the four vertices of a rectangular window, edges may be generated between adjacent nodes along the sides of the rectangle. By predetermining the nodes between which edges are generated for each window in this way, the processing load on the edge generation unit can be reduced. Furthermore, edges may be generated between nodes in different windows using any method as long as the edges do not overlap an immovable area (for example, as long as they do not overlap an obstacle, etc.).
[0044] FIG. 10 shows an example of generating edges between nodes on a window-by-window basis. FIGS. 10(A) and 10(B) show examples of generating edges between adjacent nodes along the edges of a rectangular window. FIG. 10(C) shows an example of generating edges between adjacent nodes along the edges of a rectangular window, and also generating edges from the node at the center of the window to each vertex. FIG. 10(D) shows an example of generating edges from the node at the center of the window to nodes on each edge, in addition to the nodes placed in FIG. 10(C). FIG. 10(E) shows an example of generating edges between nodes placed in the center of the window, in addition to the nodes placed in FIG. 10(D). FIG. 10(F) shows an example of generating edges between adjacent nodes along the edges of a triangular window. FIG. 10(G) shows an example of generating edges from the node placed at the center of the triangle to nodes on each edge, in addition to the nodes placed in FIG. 10(F). By limiting the nodes between which edges are generated on a window-by-window basis in this way, the number of edges to be generated can be reduced, thereby reducing the processing load of graph map generation.
[0045] FIG. 11 shows a specific example of generating edges between nodes in different windows. An edge is generated between the nodes in two windows when the distance between the nodes is equal to or less than a certain value (threshold), there are no obstacles between the nodes, and there are no other windows between the nodes. The spatial map shows windows WS1, WS2, and WS3 and some of the nodes located in each window. There are no obstacles or other windows between node N11, located at the bottom left vertex of window WS1, and node N22, located at the bottom right vertex of window WS2. Therefore, an edge is generated between nodes N11 and N22. On the other hand, an obstacle exists between node N11 and node N21, located at the top right vertex of window WS2, so no edge is generated. An edge is not generated between node N11 and node N31, located at the bottom right vertex of window WS3, because another window (window WS2) exists between node N11 and node N31. By limiting the nodes for which edges are generated between different windows to those that satisfy certain conditions, the number of edges to be generated can be reduced, thereby reducing the processing load for graph map generation.
[0046] FIG. 12 shows an example of data (output data) in which a graph map generated based on an example of a spatial map different from that of FIG. 2 is associated with the spatial map. After the unmovable area of the spatial map is expanded by the preprocessing described above, one or more windows of multiple sizes are placed in the movable area, each in descending order of size. Nodes are placed in each of the placed windows. Edges are generated between nodes on a window-by-window basis, and edges are also generated between nodes in different windows according to the distance between the nodes. This generates a graph map including nodes and edges. The graph map is associated with the spatial map as output data and output from output unit 150. The output data for the graph map and spatial map may be as shown in the figure or may be represented in a format that can be processed. Alternatively, only the graph map may be used as output data.
[0047] (Variation 1) In this embodiment, the window shape is shown as a rectangle (particularly a square) or a triangle, but it may be a rectangle other than a square, or a rhombus, or a polygon with five or more sides. Alternatively, the window shape may be a curved shape such as a circle or ellipse, or may include straight lines and curved lines. Also, windows of multiple shapes may be used. For example, a rectangular window and a triangular window may be used.
[0048] (Variation 2) The nth window and the n+1th window may have a certain size relationship. The size of the n+1th window may be a certain percentage smaller than the size of the nth window. This certain percentage may be any percentage, such as 10%, 20%, etc. In this case, the nth window is reduced by 10% or 20% to become the n+1th window.
[0049] As another example, the (n+1)th window may be smaller than the nth window by a fixed size (fixed number of pixels). The fixed size may be, for example, a size of X vertical columns (X is an integer greater than or equal to 1), a size of Y horizontal rows (Y is an integer greater than or equal to 1), or a size of X vertical columns and Y horizontal columns. For example, the (n+1)th window is obtained by deleting X vertical columns, Y horizontal rows, or X vertical columns and Y horizontal rows from the nth window. Other methods for reducing the window by a fixed size may also be used.
[0050] When reducing the window size by a fixed percentage, if the original window size is large, the amount of reduction per time is larger than when reducing by a fixed percentage. This reduces the number of searches, which in turn reduces the time required to generate the graph map.
[0051] As described above, according to this embodiment, at least one window of each size is placed in the movable area, with priority given to larger windows, and nodes are placed along the window frames whenever possible. This allows nodes to be placed densely near the unmovable area with simple processing. Furthermore, the number of nodes to be placed can be optimized, reducing the capacity and complexity of the graph map. Furthermore, when generating edges on a window-by-window basis, by defining the nodes between which edges are to be generated as specific nodes determined in advance, the number of edges to be generated can be optimized, reducing the capacity and complexity of the graph map. Furthermore, by limiting the nodes between which edges are generated between different windows to those that satisfy specific conditions, the number of edges to be generated can be optimized, reducing the capacity and complexity of the graph map.
[0052] (Third embodiment) In the first and second embodiments, if the destination position of the mobile object is determined in advance, a node corresponding to the destination position may be placed. In the first embodiment, the destination node can be placed by setting a node generation constraint that a node be placed in advance at the destination position of the mobile object. In the second embodiment, after placing nodes based on the placed window, a node (destination node) corresponding to the destination position may be further added. When generating edges between the destination node and other nodes, the number of other nodes to which edges are to be generated may be limited. This reduces the number of edges and the complexity of the graph map. In this embodiment, an example is shown in which a destination node is added after placing nodes based on the placed window using the second embodiment, and edges are generated between the destination node and other nodes. In this embodiment, a mobile object performs a predetermined task at a destination position. Assume that the predetermined task is to inspect an inspection object. In this case, the destination position corresponds to an inspection position (work position) where the mobile object performs inspection (work), and the destination node corresponds to an inspection position node (work position node) where the inspection object (work object) is inspected at the inspection position (work position). The type of work performed by the mobile body at the work position is not limited to inspection, and may be any work, such as unloading luggage, receiving luggage, spraying medicine, or taking photographs.
[0053] 13 shows an example in which a destination node is added and edges are generated between the destination node and other nodes in this embodiment. Nodes N41 to N49 are arranged in a window WS21 arranged on the spatial map according to the second embodiment. The node arrangement unit 132 arranges a destination node N51 (inspection position node) corresponding to the destination position in the window WS21. Position information of the inspection position and attribute information of the object to be inspected at the inspection position (inspection object) are stored in advance in the storage unit 140, or are input from the input unit 110 or received by the communication unit 120 and stored in the storage unit 140.
[0054] The attribute information of the inspection object includes, for example, at least one of the following: the range information of the inspection object, the required inspection accuracy, and location information. If the inspection object is a meter (instrument), the range information of the inspection object is the size (area) of the meter; if it is a wall, the range information of the inspection object is the range or area of the wall. When measuring crack width, the attribute information may include the value of the crack width that needs to be detected. The attribute information may also include the value of the interval (width) of the meter's scale lines. The range information of the inspection object may also include information on the direction in which the inspection object exists and information on the distance from the inspection position. The meter area can be used to determine how much area a mobile object should capture when taking a photo of the meter. Information such as the scale line width or the crack width that needs to be detected can be used, for example, when a mobile object captures an image of the inspection object with a camera, to determine how close the mobile object should be to the inspection object based on the camera's performance. The attribute information of the inspection object can also be used to determine how close the mobile object should be to the inspection object from the inspection position during inspection.
[0055] The edge generating unit 133 selects nodes for which edges are to be generated from the nodes N41 to N49, based on the distance between the destination node N51 and the nodes N41 to N49 arranged in the window WS21 that includes the destination node N51. For example, all or some of the nodes whose distance is equal to or less than a threshold are selected. As an example of selecting some of the nodes, a restriction may be placed on the number of nodes to be selected, and a certain number of the top nodes with the closest distances may be selected. In the example of FIG. 12, the nodes N44, N45, N47, and N48 are selected, and edges are generated (connected) between the selected nodes and the destination node N51.
[0056] In this embodiment, an example is shown in which a destination node is added and edges are generated between the destination node and other nodes. However, if the starting position of the moving body is predetermined, a node corresponding to the starting position (starting node) may be added, and an edge may be generated in the same manner for the starting node.
[0057] As described above, according to this embodiment, by limiting the number of other nodes that generate edges to the target node, it is possible to reduce the number of edges and the capacity or complexity of the graph map. This reduces the load of generating the graph map, and enables the graph map to be generated at high speed.
[0058] (Fourth embodiment) In the third embodiment, a destination node corresponding to the destination position of the mobile object was added. In the fourth embodiment, however, position information of the inspection position (work position) and attribute information of the inspection target (work target) are associated with a node (called a quasi-destination node) near the destination position of the mobile object. When moving the mobile object to the inspection position, the mobile object is moved to a position corresponding to the quasi-destination node, the inspection position is determined based on the information associated with the quasi-destination node (at least one of the position information of the inspection position or the attribute information of the inspection target), and the mobile object is moved to the determined inspection position. Since it is no longer necessary to add a node corresponding to the inspection position, the number of edges is reduced, and the capacity or complexity of the graph map can be reduced. This reduces the load on generating the graph map and enables the graph map to be generated quickly.
[0059] FIG. 14 is a diagram illustrating a process of detecting a node (quasi-destination node) near the destination position of a moving object and associating the position information of the inspection position and the attribute information of the inspection target with the quasi-destination node. As in the second embodiment, it is assumed that nodes N41 to N49 are arranged in window WS21, and that an inspection position G exists within window WS21. The node arrangement unit 132 detects the node closest to inspection position G from among nodes N41 to N49 based on inspection position G. Node N47 is detected, and is set as the quasi-destination node. The node arrangement unit 132 or the edge generation unit 133 associates the position information of the inspection position and the attribute information of the inspection target with node N47. The position information of the inspection position is information indicating the position of the inspection position when the position corresponding to node N47 is used as a reference. The position information of the inspection position and the attribute information of the inspection target associated with node N47 form part of the graph map.
[0060] As described above, according to this embodiment, since it is not necessary to add a node corresponding to the inspection position, the number of nodes to be placed can be reduced, and the number of edges to be generated can be reduced. Therefore, the capacity or complexity of the graph map can be reduced, which reduces the amount of calculation required for route search and enables route information to be generated at high speed.
[0061] (Fifth embodiment) 15 is a block diagram of an information processing device 100A according to the fifth embodiment. The information processing device 100A further includes a route determination unit 134 that determines a travel route of the moving object for the information processing device 100.
[0062] The route determination unit 134 searches for a route (travel route) for the mobile body moving from the starting position to the destination position based on the graph map generated by the processing unit 130 and information on the starting position and destination position of the mobile body. As an example, among the routes that can be reached from the node at the starting position to the node at the destination position based on the graph map, a route in which the total edge weight is minimum or below a threshold is calculated, and the calculated route is designated as the travel route. Dijkstra's algorithm may be used as an algorithm for searching for a route. Here, it is assumed that the edge weight is increased as the distance between nodes increases, but if the edge weight is increased as the distance between nodes decreases, it is sufficient to calculate a route in which the total edge weight is maximum or above a threshold.
[0063] The output unit 150 displays information indicating the travel route determined by the route determination unit 134 on a screen. For example, a graph map may be displayed in association with information indicating the calculated route. This allows the user to easily understand the travel route of the mobile object from the departure position to the destination position. Furthermore, the communication unit 120 may transmit information indicating the travel route determined by the route determination unit 134 to the mobile object. The mobile object receives the information indicating this travel route and travels along this travel route.
[0064] In this embodiment, a route search is performed on a compact-sized graph map generated based on any of the first to fourth embodiments, so the amount of calculation required for the route search can be reduced. Compared to the conventional method of randomly arranging a large number of nodes, the small number of nodes may make it difficult to calculate the shortest route, but when a simple route estimation is required, it is possible to estimate the route in a short time.
[0065] (Sixth embodiment) 16 is a block diagram of an information processing device 100B according to the sixth embodiment. The information processing device 100B further includes a travel time calculation unit 135 in addition to the components of the information processing device 100A according to the fifth embodiment shown in FIG. The travel time calculation unit 135 calculates the time (travel time) required for the moving object to travel from the departure position to the destination position along the travel route determined by the route determination unit 134. The travel time calculation unit 135 calculates the travel time based on information about the travel route and characteristic information about the moving object. The information about the travel route may include, for example, the length of the travel route and characteristics of the route portions corresponding to each edge in the travel route (e.g., slope, floor material, etc.). The characteristic information about the moving object may include the average travel speed, remaining battery level, weight, etc. of the moving object. Furthermore, if the moving object is scheduled to perform an operation (e.g., temporary stop, charging, etc.) on its way to the destination position, the time required for the operation may be taken into consideration.
[0066] The output unit 150 displays on a screen information representing the travel time calculated by the travel time calculation unit 135. The output unit 150 may display the information representing the travel time together with information about the travel route determined by the route determination unit 134.
[0067] (Seventh embodiment) The information processing devices according to the first to sixth embodiments can be installed in any device, such as a server on a communication network, a personal computer (PC), or a mobile object. FIG. 17 shows an example in which an information processing device 100X according to any one of the first to sixth embodiments is provided in a moving object. 17A shows an example in which the information processing device 100X is provided on an AGV 151. FIG. 17B shows an example in which the information processing device 100X is provided on a drone 152.
[0068] When the information processing device 100X is provided in a mobile body, the mobile body may generate a graph map and determine a route using its own position as a starting position, and autonomously move from the starting position to a destination position along the determined route. When the information processing device is provided in a server or a PC, the server or PC may generate a graph map and determine a route based on the starting position and destination position of the mobile body, and transmit instruction data to the mobile body instructing it to move along the determined route. The mobile body moves from the starting position to the destination position along the specified route in accordance with the instruction data.
[0069] (Eighth embodiment) In the first to seventh embodiments, a graph map is generated for one pair of a starting position and a destination position, but graph maps may be generated for multiple pairs of starting positions and destination positions. If a mobile object has multiple destination positions, multiple pairs are set so that the destination position of the first pair becomes the starting position of the second pair, for example. Graph maps for multiple pairs may be combined at nodes where the starting position and destination position are the same to form a single integrated graph map.
[0070] (Hardware configuration) 18 shows the hardware configuration of an information processing device according to any one of the first to eighth embodiments. This information processing device is configured by a computer device 200. The computer device 200 includes a CPU 201, an input interface 202, a display device 203, a communication device 204, a main storage device 205, and an external storage device 206, which are interconnected by a bus 207.
[0071] The CPU (Central Processing Unit) 201 executes an information processing program, which is a computer program, on the main memory device 205. The information processing program is a program that realizes each of the above-mentioned functional components of the device. The information processing program may be realized not as a single program, but as a combination of multiple programs and scripts. Each functional component is realized by the CPU 201 executing the information processing program.
[0072] The input interface 202 is a circuit for inputting operation signals from input devices such as a keyboard, a mouse, a touch panel, etc. The input interface 202 corresponds to the user's operation device.
[0073] The display device 203 displays data output from the device. The display device 203 may be, for example, but is not limited to, an LCD (liquid crystal display), an organic electroluminescence display, a CRT (cathode ray tube), or a PDP (plasma display). Data output from the computer device 200 can be displayed on the display device 203.
[0074] The communication device 204 is a circuit that enables the device to communicate with an external device wirelessly or via a wire. Data can be input from the external device via the communication device 204. The data input from the external device can be stored in the main memory device 205 or the external memory device 206.
[0075] The main memory device 205 stores an information processing program, data required for executing the information processing program, data generated by executing the information processing program, etc. The information processing program is deployed and executed on the main memory device 205. The main memory device 205 is, for example, a RAM, a DRAM, or an SRAM, but is not limited to these. The storage units or databases in FIGS. 1, 15, and 16 may be constructed on the main memory device 205.
[0076] The external storage device 206 stores information processing programs, data required for executing the information processing programs, data generated by executing the information processing programs, etc. These information processing programs and data are read into the main storage device 205 when the information processing programs are executed. The external storage device 206 is, for example, a hard disk, an optical disk, a flash memory, or a magnetic tape, but is not limited to these. The storage units or databases in FIGS. 1, 15, and 16 may be constructed on the external storage device 206.
[0077] The information processing program may be pre-installed in the computer device 200, or may be stored in a storage medium such as a CD-ROM. The information processing program may also be uploaded onto the Internet.
[0078] Furthermore, this device may be configured as a single computer device 200, or may be configured as a system made up of multiple computer devices 200 connected to each other.
[0079] The present invention is not limited to the above-described embodiments, and the components can be modified and embodied in practice without departing from the spirit of the invention. Furthermore, various inventions can be created by appropriately combining multiple components disclosed in the above-described embodiments. For example, configurations in which some components are omitted from all the components shown in each embodiment may also be considered. Furthermore, components described in different embodiments may be appropriately combined. [Explanation of symbols]
[0080] 100 Information processing device 100A Information processing equipment 100B Information processing device 100X Information Processing Device 110 Input section 120 Communications Department 130 Processing section 131 Pretreatment section 132 Node placement section 133 Edge Generation Unit 134 Route determination unit 135 Travel time calculation unit 140 Storage section 150 Output section 152 Drone 200 Computer Equipment 202 Input Interface 203 Display device 204 Communication equipment 205 Main memory 206 External storage device 207 Bus A, AF: movable area B, BF: Unmovable area E: Edge N: Node
Claims
1. a processing unit that, based on map data including a first area in which a mobile object can move and a second area in which the mobile object cannot move, arranges a plurality of nodes in the first area at intervals according to a distance from the second area, generates a plurality of edges between the plurality of nodes according to the distances between the nodes, and generates a graph map based on the plurality of nodes and the plurality of edges; The processing unit selects a target position in the first area, sets a certain range in the map data that includes the target position, and determines whether to place the node at the target position based on a relationship between a first size of a portion of the certain range that belongs to the first area and a second size of a portion of the certain range that belongs to the second area. Information processing device.
2. The interval between the nodes in a first portion of the first region that is closer to the second region is shorter than the interval between the nodes in a second portion of the first region that is farther from the second region than the first portion. The information processing device according to claim 1 .
3. The density of the nodes in a first portion of the first region that is closer to the second region is higher than the density of the nodes in a second portion of the first region that is farther from the second region than the first portion.
3. The information processing device according to claim 1 or 2.
4. The processing unit determines whether to place the node at the target position based on a calculation value based on the first size and the second size and a random number. The information processing device according to claim 1 .
5. a processing unit that, based on map data including a first area in which a mobile object can move and a second area in which the mobile object cannot move, arranges a plurality of nodes in the first area at intervals according to a distance from the second area, generates a plurality of edges between the plurality of nodes according to the distances between the nodes, and generates a graph map based on the plurality of nodes and the plurality of edges; The processing unit searching for a location in the first area where a first sample area of a first size can be placed without overlapping with the second area and other first sample areas; locating the first sample area at the location detected by the search; Place the node in the placed first sample area. Information processing device.
6. when a location where the nth (n is an integer equal to or greater than 1) sample area can be placed is not found, the processing unit searches for a location where the n+1th sample area having an n+1th size smaller than the nth sample area can be placed without overlapping with the second area, the first to nth sample areas, and other n+1th sample areas; placing the n+1 sample area at the location detected by the search; Place the node in the placed n+1 sample area. The information processing device according to claim 5 .
7. The size of the n+1 is a size that is smaller than the nth size, which is the size of the nth sample area, by a certain percentage. The information processing device according to claim 6 .
8. The size of the n+1 is a size smaller by a certain value than the nth size, which is the size of the nth sample area. The information processing device according to claim 6 .
9. the nth sample region has a plurality of vertices; The processing unit arranges the nodes at the vertices and one or more edges between the vertices. The information processing device according to claim 8 .
10. The processing unit further places the node at the center of the nth sample region. The information processing device according to claim 9 .
11. the processing unit arranges a work position node corresponding to a work position where the mobile object performs work; The processing unit detects a sample area including the work position, and further generates an edge between the work position node and at least one node selected from the nodes arranged based on the detected sample area in accordance with a distance from the work position. The information processing device according to any one of claims 5 to 10.
12. The processing unit detects a sample area including a work position where the mobile body performs work, and associates position information of the work position with a node selected from the nodes arranged based on the detected sample area in accordance with the distance from the work position. The information processing device according to any one of claims 5 to 10.
13. The processing unit selects, from among the nodes arranged based on the detected sample area, a node closest to the work position or a node at a distance equal to or less than a threshold from the work position. The information processing device according to claim 11 or 12.
14. The processing unit associates attribute information of a work target of a work to be performed by the mobile body at the work position with the work position node. The information processing device according to claim 11.
15. The processing unit associates attribute information of a work target of the work to be performed by the mobile body at the work position with the selected node. The information processing device according to claim 14.
16. an output unit that outputs output data that associates the graph map with the map data; 16. The information processing device according to claim 1, comprising:
17. The processing unit determines a travel route along which the moving object will travel, based on information on a starting position of the moving object, information on a destination position of the moving object, and the graph map. The information processing device according to any one of claims 1 to 16.
18. The processing unit calculates a travel time required for the moving object to travel the travel route based on characteristic information of the moving object. The information processing device according to claim 17.
19. A server on a network, a personal computer, or a mobile device The information processing device according to any one of claims 1 to 18.
20. The information processing device Based on map data including a first area in which a mobile object can move and a second area in which the mobile object cannot move, a plurality of nodes are arranged in the first area at intervals according to a distance from the second area; generating a plurality of edges between a plurality of the nodes according to the distances between the nodes; generating a graph map based on the plurality of nodes and the plurality of edges; selecting a location of interest in the first region; A certain range including the target position is set in the map data, Whether to place the node at the target position is determined based on a relationship between a first size of a portion of the certain range that belongs to the first region and a second size of a portion of the certain range that belongs to the second region. Information processing methods.
21. a step of arranging a plurality of nodes in a first area based on map data including a first area in which a mobile object can move and a second area in which the mobile object cannot move, at intervals according to a distance from the second area in the first area; generating a plurality of edges between a plurality of the nodes according to the distances between the nodes; generating a graph map based on the plurality of nodes and the plurality of edges; selecting a location of interest in the first region; setting a certain range including the target position in the map data; determining whether to place the node at the target position based on a relationship between a first size of a portion of the certain range that belongs to the first region and a second size of a portion of the certain range that belongs to the second region; A computer program for causing a computer to execute the above.
22. The information processing device Based on map data including a first area in which a mobile object can move and a second area in which the mobile object cannot move, a plurality of nodes are arranged in the first area at intervals according to a distance from the second area; generating a plurality of edges between a plurality of the nodes according to the distances between the nodes; generating a graph map based on the plurality of nodes and the plurality of edges; searching for a location in the first area where a first sample area of a first size can be placed without overlapping with the second area and other first sample areas; locating the first sample area at the location detected by the search; Place the node in the placed first sample area. Information processing methods.
23. a step of arranging a plurality of nodes in a first area based on map data including a first area in which a mobile object can move and a second area in which the mobile object cannot move, at intervals according to a distance from the second area in the first area; generating a plurality of edges between a plurality of the nodes according to the distances between the nodes; generating a graph map based on the plurality of nodes and the plurality of edges; searching for a location in the first region where a first sample region of a first size can be placed without overlapping with the second region and other first sample regions; placing the first sample area at the location detected by the search; placing the node in the placed first sample area; A computer program for causing a computer to execute the above.
Citation Information
Patent Citations
Route information correcting device, track planning device, and robot
JP2012190405A
Information processing device, movable body, information processing method and program
JP2019006143A