Information processing device, control method, and program
Patent Information
- Application Number
- JP2024536663
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-01-10
- Publication Date
- 2025-03-19
- Estimated Expiration
- 2042-07-28
AI Technical Summary
In multi-agent systems, communication between mobile robots is disrupted when they are separated by large distances, especially in environments with poor visibility like underwater, where it's difficult to observe the position of other robots and communication is unstable, making it challenging to maintain consistent communication.
An information processing device with an estimation unit to calculate the communication range, an approximation unit to generate polygon information representing the communicable range, and a generation unit to define an area where multiple points overlap, ensuring constant communication by setting a movable area within the permanent communicable range.
This solution maintains communication between mobile robots by calculating and approximating the communicable range, reducing computational complexity and ensuring constant communication, even in non-convex polygon scenarios, thus enhancing communication reliability in challenging environments.
Abstract
Description
Information processing device, control method, and recording medium
[0001] The technical field relates to an information processing device, a control method, and a recording medium for maintaining communication between mobile bodies.
[0002] In a multi-agent system in which multiple mobile entities (agents) cooperate with one another, each entity determines its own behavior based on information observed by its own sensors and information about other nearby mobile entities. Mobile entities, such as mobile robots, can act independently.
[0003] However, in local communication between robots, if the communicating robots are separated by more than a certain distance, data transmission and reception becomes impossible, resulting in a communication interruption.
[0004] As a related technique, Patent Document 1 discloses a method of detecting a communication breakdown between robots and moving the robots to restore communication.
[0005] Furthermore, non-patent document 1, a related technique, discloses a method for maintaining communication by limiting the distance between robots so as to maintain the strength of communication (quantified value) of the entire multi-agent system above a certain level.
[0006] JP 2017-62768 A
[0007] Cai, D., Wu, S., & Deng, J., “Distributed Global Connectivity Maintenance and Control of Multi-Robot Networks” IEEE Access, 5, 9398-9414, 2017.
[0008] In the method for restoring communication disclosed in Patent Document 1 or the method for maintaining communication disclosed in Non-Patent Document 1, communication between robots is always successful. Furthermore, it is assumed that the distance between the robots is always known.
[0009] However, in an environment with poor visibility (such as underwater), if the distance between one's own robot and the other robot is great, it is difficult to observe the position of the other robot using only sensors.
[0010] In this way, when the position of the other robot cannot be observed, the robot and the other robot communicate with each other to obtain position information indicating the positions of each other's robots.
[0011] However, in environments such as underwater, communication is unstable and is not always successful. As a result, it is not always possible to determine the robots' respective positions. Furthermore, in situations where communication is not always successful, it is difficult to determine whether communication has been interrupted or whether communication will be successful.
[0012] The reason why communication is successful when communication is unstable is, for example, because the communication distance in all or some directions becomes shorter due to changes in the environment. Note that in an environment with good communication, the communication distance of a robot is uniform in all directions, so the communication range can be expressed as a sphere, but if the environment changes, the communication range is no longer uniform in all directions, and the communication range can no longer be expressed as a sphere.
[0013] One example of the object of the present disclosure is to provide a mechanism for maintaining communication between mobile units.
[0014] In order to achieve the above object, an information processing device according to one aspect of the present disclosure is characterized by having an estimation unit that estimates the communication range of a first mobile body; an approximation unit that generates information representing the boundary of the communication range; and a generation unit that generates an area where a plurality of points included in a first movable area that is preset for the first mobile body overlap with the communication range of the first mobile body at each of the plurality of points.
[0015] In addition, in order to achieve the above object, a control method according to one aspect of the present disclosure is characterized in that a computer estimates the communication range of a first mobile body, generates information representing the boundary of the communication range, and generates an area where a plurality of points included in a first movable area pre-set for the first mobile body overlap with the communication range of the first mobile body at each of the plurality of points.
[0016] Furthermore, in order to achieve the above object, a recording medium according to one aspect of the present disclosure is characterized in that it causes a computer to estimate the communication range of a first mobile body, generate polygon information representing a polygon approximating the boundary of the estimated communication range, generate information representing the boundary of the communication range, and generate an area where a plurality of points included in a first movable area pre-set for the first mobile body overlap with the communication range of the first mobile body at each of the plurality of points.
[0017] According to the present disclosure, communication between mobile units can be maintained.
[0018] FIG. 1 is a diagram illustrating an example of an information processing device according to a first embodiment. FIG. 2 is a diagram illustrating an example of a system having a mobile object according to the first embodiment. FIG. 3 is a diagram illustrating an example of approximating a communication range using polygons. FIG. 4 is a diagram illustrating an example of a constant communication coverage area. FIG. 5 is a diagram illustrating a first embodiment. FIG. 6 is a diagram illustrating a second embodiment. FIG. 7 is a diagram illustrating a complementary convex polygon and an auxiliary convex polygon. FIG. 8 is a diagram illustrating overlapping of complementary convex polygons. FIG. 9 is a diagram illustrating a correction area and a constant communication coverage area. FIG. 10 is a diagram illustrating an example of the operation of an information processing device according to the first embodiment. FIG. 11 is a diagram illustrating an example of a system having a mobile object according to a second embodiment. FIG. 12 is a diagram illustrating optimization of a movable area using a small displacement area. FIG. 13 is a diagram illustrating a small displacement area. FIG. 14 is a diagram illustrating a small displacement vector. FIG. 15 is a diagram illustrating the length of each side of a movable area. FIG. 16 is a diagram illustrating constraints arising from vector properties. Fig. 17 is a diagram for explaining generation of a minute displacement area. Fig. 18 is a diagram for explaining an example of the operation of an information processing device in embodiment 2. Fig. 19 is a diagram for explaining approximation in embodiment 3. Fig. 20 is a diagram for explaining a movable area and a constant communication area in embodiment 3. Fig. 21 is a diagram for explaining an example of a computer that realizes embodiment 1, examples 1 and 2, and embodiments 2 and 3.
[0019] Hereinafter, embodiments will be described with reference to the drawings. In the drawings described below, elements having the same or corresponding functions are denoted by the same reference numerals, and repeated description thereof may be omitted.
[0020] 1 is a diagram for explaining an example of an information processing device according to embodiment 1. An information processing device 10 is mounted on an agent (mobile body) included in a multi-agent system.
[0021] [Device Configuration] The information processing device 10 executes a process of maintaining communication between mobile objects and a process of controlling the movement of the mobile objects. The information processing device 10 also includes an estimation unit 11, an approximation unit 12, and a generation unit 13.
[0022] The estimation unit 11 estimates the communication range of a first mobile object. The communication range is a range in which a target mobile object A (first mobile object) can communicate with another mobile object B (second mobile object). In other words, it is sufficient that communication between mobile objects A and B is probabilistically successful within the communication range.
[0023] The reason is that even if mobile unit B is within the communication range of target mobile unit A, communication may not always be successful depending on the environment in which mobile units A and B are located (for example, an environment underwater).
[0024] The approximation unit 12 generates information representing the boundary of the communication range. For example, in the case of two dimensions, the approximation unit 12 generates polygon information representing a polygon that approximates the boundary of the estimated communication range. By approximating the boundary of the communication range with a polygon, the number of coordinate values representing the boundary of the communication range can be reduced, thereby reducing the amount of calculation.
[0025] The generation unit 13 generates an area where a plurality of points included in a first movable area previously set for the first mobile body overlap with the communication area of the first mobile body at each of the plurality of points. Specifically, the generation unit 13 calculates an overlapping area of the plurality of polygons using the plurality of points included in the first movable area previously set for the first mobile body and polygons corresponding to the plurality of points, and generates constant communication area information representing an area where the first mobile body and the second mobile body can constantly communicate, to be set as a second movable area of the second mobile body.
[0026] The movable area is an area for restricting the movement of a mobile unit. When a mobile unit is in the movable area, it can communicate with other mobile units in the constant communication area.
[0027] In embodiment 1, by setting the movable area of the second mobile body to a constant communication area, communication between the first mobile body and the second mobile body can be maintained as long as the first mobile body is moving within the movable area.
[0028] [System Configuration] Fig. 2 is a diagram showing an example of a system having a mobile object according to embodiment 1. The configuration of the information processing device 10 according to embodiment 1 will be described in more detail with reference to Fig. 2 .
[0029] The system 1 is a multi-agent system that includes a plurality of mobile objects 20 as agents.
[0030] The information processing device 10 executes a process for maintaining one-sided communication. The process for maintaining one-sided communication is, for example, a process for maintaining communication from a mobile body A to a mobile body B, but may not be able to maintain communication from a mobile body B to a mobile body A.
[0031] The information processing device 10 is, for example, an information processing device such as a CPU (Central Processing Unit), a programmable device such as an FPGA (Field-Programmable Gate Array), a GPU (Graphics Processing Unit), or a circuit equipped with one or more of these.
[0032] The mobile body 20 is, for example, a mobile robot, an automated guided vehicle, an autonomous vehicle, an autonomous flying object, an autonomous ship, etc. The mobile body 20 includes an information processing device 10, a communication unit 21, a sensor unit 22, and a movement unit 23.
[0033] The communication unit 21 communicates with the communication unit 21 of another mobile body 20. The sensor unit 22 is a sensor that detects the state of the mobile body 20, objects on the moving path, etc. Specifically, the sensor unit 22 has one or more of a radar, an ultrasonic sensor, an imaging device, a gyro, an encoder, a GPS (Global Positioning System), etc.
[0034] The moving unit 23 is a device for moving the moving body 20. Specifically, when the moving body 20 is an automated guided vehicle, an electric vehicle, or the like, the moving unit 23 is means used to move the vehicle, such as a motor, wheels (or crawlers), a battery, or the like.
[0035] The information processing device 10 includes an estimation unit 11, an approximation unit 12, a generation unit 13, and a control unit 14.
[0036] The control unit 14 controls the movement unit 23 provided in the moving body 20. Specifically, the control unit 14 controls the movement unit 23 so that the moving body 20 does not leave the movable area.
[0037] The estimation unit 11 first acquires mobile object position information representing the current position (coordinates) of the mobile object 20 from the sensor unit 22. Next, the estimation unit 11 estimates multiple coordinate values representing the boundary lines of the communication range. Specifically, the estimation unit 11 samples information about the surrounding underwater world and seabed from various sensors and creates a model of the surrounding conditions. This model of the surrounding conditions (space) is divided into an appropriate number of blocks and the attenuation of sound waves between the divided blocks is calculated.
[0038] The attenuation between blocks can be calculated using, for example, the Schulkin & Marsh formula (Schulkin M and Marsh HW "Sound absorption in seawater", Journal of the Acoustical Society of America Vol.34, 864-86, (1962).). This formula depends on the temperature, pressure, pH, etc. of the ocean. Therefore, the attenuation between each block can be calculated by estimating the temperature, pressure, and pH of each block based on a model of the surrounding area.
[0039] Finally, the attenuation to each block centered on the mobile unit 20 is calculated by adding up the attenuation between blocks. For example, if sound travels from block 0 where the mobile unit 20 is located to block 2, passing through block 1, and the attenuation between blocks 0 and 1 is 2 [db] (decibels: the same applies below), and the attenuation rate between blocks 1 and 2 is 3 [db], then the attenuation from block 0 to block 2 is 2 [db] + 3 [db] = 5 [db]. This operation is performed for each direction, and when the strength of the sound waves falls below a predetermined threshold, that point is set as the boundary of the communication range.
[0040] Next, the estimation unit 11 generates communication range information by associating the mobile object position information with boundary line information that represents the boundary line of the estimated communication range using multiple coordinates, and stores the communication range information in a memory unit provided in the information processing device 10.
[0041] The approximation unit 12 first selects a position from a plurality of positions representing the boundary line of the estimated communication range based on a predetermined approximation rule, and generates polygon information representing a polygon using coordinate values representing the selected position.
[0042] The approximation rule can be, for example, the common Split & Marge (Nguyen, V., Gachter, S., Martinelli, A. et al. A comparison of line extraction algorithms using 2D range data for indoor mobile robotics. Auton Robot 23, 97-111 (2007). https: / / doi.org / 10.1007 / s10514-007-9034-y). This method allows polygonal approximation while keeping the approximation error within an appropriate distance d set as a threshold.
[0043] Next, the approximation unit 12 generates polygon information by associating the mobile object position information with vertex information representing the coordinate values of the vertices of the estimated polygon, and stores the polygon information in a memory unit provided in the information processing device 10.
[0044] Fig. 3 is a diagram illustrating an example of approximating a communication range with a polygon. In the example of Fig. 3, a boundary line (dashed line) of a communication range 31 is shown around the current position P1 of a mobile unit A. Fig. 3 also shows a polygon 32 that approximates the shape of the communication range 31 (dashed line). The polygon 32 is an octagon represented by sides (solid lines) and vertices (black circles).
[0045] The vertex information is calculated, for example, using the coordinates of the current position P1 of the moving object 20 and the coordinate values of the vertices of a polygon centered on the current position P1. In the example of Figure 3, the vectors (-10,-2.5), (-8,2), (0.5,5), (5,3), (7,-1), (3,-2), (8,-3), and (0.5,-5) are calculated by subtracting the coordinate value (10,5) of the current position P1 of the moving object 20 from the coordinate values (0,2.5), (2,7), (10.5,10), (15,8), (17,4), (13,3), (18,2), and (10.5,0) of the vertices, and these are arranged clockwise (or counterclockwise) to form the vertex information.
[0046] The generation unit 13 first acquires polygon information from the approximation unit 12. Next, the generation unit 13 calculates an overlapping area (constant communication area) of all polygons using polygons corresponding to points included in a movable area previously set for the mobile object 20. The polygon represents the communication area when the mobile object 20 is located at a certain point (position).
[0047] The points included in the movable area may be all points within the movable area, or some of the points may be used.
[0048] Next, the generation unit 13 generates constant communication area information by associating the mobile body position information with vertex information representing the coordinate values of the vertices of the calculated constant communication area, and stores the generated constant communication area information in the memory unit.
[0049] Next, the generation unit 13 transmits the generated constant communication coverage area information to another mobile body 20 (second mobile body) via the communication unit 21. After that, the other mobile body 20 that has received the constant communication coverage area information sets the constant communication coverage area as its movable area.
[0050] 4A and 4B are diagrams illustrating an example of a constant communication area. A polygon 32 approximating a communication range 31 centered on a coordinate P1a of the mobile unit 20 and a movable area 41 (rectangle) of the mobile unit 20 are shown in Fig. 4A.
[0051] 4B shows a polygon 32 that approximates the communication range 31 centered at the position P1b of the mobile unit 20, and a movable area 41 (rectangle) of the mobile unit 20. Note that in both FIGS. 4A and 4B, the movable area 41 of the mobile unit 20 is set at the same position.
[0052] FIG. 4C shows a diagram in which FIG. 4A and FIG. 4B are superimposed.
[0053] For example, communication with another moving body 20 at position P2(x) in Fig. 4C is possible when the moving body 20 is at position P1a shown in Fig. 4A. When the moving body 20 is at position P1b as shown in Fig. 4B, communication with the other moving body 20 at position P2(x) in Fig. 4C is not possible.
[0054] Next, another moving body 20 at position P3 (x) in FIG. 4C can communicate with the moving body 20 whether the moving body 20 is at position P1a or P1b.
[0055] The shaded area in Figure 4C indicates the overlapping area between a polygon 32 approximating the communication range 31 centered at position P1a and a polygon 32 approximating the communication range 31 centered at position Pb1. As with position P3 (x), other mobile units 20 within this shaded area can communicate with the mobile unit 20 regardless of whether the mobile unit 20 is located at position P1a or P1b.
[0056] In this way, by using the specified points (positions of the mobile body) in the movable area and the polygons corresponding to each point, it is possible to determine the area where those polygons overlap, and it is possible to determine whether other mobile bodies 20 within that area can communicate with the mobile body 20 at any of the specified points.
[0057] If all points (mobile body positions) within a moving area and the polygons corresponding to each point are used, as described above, it is possible to determine an area in which other moving bodies 20 can communicate with the moving body 20, regardless of where the moving body 20 is located within the moving area. This is the constant communication area. However, if the area where the polygons corresponding to all points in the moving area overlap is calculated in order to calculate the constant communication area, the amount of calculation required will be large. Therefore, a calculation method for a constant communication area that is computationally efficient and practical will be described.
[0058] First Embodiment In a first embodiment, a case will be described in which the approximate polygon representing the communication range is a convex polygon.
[0059] A convex polygon is a figure in which, when any two points within the polygon are chosen, any point on the line segment connecting those two points is contained within the polygon. Also, if a polygon is convex, the interior angles of all vertices of the polygon are 180 degrees or less.
[0060] 5 is a diagram for explaining Example 1. In the example of FIG. 5, convex polygons 52a, 52b, 52c, and 52d are set for vertices (coordinates) P1a, P1b, P1c, and P1d of movable area 51 (rectangle), respectively, and area 53 (shaded) where all convex polygons 52a to 52d overlap is calculated. In other words, area 53 is the constant communication available area.
[0061] The constant communication area obtained here is the area where all convex polygons are set for all points in the movable area and overlap. In other words, the exact constant communication area is calculated.
[0062] According to Example 1, the constant communication area is calculated using only the four vertices of the movable area 51, rather than all points within the movable area 51, which results in better computational efficiency than calculating the constant communication area using all points within the movable area 51.
[0063] The shape of the movable area is not limited to a rectangle, but may be any polygonal shape.
[0064] Second Embodiment In a second embodiment, a case will be described in which the approximate polygon representing the communication range is not a convex polygon.
[0065] Fig. 6 is a diagram for explaining Example 2. In the example of Fig. 6A, non-convex polygons 62a, 62b, 62c, and 62d are set for each of vertices (coordinates) P4a, P4b, P4c, and P4d of a movable area 61 (rectangle), and an area 63 (shaded) where all of the polygons 62a to 62d overlap is calculated.
[0066] 6B, when the mobile object 20 moves to position P4e in the movable area 61, the area 63 does not include the area 64. Therefore, the area 63 is not a constant communication area.
[0067] Therefore, in the second embodiment, the generation unit 13 first complements a polygon that is not a convex polygon with a supplementary convex polygon, thereby converting the non-convex polygon into a convex polygon (complementary convex polygon). That is, the recessed portions of the non-convex polygon are complemented with the supplementary convex polygon. However, when creating a complementary convex polygon, if there are multiple recessed portions, multiple supplementary convex polygons are required.
[0068] 7 is a diagram for explaining a complementary convex polygon and an auxiliary convex polygon. In the example of Fig. 7, a polygon 62 that is not a convex polygon is complemented with an auxiliary convex polygon 70 to generate a complementary convex polygon.
[0069] A convex hull algorithm is used to generate a complementary convex polygon. A convex hull is the smallest convex polygon that contains all of the given points. This convex hull algorithm is used to find a convex hull that contains all of the vertices of a polygon that is not a convex polygon. The convex hull found here is the complementary convex polygon. One or more polygons that are created by removing the original polygon from the convex hull are called supplementary convex polygons.
[0070] Next, the generation unit 13 calculates an overlapping area (constant communication area) of all complementary convex polygons using complementary convex polygons corresponding to the points (coordinates) included in the movable area previously set for the mobile body 20. Note that the points included in the movable area may be all points within the movable area or only some of the points.
[0071] 8 is a diagram illustrating the overlap of complementary convex polygons. In the example of Fig. 8, complementary convex polygons 72a, 72b, 72c, and 72d are set for vertices P5a, P5b, P5c, and P5d, respectively, within a movable area 71 (rectangle), and an area 73 (shaded) where all complementary convex polygons 72a to 72d overlap is calculated.
[0072] In the example of FIG. 8, the complementary convex polygons 72a, 72b, 72c, and 72d are complemented by auxiliary convex polygons 70a, 70b, 70c, and 70d, respectively.
[0073] Next, the generation unit 13 uses the vertices (coordinates) of the auxiliary convex polygons included in all the complementary convex polygons to generate a modified region used to determine a constant communication coverage area that includes all the auxiliary convex polygons. The modified region represents a convex hull of the vertices of the auxiliary convex polygons. The convex hull is the smallest figure that is a convex polygon that includes all the points (coordinates) of the complementary convex polygons.
[0074] 9 is a diagram illustrating the correction area and the constant communication coverage area. In the example of A in Fig. 9, the vertices of the auxiliary convex polygons 70a, 70b, 70c, and 70d are used to generate the correction area 80 including the auxiliary convex polygons 70a, 70b, 70c, and 70d.
[0075] When a polygon has a plurality of recesses, that is, when there are a plurality of auxiliary convex polygons, a correction area is generated for each of the auxiliary convex polygons.
[0076] Furthermore, if the movable area is not a convex polygon, the movable area is divided into a plurality of convex polygons, and a correction area is generated for each combination of the vertices of each divided convex polygon and each auxiliary convex polygon.
[0077] To divide a polygon that is not a convex polygon into a combination of convex polygons, for example, a polygon triangulation algorithm may be used.
[0078] For example, if the movable area is divided into convex polygon A and convex polygon B and two auxiliary convex polygons a and b exist, correction areas are generated for each of convex polygon A and auxiliary convex polygon a, convex polygon A and auxiliary convex polygon b, convex polygon B and auxiliary convex polygon a, and convex polygon B and auxiliary convex polygon b.
[0079] Next, the generation unit 13 calculates the constant communication coverage area by removing the area that overlaps with the modified area from the area where all the complementary convex polygons overlap. In the example of B in Fig. 9 , the generation unit 13 calculates the constant communication coverage area 81 by removing the area 73 where all the complementary convex polygons overlap and the area 82 where the modified area 80 overlaps.
[0080] According to the second embodiment, even if the polygon approximating the communication range is not a convex polygon (a concave polygon), it is possible to calculate the constant communication range.
[0081] Furthermore, the methods of Examples 1 and 2 can also be used in three dimensions. That is, even when the approximation unit 12 approximates the communication range as a polyhedron and the movable area is also given as a polyhedron, the method of Example 1 can be used as long as the approximated polyhedron is a convex polyhedron (considering convex polyhedrons centered on each vertex of the movable area polyhedron, and defining the overlapping area (solid) as the constant communication area).
[0082] Furthermore, if the approximated polyhedron is not a convex polyhedron, the correction area (solid) can be calculated using a complementary convex polyhedron (a three-dimensional extension of a complementary convex polygon) as in Example 2.
[0083] [Device Operation] Next, the operation of the information processing device in embodiment 1 will be described with reference to FIG. 10. FIG. 10 is a diagram for explaining an example of the operation of the information processing device in embodiment 1. In the following description, reference will be made to the diagram as appropriate. In addition, in embodiment 1, an information processing method (control method) is implemented by operating the information processing device. Therefore, the description of the control method in embodiment 1 will be replaced with the description of the operation of the information processing device below.
[0084] As shown in FIG. 10, first, the estimation unit 11 estimates the communication range of the target mobile object 20 (first mobile object) (step A1).
[0085] Next, the approximation unit 12 generates polygon information representing a polygon that approximates the boundary of the estimated communication range (step A2). Note that in step A2, if the approximated polygon representing the communication range is not a convex polygon, the approximation unit 12 generates polygon information by the method described in the second embodiment.
[0086] Next, the generation unit 13 calculates the overlapping area of the multiple polygons using multiple points included in the movable area (first movable area) previously set for the target mobile body 20 and polygons corresponding to the multiple points, and generates constant communication area information representing the area in which the target mobile body and the other mobile body can communicate on a constant basis, to be set as the second movable area of the other mobile body 20 (second mobile body) (step A3).
[0087] Next, the generation unit 13 transmits the generated constant communication coverage area information to other mobile units via the communication unit 21 (step A4).
[0088] Thereafter, the other mobile bodies 20 that have received the constant communication area information set the constant communication area as their movable area.
[0089] [Effects of First Embodiment] As described above, according to the first embodiment, the constant communication coverage area can be calculated as described above using the points (positions of the mobile body) in the movable area and the polygons corresponding to each of the points.
[0090] Furthermore, according to Example 1, the constant communication area is calculated using only some of the points in the movable area rather than all of the points in the movable area, which results in better computational efficiency than calculating the constant communication area using all of the points in the movable area.
[0091] Furthermore, according to the second embodiment, even if the polygon approximating the communication range is not a convex polygon (a concave polygon), it is possible to calculate the constant communication range.
[0092] [Program] The program in the first embodiment and the first and second examples may be any program that causes a computer to execute steps A1 to A4 shown in Fig. 10. By installing and executing this program on a computer, the information processing device and control method in the first embodiment can be realized. In this case, the processor of the computer functions as the estimation unit 11, the approximation unit 12, the generation unit 13, and the control unit 14 and performs the processing.
[0093] The programs in the first embodiment and the first and second examples may be executed by a computer system constructed by a plurality of computers. In this case, for example, each computer may function as one of the estimation unit 11, the approximation unit 12, the generation unit 13, and the control unit 14.
[0094] Second Embodiment In a second embodiment, a method for optimizing the size of the movable area will be described. In the second embodiment, two-way communication is considered to be maintained. Therefore, the movable areas of two mobile bodies 20 are considered simultaneously.
[0095] Generally, the larger the movable area is, the smaller the permanent communication area is. In other words, there is a trade-off between the size of the movable area and the size of the permanent communication area.
[0096] Therefore, a plurality of differently shaped movable areas are prepared as candidates, and a constant communication area is calculated for each of the prepared movable areas. Next, for each candidate movable area, the size of the movable area and the size of the corresponding constant communication area are used to select the optimal movable area based on an index that represents the trade-off relationship.
[0097] This index is, for example, the sum of the 1 / 2 power of the area (or volume) of the movable area and the 1 / 2 power of the area (or volume) of the constant communication area. By using such an index, it is possible to avoid candidates in which one of the movable area and the constant communication area is extremely small and the other is extremely large, and to select candidates in which both the movable area and the constant communication area are large in a balanced manner.
[0098] However, it is not possible to prepare all of the different shapes of movable areas. Even if it were possible to prepare all of the different shapes of movable areas, it would require an enormous amount of calculation, making it difficult to select the optimal movable area.
[0099] Therefore, in the second embodiment, a method for calculating an appropriate movable area with good calculation efficiency is provided. Specifically, the movable area is gradually expanded until it approaches an appropriate movable area.
[0100] [System Configuration] Fig. 11 is a diagram showing an example of a system having a mobile object according to embodiment 2. The configuration of an information processing device 10a according to embodiment 2 will be described in more detail with reference to Fig. 11 .
[0101] The system 1a is a multi-agent system that includes a plurality of mobile objects 20a as agents.
[0102] The mobile bodies 20a and 20b are, for example, mobile robots, automated guided vehicles, autonomous vehicles, autonomous flying objects, autonomous ships, etc. The mobile bodies 20a and 20b each include an information processing device 10a, a communication unit 21, a sensor unit 22, and a movement unit 23.
[0103] The information processing device 10 a includes an estimation unit 11 , an approximation unit 12 , a generation unit 13 , a control unit 14 , and an optimization unit 15 .
[0104] During operation, the optimization unit 15 expands the current movable area set for the moving body 20a using the minute displacement area, and changes it to an appropriate movable area.
[0105] Specifically, the optimization unit 15 first acquires a current first movable area set for the mobile body 20a, a current first constant communication area corresponding to the current first movable area, a second movable area currently set for the mobile body 20b, and a current second constant communication area corresponding to the current second movable area. Note that the initial movable area is set to be a sufficiently small movable area.
[0106] Next, the optimization unit 15 generates a micro-displacement area using the current first movable area, the current first constant communication area, the current second movable area, and the current second constant communication area.
[0107] The minute displacement area is a convex polygon and contains points (coordinates) that match points included in the movable area. The minute displacement area information representing the minute displacement area is information that associates the points (coordinates) that match points included in the movable area with vertex information that represents the vertices (coordinates) of the minute displacement area. The method for generating the minute displacement area will be described later.
[0108] Next, the optimization unit 15 of the mobile body 20a uses the generated micro-displacement area to expand the current first movable area to generate a new first movable area, and reduces the current first constant communication area to generate a new first constant communication area.
[0109] Next, the optimization unit 15 of the mobile body 20a uses the generated micro-displacement area to expand the current second movable area to generate a new second movable area, and reduces the current second constant communication area to generate a new second constant communication area.
[0110] Next, the optimization unit 15 determines whether the new first movable area and the new second movable area have been optimized, and if they have been optimized, ends the optimization process. If they have not been optimized, the optimization unit 15 performs the optimization again.
[0111] Whether the first and second movable areas are optimized is determined by whether the increase in the function value remains below a threshold based on the objective function described below. If the increase is above the threshold, it is highly likely that the movable areas are in the process of being expanded to a more optimal one. On the other hand, if the increase is below the threshold, it is clear that the objective function value will remain almost unchanged even if the movable areas are further expanded, and that the movable areas are already optimal.
[0112] A predetermined value is used as the threshold. The smaller the threshold, the more rigorously the optimization can be determined, but the longer it takes to complete. The threshold is determined by experiment or simulation, taking this trade-off into account.
[0113] The expansion of the movable area will now be described. Fig. 12 is a diagram for explaining optimization of the movable area using the minute displacement area. In the example of Fig. 12, the movable area 91 is expanded using minute displacement areas 92a, 92b, 92c, and 92d (polygons) centered on the vertices P6a, P6b, P6c, and P6d, which are calculated for each of the vertices P6a, P6b, P6c, and P6d of the movable area 91 (rectangle), to generate a movable area 93.
[0114] The movable area 93 represents a convex hull of the vertices of the small displacement areas 92 a, 92 b, 92 c, and 92 d. The convex hull is the smallest figure that is a convex polygon that includes all the points (coordinates) of the small displacement areas 92 a, 92 b, 92 c, and 92 d. Similar processing can also be achieved in three dimensions.
[0115] When the movable area is expanded using the small displacement area, the constant communication area is reduced by the amount of expansion of the movable area. In the example of Figure 6, 61 is the small displacement area. If the constant communication area is centered on each of the vertices P4a, P4b, P4c, and P4d of the small displacement area, 63, where all of these shapes overlap, is the reduced constant communication area.
[0116] The minute displacement region will now be described. In the second embodiment, a case where two-way communication is achieved between mobile units 20a and 20b will be considered. To achieve two-way communication, the movable region of mobile unit 20a must be included in the constant communication region of mobile unit 20b, and the movable region of mobile unit 20b must be included in the constant communication region of mobile unit 20a.
[0117] Furthermore, whether the movable area is appropriate depends on the situation in which the mobile units 20 a and 20 b are operated. Note that the wider the movable area, the greater the degree of freedom of the mobile units 20 a and 20 b, so generally, a wider movable area is preferable.
[0118] Therefore, the objective function for determining the optimal movable area is expressed as Equation 1. A is the movable area of the moving body 20a, S(M A ) represents its area, and M B is the movable area of the moving body 20b, S(M B ) represents its area.
[0119]
[0120] Furthermore, the objective function is not a simple sum of areas but a sum of the 1 / 2 power of each area in order to make the sizes of the optimal movable areas of the mobile bodies 20a and 20b as similar as possible.
[0121] Furthermore, in the case of a simple sum of areas, a solution that maximizes only the movable area of the moving body 20a by limiting the movable area of the moving body 20b to one point (i.e., assuming that the moving body 20b cannot move at all) would also result in an appropriate movable area. Similar processing can also be achieved in the case of volume instead of area.
[0122] In the second embodiment, both the movable area of the mobile body 20a and the movable area of the mobile body 20b are made as large as possible, thereby achieving communication while increasing the degree of freedom of movement of the two mobile bodies 20a and 20b.
[0123] Fig. 13 is a diagram for explaining the minute displacement region. Fig. 13A shows the current movable region 100a and constant communication region 101a of the mobile unit 20a. Fig. 13B shows the current movable region 100b and constant communication region 101b of the mobile unit 20b. Note that although Fig. 13A and Fig. 13B show the movable regions separately, in reality, there are overlapping portions of the movable regions.
[0124] Fig. 13C shows the movable area 100a of the mobile unit 20a and the constant communication area 101b of the mobile unit 20b. Fig. 13D shows the movable area 100b of the mobile unit 20b and the constant communication area 101a of the mobile unit 20a.
[0125] Next, an objective function for determining an optimal small displacement area from the current movable area described above is shown in Equation 2. The objective function for determining the small displacement area shown in Equation 2 is expressed by the objective function shown in Equation 1 and a constraint condition (penalty).
[0126]
[0127] Penalty C A (M A ) is the area 100a within which the movable body 20a can move, defined as a polygon M A This represents the constant communication coverage area when B (M B ) is the area within which the movable body 20b can move, which is a polygon M B This represents the constant communication coverage area when
[0128] The penalty function d is a function that finds the shortest line segment among the line segments connecting the sides of the movable area and the sides of the constant communication area. The shortest line segment corresponds to the double-headed arrows C and D in Figure 13.
[0129] Furthermore, the penalty diverges to minus infinity when the movable area of one mobile unit 20a is about to extend beyond the constant communication area of the other mobile unit 20b. Therefore, when calculating the small displacement area, if the optimal objective function of Equation 2 is found, the constraint of maintaining communication is automatically achieved.
[0130] Furthermore, the penalty coefficient α is a tunable parameter that indicates how much importance is attached to the penalty.
[0131] Next, a minute displacement vector related to the objective function is determined. The minute displacement vector is represented by a unit direction vector (a vector with a length of 1) and a length. The minute displacement vector is a vector related to the increase in the area of the movable region of the movable body 20, and includes outward vectors perpendicular to each side of the movable region.
[0132] Fig. 14 is a diagram for explaining minute displacement vectors. Fig. 14A shows minute displacement vectors Va1, Va2, Va3, Va4, Va5, and Va6 for the movable area 100a of Fig. 13C. Fig. 14B shows minute displacement vectors Vb1, Vb2, Vb3, Vb4, Vb5, and Vb6 for the movable area 100b of Fig. 13D.
[0133] The minute displacement vectors Va1, Va2, Va3, Va4, Va5, and Va6 are expressed as in Equation 3.
[0134]
[0135] The minute displacement vectors Vb1, Vb2, Vb3, Vb4, Vb5, and Vb6 are expressed as in Equation 4.
[0136]
[0137] The small displacement vector of the movable area 100a of the moving body 20a is expressed as an increase in the area of the movable area 100a of the moving body 20a, ΔS (M A ) is a vector related to the area increase ΔS (M A ) can be approximated by Equation 5. The same applies to the case of volume instead of area.
[0138]
[0139] However, when considering the increase in the volume of a polyhedron instead of the area, instead of calculating the product of the length of each side representing the boundary of the polygon and the length of the vector in Equation 5, it is sufficient to calculate the product of the area of each face representing the boundary of the polyhedron and the length of the vector.
[0140] Number 5 l A1 , l A2 , l A3 , l A4 represents the length of each side of the movable area 100a of the moving body 20a shown in Fig. 15. Fig. 15 is a diagram for explaining the length of each side of the movable area.
[0141] The small displacement vector of the movable area 100b of the moving body 20b is the increase in the area of the movable area 100b of the moving body 20b, ΔS (M B ) is a vector related to the area increase ΔS (M B ) can be approximated by Equation 6. However, the same applies to the case of volume instead of area.
[0142] Number 6 l B1 , l B2 , l B3 , l B4 represents the length of each side of the movable area 100b of the moving body 20b in FIG.
[0143]
[0144] The minute displacement vector Va5 is a vector relating to the change in the distance between the side of the movable area 100a of the mobile unit 20a and the side of the constant communication area 101b of the mobile unit 20b. When the movable area 100a is expanded in the direction indicated by the minute displacement vector Va5, the distance between the sides becomes shorter.
[0145] The minute displacement vector Vb6 is a vector relating to the change in the distance between the side of the movable area 100b of the mobile unit 20b and the side of the constant communication area 101a of the mobile unit 20a. When the constant communication area 101a is reduced in the direction indicated by the minute displacement vector Vb6, the distance between the sides becomes shorter.
[0146] The unit direction vector of the minute displacement vector Va5 is an outward vector parallel to the line segment indicating the distance between the sides, and the unit direction vector of the minute displacement vector Vb6 is a vector in the opposite direction to the unit direction vector of the minute displacement vector Va5.
[0147] When the movable area 100a is expanded in the unit direction vector direction of the minute displacement vector Va5, the constant communicable area 101a is reduced in the same direction and by the same length.
[0148] Therefore, for the moving body 20a, the change in the distance between the sides Δd (M A , C B (M B )) can be approximated by Equation 7. For the moving body 20b, the displacement Δd (M B , C A (M A ) can be approximated by Equation 8.
[0149]
[0150]
[0151] Therefore, the objective function after the small displacement (after the movable area is expanded by the small displacement) can be calculated using Equations 7 and 8. That is, it is sufficient to calculate the lengths a1, a2, a3, a4, a5, a6, b1, b2, b3, a4, a5, and a6 to maximize the objective function shown in Equation 9. However, there are constraints (i) and (ii) on the small displacement vector.
[0152]
[0153] Since the displacement amount is small, the approximations of Equations 5 to 8 hold. (i) The constraint that the displacement amount is small can be expressed by Equation 10.
[0154]
[0155] The value q in the formula 10 is sufficiently small, and the sum of the lengths of each vector is equal to or less than q, so that the vector is guaranteed to be infinitesimal. i ≧0∧b i ≧0 ensures that the length of the vector is not negative.
[0156] (ii) The constraints arising from the vector nature can be expressed by Equation 11.
[0157]
[0158] The constraint (ii) will be explained using Figure 16. Figure 16 is a diagram for explaining the constraints arising from the nature of vectors. Since L1 shown in Figure 16A is as shown in Expression 12, the constraint is satisfied.
[0159]
[0160] However, if the constraint is not satisfied, the lateral displacement is a 4 Even though it is determined that L1 is displaced to L2 as shown in Fig. 16B, the constraint of Equation 11 is required. Therefore, the optimal small displacement vector can be calculated by solving the optimization problem using Equation 9 as the objective function and Equations 10 and 11 as the constraints.
[0161] Next, a minute displacement region is calculated from the minute displacement vector. Fig. 17 is a diagram for explaining the generation of the minute displacement region. In the example of Fig. 17, the minute displacement vector (arrow) is set to spread out from the same point (●), line segments (solid lines) that are tangent to and perpendicular to the minute displacement vector are obtained, and the region R1 (point region) enclosed by these line segments is set as the minute displacement region.
[0162] [Device Operation] Next, the operation of the information processing device in embodiment 2 will be described with reference to FIG. 18. FIG. 18 is a diagram for explaining an example of the operation of the information processing device in embodiment 2. In the following description, reference will be made to the diagram as appropriate. In embodiment 2, an information processing method (control method) is implemented by operating the information processing device. Therefore, the description of the control method in embodiment 1 will be replaced with the following description of the operation of the information processing device.
[0163] 18 , first, the optimization unit 15 acquires a first movable area set for the current mobile body 20a, a current first constant communication area corresponding to the current first movable area, a second movable area set for the current mobile body 20b, and a current second constant communication area corresponding to the current second movable area (step B1). Note that the initial movable area is set to be a sufficiently small movable area.
[0164] Next, the optimization unit 15 generates a micro-displacement area using the current first movable area, the current first constant communication area, the current second movable area, and the current second constant communication area (step B2).
[0165] Next, the optimization unit 15 uses the current first movable area, the current first constant communication area, and the generated micro-displacement area to expand the current first movable area to generate a new first movable area, and reduces the current first constant communication area to generate a new first constant communication area (step B3).
[0166] Also, in step A3, the optimization unit 15 uses the current second movable area, the current second constant communication area, and the generated micro-displacement area to expand the current second movable area to generate a new second movable area, and reduces the current second constant communication area to generate a new second constant communication area.
[0167] Next, if the new first movable area and the new second movable area are optimized (step B4: Yes), the optimization unit 15 ends the optimization process. If they are not optimized (step B4: No), the optimization unit 15 proceeds to step B1.
[0168] The above-described processing of steps B1 to B4 is repeatedly executed to finally determine an appropriate movable area.
[0169] [Effects of Second Embodiment] As described above, according to the second embodiment, it is possible to calculate an appropriate movable area with high computational efficiency.
[0170] [Program] The program in embodiment 2 may be any program that causes a computer to execute steps B1 to B4 shown in Fig. 18. By installing and executing this program on a computer, the information processing device and control method in embodiment 2 can be realized. In this case, the processor of the computer functions as an estimation unit 11, an approximation unit 12, a generation unit 13, a control unit 14, and an optimization unit 15 to perform processing.
[0171] The program in embodiment 2 may be executed by a computer system constructed by a plurality of computers. In this case, for example, each computer may function as any one of the estimation unit 11, approximation unit 12, generation unit 13, control unit 14, and optimization unit 15.
[0172] (Embodiment 3) The method described in embodiment 2 is versatile, but repeated calculations can be difficult in some cases, such as when it is necessary to quickly set a movable area or when the computing power of the information processing device is extremely low.
[0173] In the third embodiment, a method for calculating a movable area with a smaller amount of calculation than in the second embodiment will be described.
[0174] In the third embodiment, the communication range is not approximated by a non-convex polygon, that is, the approximation unit 12 in the third embodiment always approximates by a convex polygon.
[0175] To generate a convex polygon approximation, for example, use the algorithm described in (Deits, Robin and Russ Tedrake. “Computing Large Convex Regions of Obstacle-Free Space Through Semidefinite Programming.” WAFR (2014).) This algorithm can be used to obtain a convex polygon that is close to the largest possible size while still fitting within the true communication range.
[0176] Fig. 19 is a diagram for explaining approximation in embodiment 3. In the example of Fig. 19, a communication range 32 is approximated by a convex polygon 32a.
[0177] The optimization unit 15 of the third embodiment rotates the approximated convex polygon by 180 degrees around the position of the moving object 20 itself, and generates a similar convex polygon from the rotated convex polygon based on a preset reduction ratio s for the movable area, thereby setting the similar convex polygon as the movable area. The similar convex polygon is a figure obtained by changing only the size of the convex polygon.
[0178] The reduction ratio for the movable area is set to s (where s is a value between 0 and 1). The reduction ratio can be, for example, 0.4.
[0179] In addition, the optimization unit 15 of embodiment 3 generates a similar convex polygon based on a preset reduction ratio (1-s) for the constant communication area, centered on the position of the mobile body 20 itself, to approximate the convex polygon and use it as the constant communication area.
[0180] The reduction ratio of the constant communication coverage area is set to (1-s) times (s is a value between 0 and 1). The reduction ratio can be, for example, 0.4.
[0181] Fig. 20 is a diagram for explaining the movable area and the constant communication area according to embodiment 3. Fig. 20 shows an example of the relationship between the movable area 140a and the constant communication area 130a based on an approximated convex polygon 32a.
[0182] [Effects of Third Embodiment] As described above, according to the third embodiment, by using an approximate convex polygon, it is possible to easily obtain the movable area and the constant communication area by a simple method.
[0183] Furthermore, this method can also be used to find the optimal movable area. Specifically, the optimization problem can be solved using the reduction ratio (scale) s and the coordinate values representing the center of the movable area as variables. For example, Equation 2 can be used as the objective function.
[0184] This optimization problem can be easily solved because the only variables are the reduction ratio and the center coordinates. Furthermore, unlike in the second embodiment, the optimal movable area can be found in one go, eliminating the need for repeated calculations. In the case of a three-dimensional object, a process similar to that described above can be realized using a convex polyhedron.
[0185] [Physical Configuration] Here, a computer that realizes an information device by executing the programs in Embodiment 1, Examples 1 and 2, and Embodiments 2 and 3 will be described with reference to Fig. 21. Fig. 21 is a diagram for explaining an example of a computer that realizes Embodiment 1, Examples 1 and 2, and Embodiments 2 and 3.
[0186] 21, a computer 110 includes a CPU (Central Processing Unit) 111, a main memory 112, a storage device 113, an input interface 114, a display controller 115, a data reader / writer 116, and a communication interface 117. These components are connected to each other via a bus 121 so as to be able to communicate data with each other.
[0187] Furthermore, the computer 110 may include a GPU (Graphics Processing Unit) or an FPGA (Field-Programmable Gate Array) in addition to or instead of the CPU 111. In this aspect, the GPU or FPGA can execute the programs in the embodiments.
[0188] The CPU 111 loads a program in the embodiment, which is composed of a group of codes and stored in the storage device 113, into the main memory 112 and executes each code in a predetermined order to perform various calculations. The main memory 112 is typically a volatile storage device such as a DRAM (Dynamic Random Access Memory).
[0189] The program in the embodiment is provided in a state stored in a computer-readable recording medium 120. The program in the embodiment may be distributed over the Internet connected via the communication interface 117.
[0190] Specific examples of the storage device 113 include a hard disk drive and a semiconductor storage device such as a flash memory. The input interface 114 mediates data transmission between the CPU 111 and input devices 118 such as a keyboard and a mouse. The display controller 115 is connected to a display device 119 and controls the display on the display device 119.
[0191] The data reader / writer 116 mediates data transmission between the CPU 111 and the recording medium 120, reads programs from the recording medium 120, and writes processing results from the computer 110 to the recording medium 120. The communication interface 117 mediates data transmission between the CPU 111 and other computers.
[0192] Specific examples of the recording medium 120 include general-purpose semiconductor storage devices such as CF (Compact Flash (registered trademark)) and SD (Secure Digital), magnetic recording media such as flexible disks, or optical recording media such as CD-ROMs (Compact Disk Read Only Memory).
[0193] The information processing devices in Embodiment 1, Examples 1 and 2, and Embodiments 2 and 3 can be realized by using hardware corresponding to each unit, rather than a computer on which a program is installed. Furthermore, the information processing device may be partially realized by a program and the remaining unit by hardware.
[0194] Although the first embodiment, examples 1 and 2, and embodiments 2 and 3 have been described above, the present invention is not limited to the first embodiment, examples 1 and 2, and embodiments 2 and 3. Various modifications that can be understood by a person skilled in the art can be made to the configurations and details of the first embodiment, examples 1 and 2, and embodiments 2 and 3 within the scope of the present invention.
[0195] According to the above description, a mechanism for maintaining communication between mobile entities is provided, which is useful in fields where mobile entities are used in multi-agent systems.
[0196] REFERENCE SIGNS LIST 1, 1a System 10 Information processing device 11 Estimation unit 12 Approximation unit 13 Generation unit 14 Control unit 15 Optimization unit 20, 20a, 20b Mobile object 21 Communication unit 22 Sensor unit 23 Mobile unit 110 Computer 111 CPU 112 Main memory 113 Storage device 114 Input interface 115 Display controller 116 Data reader / writer 117 Communication interface 118 Input device 119 Display device 120 Recording medium 121 Bus
Claims
1. An estimation means for estimating a communication range of a first moving object; approximation means for generating information representative of a boundary of the communication coverage area; a generation means for generating an area where a plurality of points included in a first movable area previously set for the first moving body overlap with a communication area of the first moving body at each of the plurality of points; An information processing device having the above configuration.
2. The approximation means includes: generating polygon information representing a polygon that approximates a boundary line of the estimated communication range; The generating means includes: using a plurality of points included in a first movable area previously set for the first moving body and a polygon corresponding to the plurality of points, to calculate an overlapping area of the plurality of polygons, and generate constant communication area information representing a constant communication area in which the first moving body and the second moving body are capable of constant communication, to be set as a second movable area of a second moving body; The information processing device according to claim 1 .
3. The generating means includes: complementing the non-convex polygon with a supplementary convex polygon, and converting the non-convex polygon into a supplementary convex polygon; The information processing device according to claim 2 .
4. The generating means includes: calculating the constant communication area, which is an overlapping area of all the complementary convex polygons, by using a plurality of points included in the first movable area and the complementary convex polygons corresponding to the plurality of points; The information processing device according to claim 3 .
5. The generating means includes: calculating an overlapping area of all the complementary convex polygons using a plurality of points included in the first movable area and the complementary convex polygons corresponding to the plurality of points; generating a modified region representing a convex hull using vertices of the auxiliary convex polygon included in all of the complementary convex polygons; calculating the constant communication coverage area by deleting an area overlapping the modified area from an area overlapping all of the complementary convex polygons; The information processing device according to claim 3 .
6. generating a small displacement area using a current first movable area set for the first moving body, the current first movable area, a current first constant communication area, a current second movable area set for the second moving body, and a current second movable area; Using the generated small displacement area, expand the current first movable area to generate a new first movable area, and reduce the current first constant communication area to generate a new first constant communication area; Using the generated small displacement area, expand the current second movable area to generate a new second movable area, reduce the current second constant communication area to generate a new second constant communication area, an optimization means for determining whether the new first movable area and the new second movable area are optimized; The information processing device according to claim 2 , further comprising:
7. the optimization means determines whether the new first movable area and the new second movable area have been optimized based on an increase in area of the new first movable area and an increase in area of the new second movable area; The information processing device according to claim 6.
8. the approximation means generates a convex polygon that approximates a boundary line of the estimated communication range; an optimization means for rotating the approximated convex polygon by 180 degrees around the position of the first moving body, and generating a similar convex polygon from the rotated convex polygon based on a preset reduction ratio for a movable area, to set the movable area as the convex polygon; 3. The information processing apparatus according to claim 2, further comprising:
9. Computer Estimating a communication range of a first mobile unit; generating information representative of a boundary of the communication coverage area; generating an area where a plurality of points included in a first movable area preset for the first moving body overlap with a communication area of the first moving body at each of the plurality of points; Control methods.
10. To your computer Estimating a communication range of a first moving object; generating information representative of a boundary of said communication coverage area; generating an area where a plurality of points included in a first movable area preset for the first moving body overlap with a communication area of the first moving body at each of the plurality of points; program.