Apparatus, method, and program

JP2026136546APending Publication Date: 2026-08-26YOKOGAWA ELECTRIC CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2025022103
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-02-14
Publication Date
2026-08-26

AI Technical Summary

Technical Problem

Existing methods for constructing operation plans for multi-robot systems in large facilities are computationally expensive and inefficient, leading to unexecutable tasks and high computational costs, especially in large-scale environments with diverse robot specifications and numerous tasks.

Method used

A processor-based system generates and determines execution plans for multiple robots using an objective function that penalizes unexecuted tasks, allowing for high-priority tasks to be reliably executed while minimizing travel distance and computational effort through area and task allocation, and handles interrupt tasks by reassigning them during waiting times.

Benefits of technology

The system efficiently generates operation plans that minimize unexecuted tasks and travel distance, ensuring high-priority tasks are completed, even in large-scale facilities with diverse robots, while reducing computational complexity and preventing unexecutable assignments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026136546000001_ABST
    Figure 2026136546000001_ABST
Patent Text Reader

Abstract

This system rapidly solves operational planning problems involving multiple robots and constructs realistic operational plans within a reasonable computation time. [Solution] A device is provided comprising a processor, the processor performing a generation process to generate an execution plan that allows at least one task not to be executed as an execution plan for multiple robots to perform multiple tasks, and a determination process to determine a first execution plan from among the generated execution plans in which the value of the objective function satisfies a criterion, using an objective function that imposes a penalty if there is a task that is not executed in the execution plan, wherein the penalty given to the objective function is a value corresponding to the parameter of the task that is not executed, among the parameters set for each task.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] This invention relates to an apparatus, method, and program. [Background technology]

[0002] Patent document 1 and others state that "...a robot is assigned an in-domain task which is at least one task belonging to the target area from among the plurality of tasks" (Claim 1 of Patent Document 1). [Prior art document] [Patent] [Patent Document 1] Japanese Unexamined Patent Publication No. 2024-099938 [Patent Document 2] International Publication No. 2023 / 026592 [Patent Document 3] Japanese Unexamined Patent Publication No. 2021-104900 [Patent Document 4] Japanese Unexamined Patent Publication No. 2006-326703 [Non-Patent Literature 1] Jaroslav Janos, "Multi-Goal Path Planning Using Multiple Random Trees," "IEEE Robotics and Automation Letters," IEEE, 24 March 2021, Volume 6, pp. 4201-4208. [Non-Patent Literature 2] Philipp Schillinger, "Simultaneous Task Allocation and Planning for Temporal Logic Goals in Heterogeneous Multi-Robot Systems," *International Journal of Robotics Research*, Volume 37, pp. 818-838. [Overview of the project]

[0003] (1) In a first aspect of the present invention, a device is provided which includes a processor, the processor performing a generation process that generates an execution plan to execute multiple tasks by multiple robots, allowing at least one task not to be executed, and a determination process that uses an objective function that imposes a penalty if a task that is not executed is present in the execution plan, to determine a first execution plan from among the generated execution plans in which the value of the objective function satisfies a criterion.

[0004] (2) In the apparatus described in (1) above, the penalty applied to the objective function may be a value corresponding to the parameters of the task that is not executed, among the parameters set for each task.

[0005] (3) In the device described in (2) above, the processor may further perform a setting process to set the parameters of each task to larger values ​​as the priority of the task increases.

[0006] (4) In the apparatus of (3) described above, the processor further executes the generation process for a new set of tasks, including tasks not executed in the first execution plan, to generate a next execution plan, and further executes the determination process for the next execution plan to determine a second execution plan in which the value of the objective function satisfies the criteria. In the setting process, the parameters of the tasks not executed may be set larger when determining the second execution plan than when determining the first execution plan.

[0007] (5) In any of the devices described in (1) to (4) above, the processor may further perform output processing that outputs the first execution plan and information indicating tasks that are not executed in the first execution plan.

[0008] (6) In any of the devices described in (1) to (5) above, the processor includes, for each task, a first acquisition process for acquiring the execution position, and for each robot, a second acquisition process for acquiring at least one of the charging position or the current position, and the objective function may include as an element the cost corresponding to the distance traveled by each robot when the execution plan is executed.

[0009] (7) In any of the devices described in (1) to (6) above, the processor may further perform a detection process to detect a first robot among the plurality of robots that satisfies the specifications required for the interrupt task and is located within a reference range from the execution position of the interrupt task, when an interrupt task to be executed by interrupt occurs during the execution of the first execution plan, and a first modification process to modify the first execution plan so that the first robot executes the interrupt task during the waiting time for the first robot in the first execution plan.

[0010] (8) In a second aspect of the present invention, a device is provided that includes a processor, the processor performing: a generation process for generating a first execution plan for a plurality of robots to perform a plurality of tasks; a detection process for detecting a first robot among the plurality of robots that satisfies the specifications required for the interrupt task and is located within a reference range from the location where the interrupt task is performed, when an interrupt task occurs during the execution of the first execution plan; and a first modification process for modifying the first execution plan so that the first robot performs the interrupt task during the waiting time for the first robot in the first execution plan.

[0011] (9) In the apparatus of (7) or (8) described above, the processor may, if there is no waiting time for the first robot in the first execution plan, modify the first execution plan in the first modification process so that the interrupt task is executed by the first robot while the multiple robots execute multiple tasks, including the interrupt task.

[0012] (10) In any of the devices described in (7) to (9) above, the processor may further perform control processing to cause the first robot to execute the interrupt task regardless of the first execution plan, depending on whether the priority of the interrupt task is higher than the reference priority.

[0013] (11) In the apparatus of (10) described above, the processor may further perform a second modification process to modify the first execution plan so that the multiple robots execute the unexecutable tasks in response to the first robot executing the interrupt task resulting in an unexecutable task being assigned to the first robot in the first execution plan.

[0014] (12) In the apparatus described in (11) above, the processor may, in the second modification process, modify the first execution plan so that the multiple robots other than the first robot perform the task that cannot be executed.

[0015] (13) In a third aspect of the present invention, a method is provided for generating an execution plan in which multiple robots perform multiple tasks, which includes a generation process that generates an execution plan that allows at least one task not to be executed, and a determination process that uses an objective function that imposes a penalty if there is a task that is not executed in the execution plan, and determines a first execution plan from among the generated execution plans in which the value of the objective function satisfies a criterion.

[0016] (14) A fourth embodiment of the present invention provides a method for generating a first execution plan in which multiple robots perform multiple tasks; detecting a first robot among the multiple robots that satisfies the specifications required for the interrupt task and is located within a reference range from the location where the interrupt task is performed, when an interrupt task occurs during the execution of the first execution plan; and modifying the first execution plan so that the first robot performs the interrupt task during the waiting time of the first robot in the first execution plan.

[0017] (15) In a fifth aspect of the present invention, a program is provided which, when executed on a computer, causes the computer to perform a generation process that generates an execution plan that allows at least one task not to be executed as an execution plan for executing multiple tasks by multiple robots, and a determination process that uses an objective function that imposes a penalty if there is a task that is not executed in the execution plan, and determines a first execution plan from among the generated execution plans in which the value of the objective function satisfies a criterion.

[0018] (16) In a sixth aspect of the present invention, a program is provided which, when executed on a computer, causes the computer to perform a generation process that generates a first execution plan for which a plurality of robots perform a plurality of tasks; a detection process that, when an interrupt task occurs during the execution of the first execution plan, detects a first robot from among the plurality of robots that satisfies the specifications required for the interrupt task and is located within a reference range from the location where the interrupt task is performed; and a first modification process that modifies the first execution plan so that the first robot performs the interrupt task during the waiting time of the first robot in the first execution plan.

[0019] It should be noted that the above summary of the invention does not enumerate all the necessary features of the present invention. Furthermore, subcombinations of these features may also constitute an invention. [Brief explanation of the drawing]

[0020] [Figure 1] An example of a block diagram of the apparatus 100 according to the first embodiment is shown along with the equipment 10 to be operated. [Figure 2] The generation processing unit 1502 is shown together with the determination processing unit 1503. [Figure 3] An example of various types of information stored by the device 100 according to the first embodiment is shown. [Figure 4] An example of the results of area allocation performed by the device 100 according to the first embodiment is shown. [Figure 5] An example of the task assignment results performed by the device 100 according to the first embodiment is shown. [Figure 6] Another example of the results of task assignment performed by the apparatus 100 according to the first embodiment is shown. [Figure 7] An example of a path within a region determined by the device 100 according to the first embodiment is shown. [Figure 8] An example of an inter-region path determined by the apparatus 100 according to the first embodiment is shown. [Figure 9] An example of a flowchart of the method performed by the apparatus 100 according to the first embodiment is shown. [Figure 10] An example of a flowchart of the method performed by the apparatus 100 according to the first embodiment is shown. [Figure 11] An example of a block diagram of the apparatus 100 according to the first modification of the first embodiment is shown together with the equipment 10 to be operated. [Figure 12] An example of a block diagram of the apparatus 100 according to a second modification of the first embodiment is shown together with the equipment 10 to be operated. [Figure 13] An example of a block diagram of the apparatus 100 according to a third modification of the first embodiment is shown together with the equipment 10 to be operated. [Figure 14] An example of a flowchart showing the method that the apparatus 100 according to the third modification of the first embodiment performs to repeatedly construct an operation plan is shown. [Figure 15] An example of a block diagram of the apparatus 100 according to a third modification of the first embodiment is shown together with the equipment 10 to be operated. [Figure 16] An example of a block diagram of the apparatus 100 according to the second embodiment is shown together with the equipment 10 to be operated. [Figure 17] An example of a flowchart showing how the device 100 according to the second embodiment executes an interrupt task is shown. [Figure 18] An example of a block diagram of the apparatus 100 according to a modified example of the second embodiment is shown together with the equipment 10 to be operated. [Figure 19] Examples of a computer 1200 in which multiple aspects of the present invention may be embodied in whole or in part are shown. [Modes for carrying out the invention]

[0021] The present invention will be described below through embodiments of the invention, but these embodiments are not intended to limit the invention as defined in the claims. Furthermore, not all combinations of features described in the embodiments are necessarily essential for solving the problem of the invention.

[0022] Figure 1 shows an example of a block diagram of the apparatus 100 according to this embodiment, along with the equipment 10 to be operated. These blocks are functionally separated functional blocks and do not necessarily correspond to the actual apparatus configuration. That is, just because something is shown as a single block in this figure does not mean it is composed of a single device. Similarly, just because something is shown as separate blocks in this figure does not mean they are composed of separate devices. The same applies to other block diagrams.

[0023] Equipment 10 refers to the equipment, devices, or buildings that will be operated. For example, Equipment 10 may be a plant. Examples of plants include industrial plants such as chemical and biotechnology plants, plants that manage and control wellheads and surrounding areas of gas and oil fields, plants that manage and control power generation such as hydroelectric, thermal, and nuclear power plants, plants that manage and control environmental power generation such as solar and wind power plants, and plants that manage and control water supply and sewage systems and dams. Equipment 10 may have multiple areas (in this diagram, for example, three areas A to C).

[0024] In facilities like this 10, there is a growing expectation for the introduction of robots due to issues such as labor shortages, safety during operation, and maintenance costs, and the development of a wide variety of robots with different specifications is progressing. Some robots under development or already developed are capable of autonomous movement or can perform tasks without human intervention. It is being considered to operate facility 10, at least partially, using a multi-robot system that introduces multiple such robots.

[0025] The robots 20 are introduced into the equipment 10 and perform various tasks related to the operation of the equipment 10. In this figure, one example is shown in which three robots 20, robot 20i, robot 20j, and robot 20k (collectively referred to as "robot 20"), are introduced into the equipment 10.

[0026] Robot 20i may be, for example, a robot capable of autonomous movement by quadrupedal locomotion. Furthermore, Robot 20i may be capable of measuring ambient sounds using an onboard microphone and photographing objects using an onboard camera. Also, Robot 20i may be capable of moving at a speed of, for example, 5 km / h. Furthermore, Robot 20i may be capable of continuous operation for 3 hours on a fully charged battery. Also, Robot 20i may be capable of overcoming obstacles of 20 cm or less.

[0027] Robot 20j may be, for example, a robot capable of autonomous flight using rotor blades (such as a drone or multicopter). Furthermore, Robot 20j may be capable of measuring the temperature of an object using its mounted thermal camera, and also capable of photographing an object using its mounted camera. Additionally, Robot 20j may be capable of moving at a speed of, for example, 10 km / h. Furthermore, Robot 20j may be capable of continuous operation for 5 hours when its battery is fully charged.

[0028] Robot 20k may be, for example, a robot capable of autonomous movement using caterpillar tracks. Robot 20k may also be capable of measuring ambient sound using an onboard microphone and operating control devices (such as valves) using an onboard arm. Furthermore, Robot 20k may be capable of moving at a speed of, for example, 3 km / h. Also, Robot 20k may be capable of continuous operation for 2 hours when the battery is fully charged. Furthermore, Robot 20k may be, for example, explosion-proof. Also, Robot 20z may be capable of overcoming obstacles of 50 cm or less.

[0029] The robot 20 may also be equipped with sensors for recognizing the surrounding environment, such as a LiDAR sensor, and functions for estimating its own position from the recognized surrounding environment. In this way, multiple robots 20 with different specifications may be introduced into the facility 10. In the above explanation, the case in which three robots 20 with different specifications, such as robot 20i, robot 20j, and robot 20k, are introduced into the facility 10 was shown as an example. However, the number and specifications of robots 20 introduced into the facility 10 are not limited to this, and a multi-robot system may be configured with various combinations of various robots 20. In this case, for example, multiple robots introduced into the facility 10 may include multiple robots with the same specifications.

[0030] The device 100 comprises a storage unit 110, a processor 150, and an output unit 160.

[0031] The storage unit 110 stores various information for constructing an operation plan. Such information may be obtained from equipment 10 or external systems via a network, or via user input, or via various memory devices. In this embodiment, the storage unit 110 may store a program (not shown) and other information. The program is executed by the processor 150, causing the processor 150 to perform various processes. Details of the other information stored in the storage unit 110 will be described later.

[0032] The processor 150 performs various processes by executing programs in the storage unit 110. The processor 150 may implement a functional unit that performs various processes by executing programs. The processor 150 according to this embodiment may implement an acquisition processing unit 1501, a generation processing unit 1502, a decision processing unit 1503, a setting processing unit 1504, an output processing unit 1505, and a result management unit 1506.

[0033] The data acquisition processing unit 1501 acquires various information about the equipment 10 and the robot 20. The data acquisition processing unit 1501 may acquire information from the storage unit 110, from an external storage device (not shown), or from a user via an input device (not shown).

[0034] The data acquisition processing unit 1501 may acquire task information indicating the content of each task that the robot 20 is to perform. As will be described in detail later, the task information may include the execution location of the task, the specifications of the robot 20 required to perform the task, and the priority of the task.

[0035] The acquisition processing unit 1501 may acquire specification information for each robot 20, indicating the specifications of that robot. As will be described in detail later, the specification information may include the charging position and current position of the robot 20.

[0036] The acquisition processing unit 1501 may supply the acquired task information and specification information to the generation processing unit 1502. The acquisition processing unit 1501 may supply the acquired specification information to the determination processing unit 1503. The acquisition processing unit 1501 may supply the acquired task information to the setting processing unit 1504. If the acquisition processing unit 1501 has acquired task information or specification information without going through the storage unit 110, it may store the information in the storage unit 110.

[0037] The generation processing unit 1502 generates candidate operation plans (also referred to as execution plans) for which multiple tasks are performed by multiple robots 20. The generation processing unit 1502 may generate one or more operation plans. The generation processing unit 1502 may generate operation plans in which multiple tasks, indicated by task information acquired by the acquisition processing unit 1501, are performed by multiple robots indicated by specification information acquired by the acquisition processing unit 1501, and may generate operation plans by solving the MRTA (Multi-Robot Task Allocation) problem.

[0038] In this embodiment, the generation processing unit 1502 may generate an operation plan that allows at least one task not to be executed. The generation processing unit 1502 may generate an operation plan that allows at least one task not to be executed if there are too many tasks to be executed for the robot 20 in the equipment 10, resulting in some tasks being unexecutable. The generation processing unit 1502 may also generate an operation plan that allows at least one task not to be executed if there are no unexecutable tasks.

[0039] The generation processing unit 1502 may generate an operation plan that executes up to N tasks, or it may generate an operation plan that executes only N-1 tasks or less, if it is possible to generate an operation plan that executes up to N tasks. The number of tasks "N" may be the total number of tasks to be executed, or it may be a number smaller than that total.

[0040] The generation processing unit 1502 may generate an operation plan that operates all robots 20, or it may generate an operation plan that does not operate at least one robot 20.

[0041] The generation processing unit 1502 may generate an operation plan for each period (also referred to as an operating period) having a length of a standard time (for example, 24 hours or 8 hours), and may sequentially generate operation plans for operating periods after the operating period including the current time. For example, the generation processing unit 1502 may generate an operation plan for the first operating period (also referred to as the first operation plan) in the 0th operating period prior to the first operating period, and may generate an operation plan for the second operating period (also referred to as the second operation plan) in the first operating period. The generation processing unit 1502 may supply the generated operation plans to the decision processing unit 1503 for each operating period.

[0042] The decision processing unit 1503 determines from the one or more operation plans generated by the generation processing unit 1502 for each operation period to be executed during that operation period. For example, the decision processing unit 1503 may determine the first operation plan to be executed during the first operation period from the one or more first operation plans generated for the first operation period.

[0043] The decision processing unit 1503 may use an objective function that imposes a penalty if there are tasks in the operation plan that are not executed, and may determine from the generated operation plans that the value of the objective function satisfies the criteria. The criteria may be set to any value in advance. For example, the criteria may be set to any value through trial and error so that the operation of equipment 10 can be continued.

[0044] Here, the objective function is the value of a function that should be maximized or minimized, and in this embodiment, as an example, it may be the value of a function that should be minimized. The objective function may be a function whose value is determined according to the content of the operational plan. The objective function may include an element (for example, a penalty term) that imposes a greater penalty when there are tasks that are not performed in the operational plan compared to when there are no such tasks. The penalty given to the objective function may be a value corresponding to the penalty parameter of the task that is not performed, among the parameters set for each task (also called penalty parameters). The value corresponding to the penalty parameter may be the value of the penalty parameter itself, a value obtained by multiplying it by a predetermined coefficient penalty parameter, or another value calculated using the penalty parameter. If there are multiple tasks that are not performed in the operational plan, the penalty given to the objective function may be a value corresponding to the sum of the penalty parameters of each of the tasks that are not performed.

[0045] The objective function may further include as an element the cost corresponding to the distance traveled by each robot 20 when the operation plan is executed. The cost corresponding to the distance traveled may be a larger value as the total distance traveled by each robot 20 increases. The objective function may further include as elements the running cost of the robots 20, the utilization rate of the robots 20, and the total operating time.

[0046] The decision processing unit 1503 may supply the determined operation plan to the output processing unit 1505. The decision processing unit 1503 may supply task information for tasks not performed in the operation plan to the acquisition processing unit 1501 as task information for tasks to be performed in subsequent operation periods. For example, the decision processing unit 1503 may supply task information for tasks not performed in the first operation plan to the acquisition processing unit 1501 as task information for tasks to be performed in the second operation period and beyond.

[0047] The configuration processing unit 1504 sets the penalty parameters for each task. The configuration processing unit 1504 may set the penalty parameters based on the priority of the task. For example, the configuration processing unit 1504 may set the penalty parameters for each task to a larger value the higher the priority of that task. The configuration processing unit 1504 may readjust the penalty parameters for each operating period.

[0048] The output processing unit 1505 outputs various types of information via the output unit 160. For example, the output processing unit 1505 may output the operation plan determined by the decision processing unit 1503 (for example, the first operation plan) and information indicating tasks that will not be performed in that operation plan.

[0049] The results management unit 1506 manages various types of information acquired by the robot 20 as it performs tasks. The results management unit 1506 may acquire various types of information from an external system via a network, store the acquired information in the storage unit 110, and output it from the output unit 160 via the output processing unit 1505. The information acquired by the results management unit 1506 may include information such as images (for example, moving images, still images, thermal images, etc.), audio, and measurement data acquired by the robot 20.

[0050] The results management unit 1506 may estimate the robot's position from the robot's measurement data, determine the state of the equipment 10, or determine the state of the robot 20. The results management unit 1506 may determine whether a task has been completed based on the data acquired from the robot 20. For example, if a robot 20 assigned the task of capturing images inside the equipment 10 acquires an unclear image, the results management unit 1506 may determine that the task has not been completed. In response to determining that a task has not been completed, the results management unit 1506 may reset the task to be executed, and for example, it may store the task information for that task again in the storage unit 110. In response to determining that a task has been completed, the results management unit 1506 may delete the task information for that task from the task information stored in the storage unit 110, or it may add information indicating completion to the task information for that task among the task information stored in the storage unit 110.

[0051] The output unit 160 outputs various types of information. The output unit 160 may be, for example, a monitor, and may display and output various types of information. Alternatively, or in addition, the output unit 160 may be a communication unit, and may transmit and output various types of information to other functional units or other devices. Alternatively, or in addition, the output unit 160 may be a printer, and may print and output various types of information. Alternatively, or in addition, the output unit 160 may be a speaker, and may output various types of information as sound.

[0052] The device 100 equipped with such functional components may be a computer such as a PC (personal computer), tablet computer, smartphone, workstation, server computer, or general-purpose computer, or it may be a computer system in which multiple computers are connected. Such a computer system is also a computer in a broad sense. Furthermore, the device 100 may be implemented by a virtual computer environment that can run one or more times within the computer. Alternatively, the device 100 may be a dedicated computer customized to provide the above-mentioned functions, or dedicated hardware realized by dedicated circuits. Also, if it is connected to the internet, the device 100 may be implemented by cloud computing.

[0053] With the above-described device 100, an operation plan is generated that allows for at least one task to not be executed when multiple robots 20 perform multiple tasks. Furthermore, an objective function is used that imposes a penalty if an unexecuted task exists in the operation plan, and from the generated operation plans, the operation plan (for example, the first operation plan) whose value of the objective function satisfies the criteria is determined.Therefore, when the number of tasks is large and the resources of the robots 20 are insufficient, it is possible to determine the operation plan in a way that makes it difficult for unexecuted tasks to occur, while preventing the failure to generate an operation plan when the number of tasks is large and the resources of the robots 20 are insufficient.

[0054] Furthermore, since the objective function is given a penalty corresponding to the penalty parameter of the task that is not executed, among the penalty parameters set for each task, the operational plan can be determined so that tasks with large penalty parameters are executed more reliably.

[0055] Furthermore, the higher the priority of a task, the larger the penalty parameter for that task will be set to. Therefore, operational plans can be determined to ensure that high-priority tasks are executed more reliably.

[0056] Furthermore, since the operational plan and information indicating the tasks that will not be executed in that operational plan are output, users can reliably understand which tasks will be executed and which will not among multiple tasks.

[0057] Furthermore, the objective function includes as an element the cost corresponding to the travel distance of each robot 20 when the operation plan is executed. Therefore, the operation plan can be determined in such a way that the travel distance of the robots 20 is minimized.

[0058] Figure 2 shows the generation processing unit 1502 together with the decision processing unit 1503. When operating the equipment 10 using a multi-robot system, an operation plan must be constructed. However, constructing such an operation plan requires considering various factors such as the specifications of diverse robots, the requirements of a wide range of tasks, and constraints imposed by the environment of the equipment 10. Therefore, constructing an operation plan manually or using rule-based methods requires considerable effort, and problems such as inefficient plans or assigning unexecutable tasks to robots 20 can arise.

[0059] Traditionally, methods using optimization techniques have been established to address such problems. It is known that an optimization problem can be constructed based on the various factors and planning policies mentioned above, and the desired operation plan can be obtained by solving it. However, solving the operation plan problem for a multi-robot system is extremely computationally expensive, known as NP (Non-deterministic Polynomial time) hard, making it impractical for practical use. Furthermore, the computational cost also depends to some extent on the scale of the equipment 10 and the number of robots 20 to be introduced. For example, in the case of introducing a large number of robots 20 into a large-scale facility 10 such as a plant, it is expected that simply implementing a method to reduce the computational load and obtain an approximate solution will not be sufficient for practical use.

[0060] Therefore, the generation processing unit 1502 according to this embodiment may, as an example, divide the processing into area allocation, task allocation, intra-area path determination, and inter-area path determination. As a result, the generation processing unit 1502 according to this embodiment can solve the operation planning problem for multiple robots 20 at high speed, regardless of the scale of the equipment 10 or the number of robots 20, and construct a realistic operation plan in a realistic computation time. The generation processing unit 1502 includes an area allocation unit 15021, a task allocation unit 15022, an intra-area path determination unit 15023, and an inter-area path determination unit 15024.

[0061] The area allocation unit 15021 performs area allocation, assigning the multiple robots 20 to multiple areas into which the equipment 10 is divided, based on the specifications of the multiple robots 20 and the requirements of the multiple tasks to be performed in the equipment 10 to be operated. The area allocation unit 15021 supplies the results of the area allocation to the task allocation unit 15022, the area path determination unit 15023, the inter-area path determination unit 15024, and the determination processing unit 1503.

[0062] The task assignment unit 15022 performs task assignment for each of the multiple target regions, assigning at least one task belonging to the target region from among multiple tasks to the target robot, which is at least one robot among the multiple robots 20 assigned to the target region. The task assignment unit 15022 supplies the results of the task assignment to the area path determination unit 15023 and the determination processing unit 1503.

[0063] The area path determination unit 15023 determines the path for moving the target robot within the target area based on the task assignment results. The area path determination unit 15023 supplies the determined area path to the determination processing unit 1503.

[0064] The inter-region path determination unit 15024 determines inter-region paths for moving multiple robots 20 between multiple regions based on the region assignment results. The inter-region path determination unit 15024 supplies the determined inter-region paths to the determination processing unit 1503.

[0065] The intra-domain route determination unit 15023 and the inter-domain route determination unit 15024 may determine the route by solving the so-called Traveling Salesperson Problem (TSP problem), or they may determine the route by at least one combination of the SFF* method, RRT*, or spatiotemporal RRT method described in Non-Patent Literature 1, etc.

[0066] The generation processing unit 1502 may perform the operation plan generation process without dividing it into area allocation, task allocation, intra-area route determination, and inter-area route determination. For example, the generation processing unit 1502 may perform area allocation and task allocation together. As an example, the case in which the task allocation unit 15022 of the generation processing unit 15022 cooperates with the area allocation unit 15021 to perform area allocation and task allocation together will be described. Note that the processing related to area allocation may be performed by the task allocation unit 15022.

[0067] The task allocation unit 15022 may perform area allocation and task allocation using integer programming. For example, the task assignment unit 15022 uses the binary variable η r,a,s , binary variable ζ r,s , and the integer variable ν r,a,s,f The region allocation may be performed using the following: Here, the subscript "r" represents the robot identification number, "a" represents the region identification number, "s" represents the time slot identification number, and "f" represents the robot function identification number. Binary variable η r,a,s A value of 1 indicates that the robot will perform the task in the specified area during the specified time slot, while a value of 0 indicates that the robot will not perform the task in the specified area during the specified time slot (for example, charging). Binary variable ζ r,s The integer variable ν indicates that, when its value is 1, the state of the robot 20 transitions between an operational state and a non-operational state (in this embodiment, for example, a standby state or a charging state) between time slots s and s+1, and when its value is 0, it indicates that no transition occurs. r,a,s,fIndicates the number of tasks that the corresponding robot executes in the corresponding area and the corresponding time slot.

[0068] As an example, the task allocation unit 15022 may allocate an area to each robot 20 so as to satisfy the constraints represented by the following formula. In the formula, "A" may be the maximum value of the identification number of the area, and "F" may be the maximum value of the identification number of the function. "Cr" may be a constant, and as an example, Cr = A may be used. "T MAX " is the upper limit value of the number of tasks that can be executed within one time slot. Also, "Σ(a = 1⇒A)η r,a,s " indicates the sum of η r,a,s when the value of a is incremented from 1 to A. When the left side of formula A1 is 0, it may mean that robot r charges in time slot s.

[0069] Σ(a = 1⇒A)η r,a,s ≦1 …(11) Σ(f = 1⇒F)(ν r,a,s,f -Cr·η r,a,s )≦0 …(12) Σ(f = 1⇒F)ν r,a,s,f ≦T MAX …(13)

[0070] Also, when a specific robot (r') does not have a specific function (f'), the task allocation unit 15022 may perform area allocation so as to satisfy the following formula. In the notations such as "r'" and "f'", the symbol "'" indicates a specific identification number. ν r',a,s,f' =0 …(14)

[0071] Also, the task allocation unit 15022 may perform task allocation using the binary variable δ[[ID=​​​​A value of 1 indicates that the task is assigned to the corresponding time slot and robot 20, while a value of 0 indicates that the task is not assigned to the corresponding time slot and robot 20. (Binary variable δ) r,s The value of δ indicates that the robot 20 will perform some task during the corresponding time slot, i.e., it will be operational, and the value of δ indicates that the robot 20 will wait or charge without performing any task during the corresponding time slot, i.e., it will not be operational. r,t,s and binary variable δ r,s This can be a variable relating to a specific region (a').

[0072] As an example, the task assignment unit 15022 may assign tasks to each robot 20 in such a way that the constraints shown by the following equations are satisfied.

[0073] δ r,t,s -δ r,s ≤0 (t=1,2,…T) …(21) Σ(t=1⇒T)δ r,t,s ≥0 …(22)

[0074] In addition, the task assignment unit 15022 uses the binary variable ζ r,s Task assignment may be performed using the following. For example, the task assignment unit 15022 may assign tasks to each robot 20 so as to satisfy the constraints shown in the following equations.

[0075] ζ r,s +δ r,s +δ r,s+1 ≤2 …(23) -ζ r,s -δ r,s +δ r,s+1 ≤0 …(24) ζ r,s -δ r,s -δ r,s+1 ≤0 …(25) -ζ r,s +δ r,s -δ r,s+1 ≤0 …(26)

[0076] The task assignment unit 15022 uses the binary variable ζ r,s and binary variable η r,a,s Task assignment may be performed using the following. For example, the task assignment unit 15022 may assign tasks to each robot 20 so as to satisfy the constraints shown in the following equations.

[0077] ζ r,s +Σ(a=1⇒A)η r,a,s +Σ(a=1⇒A)η r,a,s+1 ≤2 …(31) -ζ r,s -Σ(a=1⇒A)η r,a,s +Σ(a=1⇒A)η r,a,s+1 ≤0 …(32) ζ r,s -Σ(a=1⇒A)η r,a,s -Σ(a=1⇒A)η r,a,s+1 ≤0 …(33) -ζ r,s +Σ(a=1⇒A)η r,a,s -Σ(a=1⇒A)η r,a,s+1 ≤0 …(34)

[0078] The task assignment unit 15022 may use the above binary variables to assign tasks in a manner that satisfies other constraints, such as the specifications of the robot 20 and the task deadlines.

[0079] For example, if a specific task (t') must be executed in a specific time slot (s'), the task assignment unit 15022 may assign the task in such a way that it satisfies the following equation. In the equation, "R" may be the maximum value of the identification number of the robot 20. Σ(r=1⇒R)δ r,t',s' ≥1 …(41)

[0080] Furthermore, if a specific robot (r') cannot perform a specific task (t') due to the specifications, the task assignment unit 15022 may assign the task in such a way that the following equation is satisfied. In the equation, "S" may be the maximum value of the time slot identification number within the operating period. Σ(s=1⇒S)δ r',t',s =0 …(42)

[0081] Furthermore, if, due to specifications, none of the robots 20 can perform a particular task (t'), the task assignment unit 15022 may assign tasks in such a way that the following equation is satisfied. In this case, the task in question does not need to be assigned and may be excluded from the tasks to be performed. Σ(s=1⇒S)Σ(r=1⇒R)δ r,t',s =0 …(42')

[0082] Furthermore, if there is an upper limit to the number of tasks that a particular robot (r') can perform in a particular time slot (s'), the task assignment unit 15022 may assign tasks in such a way that the following equation is satisfied. Σ(t=1⇒T)δ r',t,s' ≦T MAX …(43)

[0083] Furthermore, if each robot 20 has an upper limit on the number of time slots it can operate continuously, the task assignment unit 15022 may assign tasks in such a way that the following equation is satisfied. In the equation, "P" is the upper limit on the number of time slots that can operate continuously. Also, in the equation, "s'" is any integer that satisfies 1 ≤ s' ≤ S. Σ(s=s'⇒s'+P+C)δ r,s ≤P …(44) Σ(s=s'⇒s'+P+C)Σ(a=1⇒A)(η r,a,s )≦P …(45)

[0084] Furthermore, if a particular robot (r') does not operate in a particular region (a') and a particular time slot (s') (i.e., the binary variable η) r',a',s' If = 0, the task assignment unit 15022 may assign tasks in such a way that one of the following equations is satisfied. Σ(t=1⇒T)δ r',t,s' ≤ 0 or δ r',s' ≤0 …(51) Σ(t=1⇒T)δ r',t,s' ≤Σ(f=1⇒F)νr',a',s',f …(52)

[0085] Furthermore, if a particular robot (r') has constraints on the relationship between the number of time slots required for charging and the number of time slots that can operate continuously, the task assignment unit 15022 may assign tasks in such a way that the following equation is satisfied. In the equation, "C" is the number of time slots required for charging, and "s'" is any integer that satisfies s'+P+C≦S. The task assignment unit 15022 may calculate the value of the number of time slots C from the full charge capacity of the battery and the remaining battery charge. Σ(s=s'⇒s'+P+C)δ r',s ≤P …(53)

[0086] Furthermore, if there is a constraint to limit the transition between the operating and non-operating states of the robot 20 in order to operate the robot 20 continuously, the task assignment unit 15022 may assign tasks in such a way that one of the following equations is satisfied. In the equation, "s'" is any integer that satisfies s'+P+C≦S. Σ(s=s'⇒s'+P+C)ζ r,s ≤2 …(54)

[0087] Furthermore, when each robot 20 needs to be charged, such as when the equipment 10 starts up, the task assignment unit 15022 may assign tasks in such a way that the following equation is satisfied. In the equation, "C'" is any integer such that C' ≤ C. Σ(s=0⇒C')δ r,s =0 …(55)

[0088] Furthermore, the task assignment unit 15022 uses the variable N f (a, s', f), variable N s (a, s', f), and variable N w You may perform area allocation and task allocation using (a, s1, s2, f). Here, the variable N f (a, s', f) represents the number of tasks executed using the relevant function in the relevant domain whose execution deadline will expire in a specific time slot (s'). Variable N s(a, s', f) represents the number of tasks executed using the relevant function in the relevant domain whose execution period begins in a specific time slot (s'). Variable N w (a, s1, s2, f) indicates the number of tasks executed using the relevant function in the relevant domain whose execution period starts and ends between the start of a specific time slot (s1) and the end of a specific time slot (s2).

[0089] As an example, the task assignment unit 15022 may assign tasks to each robot 20 in such a way that it satisfies the constraints shown by the following equation.

[0090] Σ(s=1⇒s')Σ(r=1⇒R)ν r,a,s,f ≥Σ(s=1⇒s')N f (a, s', f) …(61) Σ(s=1⇒s')Σ(r=1⇒R)ν r,a,s,f ≤Σ(s=1⇒s')N s (a, s', f) …(62) Σ(s=s1⇒s2)Σ(r=1⇒R)ν r,a,s,f ≥Σ(s=s1⇒s2)N w (a,s1,s2,f) …(63)

[0091] The task assignment unit 15022 can be treated as an optimization problem by expressing the domain and task assignment policy as an objective function. In other words, the task assignment unit 15022 can solve the MRTA problem using an optimization approach. For example, the task assignment unit 15022 can use a function of time slots (s) f(s) as the objective function min(Σ r Σ t Σ s f(s)·δ r,t,s You can use the objective function min(Σ) to perform the assignment, or you can use the objective function min(Σ) r Σ a Σ s Σ f f(s)·ν r,a,s,fAllocation may be performed using it. The function f(s) may be a function whose value increases as "s" increases. Thereby, tasks can be allocated so that each task is executed as early as possible. The task allocation unit 15022 may perform allocation using the objective function min(Σ r Σ s f(s)·δ r,s ), or may perform allocation using the objective function min(Σ r Σ a Σ s Σ f f(s)·η r,a,s ). Thereby, as many tasks as possible can be allocated to one robot 20 within one time slot. Note that the task allocation unit 15022 may solve the MRTA problem by other methods such as a market-based approach or a behavior-based approach instead of an optimization approach.

[0092] Here, the task allocation unit 15022 according to the present embodiment may not allocate one or more tasks to be executed to the robot 20. When the allocation of up to N tasks is possible, the task allocation unit 15022 may allocate only N - 1 or fewer tasks. The task allocation unit 15022 may perform allocation by excluding tasks corresponding to the number of tasks not to be allocated (also referred to as the number of non-allocated tasks) from the tasks to be executed and solving an optimization problem for the remaining tasks. The number of non-allocated tasks may be set in advance.

[0093] The tasks to be excluded may be randomly selected or may be selected based on task information or the like. The task allocation unit 15022 may perform task allocation so as to satisfy the following equation for a specific task (t') to be excluded. Thereby, the corresponding task may be excluded from the allocation. For tasks not to be allocated, the task allocation unit 15022 may perform task allocation by removing the constraint of the above equation (7). Σ(s = 1 ⇒ S)δ r,t',s = 0 …(8'')

[0094] Furthermore, the allocation of domains and tasks may be performed using methods other than integer programming, such as those based on mixed logical dynamic systems theory.

[0095] Figure 3 shows an example of various types of information stored by the device 100 according to this embodiment. The storage unit 110 may store, for example, inspection standard information, specification information, task information, environmental information, feasibility information, and external information.

[0096] Inspection standard information is information that indicates pre-set inspection standards. For example, inspection standard information may include information such as inspection type, importance level, pass / fail criteria, and whether the maintenance officer is required to be present.

[0097] The specification information is information that shows the specifications for each of the multiple robots 20. For example, the specification information may include information for each of the multiple robots 20 such as the means of locomotion, mounted sensors (measurable physical quantities), mounted arms, movement speed, continuous operation time, full battery capacity, battery level, obstacles that can be overcome, explosion resistance, number of tasks that can be performed per unit time, charging location, and current location. The specification information may also include recent operational information (for example, task information of tasks that have been performed). Here, the continuous operation time may indicate the time during which continuous operation is possible estimated according to the full battery capacity according to the standard value, or it may indicate the time during which continuous operation is possible estimated according to the full battery capacity when the battery has degraded considering SOH (State of Health), and for example it may be around 0.5 to 2 hours. Furthermore, the battery level may represent the ratio of the current battery charge capacity to the battery's standard full charge capacity, i.e., the State of Charge (SOC), or it may represent the ratio of the current battery charge capacity to the full charge capacity when the battery has degraded, taking into account the State of Health (SOH).

[0098] Task information is information that indicates the requirements for multiple tasks to be performed in the equipment 10. For example, task information may include information such as the execution location, deadline, cycle, items, procedures, target instruments, target operators, specifications required for the robot 20, and task priority for each of the multiple tasks.

[0099] Environmental information refers to information that describes the environment of facility 10. For example, environmental information may include information such as 3D maps, temperature, humidity, gas concentration, and radiation levels at each of multiple locations within facility 10.

[0100] The feasibility information indicates whether each of the multiple robots 20 is capable of performing each of the multiple tasks. In this embodiment, such feasibility information may be created manually in advance, taking into account the specifications of the robots 20, the requirements of the tasks, and the environment of the equipment 10.

[0101] External information refers to information that indicates potential disturbances that may affect the development of operational plans. Examples of external information may include maintenance plans, weather, outside temperature, and disaster information.

[0102] Figure 4 shows an example of the results of area allocation performed by the device 100 according to this embodiment. In this figure, as an example, it is shown that in time slot 1 (9:00 to 9:30), robot 20j is allocated to area A. Also in this figure, as an example, it is shown that in time slot 2 (9:30 to 10:00), robots 20j and 20k are allocated to area B. Also in this figure, as an example, it is shown that in time slot 3 (10:00 to 10:30), no robots 20 are allocated to area C.

[0103] Thus, the area allocation unit 15021 may allocate multiple robots 20 to multiple areas for each predetermined time slot. In this case, the area allocation unit 15021 does not necessarily have to allocate each of the multiple robots 20 to one of the multiple areas. For example, robot 20k has a continuous operating time of 2 hours. In this case, if robot 20k starts operation at 9:00, it is predicted that the battery will run out at 11:00. In such a case, the area allocation unit 15021 may, for example, perform area allocation in time slot 4 (10:30 to 11:00) to allow robot 20k to charge without assigning it to any area.

[0104] Furthermore, the region allocation unit 15021 may, in region allocation in one time slot, determine the starting position s and ending position e for each of the multiple robots 20 in the time slot based on the results of region allocation in other time slots. As an example, focusing on robot 20k, in this figure, "Xsk1" indicates the X coordinate of the starting position sk1 of robot 20k in time slot 1. Similarly, "Ysk1" indicates the Y coordinate of the starting position sk1 of robot 20k in time slot 1. Also, "Xek1" indicates the X coordinate of the ending position ek1 of robot 20k in time slot 1. Similarly, "Yek1" indicates the Y coordinate of the ending position ek1 of robot 20k in time slot 1.

[0105] Robot 20k is assigned to region C in time slot 1, to region B in time slot 2, and to region A in time slot 3. That is, when robot 20k transitions from time slot 1 to time slot 2, it moves between regions from region C to region B. Similarly, when robot 20k transitions from time slot 2 to time slot 3, it moves between regions from region B to region A.

[0106] In such cases, it is preferable that the endpoint position ek1 in time slot 1 of robot 20k and the starting position sk2 in time slot 2 of robot 20k are in the same vicinity. Similarly, it is preferable that the endpoint position ek2 in time slot 2 of robot 20k and the starting position sk3 in time slot 3 of robot 20k are in the same vicinity.

[0107] Therefore, the region allocation unit 15021 may determine the coordinates of the endpoint position ek1 (Xek1, Yek1) and the coordinates of the starting position sk2 (Xsk2, Ysk2) such that the endpoint position ek1 and the starting position sk2 are in close proximity. Similarly, the region allocation unit 15021 may determine the coordinates of the endpoint position ek2 (Xek2, Yek2) and the coordinates of the starting position sk3 (Xsk3, Ysk3) such that the endpoint position ek2 and the starting position sk3 are in close proximity. In other words, the region allocation unit 15021 may determine the coordinates of the endpoint position e(n-1) in time slot (n-1) and the coordinates of the starting position s(n) in time slot (n) such that the distance between the endpoint position e(n-1) in time slot (n-1) and the starting position s(n) in time slot (n) is less than or equal to a predetermined threshold (preferably the minimum).

[0108] Furthermore, if it is the beginning or end of a time slot and there is no preceding or succeeding time slot, the area allocation unit 15021 may determine the coordinates of the starting position s and the ending position e such that the distance from an arbitrary position, for example, the robot 20's standby position (charging station, etc.), is less than or equal to a predetermined threshold (preferably the minimum).

[0109] The domain allocation unit 15021 may perform such domain allocation using various existing algorithms based on the specifications of multiple robots 20 and the requirements of multiple tasks (for example, based on feasibility information). As an example, the domain allocation unit 15021 may perform domain allocation using integer programming. In this case, the domain allocation unit 15021 may perform domain allocation in a way that maximizes the objective function. In this case, the domain allocation unit 15021 may set the objective function so that its value increases as the amount (number) of tasks to be accomplished increases. Alternatively, the domain allocation unit 15021 may set the objective function so that its value decreases as the distance traveled between domains increases. Note that the distance traveled between domains is determined in a later process of determining the inter-domain path and is undetermined at this point. Therefore, the domain allocation unit 15021 may determine the distance traveled between domains based on a provisional distance predefined depending on which domain is being moved from to which domain.

[0110] Figure 5 shows an example of the task assignment results performed by the device 100 according to this embodiment. This figure shows an example of task assignment for area B in time slot 2. As described above, in time slot 2, robots 20j and 20k are assigned to area B. In this case, area B becomes the target area, and robots 20j and 20k are defined as target robots. In such a case, the task assignment unit 15022 assigns area tasks b1 to bn belonging to area B, which is the target area, from among multiple tasks, to robots 20j and 20k, which are the target robots among the multiple robots 20.

[0111] In this figure, as an example, it shows that tasks b1, b2, b4, b5, and b6 are assigned to robot 20j, and tasks b3, b5, and b7 are assigned to robot 20k. Note that task b5 is assigned to both robot 20j and robot 20k. For example, this may occur when task b5 is a multi-task such as measuring the temperature of a pipe when opening and closing a valve. In such a case, the task allocation unit 15022 can assign the task of opening and closing the valve in task b5 to robot 20k equipped with an arm, and assign the task of measuring the temperature of the pipe in task b5 to robot 20j equipped with a thermal camera. The task allocation unit 15022 may assign a common task to a plurality of robots 20 in this way, for example.

[0112] The task allocation unit 15022 may perform such task allocation by various existing algorithms based on the specifications of a plurality of robots 20 and the requirements of a plurality of tasks (for example, based on the execution availability information). As an example, the task allocation unit 15022 may perform task allocation by the integer programming method, similar to the area allocation unit 15021. The task allocation unit 15022 may not assign one or more tasks to the robot 20.

[0113] Figure 6 shows another example of the result of task allocation executed by the apparatus 100 according to the embodiment. This figure shows, as an example, the task allocation in each time slot. For example, in the time slot from 8:30 to 9:00, tasks with identification numbers "t1", "t2",... "t a " are assigned to the robot 20 with identification number "r1", no task is assigned to the robot 20 with identification number "r2", and tasks with identification numbers "t5", "t6",... "t α " may be assigned to the robot 20 with identification number "R".

[0114] Figure 7 shows an example of the in-area path determined by the apparatus 100 according to the present embodiment. This figure shows, as an example, the in-area path of area B in time slot 2.

[0115] In this figure, the white triangle indicates the starting position sj2 of robot 20j in time slot 2. The coordinates of the starting position sj2 are determined to be (Xsj2, Ysj2) as described above. Also in this figure, the white circle indicates the ending position ej2 of robot 20j in time slot 2. The coordinates of the ending position ej2 are determined to be (Xej2, Yej2) as described above. Furthermore, as described above, tasks b1, b2, b4, b5, and b6 are assigned to robot 20j in time slot 2.

[0116] In this case, the domain path determination unit 15023 may determine the domain path of the robot 20j in time slot 2 according to the starting position sj2 and the ending position ej2, as well as the respective positions of tasks b1, b2, b4, b5, and b6. In this figure, the solid arrows indicate the domain path of the robot 20j in time slot 2. In this figure, as an example, it is shown that in time slot 2, the robot 20j should move along the path from starting position sj2 → task b1 → task b4 → task b6 → task b5 → task b2 → ending position ej2.

[0117] The domain path determination unit 15023 may determine such a domain path according to predetermined rules. For example, the domain path determination unit 15023 may determine the domain path according to the rule that it passes through tasks in order from the closest task, such as from the starting position sj2 to the closest task b1 → from task b1 to the closest task b4 → ... to task b2 to the ending position ej2. However, it is not limited to this. The domain path determination unit 15023 may determine the domain path according to other rules. For example, the domain path determination unit 15023 may determine the domain path according to the rule that the total distance of the domain path is less than or equal to a predetermined threshold (preferably the minimum). For example, in this way, the domain path determination unit 15023 may determine the domain path according to the starting position s and ending position e in a single time slot.

[0118] Similarly, in this figure, the black triangle indicates the starting position sk2 of robot 20k in time slot 2. The coordinates of the starting position sk2 are determined to be (Xsk2, Ysk2) as described above. Also, in this figure, the black circle indicates the ending position ek2 of robot 20k in time slot 2. The coordinates of the ending position ek2 are determined to be (Xek2, Yek2) as described above. Furthermore, as described above, tasks b3, b5, and b7 are assigned to robot 20k in time slot 2.

[0119] In this case, the domain path determination unit 15023 may determine the domain path of the robot 20k in time slot 2 according to the starting position sk2 and the ending position ek2, as well as the respective positions of tasks b3, b5, and b7. In this figure, the dotted arrows indicate the domain path of the robot 20k in time slot 2. In this figure, as an example, it is shown that in time slot 2, the robot 20k should move along the path from starting position sk2 → task b3 → task b7 → task b5 → ending position ek2.

[0120] As mentioned above, task b5 is assigned to both robot 20j and robot 20k. In such a case, the domain path determination unit 15023 may determine the domain paths of robot 20j and robot 20k respectively so that robot 20j and robot 20k are at the location of task b5 at the same time. As an example, if a common task is assigned to multiple target robots, the domain path determination unit 15023 may determine the domain paths of multiple target robots respectively so as to minimize (preferably minimize) the value of the cost function, using the waiting time for the arrival of other target robots at the location of the common task as the cost.

[0121] Furthermore, the "x" marks in this figure indicate the possibility of collisions between multiple target robots. For example, the path taken by robot 20j from task b2 to endpoint ej2 and the path taken by robot 20k from task b5 to endpoint ek2 may intersect and pass through the intersection at the same time. In such a case, the region path determination unit 15023 may, for example, change the path taken by robot 20k from task b5 to endpoint ek2 so that it does not intersect with the path taken by robot 20j from task b2 to endpoint ej2. In the above explanation, the region path determination unit 15023 showed as an example the case in which the region path determination unit 15023 changes the path of one of the robots 20 so that the paths of multiple target robots do not intersect, but it is not limited to this. Even if the paths of multiple target robots intersect, there is no possibility of collision if they pass through the intersection at different times. Therefore, the region path determination unit 15023 may change the settings so that one of the target robots waits so that the multiple target robots pass through the intersection at different times. For example, the domain path determination unit 15023 may determine a domain path for each of the multiple target robots in such a way that collisions between them are avoided. However, if the movement altitudes of the multiple target robots are different and there is no possibility of collision, the domain path determination unit 15023 does not need to perform collision avoidance.

[0122] Figure 8 shows an example of an inter-region path determined by the apparatus 100 according to this embodiment. This figure shows an example of an inter-region path between region A and region B between time slot 1 and time slot 2.

[0123] In this figure, the white circle indicates the endpoint position ej1 of robot 20j in time slot 1. The coordinates of the endpoint position ej1 are determined to be (Xej1,Yej1) as described above. Also in this figure, the white triangle indicates the starting position sj2 of robot 20j in time slot 2. The coordinates of the starting position sj2 are determined to be (Xsj2,Ysj2) as described above.

[0124] In this case, the inter-region path determination unit 15024 may determine the inter-region path of the robot 20j between time slot 1 and time slot 2 according to the endpoint position ej1 in time slot 1 and the starting position sj2 in time slot 2. In this figure, the solid arrows indicate the inter-region path of the robot 20j between time slot 1 and time slot 2.

[0125] The inter-region path determination unit 15024 may determine such inter-region paths according to predetermined rules. For example, the inter-region path determination unit 15024 may identify obstacles that could hinder the movement of the robot 20j in light of the robot 20j's means of movement, based on specification information and environmental information. The inter-region path determination unit 15024 may then determine an inter-region path according to the rule that the distance from the endpoint position ej1 to the starting point position sj2 should be less than or equal to a predetermined threshold (preferably the minimum), while avoiding the identified obstacles. For example, the inter-region path between time slot 1 and time slot 2 of the robot 20j may be determined in this way. However, it is not limited to this. The inter-region path determination unit 15024 may determine an inter-region path according to other rules. For example, the inter-region path determination unit 15024 may determine an inter-region path according to the endpoint position e in one time slot and the starting point position s in the subsequent time slot.

[0126] Similarly, in this figure, the black circle indicates the endpoint position ei1 of robot 20i in time slot 1. The coordinates of the endpoint position ei1 are determined to be (Xei1, Yei1) as described above. Also, in this figure, the black triangle indicates the starting position si2 of robot 20i in time slot 2. The coordinates of the starting position si2 are determined to be (Xsi2, Ysi2) as described above.

[0127] In this case, the inter-region path determination unit 15024 may determine the inter-region path of the robot 20i between time slot 1 and time slot 2 according to the endpoint position ei1 in time slot 1 and the starting position si2 in time slot 2. In this figure, the dotted arrows indicate the inter-region path of the robot 20i between time slot 1 and time slot 2.

[0128] Furthermore, the "x" marks in this figure indicate the possibility of collisions between multiple robots 20 moving between the same regions. For example, the path taken by robot 20j from endpoint ej1 to starting point sj2 and the path taken by robot 20i from endpoint ei1 to starting point si2 may intersect and pass through the intersection at the same time. In such a case, the inter-region path determination unit 15024 may change the path of robot 20i so that the multiple robots pass through the intersection at different times. Collision avoidance in the inter-region path determination unit 15024 may also be performed according to various rules, similar to the intra-region path determination unit 15023. For example, the inter-region path determination unit 15024 may determine inter-region paths for each of the multiple robots 20 in such a way that they avoid collisions with each other.

[0129] Figure 9 shows an example of a flowchart of a method performed by the apparatus 100 according to this embodiment. Each step in the method may be performed with the computer as the primary operator. However, in each step, it is sufficient that the computer is the primary operator overall, and it may include cases where a part other than the computer performs a part that is not the main part. The same applies to other flowcharts.

[0130] In step S702, the device 100 acquires various information. For example, the acquisition processing unit 1501 may acquire various information for constructing an operation plan for the first operation period. As an example, the acquisition processing unit 1501 may acquire inspection standard information, specification information, task information, environmental information, feasibility information, and external information, as shown in Figure 3. In this embodiment, the acquisition processing unit 1501 may acquire information that has been pre-stored in the storage unit 110. The storage unit 110 may have information pre-created by a human in advance, such as the specifications of the robot 20, the requirements of the task, and the environment of the equipment 10, as feasibility information.

[0131] In step S704, the apparatus 100 generates an operation plan. For example, the generation processing unit 1502 may generate candidate operation plans in which multiple robots 20 perform multiple tasks. The generation processing unit 1502 may generate a first operation plan for a first operating period, and may generate one first operation plan each time step S704 is performed.

[0132] The generation processing unit 1502 may generate an operation plan that allows at least one task not to be executed. In this embodiment, as an example, the generation processing unit 1502 may generate an operation plan such that the number of tasks that are not executed, i.e., the number of unassigned tasks, is any value from 0 to M. As an example, the generation processing unit 1502 may generate an operation plan by incrementing the number of unassigned tasks from 0 to M each time step S730 is performed a standard number of times, or it may generate an operation plan by randomly determining the number of unassigned tasks within the range of 0 to M. Note that M may be a value predetermined as the upper limit of the number of unassigned tasks. Alternatively, M may be the total number of tasks. Details of step S704 will be described later.

[0133] In step S706, the device 100 sets the penalty parameter for each task. For example, the setting processing unit 1504 may set the penalty parameter for each task to a larger value the higher the priority of the task. As an example, if the priority of a task is set as a numerical value, the setting processing unit 1504 may simply set that numerical value as the penalty parameter.

[0134] In step S708, the device 100 determines whether the termination condition for generating the operation plan is met. For example, the decision processing unit 1503 may determine whether the termination condition that a standard number of operation plans are generated is met. The standard number may be set to any value in advance. If it is determined that the termination condition is not met (step S708; No), the process may proceed to step S704 described above. If it is determined that the termination condition is met (step S708; Yes), the process may proceed to step S710.

[0135] In step S710, the apparatus 100 determines a first operation plan from the generated operation plans. For example, the decision processing unit 1503 may use the objective function described above to determine the first operation plan among the generated first operation plans in which the value of the objective function satisfies the criteria. The decision processing unit 1503 may calculate the value of the objective function for each of the first operation plans generated in step S704 and determine the first operation plan in which the value of the objective function is minimized. The decision processing unit 1503 may apply a penalty to the objective function according to the penalty parameter of the task that is not executed, from among the penalty parameters set for each task, and calculate the objective function for each first operation plan.

[0136] In step S712, the device 100 outputs a first operation plan. For example, the output unit 160 may output at least a portion of the area allocation, task allocation, intra-area routes, and inter-area routes in the first operation plan. As an example, the output unit 160 may output all of the area allocation, task allocation, intra-area routes, and inter-area routes in the first operation plan.

[0137] In step S722, the device 100 acquires various information. For example, the acquisition processing unit 1501 may acquire various information for constructing an operation plan for the operation period following the first operation period, i.e., the second operation period, in the same manner as in step S702 described above. The task information acquired in step S722 may include information on new tasks that were not acquired in step S702. The task information acquired in step S722 does not have to include information on tasks executed by the first operation plan, and may include information on tasks that are not executed in the first operation plan. Note that the processing in step S722 may be performed before, during, or after the execution of the first operation plan determined in step S710.

[0138] In step S724, the device 100 generates the next operation plan, i.e., the second operation plan. For example, the generation processing unit 1502 may generate candidate second operation plans for the second operation period in which multiple tasks are performed by multiple robots 20, in the same manner as in step S704 described above. The generation processing unit 1502 may generate second operation plans for multiple tasks for which task information was acquired in step S722, and may generate second operation plans for new multiple tasks, including tasks that are not performed in the first operation plan.

[0139] In step S726, the device 100 sets penalty parameters for each task. For example, the setting processing unit 1504 may set the penalty parameters for each task to larger values ​​the higher the priority of the task, in the same manner as in step S706 described above. However, the setting processing unit 1504 may set the penalty parameters for tasks that are not executed in the first operation plan, among the tasks for which task information was obtained in step S702, to be larger than when determining the first operation plan, that is, larger than the value in step S706. As an example, the setting processing unit 1504 may add or multiply the penalty parameters set in step S706 by a constant and set them as new penalty parameters.

[0140] In step S728, the device 100 determines whether the termination conditions for generating the operation plan are met. For example, the decision processing unit 1503 may determine whether the termination conditions are met in the same manner as in step S708 described above. If it is determined that the termination conditions are not met (step S728; No), the process may proceed to step S724 described above. If it is determined that the termination conditions are met (step S728; Yes), the process may proceed to step S730.

[0141] In step S730, the apparatus 100 determines a second operation plan from the generated operation plan. For example, the determination processing unit 1503 may, in the same manner as in step S710 described above, use an objective function to determine a second operation plan from the generated second operation plans such that the value of the objective function satisfies the criteria.

[0142] The device 100 terminates this flow, for example, in this manner. Note that if an operation plan is to be generated for the third operation period and beyond, the device 100 may repeat the same processing as in steps S722 to S732 to output the operation plans for the third and subsequent periods. Furthermore, in the above explanation, the termination condition for generating operation plans was described as the generation of a standard number of operation plans; however, it may also be defined as the generation of operation plans such that the value of the objective function satisfies the standard condition. In this case, in the processing of steps S708 and S728, the decision processing unit 1503 may determine whether the generated first and second operation plans satisfy the standard condition, and then determine whether the termination condition is met.

[0143] As a result of the above operation, the penalty parameter for tasks not performed in the first operational plan is made larger when determining the second operational plan than when determining the first operational plan. Therefore, the second operational plan can be determined in a way that more reliably ensures that tasks not performed in the first operational plan are performed.

[0144] Figure 10 shows an example of a flowchart of the method performed by the device 100. By the operation shown in this figure, the device 100 may generate an operation plan in steps S704 and S724 described above.

[0145] In step S920, the device 100 performs area allocation. For example, the area allocation unit 15021 of the generation processing unit 1502 may perform area allocation, assigning the multiple robots 20 to multiple areas that divide the equipment 10, based on at least some of the various information acquired in steps S702 and S722, for example, the feasibility information, and based on the specifications of the multiple robots 20 and the requirements of the multiple tasks to be performed in the equipment 10 to be operated. As an example, as shown in Figure 4, the area allocation unit 15021 may allocate robot 20j to area A, robot 20i to area B, and robot 20k to area C in time slot 1. The area allocation unit 15021 may also allocate robot 20i to area A, and robots 20j and 20k to area B in time slot 2. The area allocation unit 15021 may also allocate robots 20i and 20k to area A, and robot 20j to area B in time slot 3.

[0146] In this case, as described above, the area allocation unit 15021 may, in addition to assigning each robot 20 to each area for each time slot, determine the starting position s and ending position e for each of the multiple robots 20 in the time slot based on the results of area allocation in other time slots. The area allocation unit 15021 supplies the results of the area allocation to the task allocation unit 15022, the area path determination unit 15023, the inter-area path determination unit 15024, and the determination processing unit 1503.

[0147] In step S930, the device 100 performs task assignment. For example, the task assignment unit 15022 of the generation processing unit 1502 may assign multiple tasks to be performed to multiple robots 20. The task assignment unit 15022 may perform task assignment by assigning, for each of the multiple regions, a target region to a target robot, which is at least one robot among the multiple robots 20 that is assigned to the target region, at least one task belonging to the target region among the multiple tasks. As an example, as shown in Figure 5, the task assignment unit 15022 may assign tasks b1, b2, b4, b5, b6, and b7 to robot 20j and tasks b3, b5, and b7 to robot 20k for region B in time slot 2.

[0148] The task assignment unit 15022 may similarly perform task assignments for other time slots and other regions. Note that the results of task assignments for these other regions do not affect each other in any way and are completely independent. Therefore, the task assignment unit 15022 can process task assignments for multiple regions in parallel. The task assignment unit 15022 supplies the results of the task assignments to the region path determination unit 15023 and the determination processing unit 1503.

[0149] Here, the task assignment unit 15022 may choose not to assign at least one of the multiple tasks to be executed. In this embodiment, as an example, the task assignment unit 15022 may assign the number of unassigned tasks to any value from 0 to M. For example, the task assignment unit 15022 may increment the number of unassigned tasks from 0 to M and assign them each time the operation shown in the figure is performed a standard number of times, or it may randomly determine the number of unassigned tasks within the range of 0 to M and assign them. However, if the number of tasks to be executed is large and it is not possible to assign all tasks, the task assignment unit 15022 may choose not to assign tasks that are greater than or equal to the number of tasks that cannot be assigned. For example, if L tasks cannot be assigned out of the tasks to be executed, the task assignment unit 15022 may assign the number of unassigned tasks to any value from L to L+M.

[0150] In step S940, the device 100 determines the path within the region. For example, the region path determination unit 15023 of the generation processing unit 1502 may determine the path within the region for moving the target robot within the target region based on the result of the task assignment performed in step S930. As an example, for region B in time slot 2, the region path determination unit 15023 may determine the path within the region for robot 20j so that it moves along the path of the solid arrow shown in Figure 7. Similarly, the region path determination unit 15023 may determine the path within the region for robot 20k so that it moves along the path of the dotted arrow shown in Figure 7. In this case, as described above, the region path determination unit 15023 may determine the path within the region according to the starting position s and ending position e in one time slot. Furthermore, as described above, the region path determination unit 15023 may determine the path within the region for each of the multiple target robots so as to avoid collisions with each other.

[0151] The domain path determination unit 15023 may similarly determine domain paths for other time slots and other domains. The determination of domain paths for these other time slots and other domains is completely independent and does not affect each other in any way. Therefore, the domain path determination unit 15023 can process the determination of domain paths for multiple time slots and multiple domains in parallel. The domain path determination unit 15023 supplies the domain paths to the determination processing unit 1503.

[0152] In step S950, the device 100 determines the inter-region paths. For example, the inter-region path determination unit 15024 of the generation processing unit 1502 may determine inter-region paths to move multiple robots 20 between regions based on the region assignment performed in step S920. As an example, for the relationship between region A and region B between time slot 1 and time slot 2, the inter-region path determination unit 15024 may determine the inter-region path of robot 20j so that it moves along the path indicated by the solid arrow in Figure 8. Similarly, the inter-region path determination unit 15024 may determine the inter-region path of robot 20i so that it moves along the path indicated by the dotted arrow in Figure 8. In this case, as described above, the inter-region path determination unit 15024 may determine the inter-region paths according to the endpoint position e in one time slot and the starting position s in the subsequent time slot. Furthermore, as described above, the inter-region path determination unit 15024 may determine inter-region paths for each of the multiple robots 20 in such a way that collisions with each other are avoided.

[0153] The inter-domain path determination unit 15024 may similarly determine inter-domain paths between other time slots and between other domains. Note that the determination of inter-domain paths between other time slots and between other domains is completely independent and does not affect each other in any way. Therefore, the inter-domain path determination unit 15024 can process the determination of inter-domain paths between multiple time slots and multiple domains in parallel. The inter-domain path determination unit 15024 supplies the inter-domain paths to the determination processing unit 1503.

[0154] In the above explanation, the case in which the device 100 executes step S750 after steps S730 and S740 was shown as an example. However, it is not limited to this. The determination of inter-region paths in step S750 and the results of task assignment in step S730 and the determination of intra-region paths in step S740 do not affect each other in any way and are completely independent. Therefore, the device 100 may execute step S750 before steps S730 and S740, or it may execute step S750 in parallel with steps S730 and S740.

[0155] Traditionally, it has been known that an optimization problem is constructed based on various factors and planning policies, and that solving this problem yields a desired operational plan. However, solving the operational planning problem for a multi-robot system is computationally very costly, known as NP-hard, making it impractical for practical use. Furthermore, the computational cost also depends to some extent on the scale of the equipment 10 and the number of robots to be introduced. For example, in the case of introducing many robots into a large-scale facility 10 such as a plant, it is expected that simply implementing a method to reduce the computational load and obtain an approximate solution will not be sufficient for practical use.

[0156] In contrast, the apparatus 100 according to this embodiment divides the process into area allocation, task allocation, intra-area path determination, and inter-area path determination. As a result, the apparatus 100 according to this embodiment can solve the operational planning problem involving multiple robots 20 and construct a realistic operational plan.

[0157] In particular, as described above, task assignments for different regions are independent of each other. Therefore, the device 100 according to this embodiment can process task assignments for multiple regions in parallel. Similarly, the determination of intra-region paths for different time slots and different regions is independent of each other. Therefore, the device 100 according to this embodiment can process task assignments for multiple time slots and multiple regions in parallel. Similarly, the determination of inter-region paths between different time slots and between different regions is independent of each other. Therefore, the device 100 according to this embodiment can process the determination of inter-region paths between multiple time slots and between multiple regions in parallel. As a result, the device 100 according to this embodiment can solve the operation planning problem at high speed regardless of the scale of the equipment 10 or the number of robots 20, and can construct a realistic operation plan in a realistic computation time.

[0158] Furthermore, the apparatus 100 according to this embodiment can also determine the starting and ending positions of each of the multiple robots 20 in a time slot based on the results of the area allocation in other time slots during the area allocation in one time slot. As a result, with the apparatus 100 according to this embodiment, the starting position s and ending position e are determined by the area allocation process, so the task allocation process and the in-area path determination process can be made independent of the inter-area path determination process, and flexibility can be provided in the execution of subsequent processes.

[0159] Furthermore, the apparatus 100 according to this embodiment can also determine the route within the area according to the starting position s and ending position e in a single time slot. As a result, the apparatus 100 according to this embodiment follows the results of area allocation when determining the route within the area, thus ensuring consistency in the operation plan.

[0160] Furthermore, the apparatus 100 according to this embodiment can also determine the inter-region route according to the endpoint position e in one time slot and the starting position s in the subsequent time slot. As a result, the apparatus 100 according to this embodiment follows the results of region allocation when determining the inter-region route, thus ensuring consistency in the operation plan.

[0161] Furthermore, the apparatus 100 according to this embodiment can also determine at least one of intra-area paths or inter-area paths to avoid collisions between the robots 20. As a result, even when it is necessary to assign a path to each of the multiple robots 20, the apparatus 100 according to this embodiment can avoid interference between the robots 20 and prevent the operation from being disrupted as planned due to interference.

[0162] Furthermore, the device 100 according to this embodiment can also output at least one of the following as an operation plan: area allocation, task allocation, intra-area routes, or inter-area routes. As a result, the device 100 according to this embodiment can make part or all of the plan for operating the equipment 10 by the multi-robot system known to the user or other systems, thereby reducing the load on the user or other systems.

[0163] Figure 11 shows an example of a block diagram of the apparatus 100 according to the first modification of this embodiment, along with the equipment 10 to be operated. In this figure, the same reference numerals are used for components having the same function and configuration as in Figure 1, and descriptions are omitted below except for differences. In the above-described embodiment, one example was shown in which the apparatus 100 stores execution feasibility information that has been prepared manually in advance, but in this modification, the apparatus 100 itself determines whether it is feasible or not. The apparatus 100 according to this modification further includes a feasibility determination unit 1507 in addition to the functional unit of the apparatus 100 according to the above-described embodiment. The feasibility determination unit 1507 may be realized by the processor 150 executing a program in the storage unit 110.

[0164] The feasibility determination unit 1507 determines whether one or more robots are capable of performing one or more tasks, based on specification information indicating the specifications of one or more robots among the multiple robots 20, and task information indicating the requirements of one or more tasks among the multiple tasks. In particular, the feasibility determination unit 1507 may access the storage unit 110 and determine whether each of the multiple robots 20 is capable of performing each of the multiple tasks, based on specification information indicating the specifications of each of the multiple robots 20, and task information indicating the requirements of the multiple tasks. For example, for a task where the item is sound collection, the feasibility determination unit 1507 may determine that robots 20i and 20k equipped with microphones are capable of performing the task, while robot 20j not equipped with a microphone is not capable of performing the task. Similarly, for a task where the item is photography, the feasibility determination unit 1507 may determine that robots 20i and 20j equipped with cameras are capable of performing the task, while robot 20k not equipped with a camera is not capable of performing the task. Similarly, for a task involving valve operation, robot 20k equipped with an arm may be determined to be capable of performing the task, while robots 20i and 20j, which are not equipped with an arm, may be determined to be incapable of performing the task.

[0165] Furthermore, the feasibility determination unit 1507 may determine whether a task can be executed based on environmental information indicating the environment of the equipment 10 for each area to which each of the multiple tasks belongs. For example, for a task belonging to an area where the radiation dose is above a threshold, the robot 20k equipped with explosion-proof resistance may be determined to be able to perform the task, while the robots 20i and 20j, which do not have explosion-proof resistance, may be determined to be unable to perform the task. Similarly, for a task located beyond a 30cm step, the robot 20j, whose means of movement is flight, and the robot 20k, which can overcome steps of 50cm or less, may be determined to be able to perform the task, while the robot 20i, which can only overcome steps of 20cm or less, may be determined to be unable to perform the task.

[0166] The feasibility determination unit 1507 may determine the feasibility of each of the multiple tasks from multiple perspectives. In this case, if the feasibility of execution differs depending on the perspective, the feasibility determination unit 1507 may take the logical AND of the results of the feasibility determination. For example, for a task in which the item is sound collection and the radiation dose is above a threshold, the feasibility determination unit 1507 may determine that a robot 20k equipped with a microphone and having explosion-proof resistance can perform the task, while a robot 20i equipped with a microphone but without explosion-proof resistance cannot perform the task.

[0167] The feasibility determination unit 1507 may, for example, supply the determination result of whether or not execution is possible to the storage unit 110. The storage unit 110 may store the determination result supplied by the feasibility determination unit 1507 as execution feasibility information. The area allocation unit 15021 may then perform area allocation based on the execution feasibility determination made by the feasibility determination unit 1507.

[0168] In this modified version, the apparatus 100 determines whether each of the multiple robots 20 is capable of performing each of the multiple tasks based on specification information and task information. As a result, the apparatus 100 according to this modified version avoids the need to manually create feasibility information, thereby reducing the manpower required to determine feasibility, and allows for the construction of an operational plan based on objective feasibility information that is not subject to variations in judgment criteria or judgment errors.

[0169] Furthermore, the modified device 100 can also determine whether or not to execute a task based on environmental information for each area to which each of the multiple tasks belongs. As a result, the modified device 100 determines whether or not to execute a task based not only on the specifications of the robot 20 and the requirements of the task, but also on the environment of each area in which the task is located, so that it can determine whether or not to execute a task in accordance with the actual usage environment.

[0170] Figure 12 shows an example of a block diagram of the apparatus 100 according to a second modification of this embodiment, along with the equipment 10 to be operated. In this figure, the same reference numerals are used for components having the same functions and configurations as in Figures 1 and 11, and explanations are omitted below except for differences. In the above-described embodiment and modification, the configuration up to the point where the apparatus 100 outputs an operation plan was shown as an example, but in this modification, the apparatus 100 further acquires an index that evaluates the output operation plan and outputs it. The apparatus 100 according to this modification further includes an index acquisition unit 1508 in addition to the functional units of the apparatus 100 according to the above-described embodiment. The index acquisition unit 1508 may be realized by the processor 150 executing a program in the storage unit 110. The apparatus 100 according to this modification may further include the feasibility determination unit 1507 in the first modification.

[0171] The indicator acquisition unit 1508 acquires indicators that evaluate the operation plan according to predetermined criteria. In this case, the indicator acquisition unit 1508 may acquire indicators that evaluate the operation plan in light of, for example, the running cost of the robot 20, the operating rate of the robot 20, and the total operating time. The indicator acquisition unit 1508 may acquire indicators that it has evaluated itself using an evaluation formula or evaluation model, or it may acquire indicators that have been evaluated by another system, or it may acquire indicators that have been evaluated manually. The indicator acquisition unit 1508 may also acquire the value of the objective function calculated for the operation plan determined by the decision processing unit 1503 as an indicator. In this case, the indicator acquisition unit 1508 may acquire the value of the objective function from the decision processing unit 1503. The indicator acquisition unit 1508 supplies the acquired indicators to the output processing unit 1505 and outputs them via the output unit 160.

[0172] Thus, the device 100 according to this modified example acquires and outputs an index that evaluates the operation plan. As a result, the device 100 according to this modified example can not only inform the user or other systems of the constructed operation plan, but also how highly the operation plan is evaluated.

[0173] Figure 13 shows an example of a block diagram of the apparatus 100 according to a third modified example of this embodiment, along with the equipment 10 to be operated. In this figure, the same reference numerals are used for components having the same function and configuration as in Figure 12, and explanations are omitted below except for differences. In the modified example described above, the configuration up to the point where the apparatus 100 outputs an indicator was shown as an example, but in this modified example, the apparatus 100 further changes at least one of the combination of robots 20 or the division of the equipment 10 into multiple areas based on the outputted indicator.

[0174] In other words, the above description described a case in which the device 100 constructs an operation plan under the premise that the combination of robots 20 is fixed (in the above description, it has already been decided that three robots 20, robot 20i, robot 20j, and robot 20k, will be introduced into the facility 10), and that the division of the facility 10 into multiple areas is fixed (in the above description, the facility 10 is pre-divided into three areas: area A, area B, and area C). However, in this modified example, the device 100 changes at least one of these based on the output indicators. The device 100 according to this modified example further includes a robot change unit 1509 and an area change unit 1510 in addition to the functional unit of the device 100 according to the above modified example. The robot change unit 1509 and the area change unit 1510 may be realized by the processor 150 executing a program in the storage unit 110. The device 100 according to this modified example may further include the feasibility determination unit 1507 in the first modified example. In the modified apparatus 100, the indicator acquisition unit 1508 supplies the indicator to the robot change unit 1509 and the area change unit 1510.

[0175] The robot modification unit 1509 changes at least one of the number or specifications of the multiple robots 20 based on an indicator that evaluates the operation plan according to predetermined criteria. In this case, the robot modification unit 1509 may, for example, change only the number of robots 20 to be introduced into the equipment 10, change only the specifications of the robots to be introduced into the equipment 10 while keeping the number the same, or change both the number and specifications. For example, if the total operating time is long and the indicator does not meet predetermined criteria, the robot modification unit 1509 may increase the number of robots 20 to be introduced into the equipment 10. In this case, the robot modification unit 1509 may, for example, add a robot with the same specifications as an existing robot already included in the multiple robots 20 (for example, a robot 20i(2) with the same specifications as robot 20i), or add a new robot with different specifications from the existing robot (for example, a robot 20l). Furthermore, if the utilization rate of one robot 20 is extremely high and the indicator does not meet predetermined standards, the robot modification unit 1509 may change the specifications of the robot to be introduced into the equipment 10. In this case, the robot modification unit 1509 may, for example, change at least one of the existing robots already included in the multiple robots 20 to a robot with the same specifications as another existing robot (for example, changing robot 20i to robot 20j(2) with the same specifications as robot 20j), or change it to a new robot with different specifications from the existing robot (for example, changing robot 20i to robot 20l).

[0176] The robot change unit 1509 notifies the storage unit 110 of any change in the number or specifications of any of the robots 20. In response, the storage unit 110 updates the stored information about the robots 20 (e.g., specification information) with the information of the new robots 20. The generation processing unit 1502 then generates a new operation plan, and the decision processing unit 1503 determines the operation plan to be executed. For example, in the generation processing unit 1502, the area allocation unit 15021 reassigns the new robots 20, whose number or specifications have been changed, to multiple areas. In response, the task allocation unit 15022 re-executes the task allocation, the area path determination unit 15023 re-determines the paths within the areas, and the area path determination unit 15024 re-determines the paths between areas. The device 100 then reconstructs the operation plan, and the output unit 160 outputs the reconstructed operation plan.

[0177] The domain modification unit 1510 modifies at least one of the number of domains or boundaries of multiple domains based on an indicator that evaluates the operation plan according to predetermined criteria. In this case, the domain modification unit 1510 may, for example, change only the number of domains, change only the boundaries while keeping the number of domains the same, or change both the number of domains and boundaries. For example, if the total operating time is long and the indicator does not meet the predetermined criteria, the domain modification unit 1510 may increase the number of domains. In this case, the domain modification unit 1510 may, for example, modify multiple domains to further divide the equipment 10, which is divided into three domains, into four domains. Also, if the utilization rate of one robot 20 is extremely high and the indicator does not meet the predetermined criteria, the domain modification unit 1510 may change the boundaries for dividing the equipment 10 into multiple domains. In this case, the area modification unit 1510 may, for example, modify all of the boundaries to re-divide the equipment 10 into three areas: area D, area E, and area F, or it may modify only a part of the boundaries to re-divide the equipment 10 into three areas: area A, area D, and area E.

[0178] The area change unit 1510 notifies the storage unit 110 of any change in the number of areas or at least one of the boundaries of multiple areas. This notification may include information indicating the location of the boundaries. In response, the storage unit 110 reorganizes the stored task information for each of the new multiple areas and updates the tasks within each area. The area assignment unit 15021 then reassigns the multiple robots 20 to the new multiple areas in which at least one of the number of areas or boundaries has been changed. In response, the task assignment unit 15022 re-executes the task assignment, the area path determination unit 15023 re-determines the paths within each area, and the area path determination unit 15024 re-determines the paths between areas. The device 100 then reconstructs the operation plan, and the output unit 160 outputs the operation plan reconstructed according to the new multiple areas.

[0179] Figure 14 shows an example of a flowchart illustrating the method that the apparatus 100 according to a third modified example of this embodiment performs to repeatedly construct an operation plan.

[0180] In step S1110, the device 100 sets the number and specifications of the multiple robots 20 to default. For example, the device 100 may set the multiple robots 20 as three robots 20: robot 20i, robot 20j, and robot 20k. Accordingly, the storage unit 110 may store information indicating the specifications of each of the robots 20i, robot 20j, and robot 20k as specification information.

[0181] In step S1120, the device 100 sets the number of regions and boundaries of the multiple regions to default. For example, the device 100 may configure the multiple regions so that the equipment 10 is divided into three regions: region A, region B, and region C. Accordingly, the storage unit 110 groups the task information to be stored for each region A, region B, and region C, and stores it as in-region tasks for each region A, region B, and region C.

[0182] Accordingly, the memory unit 110 may update the execution feasibility information. In this case, the memory unit 110 may update the stored execution feasibility information with information created manually, or it may update it with the result of a re-determination by the feasibility determination unit 1507.

[0183] In step S1130, the apparatus 100 constructs an operation plan. The construction of the operation plan is as described above. For example, the construction of the operation plan may be carried out by the processes from step S704 to step S710 (or from step S724 to step S730) described above.

[0184] In step S1140, the device 100 acquires an index. The acquisition of the index is also as described above.

[0185] In step S1150, the device 100 determines whether the termination condition is met. For example, the device 100 determines whether the indicator obtained in step S1140 meets a predetermined standard. If it determines that the indicator does not meet the predetermined standard (No), the device 100 proceeds to step S1160.

[0186] In step S1160, the device 100 changes at least one of the number or specifications of the multiple robots 20, and / or changes at least one of the number of regions or boundaries of the multiple regions. In this case, the robot modification unit 1509 may change only the number of robots 20 to be introduced into the equipment 10, change only the specifications of the robots to be introduced into the equipment 10 while keeping the number the same, or change both the number and specifications. In this case, the region modification unit 1510 may change only the number of regions of the multiple regions, change the boundaries while keeping the number of regions the same, or change both the number of regions and boundaries.

[0187] Then, the device 100 returns to step S1130 and continues the flow. That is, the device 100 updates the various information stored in the memory unit 110 and reconstructs the operation plan based on the new information.

[0188] If, in step S1150, the device 100 determines that the indicator meets a predetermined criterion (Yes), the device proceeds to step S1170.

[0189] In step S1170, the device 100 outputs an operation plan. For example, the output unit 160 outputs an operation plan in which the indicators were determined to meet predetermined criteria in step S1150.

[0190] In the above explanation, the device 100 was shown as an example in step S1150 to determine whether the termination condition is met based on whether the indicator meets a predetermined standard, but it is not limited to this.

[0191] In step S1150, the device 100 may determine whether the termination condition is met based on whether the number of times the operation plan has been constructed has reached a predetermined number. Alternatively, in step S1150, the device 100 may determine whether the termination condition is met based on whether the elapsed time since the start of this flow has reached a predetermined time. In this case, the device 100 may repeat the construction of the operation plan and acquisition of the indicator multiple times, either according to predetermined rules or randomly, while reconfiguring the robot 20 / re-dividing the equipment 10, regardless of whether the indicator meets the criteria. The device 100 may then select the operation plan that results in the best indicator from among the multiple operation plans constructed until the termination condition is met, and output it.

[0192] Thus, the device 100 according to this modified example changes at least one of the number or specifications of the multiple robots 20 based on the indicators used to evaluate the operation plan, reconstructs the operation plan, and outputs it. As a result, the device 100 according to this modified example can determine the appropriate number and specifications of the robots 20 by repeatedly solving the operation plan problem while adjusting the number and specifications of the multiple robots 20.

[0193] Furthermore, the modified device 100 modifies the number of regions or at least one of the boundaries of multiple regions based on the indicators used to evaluate the operation plan, reconstructs the operation plan, and outputs it. Thus, the modified device 100 can determine the appropriate number of regions and boundaries by repeatedly solving the operation plan problem while adjusting the number of regions and boundaries of multiple regions. In this way, the modified device 100 can determine the appropriate number and specifications of robots 20, as well as how to set the number of regions and boundaries. Therefore, the modified device 100 can reduce the man-hours required for setting these parameters and clearly indicate whether the settings were appropriate.

[0194] Figure 15 shows an example of a block diagram of the apparatus 100 according to the fourth modification of this embodiment, along with the equipment 10 to be operated. In this figure, the same reference numerals are used for components having the same functions and configurations as in Figures 1, 11 to 13, and explanations are omitted below except for differences. In the above-described embodiment and modification, the configuration up to the point where the apparatus 100 outputs an operation plan was shown as an example, but in this modification, the apparatus 100 further controls a plurality of robots 20 according to the output operation plan. The apparatus 100 according to this modification further includes a control unit 170 in addition to the functional unit provided in the apparatus 100 according to the above-described embodiment. The apparatus 100 according to this modification may further include a feasibility determination unit 1507 in the first modification, an index acquisition unit 1508 in the second modification, and a robot change unit 1509 and a region change unit 1510 in the third modification. In the apparatus 100 according to this modification, the output unit 160 outputs the operation plan to at least the control unit 170.

[0195] The control unit 170 controls multiple robots 20 according to the operation plan. As described above, the operation plan output from the output unit 160 may include at least one of area allocation, task allocation, intra-area paths, and inter-area paths. Therefore, the control unit 170 may control multiple robots 20 so that the target robots are placed in the target area according to the area allocation. The control unit 170 may also control multiple robots 20 so that the target robots perform intra-area tasks according to the task allocation. The control unit 170 may have the robots 20 perform tasks using execution procedures generated by the method described in Non-Patent Document 2 above. The control unit 170 may also control multiple robots 20 so that the target robots move within the area according to the intra-area paths. The control unit 170 may also control multiple robots 20 so that they move between areas according to inter-area paths.

[0196] Furthermore, the term "control" as used herein may include not only directly controlling the robot 20, but also indirectly controlling the robot 20 by controlling the controller that controls the robot 20.

[0197] In this modified example, the device 100 controls multiple robots 20 according to the operation plan. As a result, the device 100 in this modified example not only constructs the operation plan but also functions as a control device, allowing the constructed operation plan to be translated into actual control.

[0198] Figure 16 shows an example of a block diagram of the apparatus 100 according to the second embodiment, along with the equipment 10 to be operated. In this figure, the same reference numerals are used for components having the same function and configuration as in Figures 1, 11 to 13, and 15, and explanations are omitted below except for differences. In the above-described embodiments and modifications, the configuration of the apparatus 100 that constructs an operation plan for executing tasks for which task information has been acquired in advance was shown as an example, but in this embodiment, the apparatus 100 modifies the operation plan in response to the occurrence of an interrupt task. In addition to the functional units of the apparatus 100 according to the above-described embodiments and modifications, the apparatus 100 according to this embodiment further includes a detection processing unit 1511 and a modification processing unit 1512. The detection processing unit 1511 and the modification processing unit 1512 may be realized by the processor 150 executing a program in the storage unit 110. In the apparatus 100 according to this modification, the decision processing unit 1503 outputs the determined operation plan to at least the modification processing unit 1512.

[0199] The detection processing unit 1511 detects a robot 20 capable of executing an interrupt task when an interrupt task occurs during the execution of an operation plan (for example, the first operation plan). The detection processing unit 1511 may detect a first robot 20 (also referred to as the interrupt-enabled robot 20) from among multiple robots 20 that meets the specifications required for the interrupt task and is located within a reference range from the execution position of the interrupt task. The reference range may be set to any range, such as within 100m, depending on the movement speed of the robot 20.

[0200] Here, the interrupt task may be a task with a higher priority than other tasks. For example, the interrupt task may be a task that should be performed in an emergency, such as when a malfunction occurs in equipment 10, or when equipment 10 malfunctions. The interrupt task may also be a task that is incomplete in a time slot that should have been completed, due to a malfunction in robot 20, for example.

[0201] The occurrence of an interrupt task may be detected by the acquisition processing unit 1501. Upon the occurrence of an interrupt task, the task information of the interrupt task and the specification information of each robot 20 may be supplied from the acquisition processing unit 1501 to the detection processing unit 1511. This enables the detection processing unit 1511 to detect the interrupt-enabled robot 20. The detection processing unit 1511 may supply the identification information of the detected interrupt-enabled robot 20 to the correction processing unit 1512.

[0202] The modification processing unit 1512 modifies the currently running operation plan in response to the occurrence of an interrupt task. The modification processing unit 1512 may modify the currently running operation plan (for example, the first operation plan) so that the interrupt-responsive robot 20 executes the interrupt task during the waiting time of the interrupt-responsive robot 20 in the operation plan. The waiting time of the interrupt-responsive robot 20 in the operation plan may be the time when the interrupt-responsive robot 20 is not executing a task, and may be longer than or equal to the time required to execute the interrupt task. The waiting time of the interrupt-responsive robot 20 may or may not include the charging time of the interrupt-responsive robot 20.

[0203] If there is no waiting time for the interrupt-responsive robot 20 in the currently running operation plan, the modification processing unit 1512 may modify the operation plan so that the interrupt-responsive robot 20 executes the interrupt task while multiple robots 20 execute multiple tasks, including the interrupt task. For example, the modification processing unit 1512 may modify the operation plan so that multiple robots 20 in the facility 10 execute multiple tasks, including unexecuted tasks and the interrupt task, while the interrupt task is executed by the interrupt-responsive robot 20. As an example, the modification processing unit 1512 may create a temporary waiting time for the interrupt-responsive robot 20 by assigning one of the tasks assigned to the interrupt-responsive robot 20 in the original operation plan to another robot 20, and modify the operation plan so that the interrupt-responsive robot 20 executes the interrupt task during this temporary waiting time.

[0204] The modification processing unit 1512 may supply the modified operation plan to the output processing unit 1505. As a result, the modified operation plan is executed by multiple robots 20 via the output unit 160 and the control unit 170, and interrupt tasks are executed by the interrupt-responsive robot 20.

[0205] According to the above device 100, an interrupt-responsive robot 20 that meets the specifications required for the interrupt task and is located within a reference range from the execution position of the interrupt task is detected. The operation plan is then modified so that the interrupt-responsive robot 20 executes the interrupt task during the waiting time of the interrupt-responsive robot 20 in the currently running operation plan. Therefore, the interrupt task can be executed while the original operation plan is being executed.

[0206] Furthermore, if there is no waiting time for the interrupt-responsive robot 20 in the currently running operation plan, the operation plan is modified so that the interrupt-responsive robot 20 executes the interrupt task while multiple robots 20 execute multiple tasks, including the interrupt task. Therefore, the multiple tasks included in the original operation plan, as well as the interrupt task, can be reliably executed.

[0207] Figure 17 shows an example of a flowchart illustrating how the device 100 according to this embodiment executes an interrupt task. Note that the operation shown in this figure may occur in parallel with the operations shown in Figures 9 and 14 described above, and may begin when an interrupt task occurs during the execution of a pre-generated operation plan. In other words, at the start of this operation, an operation plan in which multiple tasks are executed by multiple robots 20 may have already been generated and is currently being executed.

[0208] In step S1610, the device 100 detects the occurrence of an interrupt task. For example, the acquisition processing unit 1501 may detect an interrupt task by acquiring task information about the interrupt task from a user or the like.

[0209] In step S1620, the device 100 detects an interrupt-enabled robot 20 that should execute the interrupt task. For example, the detection processing unit 1511 may detect an interrupt-enabled robot 20 from among a plurality of robots 20 in the facility 10 that satisfies the specifications required for the interrupt task and is located within a reference range from the execution position of the interrupt task.

[0210] The detection processing unit 1511 may detect only one interrupt-enabled robot 20 if the interrupt task is a task executed by a single robot 20. For example, the detection processing unit 1511 may detect as the interrupt-enabled robot 20 the robot 20 that satisfies the specifications required for the interrupt task and is closest to the execution location of the interrupt task.

[0211] The detection processing unit 1511 may detect multiple interrupt-enabled robots 20 if the interrupt task is a task that is executed by multiple robots. For example, if the interrupt task is a task that is executed by three robots, the detection processing unit 1511 may detect three interrupt-enabled robots 20 that satisfy the specifications required for the interrupt task and are located within a reference range from the execution position of the interrupt task.

[0212] In step S1630, the device 100 determines whether or not there is a waiting time for the interrupt-responsive robot 20 in the execution operation plan. If multiple interrupt-responsive robots 20 are detected, the correction processing unit 1512 may determine whether or not there is a waiting time for each of those interrupt-responsive robots 20. If it is determined that there is a waiting time for each interrupt-responsive robot 20 (step S1630; Yes), the process may proceed to step S1640, and if it is determined that there is no waiting time (step S1630; No), the process may proceed to step S1650.

[0213] Furthermore, if the interrupt task is a task that should be executed simultaneously by multiple robots 20, the correction processing unit 1512 may determine whether each of the interrupt-responsive robots 20 has a waiting time and whether the waiting times are the same within the operating period. In this case, if it is determined that each interrupt-responsive robot 20 has a waiting time and the waiting times are the same, the process may proceed to step S1640. If it is determined that there is no waiting time, or that the waiting times are different within the operating period, the process may proceed to step S1650.

[0214] In step S1640, the device 100 modifies the operation plan for each interrupt-responsive robot 20. For example, the modification processing unit 1512 may modify the currently running operation plan (for example, the first operation plan) so that each interrupt-responsive robot 20 executes an interrupt task during its waiting time in the current operation plan.

[0215] In step S1650, the device 100 modifies the operation plan for each robot 20. For example, the modification processing unit 1512 may modify the operation plan so that each interrupt-enabled robot 20 executes an interrupt task while multiple tasks, including interrupt tasks, are executed by multiple robots 20 within the equipment 10.

[0216] Figure 18 shows an example of a block diagram of a modified device 100 according to this embodiment, along with the equipment 10 to be operated. In this figure, the same reference numerals are used for components having the same function and configuration as in Figures 1, 11 to 13, 15, and 16, and explanations are omitted below except for differences. In the above embodiment, the case in which the device 100 executes an interrupt task within an ongoing operation plan was shown as an example, but in this modified example, an interrupt task with a higher priority than the standard priority (for example, a highly urgent interrupt task) is executed independently of the operation plan. In addition to the functional units of the device 100 according to the above embodiment, the device 100 according to this modified example further includes a control processing unit 1513. The control processing unit 1513 may be realized by the processor 150 executing a program in the storage unit 110. In the device 100 according to this modified example, the detection processing unit 1511 may supply the identification information of the detected interrupt-responsive robot 20 and the priority of the interrupt task to the correction processing unit 1512 and the control processing unit 1513.

[0217] The control processing unit 1513 causes the interrupt-responsive robot 20 to execute the interrupt task regardless of the currently running operation plan, depending on whether the priority of the interrupt task is higher than the standard priority. "Casting the interrupt-responsive robot 20 to execute the interrupt task regardless of the currently running operation plan" means that the interrupt-responsive robot 20 executes the interrupt task independently of the operation plan. In this case, if the operation plan currently assigns a task to the interrupt-responsive robot 20, that task may be interrupted; if the operation plan assigns a task to the interrupt-responsive robot 20 at a later time, that task may not be executed. The control processing unit 1513 may cause the interrupt-responsive robot 20 to execute the interrupt task via the control unit 170.

[0218] The correction processing unit 1512 may perform the same processing as in the second embodiment described above if the priority of the interrupt task is less than or equal to the standard priority. The correction processing unit 1512 may perform different processing than in the second embodiment if the priority of the interrupt task is higher than the standard priority, that is, if the interrupt task is executed by the interrupt-responsive robot 20 regardless of the operation plan by the control processing unit 1513.

[0219] For example, the modification processing unit 1512 may modify the currently running operation plan so that multiple robots 20 within the facility 10 execute the unexecutable task (also referred to as an unexecutable task) in response to the interrupt-responsive robot 20 executing an interrupt task, which results in an unexecutable task (also referred to as an unexecutable task) being assigned to the interrupt-responsive robot 20 in the currently running operation plan. For example, the modification processing unit 1512 may modify the operation plan so that multiple robots 20 within the facility 10, other than the interrupt-responsive robot 20, execute the unexecutable task. As an example, the modification processing unit 1512 may modify the currently running operation plan so that multiple robots 20 within the facility 10, different from the interrupt-responsive robot 20, that meet the specifications required for the unexecutable task and have a waiting time allocated in the currently running operation plan, execute the unexecutable task. The unexecutable task may include a task interrupted by the interrupt-responsive robot 20.

[0220] The modification processing unit 1512 may generate and determine the operation plan from the present time onward in the same manner as the generation processing unit 1502 and the determination processing unit 1503, and may generate and determine the operation plan while allowing at least one task other than the interrupt task among the multiple tasks to be executed not to be executed. The modification processing unit 1512 may supply the modified operation plan to the output processing unit 1505.

[0221] With the above-described device 100, if the priority of the interrupt task is higher than the standard priority, the interrupt-responsive robot 20 will execute the interrupt task regardless of the ongoing operation plan. Therefore, highly urgent interrupt tasks can be reliably executed.

[0222] Furthermore, in response to the fact that the execution of an interrupt task results in an unexecutable task being assigned to the interrupt-enabled robot 20, the operation plan is modified so that multiple robots 20 execute the unexecutable task. Therefore, multiple tasks included in the original operation plan can be reliably executed.

[0223] Furthermore, the ongoing operation plan is modified so that tasks that would otherwise be impossible to perform are executed by multiple robots 20 other than the interrupt-enabled robot 20. Therefore, tasks that would otherwise be impossible to perform can be reliably executed by multiple robots 20 other than the interrupt-enabled robot 20 that performs the interrupt task.

[0224] In the second embodiment and its modifications described above, the case in which an interrupt task to be executed arises in the currently running operation plan has been explained. However, if a task to be executed arises in the next operation plan, the generation processing unit 1502 and the determination processing unit 1503 may generate and determine the operation plan so that multiple tasks, including the task in question, are executed by multiple robots 20, as described in the first embodiment.

[0225] Furthermore, in the second embodiment and its modifications described above, the generation processing unit 1502 generates an operation plan that allows at least one task not to be executed, and the decision processing unit 1503 determines which operation plan to execute. However, the generation processing unit 1502 may generate and execute an operation plan that executes all tasks. In this case, the intra-region path determination unit 15023 and the inter-region path determination unit 15024 of the generation processing unit 1502 may determine the path of the robot 20 in the next time slot sequentially, without determining the path of the robot 20 in each time slot of the operation plan in advance.

[0226] Furthermore, in the first embodiment, the second embodiment, and the modified examples described above, the storage unit 110 was described as storing various information for constructing an operation plan, but the operation plan itself may also be stored. For example, the storage unit 110 may store the operation plan determined by the decision processing unit 1503 in association with the task information and specification information used to generate the operation plan. In this case, the decision processing unit 1503 may detect from the storage unit 110 a combination of task information and specification information that is similar to the combination of task information and specification information supplied from the acquisition processing unit 1501, read the operation plan associated with the detected task information and specification information, and decide to use it. In this case, the generation processing unit 1502 does not need to generate the operation plan. This reduces the processing cost required for generating and determining the operation plan.

[0227] Furthermore, although the acquisition processing unit 1501 was described as acquiring the charging position and the current position for each robot 20, it may acquire either the charging position or the current position, but only one of them.

[0228] Various embodiments of the present invention may be described with reference to flowcharts and block diagrams, where a block may represent (1) a stage in a process in which an operation is performed or (2) a section of a device having the role of performing the operation. Specific stages and sections may be implemented by dedicated circuits, programmable circuits supplied with computer-readable instructions stored on a computer-readable medium, and / or processors supplied with computer-readable instructions stored on a computer-readable medium. Dedicated circuits may include digital and / or analog hardware circuits, and may include integrated circuits (ICs) and / or discrete circuits. Programmable circuits may include reconfigurable hardware circuits, including logical AND, logical OR, logical XOR, logical NAND, logical NOR, and other logic operations, flip-flops, registers, memory elements such as field-programmable gate arrays (FPGAs), programmable logic arrays (PLAs), etc.

[0229] Computer-readable media may include any tangible device capable of storing instructions to be executed by a suitable device, and as a result, computer-readable media having instructions stored therein will comprise a product containing instructions that can be executed to create means for performing operations specified in a flowchart or block diagram. Examples of computer-readable media may include electronic storage media, magnetic storage media, optical storage media, electromagnetic storage media, semiconductor storage media, etc. More specific examples of computer-readable media may include floppy disks, diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), electrically erasable programmable read-only memory (EEPROM), static random access memory (SRAM), compact disk read-only memory (CD-ROM), digital multipurpose disc (DVD), Blu-ray® disc, memory stick, integrated circuit card, etc.

[0230] Computer-readable instructions may include assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Smalltalk®, Java®, C++, and traditional procedural programming languages ​​such as the C programming language or similar programming languages.

[0231] Computer-readable instructions are provided locally or via a wide area network (WAN) such as a local area network (LAN) or the internet to the processor or programmable circuit of a programmable data processing device such as a computer, and may be executed to create means for performing operations specified in a flowchart or block diagram. Here, the computer may be a PC (personal computer), tablet computer, smartphone, workstation, server computer, general-purpose computer, or special-purpose computer, and may also be a computer system in which multiple computers are connected. Such a computer system in which multiple computers are connected is also called a distributed computing system and is a computer in a broad sense. In a distributed computing system, multiple computers execute a program collectively by each computer executing a part of the program and passing data during program execution between computers as needed.

[0232] Examples of processors include computer processors, central processing units (CPUs), processing units, microprocessors, digital signal processors, controllers, and microcontrollers. A computer may have one or more processors. In a multiprocessor system with multiple processors, each processor executes a portion of the program, and the processors collectively execute the program by passing program execution data between them as needed. For example, in the execution of multitasking, each of the multiple processors may execute a portion of each task in small chunks by switching tasks at each time slice. In this case, which part of a program each processor executes changes dynamically. Which part of a program each of the multiple processors executes may also be statically determined by multiprocessor-aware programming.

[0233] FIG. 19 shows an example of a computer 1200 in which multiple aspects of the present invention may be embodied in whole or in part. Programs installed on the computer 1200 can cause the computer 1200 to function as an operation associated with the device according to an embodiment of the present invention or as one or more sections of the device, or can cause the operation or the one or more sections to be executed, and / or can cause the computer 1200 to execute a process according to an embodiment of the present invention or a stage of the process. Such a program may be executed by the CPU 1212 to cause the computer 1200 to execute certain operations associated with some or all of the blocks of the flowcharts and block diagrams described herein.

[0234] The computer 1200 according to this embodiment includes a CPU 1212, a RAM 1214, a graphic controller 1216, and a display device 1218, which are interconnected by a host controller 1210. The computer 1200 also includes a communication interface 1222, a storage device 1224 such as a hard disk drive, a DVD-ROM drive 1226, and an input / output unit such as an IC card drive, which are connected to the host controller 1210 via an input / output controller 1220. The computer also includes legacy input / output units such as a ROM 1230 and a keyboard 1242, which are connected to the input / output controller 1220 via an input / output chip 1240.

[0235] The CPU 1212 operates according to programs stored in the ROM 1230 and the RAM 1214, thereby controlling each unit. The graphic controller 1216 acquires image data generated by the CPU 1212 in a frame buffer or the like provided in the RAM 1214 or in itself, and causes the image data to be displayed on the display device 1218.

[0236] The communication interface 1222 communicates with other electronic devices via a network. The storage device 1224 stores programs and data used by the CPU 1212 within the computer 1200. The DVD-ROM drive 1226 reads programs or data from the DVD-ROM 1227 and provides the programs or data to the storage device 1224 via the RAM 1214. The IC card drive reads programs and data from an IC card and / or writes programs and data to an IC card.

[0237] The ROM 1230 stores therein a boot program etc. executed by the computer 1200 upon activation and / or a program that depends on the hardware of the computer 1200. The input / output chip 1240 may also connect various input / output units to the input / output controller 1220 via a parallel port, a serial port, a keyboard port, a mouse port, etc.

[0238] The program is provided by a computer-readable medium such as the DVD-ROM 1227 or an IC card. The program is read from the computer-readable medium, installed in the storage device 1224, the RAM 1214, or the ROM 1230, which is also an example of a computer-readable medium, and executed by the CPU 1212. The information processing described in these programs is read by the computer l200, resulting in cooperation between the programs and the various types of hardware resources described above. The device or method may be configured by realizing the operation or processing of information according to the use of the computer 1200.

[0239] For example, when communication is performed between a computer 1200 and an external device, the CPU 1212 may execute a communication program loaded into RAM 1214 and, based on the processing described in the communication program, instruct the communication interface 1222 to perform communication processing. Under the control of the CPU 1212, the communication interface 1222 reads transmission data stored in a transmission buffer processing area provided in a recording medium such as RAM 1214, storage device 1224, DVD-ROM 1227, or IC card, transmits the read transmission data to the network, or writes received data received from the network to a receive buffer processing area provided on the recording medium.

[0240] Furthermore, the CPU 1212 may read all or necessary parts of a file or database stored on an external storage medium such as the memory device 1224, DVD-ROM drive 1226 (DVD-ROM 1227), or IC card into the RAM 1214, and perform various types of processing on the data in the RAM 1214. The CPU 1212 then writes the processed data back to the external storage medium.

[0241] Various types of information, such as various types of programs, data, tables, and databases, may be stored on the recording medium and subjected to information processing. The CPU 1212 may perform various types of processing on the data read from RAM 1214, including various types of operations, information processing, conditional judgments, conditional branching, unconditional branching, information retrieval / replacement, etc., as described throughout this disclosure and specified by the program instruction sequence, and write the results back to RAM 1214. The CPU 1212 may also retrieve information in files, databases, etc., within the recording medium. For example, if multiple entries are stored in the recording medium, each having an attribute value of a first attribute associated with an attribute value of a second attribute, the CPU 1212 may search among the multiple entries for an entry that matches the condition for which the attribute value of the first attribute is specified, read the attribute value of the second attribute stored in that entry, and thereby obtain the attribute value of the second attribute associated with the first attribute that satisfies a predetermined condition.

[0242] The programs or software modules described above may be stored on or near computer 1200 on a computer-readable medium. Alternatively, recording media such as hard disks or RAM provided within a server system connected to a dedicated communication network or the Internet can be used as computer-readable media, thereby providing programs to computer 1200 via the network.

[0243] Although the present invention has been described above using embodiments, the technical scope of the present invention is not limited to the scope described in the above embodiments. It will be apparent to those skilled in the art that various modifications or improvements can be made to the above embodiments. It will be clear from the claims that such modified or improved forms may also be included in the technical scope of the present invention.

[0244] It should be noted that the execution order of operations, procedures, steps, and stages in the apparatus, systems, programs, and methods shown in the claims, specifications, and drawings is not explicitly stated as "before," "prior to," etc., and that these can be implemented in any order unless the output of a previous process is used in a later process. Even if the operation flow in the claims, specifications, and drawings is described using phrases such as "first," "next," etc. for convenience, it does not mean that it is essential to perform the operations in that order. [Explanation of Symbols]

[0245] 10 Equipment 20 Robots 100 devices 110 Storage section 150 processors 160 Output section 170 Control Unit 1200 Computers 1210 Host Controller 1212 CPU 1214 RAM 1216 Graphics Controller 1218 Display Devices 1220 Input / Output Controller 1222 Communication Interface 1224 Storage device 1226 DVD-ROM drive 1227 DVD-ROM 1230 ROM 1240 input / output chip 1242 keyboard 1501 Acquisition Processing Unit 1502 Generation Processing Unit 1503 Decision Processing Unit 1504 Configuration Processing Unit 1505 Output Processing Unit 1506 Results Management Department 1507 Possibility judgment part 1508 Index acquisition part 1509 Robot Modification Unit 1510 Area change section 1511 Detection processing section 1512 Correction processing section 1513 Control processing section 15021 Area allocation section 15022 Task allocation section 15023 Intra-area route determination section 15024 Inter-area route determination section

Claims

1. Equipped with a processor, The aforementioned processor, A generation process that generates an execution plan for executing multiple tasks by multiple robots, which allows for at least one task not to be executed, A decision process that determines a first execution plan from among the generated execution plans in which the value of the objective function satisfies the criteria, using an objective function that imposes a penalty if there are tasks that are not executed in the execution plan, A device that performs this task.

2. The apparatus according to claim 1, wherein the penalty applied to the objective function is a value corresponding to the parameter of the task that is not executed, among the parameters set for each task.

3. The apparatus according to claim 2, wherein the processor further performs a setting process to set the parameters of each task to larger values ​​as the priority of the task increases.

4. The aforementioned processor, For a number of new tasks, including tasks not executed in the first execution plan, the generation process is further executed to generate the next execution plan. The decision process is further performed on the next execution plan that is generated to determine a second execution plan in which the value of the objective function satisfies the criteria. The apparatus according to claim 3, wherein the setting process makes the parameters of the tasks that are not executed larger when determining the second execution plan than when determining the first execution plan.

5. The aforementioned processor, The apparatus according to claim 1, further comprising output processing that outputs the first execution plan and information indicating tasks that are not executed in the first execution plan.

6. The aforementioned processor, For each task, there is a first acquisition process to obtain the execution position, For each robot, a second acquisition process is performed to acquire at least one of the charging position or the current position, The apparatus according to claim 1, wherein the objective function includes as an element the cost corresponding to the distance traveled by each robot when the execution plan is executed.

7. The aforementioned processor, When an interrupt task to be executed by interrupt occurs during the execution of the first execution plan, a detection process is performed to detect a first robot among the plurality of robots that satisfies the specifications required for the interrupt task and is located within a reference range from the execution position of the interrupt task. A first modification process that modifies the first execution plan so that the first robot executes the interrupt task during the waiting time of the first robot in the first execution plan, The apparatus according to claim 1, further performing the following:

8. In a device equipped with a processor, The aforementioned processor, A generation process that generates a first execution plan in which multiple robots perform multiple tasks, When an interrupt task occurs during the execution of the first execution plan, a detection process is performed to detect a first robot among the plurality of robots that satisfies the specifications required for the interrupt task and is located within a reference range from the location where the interrupt task is performed. A first modification process that modifies the first execution plan so that the first robot executes the interrupt task during the waiting time of the first robot in the first execution plan, A device that performs this task.

9. The apparatus according to claim 7 or 8, wherein, if there is no waiting time for the first robot in the first execution plan, the processor modifies the first execution plan in the first modification process so that the interrupt task is executed by the first robot while the plurality of robots execute a plurality of tasks including the interrupt task.

10. The aforementioned processor, The apparatus according to claim 7 or 8, further comprising: performing control processing to cause the first robot to execute the interrupt task regardless of the first execution plan, depending on whether the priority of the interrupt task is higher than the reference priority.

11. The apparatus according to claim 10, wherein the processor further performs a second modification process to modify the first execution plan so that the plurality of robots execute the unexecutable tasks in response to the first robot executing the interrupt task resulting in an unexecutable task in the tasks assigned to the first robot in the first execution plan.

12. The apparatus according to claim 11, wherein the processor modifies the first execution plan in the second modification process so that the plurality of robots other than the first robot perform the unexecutable task.

13. A generation process that generates an execution plan for executing multiple tasks by multiple robots, which allows for at least one task not to be executed, A decision process that determines a first execution plan from among the generated execution plans in which the value of the objective function satisfies the criteria, using an objective function that imposes a penalty if there are tasks that are not executed in the execution plan, How to do it.

14. A generation process that generates a first execution plan in which multiple robots perform multiple tasks, When an interrupt task occurs during the execution of the first execution plan, a detection process is performed to detect a first robot among the plurality of robots that satisfies the specifications required for the interrupt task and is located within a reference range from the location where the interrupt task is performed. A first modification process that modifies the first execution plan so that the first robot executes the interrupt task during the waiting time of the first robot in the first execution plan, How to do it.

15. By being executed on a computer, the computer will A generation process that generates an execution plan for executing multiple tasks by multiple robots, which allows for at least one task not to be executed, A decision process that determines a first execution plan from among the generated execution plans in which the value of the objective function satisfies the criteria, using an objective function that imposes a penalty if there are tasks that are not executed in the execution plan, A program that executes the command.

16. By being executed on a computer, the computer will A generation process that generates a first execution plan in which multiple robots perform multiple tasks, When an interrupt task occurs during the execution of the first execution plan, a detection process is performed to detect a first robot among the plurality of robots that satisfies the specifications required for the interrupt task and is located within a reference range from the location where the interrupt task is performed. A first modification process that modifies the first execution plan so that the first robot executes the interrupt task during the waiting time of the first robot in the first execution plan, A program that executes the command.