Apparatus, methods, and computer program products for determining or revising the execution plan of a task.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2026-02-13
- Publication Date
- 2026-08-14
Smart Images

Figure CN122559978A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to apparatus, methods, and computer program products for determining or revising the execution plan of a task. Background Technology
[0002] Patent Document 1, etc., describes "...assigning a task within the region to the robot as at least one of the multiple tasks belonging to the object region" (claim 1 of Patent Document 1). Existing technical documents Patent Document 1: Japanese Patent Publication No. 2024-099938 Patent Document 2: International Publication No. 2023 / 026592 Patent Document 3: Japanese Patent Publication No. 2021-104900 Patent Document 4: Japanese 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 document 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 Summary of the Invention
[0003] (1) An apparatus is provided in a first aspect of the present invention, wherein a processor is provided, the processor performing: a generation process that generates an execution plan in such a way that at least one task is not executed as an execution plan for multiple tasks to be executed by multiple robots; and a determination process that, using an objective function which is penalized in the case that there are tasks not executed in the execution plan, determines a first execution plan in the generated execution plan in which the value of the objective function satisfies a benchmark condition.
[0004] (2) In the apparatus of (1) above, the penalty imposed on the objective function may be a value corresponding to the parameter of the task that is not executed in the parameters set for each task.
[0005] (3) In the device described in (2) above, the processor may also perform a setting process that sets the parameters of each task to a larger value if the priority of the task is higher.
[0006] (4) In the apparatus of (3) above, the processor may further perform the generation process to generate a next execution plan for a new plurality of tasks that include tasks that are not to be executed in the first execution plan, and the processor further performs the determination process for the generated next execution plan to determine a second execution plan in which the value of the objective function satisfies the benchmark condition. In the setting process, compared with the case of determining the first execution plan, the processor makes the parameters of the tasks that are not to be executed larger when determining the second execution plan.
[0007] (5) In any of the devices (1) to (4) above, the processor may further perform output processing to output the first execution plan and information indicating that the task is not executed in the first execution plan.
[0008] (6) In any of the devices (1) to (5) above, the processor may perform: a first acquisition process to acquire the execution position for each task; and a second acquisition process to acquire at least one of the charging position and the current position for each robot, wherein the objective function includes the cost corresponding to the movement distance of each robot in the case of executing the execution plan as an element.
[0009] (7) In any of the devices (1) to (6) above, the processor may further perform: a detection process, in the event that an interrupt task to be executed by interruption occurs during the execution of the first execution plan, detecting a first robot among the plurality of robots that meets the specifications required by the interrupt task and is located within a reference range from the execution position of the interrupt task; and a first correction process, correcting the first execution plan so that the first robot executes the interrupt task during the standby time of the first robot in the first execution plan.
[0010] (8) In a second aspect of the present invention, an apparatus is provided, comprising a processor that executes: a generation process for generating a first execution plan in which a plurality of robots perform a plurality of tasks; a detection process for detecting, in the event that an interruption task occurs during the execution of the first execution plan, a first robot among the plurality of robots that meets the specifications required by the interruption task and is located within a reference range from the location where the interruption task is performed; and a first correction process for correcting the first execution plan so that the first robot performs the interruption task during the standby time of the first robot in the first execution plan.
[0011] (9) In the apparatus of (7) or (8) above, if there is no standby time for the first robot in the first execution plan, the processor may modify the first execution plan in the first modification process so that the first robot executes the interrupt task while the plurality of robots are executing a plurality of tasks including the interrupt task.
[0012] (10) In any of the devices (7) to (9) above, the processor may further perform control processing, which causes the first robot to execute the interrupt task independently of the first execution plan based on the fact that the priority of the interrupt task is higher than the base priority.
[0013] (11) In the apparatus of (10) above, the processor may further perform a second correction process, which corrects the first execution plan in such a way that the unexecutable task occurs in the task assigned to the first robot in the first execution plan due to the first robot performing the interrupted task, so that the unexecutable task is performed by the plurality of robots.
[0014] (12) In the apparatus of (11) above, the processor may, in the second correction process, correct the first execution plan in such a way that the unexecutable task is performed by the plurality of robots other than the first robot.
[0015] (13) In a third aspect of the invention, a method is provided in which: a generation process is performed to generate an execution plan in such a way that at least one task is not executed, as an execution plan for multiple tasks to be executed by multiple robots; and a determination process is performed to determine, in the generated execution plan, a first execution plan in which the value of the objective function satisfies a benchmark condition, using an objective function that is penalized in the presence of unexecuted tasks in the execution plan.
[0016] (14) A method is provided in a fourth aspect of the invention, wherein: a generation process is performed to generate a first execution plan in which a plurality of robots perform a plurality of tasks; a detection process is performed to detect, in the event that an interruption task occurs during the execution of the first execution plan, a first robot among the plurality of robots that meets the specifications required by the interruption task and is located within a reference range from the location where the interruption task is performed; and a first correction process is performed to correct the first execution plan so that the first robot performs the interruption task during the standby time of the first robot in the first execution plan.
[0017] (15) A computer program product is provided in a fifth aspect of the present invention, wherein a program is stored, and a computer executes by executing the program: a generation process that generates an execution plan in such a way that at least one task is not executed, as an execution plan for multiple tasks to be executed by multiple robots; and a determination process that, using an objective function that is penalized in the case that there are unexecuted tasks in the execution plan, determines a first execution plan in the generated execution plan in which the value of the objective function satisfies a benchmark condition.
[0018] (16) A computer program product is provided in a sixth aspect of the present invention, wherein a program is stored, and a computer executes the following by executing the program: a generation process that generates a first execution plan in which a plurality of robots perform a plurality of tasks; a detection process that, in the event that an interruption task occurs during the execution of the first execution plan, detects a first robot among the plurality of robots that meets the specifications required by the interruption task and is located within a reference range from the location where the interruption task is performed; and a first correction process that corrects the first execution plan so that the first robot performs the interruption task during the standby time of the first robot in the first execution plan.
[0019] Furthermore, the above summary of the invention does not list all the essential features of the invention. In addition, sub-combinations of these feature groups can also constitute an invention. Attached Figure Description
[0020] Figure 1 An example of the block diagram of the apparatus 100 of the first embodiment is shown together with the device 10 that is the object of the operation. Figure 2 The generation processing unit 1502 and the determination processing unit 1503 are shown together. Figure 3 This represents an example of the various information stored in the device 100 of the first embodiment. Figure 4 This is an example of the result of region allocation performed by the apparatus 100 of the first embodiment. Figure 5This is an example of the result of task allocation performed by the apparatus 100 of the first embodiment. Figure 6 Another example illustrating the result of task allocation performed by the apparatus 100 of the first embodiment. Figure 7 This represents an example of a path within the area defined by the device 100 of the first embodiment. Figure 8 This represents an example of the inter-regional path determined by the device 100 of the first embodiment. Figure 9 An example of a flowchart illustrating a method performed by the apparatus 100 of the first embodiment. Figure 10 An example of a flowchart illustrating a method performed by the apparatus 100 of the first embodiment. Figure 11 An example of the block diagram of the apparatus 100 of the first variation of the first embodiment is shown together with the device 10 that is the object of the operation. Figure 12 An example of the block diagram of the apparatus 100 of the second variation of the first embodiment is shown together with the device 10 that is the object of the operation. Figure 13 An example of the block diagram of the apparatus 100 of the third variation of the first embodiment is shown together with the device 10 that is the object of the operation. Figure 14 An example of a flowchart illustrating a method performed by the apparatus 100, representing a third variation of the first embodiment, for repeatedly constructing a work plan. Figure 15 An example of the block diagram of the apparatus 100 of the fourth variation of the first embodiment is shown together with the device 10 that is the object of the operation. Figure 16 An example of the block diagram of the apparatus 100 of the second embodiment is shown together with the device 10 that is the object of the operation. Figure 17 An example of a flowchart illustrating a method by which the apparatus 100 of the second embodiment performs an interruption task. Figure 18 An example of the block diagram of the device 100 of the modified embodiment of the second embodiment is shown together with the equipment 10 that is the object of the operation. Figure 19 Examples of computer 1200 that can implement the present invention in whole or in part are shown. Detailed Implementation
[0021] The present invention will now be described through embodiments thereof; however, these embodiments do not limit the invention as defined in the claims. Furthermore, not all combinations of features described in the embodiments are necessary to solve the problems of the invention.
[0022] Figure 1 An example of the block diagram of the apparatus 100 of this embodiment is shown together with the device 10, which is the object of the operation. Furthermore, these modules are functionally separate modules and may not necessarily correspond to the actual device structure. That is, although shown as a module in this figure, it may not necessarily be composed of a single device. Similarly, although shown as separate modules in this figure, they may not necessarily be composed of separate devices. The same applies to other block diagrams.
[0023] Equipment 10 refers to machines, devices, or buildings that are the objects of operation. For example, equipment 10 can also be a factory. Besides industrial factories such as chemical or biological factories, examples of factories include those that manage and control wellheads and their surroundings in gas or oil fields, factories that manage and control power generation from hydroelectric, thermal, or nuclear sources, factories that manage and control environmental power generation from solar or wind power, and factories that manage and control water supply and drainage or dams. Multiple areas can be set up within equipment 10 (three areas A to C are shown as an example in this diagram).
[0024] In such equipment 10, due to issues such as personnel shortages, operational safety, and maintenance costs, there is a growing expectation for the introduction of robots, and various types of robots with different specifications are being developed. Among the robots under development or already completed are robots capable of autonomous movement and robots that can perform tasks without human intervention. Research is underway on multi-robot systems that incorporate multiple such robots to at least partially operate equipment 10.
[0025] Robot 20 is introduced into device 10 and performs various tasks related to the operation of device 10. In this figure, as an example, three robots 20, namely robot 20i, robot 20j, and robot 20k (collectively referred to as "robot 20"), are introduced into device 10.
[0026] Robot 20i, for example, can be a robot capable of autonomous walking on four legs. Furthermore, Robot 20i, for example, can measure ambient sound using its onboard microphone and photograph subjects using its onboard camera. Furthermore, Robot 20i, for example, can move at a speed of 5 km / h. Furthermore, Robot 20i, for example, can operate continuously for 3 hours on a fully charged battery. Furthermore, Robot 20i, for example, can traverse steps less than 20 cm high.
[0027] Robot 20j could be, for example, a robot capable of autonomous flight via rotors (such as a drone or multi-rotor helicopter). Furthermore, robot 20j can measure the temperature of the object being measured using its onboard thermal imager and can photograph the object using its onboard camera. Additionally, robot 20j could, for example, move at a speed of 10 km / h. Furthermore, robot 20j could, for example, operate continuously for 5 hours on a fully charged battery.
[0028] Robot 20k, for example, could be a robot capable of autonomous movement via tracks. Furthermore, Robot 20k, for example, could measure ambient sound using its onboard microphone and operate actuators (valve, etc.) using its onboard arm. Furthermore, Robot 20k, for example, could move at a speed of 3 km / h. Furthermore, Robot 20k could operate continuously for 2 hours on a fully charged battery. Furthermore, Robot 20k could, for example, be explosion-proof. Furthermore, Robot 20k could, for example, traverse steps less than 50 cm high.
[0029] Robot 20 can also be equipped with sensors such as LiDAR sensors for recognizing the surrounding environment and for estimating its own position based on the recognized environment. In this way, multiple robots 20 of different specifications can be imported into device 10. Furthermore, the above description illustrates, as an example, the import of three robots 20 with different specifications, such as robots 20i, 20j, and 20k, into device 10. However, the number and specifications of robots 20 imported into device 10 are not limited to this; various combinations of robots 20 can be used to construct a multi-robot system. In such cases, for example, multiple robots of the same specifications can be included among the multiple robots imported into device 10.
[0030] The device 100 includes a storage unit 110, a processor 150, and an output unit 160.
[0031] Storage unit 110 stores various information used to construct work plans. This information may be obtained from device 10 or an external system via a network, or it may be obtained through user input, or it may be obtained through various storage devices. In this embodiment, storage unit 110 can store programs (not shown) and other information. The program is executed by processor 150, thereby causing processor 150 to perform various processes. Details of the other information stored in storage unit 110 will be described later.
[0032] The processor 150 performs various processes by executing programs stored in the storage unit 110. The processor 150 can implement various processing functions by executing programs. The processor 150 of this embodiment can implement an acquisition processing unit 1501, a generation processing unit 1502, a determination processing unit 1503, a setting processing unit 1504, an output processing unit 1505, and a result management unit 1506.
[0033] The acquisition processing unit 1501 acquires various information related to the device 10 and the robot 20. The acquisition processing unit 1501 can acquire information from the storage unit 110, or from an external storage device not shown, or from the user via an input device not shown.
[0034] The processing unit 1501 can obtain task information representing the content of each task that the robot 20 should perform. Details will be explained later, but 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 processing unit 1501 can obtain specification information for each robot 20, indicating the robot's specifications. Details will be explained later, but the specification information may include the robot 20's charging position and current position, etc.
[0036] The acquisition processing unit 1501 can supply the acquired task information and specification information to the generation processing unit 1502. The acquisition processing unit 1501 can supply the acquired specification information to the determination processing unit 1503. The acquisition processing unit 1501 can supply the acquired task information to the setting processing unit 1504. If the acquisition processing unit 1501 acquires the task information and specification information without going through the storage unit 110, it can store the information in the storage unit 110.
[0037] The generation processing unit 1502 generates candidate work plans (also called execution plans) for multiple robots 20 to perform multiple tasks. The generation processing unit 1502 can generate one or more work plans. The generation processing unit 1502 can generate work plans for multiple robots, represented by specification information obtained by the acquisition processing unit 1501, to perform multiple tasks represented by task information obtained by the acquisition processing unit 1501, and can generate work plans by solving the MRTA (Multi-Robot Task Allocation) problem.
[0038] The generation processing unit 1502 of this embodiment can generate a work plan in a manner that allows at least one task to be omitted. In cases where there are too many tasks for the robot 20 within the device 10 to perform, resulting in unexecutable tasks, the generation processing unit 1502 can generate a work plan in a manner that allows at least one task to be omitted. Even when there are no unexecutable tasks, the generation processing unit 1502 can still generate a work plan in a manner that allows at least one task to be omitted.
[0039] The generation processing unit 1502, when capable of generating a job plan that executes up to N tasks, can generate a job plan that executes all N tasks, or it can generate a job plan that executes only N-1 or fewer tasks. The number of tasks "N" can be the total number of tasks to be executed, or it can be a number smaller than that total.
[0040] The generation processing unit 1502 can generate a work plan that makes all robots 20 operate, or it can generate a work plan that makes at least one robot 20 not operate.
[0041] The generation processing unit 1502 can generate a work plan for each period (also called a work period) with a base time (for example, 24 hours or 8 hours), or it can generate work plans sequentially for work periods that are later than the work period including the current time. For example, the generation processing unit 1502 can generate a work plan (also called a first work plan) for the first work period in the 0th work period before the first work period, or it can generate a work plan (also called a second work plan) for the second work period in the first work period. The generation processing unit 1502 can supply the generated work plan to the determination processing unit 1503 for each work period.
[0042] The determination processing unit 1503 determines any one work plan from one or more work plans generated by the generation processing unit 1502 for each work period as the execution target for that work period. As an example, the determination processing unit 1503 can determine the first work plan to be executed in the first work period from one or more first work plans generated for the first work period.
[0043] The determination processing unit 1503 can use an objective function that imposes penalties when there are unexecuted tasks in the work plan. In the generated work plan, it determines work plans where the value of the objective function satisfies baseline conditions. These baseline conditions can be preset to arbitrary values. For example, the baseline conditions can be set to arbitrary values through repeated trial and error to allow the operation of device 10 to continue.
[0044] Here, the objective function is the value of a function that should be maximized or minimized; in this embodiment, for example, it may be the value of a function that should be minimized. The objective function may be a function whose value is determined based on the content of the work plan. Compared to the case where there are no unexecuted tasks in the work plan, when there are unexecuted tasks in the work plan, the objective function may include elements that constitute a larger penalty (for example, a penalty term). The penalty imposed on the objective function may be the value corresponding to the penalty parameter for the unexecuted task 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, the value obtained by multiplying it by a predetermined coefficient penalty parameter, or other values calculated using the penalty parameter. When there are multiple unexecuted tasks in the work plan, the penalty imposed on the objective function may be the value corresponding to the sum of the penalty parameters for each unexecuted task.
[0045] The objective function may also include the cost corresponding to the travel distance of each robot 20 under the execution of the work plan as a factor. The larger the total travel distance of each robot 20, the larger the cost corresponding to that travel distance can be. The objective function may also include the operating cost of the robot 20, the operating rate of the robot 20, and the total work time as factors.
[0046] The determination processing unit 1503 can supply the determined work plan to the output processing unit 1505. The determination processing unit 1503 can also supply task information regarding tasks not performed in the work plan as task information for tasks to be performed in the next subsequent work period to the acquisition processing unit 1501. For example, the determination processing unit 1503 can supply task information regarding tasks not performed in the first work plan as task information for tasks to be performed in the second work period and beyond to the acquisition processing unit 1501.
[0047] The setting processing unit 1504 sets penalty parameters for each task. The setting processing unit 1504 can set the penalty parameters based on the task's priority. For example, the setting processing unit 1504 can set the penalty parameters for each task such that the higher the task's priority, the larger the value. The setting processing unit 1504 can reset the penalty parameters for each job period.
[0048] The output processing unit 1505 outputs various information via the output unit 160. For example, the output processing unit 1505 may output a work plan (for example, a first work plan) determined by the determination processing unit 1503 and information indicating tasks that will not be performed in the work plan.
[0049] The results management unit 1506 manages various information obtained by the robot 20 in performing tasks. The results management unit 1506 can obtain various information from external systems via a network, store the obtained information in the storage unit 110, and output it from the output unit 160 via the output processing unit 1505. The information obtained by the results management unit 1506 may include images (such as moving images, still images, thermal images, etc.), sound, measurement data, and other information obtained by the robot 20.
[0050] The result management unit 1506 can estimate the position of the robot 20 based on the measurement data of the robot 20, and can also determine the status of the device 10 and the robot 20. The result management unit 1506 can also determine whether a task is completed based on the data obtained from the robot 20. For example, if the robot 20, which was assigned the task of capturing images within the device 10, obtains an unclear image, the result management unit 1506 can determine that the task is not completed. Based on the determination that the task is not completed, the result management unit 1506 can re-assign the task as a task to be performed; for example, it can re-store the task information in the storage unit 110. Based on the determination that the task is completed, the result management unit 1506 can delete the task information from the task information stored in the storage unit 110, or it can append completion information to the task information stored in the storage unit 110.
[0051] Output unit 160 outputs various information. For example, output unit 160 can be a monitor, capable of displaying various information. Alternatively, or based on this, output unit 160 can be a communication unit, capable of sending various information to other functional units or other devices. Alternatively, or based on this, output unit 160 can be a printer, capable of printing various information. Alternatively, or based on this, output unit 160 can be a speaker, capable of outputting sound to various information.
[0052] The device 100, equipped with such functionalities, can be a computer such as a PC (personal computer), tablet computer, smartphone, workstation, server computer, or general-purpose computer, or it can 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 can also be implemented by one or more virtual computer environments executable within the computer. Alternatively, the device 100 can be a dedicated computer customized to provide the aforementioned functions, or it can be dedicated hardware implemented using dedicated circuitry. Furthermore, if it can connect to the Internet, the device 100 can also be implemented via cloud computing.
[0053] According to the apparatus 100 described above, a work plan is generated in a manner that allows at least one task to be omitted, as a work plan for multiple tasks to be performed by multiple robots 20. Furthermore, using an objective function that imposes a penalty in the case of unexecuted tasks in the work plan, a work plan whose objective function value satisfies a baseline condition is determined in the generated work plan (for example, a first work plan). Therefore, when there are many tasks and insufficient resources for the robots 20, it is possible to prevent the omission of work plans and to determine work plans in a manner that makes it difficult to generate unexecuted tasks.
[0054] Furthermore, the penalty parameters set for each task, the penalty corresponding to the penalty parameter of the task that is not executed, are assigned to the objective function. Therefore, the job plan can be determined in a way that makes the task with the larger penalty parameter more reliable to be executed.
[0055] Furthermore, the higher the priority of a task, the larger the penalty parameter for that task is set to. Therefore, a work schedule can be determined in a way that ensures high-priority tasks are executed more reliably.
[0056] In addition, the system outputs job plans and information indicating which tasks will not be executed in those job plans, so users can reliably know which tasks will be executed and which will not.
[0057] Furthermore, the objective function includes the cost corresponding to the travel distance of each robot 20 under the condition of executing the work plan as a factor. Therefore, the work plan can be determined in a way that reduces the travel distance of the robot 20.
[0058] Figure 2 The generation processing unit 1502 and the determination processing unit 1503 are shown together. When operating the equipment 10 through a multi-robot system, it is necessary to construct a work plan. However, when constructing such a work plan, various factors must be considered, such as the specifications of various robots, the necessary conditions for tasks involving multiple aspects, and the environmental limitations of the equipment 10. Therefore, constructing a work plan by humans or based on rules requires considerable time and may result in problems such as inefficient planning or assigning tasks that the robot 20 cannot perform.
[0059] Previously, optimization techniques were established for such problems. Optimization problems were constructed based on the aforementioned factors and planning guidelines, and the desired work plan was obtained by solving them. However, solving work planning problems based on multi-robot systems is a computationally very expensive problem known as NP (Non-deterministic Polynomial time) difficult, making it impractical. Furthermore, the computational cost also depends on the scale of the equipment 10 and the number of robots 20 introduced. For example, if a large number of robots 20 are introduced into a large-scale equipment 10 such as a factory, it is conceivable that simply implementing methods to obtain approximate solutions by reducing the computational load will not be feasible.
[0060] Therefore, as an example, the generation processing unit 1502 of this embodiment can divide the processing into region allocation, task allocation, intra-regional path determination, and inter-regional path determination. Thus, according to the generation processing unit 1502 of this embodiment, the work planning problem based on multiple robots 20 can be solved at high speed regardless of the scale of the equipment 10 or the number of robots 20, thereby constructing a realistic work plan within a realistic computation time. The generation processing unit 1502 includes a region allocation unit 15021, a task allocation unit 15022, an intra-regional path determination unit 15023, and an inter-regional path determination unit 15024.
[0061] The area allocation unit 15021 performs area allocation based on the specifications of the multiple robots 20 and the necessary conditions for the multiple tasks to be performed in the equipment 10 that is the target of the operation, assigning the multiple robots 20 to multiple areas that divide the equipment 10. The area allocation unit 15021 supplies the results of the area allocation to the task allocation unit 15022, the intra-area path determination unit 15023, the inter-area path determination unit 15024, and the determination processing unit 1503.
[0062] The task allocation unit 15022 performs task allocation for each of the multiple regions, specifically for an object robot among the multiple robots 20 that is assigned to at least one of the object regions. The task allocation unit 15022 then supplies the task allocation results to the intra-region path determination unit 15023 and the determination processing unit 1503.
[0063] Based on the task allocation result, the intra-region path determination unit 15023 determines the intra-region path that enables the target robot to move within the target region. The intra-region path determination unit 15023 then supplies the determined intra-region path to the determination processing unit 1503.
[0064] Based on the results of region allocation, the inter-region path determination unit 15024 determines inter-region paths that enable the multiple robots 20 to move between multiple regions. The inter-region path determination unit 15024 then supplies the determined inter-region paths to the determination processing unit 1503.
[0065] The intra-regional path determination unit 15023 and the inter-regional path determination unit 15024 can determine the path by solving the so-called Traveling Salesman Problem (TSP problem), or by at least one combination of the SFF* method, RRT* and spatiotemporal RRT method described in Non-Patent Document 1, etc.
[0066] Alternatively, the generation processing unit 1502 can perform the work plan generation process without dividing it into region allocation, task allocation, intra-regional path determination, and inter-regional path determination. For example, the generation processing unit 1502 can also perform region allocation and task allocation together. As an example, the case where the task allocation unit 15022 of the generation processing unit 1502 cooperates with the region allocation unit 15021 to perform region allocation and task allocation together will be described. In addition, the processing related to region allocation can also be performed by the task allocation unit 15022.
[0067] The task allocation unit 15022 can perform area allocation and task allocation using the integer planning method. For example, the task allocation unit 15022 can use a binary variable η r,a,s binary variable ζ r,s and integer variable ν r,a,s,f To perform area allocation. Here, the subscript "r" represents the robot's identification number, "a" represents the area's identification number, "s" represents the time slot's identification number, and "f" represents the robot's function's identification number. Binary variable η r,a,s A value of 1 indicates that the corresponding robot performs a task in the corresponding region and time slot; a value of 0 indicates that the corresponding robot does not perform a task in the corresponding region and time slot (as an example, it performs charging). Binary variable ζ r,s A value of 1 indicates that the state of the robot 20 transitions between an operating state and a non-operating state (in this embodiment, a standby state or a charging state, for example) during the period from time slot s to time slot s+1; a value of 0 indicates no transition. Integer variable ν r,a,s,f This indicates the number of tasks performed by the corresponding robot in the corresponding region and time slot.
[0068] As an example, the task allocation unit 15022 can allocate areas to each robot 20 in a manner that satisfies the constraints expressed by the following formula. Furthermore, in the formula, "A" can be the maximum value of the area's identification number, and "F" can be the maximum value of the function's identification number. "Cr" can be a constant; for example, Cr = A. "T" MAX " is the upper limit on the number of tasks that can be executed within a time slot. Additionally, "Σ(a=1 A) η r,a,s "" represents η as the value of a increases from 1 to A. r,a,s The sum of . Furthermore, if the left side of equation A1 is 0, it can mean that robot r is charging 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] Furthermore, when a particular robot (r') does not possess a specific function (f'), the task allocation unit 15022 can allocate areas in a manner that satisfies the following formula. Additionally, the single quote (') in expressions such as "r'" and "f'" indicates a specific identification number. ν r’,a,s,f’ =0 …(14)
[0071] Furthermore, the task allocation unit 15022 can use a binary variable δ r,t,s and binary variable δ r,s To perform task assignment. Here, the subscript "t" represents the task identification number. The binary variable δ r,t,s A value of 1 indicates that the corresponding task has been assigned to the corresponding time slot and the corresponding robot 20; a value of 0 indicates that the corresponding task has not been assigned to the corresponding time slot and the corresponding robot 20. Binary variable δ r,s A value of 1 indicates that the corresponding robot 20 performs a task (i.e., operates) in the corresponding time slot; a value of 0 indicates that the corresponding robot 20 does not perform any task and is either in standby or charging (i.e., not operating) in the corresponding time slot. The binary variable δ r,t,s and binary variable δ r,s It can be a variable about a specific region (a').
[0072] As an example, the task allocation unit 15022 can allocate tasks to each robot 20 in a manner that satisfies the constraints represented by the following formulas.
[0073] δ r,t,s -δ r,s ≤0 (t=1,2,…T)…(21) Σ(t=1 T)δ r,t,s ≥0 …(22)
[0074] Based on this, the task allocation unit 15022 can use the binary variable ζ r,s To perform task assignment. As an example, the task assignment unit 15022 can assign tasks to each robot 20 in a manner that satisfies the constraints represented by the following formulas.
[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] Task allocation unit 15022 can use binary variable ζ r,s and binary variable η r,a,s To perform task assignment. As an example, the task assignment unit 15022 can assign tasks to each robot 20 in a manner that satisfies the constraints represented by the following formulas.
[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 allocation unit 15022 can use the above binary variables to allocate tasks in a way that satisfies other constraints such as the specifications of the robot 20 and the deadline of the task.
[0079] For example, when a specific task (t') must be performed in a specific time slot (s'), the task allocation unit 15022 can allocate the task in a manner that satisfies the following formula. Additionally, in the formula, "R" can be the maximum value of the robot 20's identification number. Σ(r=1 R)δ r,t’,s’ ≥1 …(41)
[0080] Furthermore, if, according to specifications, a particular robot (r') cannot perform a specific task (t'), the task allocation unit 15022 can allocate tasks in a manner that satisfies the following formula. Additionally, in the formula, "S" can be the maximum value of the identification number of the time slot during the operation period. Σ(s=1 S)δ r’,t’,s =0 …(42)
[0081] Furthermore, if, according to the specifications, none of the robots 20 can perform a specific task (t'), the task allocation unit 15022 can allocate tasks in a manner that satisfies the following formula. Thus, the corresponding task may not be allocated and can 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 allocation unit 15022 can allocate tasks in a manner that satisfies the following formula. Σ(t=1 T)δ r’,t,s’ ≤T MAX …(43)
[0083] Furthermore, given that each robot 20 has an upper limit on the number of time slots that can operate continuously, the task allocation unit 15022 can allocate tasks in a manner that satisfies the following formula. In this formula, "P" is the upper limit value of the number of time slots that can operate continuously. Additionally, "s'" is any integer satisfying 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, when a specific robot (r') does not operate in a specific region (a') and a specific time slot (s') (i.e., in the case of binary variable η) r’,a’,s’ When the value is 0, the task allocation unit 15022 can allocate tasks in a manner that satisfies any of the following formulas. Σ(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, when a particular robot (r') is constrained by the relationship between the number of time slots required for charging and the number of time slots that can operate continuously, the task allocation unit 15022 can allocate tasks in a manner that satisfies the following formula. In this formula, "C" is the number of time slots required for charging, and "s'" is any integer satisfying s'+P+C≤S. The task allocation unit 15022 can calculate the value of the number of time slots C based on the battery's full charge capacity and remaining battery capacity. Σ(s=s' s'+P+C)δ r’,s ≤P …(53)
[0086] Furthermore, when there is a constraint that restricts the continuous operation of robot 20 by limiting the transition between operating and non-operating states, the task allocation unit 15022 can allocate tasks in a manner that satisfies any of the following formulas. In addition, "s'" in the formula is any integer satisfying s'+P+C≤S. Σ(s=s' s'+P+C)ζ r,s ≤2 …(54)
[0087] Furthermore, when it is necessary to charge each robot 20, such as when the device 10 starts operating, the task allocation unit 15022 can allocate tasks in a manner that satisfies the following formula. In this formula, "C'" is any integer satisfying C'≤C. Σ(s=0 C')δ r,s =0 …(55)
[0088] In addition, the task allocation unit 15022 can use variable N. f (a, s', f), variable N s (a, s', f) and variable N w (a, s1, s2, f) is used to perform region allocation and task allocation. Here, variable N f (a, s', f) represents the number of tasks executed using the corresponding function in the corresponding region whose executable deadline ends in a specific time slot (s'). Variable N s (a, s', f) represents the number of tasks that begin during the executable period in a specific time slot (s') within the corresponding region, using the corresponding function for execution. Variable N w (a, s1, s2, f) represents the number of tasks that start and end during the executable period from the start time of a specific time slot (s1) to the end time of a specific time slot (s2) in the corresponding region, using the corresponding function for execution.
[0089] As an example, the task allocation unit 15022 can allocate tasks to each robot 20 in a manner that satisfies the constraints expressed by the following formula.
[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 allocation unit 15022 can treat the allocation policy of regions and tasks as an optimization problem by expressing it as an objective function. That is, the task allocation unit 15022 can solve the MRTA problem using optimization methods. For example, the task allocation unit 15022 can use the objective function min(Σ) of the function f(s) incorporating time slots (s). r Σ t Σ s f(s)·δ r,t,s Alternatively, the allocation can be performed using the objective function min(Σ). r Σ a Σ s Σ f f(s)·ν r,a,s,f The task allocation is performed by assigning tasks. The function f(s) can be a function whose value increases as "s" increases. This allows tasks to be allocated in a way that allows them to be executed as early as possible. The task allocation unit 15022 can use the objective function min(Σ) r Σ s f(s)·δ r,s Alternatively, the allocation can be performed using the objective function min(Σ). r Σ a Σ s Σ f f(s)·η r,a,s The task allocation is performed to allocate tasks. This allows for the allocation of as many tasks as possible to a robot 20 within a time slot. Alternatively, the task allocation unit 15022 can solve the MRTA problem using other methods, such as a market-based approach or a behavior-based approach, instead of an optimization method.
[0092] In this embodiment, the task allocation unit 15022 may not assign one or more tasks to be performed by the robot 20. If the task allocation unit 15022 can allocate up to N tasks, it may allocate only N-1 or fewer tasks. The task allocation unit 15022 can exclude tasks that are not allocated (also called unallocated tasks) from the tasks to be performed, solve an optimization problem for the remaining tasks, and then allocate them. The number of unallocated tasks can be preset.
[0093] The excluded tasks can be selected randomly or based on task information, etc. The task allocation unit 15022 can allocate tasks to the excluded specific tasks (t') in a manner that satisfies the following formula. Thus, the corresponding tasks can be excluded from the allocation. The task allocation unit 15022 can remove the restriction of the above formula (7) for tasks that are not allocated and allocate tasks accordingly. Σ(s=1 S)δ r,t’,s =0 …(8'')
[0094] In addition, the allocation of regions and tasks can also be carried out using methods different from integer planning methods, such as those based on hybrid logic dynamic systems theory.
[0095] Figure 3 This represents an example of the various types of information stored in the device 100 of this embodiment. The storage unit 110 may, for example, store inspection reference information, specification information, task information, environmental information, execution feasibility information, and external information.
[0096] Inspection baseline information refers to information that represents pre-defined inspection criteria. For example, inspection baseline information may include the inspection category, importance, criteria for determining whether an item is good or bad, and whether the maintenance manager needs to be present.
[0097] Specification information refers to the individual specifications of the multiple robots 20. For example, the specification information may include information such as the movement unit of each robot 20, the onboard sensors (measurable physical quantities), the onboard arm, the movement speed, the continuous action time, the full charge capacity of the battery, the remaining battery charge, the steps that can be crossed, explosion-proof capability, the number of tasks that can be performed per unit time, the charging position, and the current position. The specification information may also include recent usage information (for example, task information for the tasks performed). Here, the continuous action time can represent the estimated continuous action time based on the battery's standard full charge capacity, or it can represent the estimated continuous action time based on the full charge capacity considering SOH (State of Health) battery degradation; for example, it could be approximately 0.5 to 2 hours. Furthermore, the remaining battery charge can represent the ratio of the current battery charge capacity to the battery's standard full charge capacity, i.e., SOC (State of Charge), or it can represent the ratio of the current battery charge capacity to the full charge capacity considering SOH battery degradation.
[0098] Task information refers to the necessary conditions for multiple tasks to be performed in device 10. As an example, task information may include the execution location, deadline, cycle, project, steps, object measuring instruments, object manipulators, specifications required by robot 20, and task priority for each of the multiple tasks.
[0099] Environmental information refers to information about the environment of device 10. For example, environmental information may include 3D maps of multiple locations of device 10, as well as information such as temperature, humidity, gas concentration, and radiation levels.
[0100] Execution feasibility information indicates whether each of the plurality of robots 20 is capable of performing each of the plurality of tasks. In this embodiment, such execution feasibility information may be information pre-generated manually, taking into account the specifications of the robot 20, the necessary conditions of the task, and the environment of the equipment 10.
[0101] External information refers to information that can interfere with the construction of work plans. For example, external information may include maintenance plans, weather, external temperature, and disaster information.
[0102] Figure 4 This figure illustrates an example of the results of area allocation performed by the apparatus 100 of this embodiment. As an example, in time slot 1 (9:00 AM to 9:30 AM), robot 20j was allocated to area A. Furthermore, as an example, in time slot 2 (9:30 AM to 10:00 AM), robots 20j and 20k were allocated to area B. Additionally, as an example, in time slot 3 (10:00 AM to 10:30 AM), no robot 20 was allocated to area C.
[0103] In this way, the area allocation unit 15021 can allocate multiple robots 20 to multiple areas for each predetermined time slot. However, the area allocation unit 15021 may not necessarily allocate each of the multiple robots 20 to every single area. For example, the continuous operating time of robot 20k is 2 hours. In this case, if robot 20k starts working at 9:00, it is predicted that the battery will run out at 11:00. In this case, the area allocation unit 15021 may also perform area allocation in a manner that, for example, it does not allocate robot 20k to any area during time slot 4 (10:30 to 11:00) to allow it to charge.
[0104] Furthermore, the region allocation unit 15021 can, in the region allocation within a time slot, determine the starting position s and ending position e of each robot 20 within its respective time slot, based on the results of region allocation in other time slots. For example, focusing on robot 20k, in this figure, "Xsk1" represents the X-coordinate of the starting position sk1 of robot 20k in time slot 1. Similarly, "Ysk1" represents the Y-coordinate of the starting position sk1 of robot 20k in time slot 1. Furthermore, "Xek1" represents the X-coordinate of the ending position ek1 of robot 20k in time slot 1. Similarly, "Yek1" represents 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 moves from time slot 1 to time slot 2, it causes a movement between regions from region C to region B. Similarly, when robot 20k moves from time slot 2 to time slot 3, it causes a movement between regions from region B to region A.
[0106] In this scenario, it is preferable that the end point ek1 in time slot 1 of robot 20k and the start point sk2 in time slot 2 of robot 20k are located nearby. Similarly, it is preferable that the end point ek2 in time slot 2 of robot 20k and the start point sk3 in time slot 3 of robot 20k are located nearby.
[0107] Therefore, the region allocation unit 15021 can determine the coordinates (Xek1, Yek1) of the endpoint position ek1 and the coordinates (Xsk2, Ysk2) of the starting position sk2, such that the endpoint position ek1 and the starting position sk2 are nearby. Similarly, the region allocation unit 15021 can determine the coordinates (Xek2, Yek2) of the endpoint position ek2 and the coordinates (Xsk3, Ysk3) of the starting position sk3, such that the endpoint position ek2 and the starting position sk3 are nearby. That is, the region allocation unit 15021 can 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) in a manner where 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 below a predetermined threshold (preferably the minimum).
[0108] Furthermore, in the case where there is no preceding or following time slot at the beginning or end of a time slot, the area allocation unit 15021 can determine the coordinates of the starting position s and the ending position e at any position, such as a distance from the standby position (charging station, etc.) of the robot 20, which is below a predetermined threshold (preferably the minimum).
[0109] The region allocation unit 15021 can perform such region allocation based on the specifications of multiple robots 20 and the necessary conditions of multiple tasks (e.g., based on execution feasibility information) using various existing algorithms. For example, the region allocation unit 15021 can perform region allocation using an integer planning method. In this case, the region allocation unit 15021 can perform region allocation in a manner that maximizes the objective function. At this time, the region allocation unit 15021 can set the objective function such that the greater the amount (number) of tasks to be accomplished, the larger the value. Furthermore, the region allocation unit 15021 can set the objective function such that the larger the inter-region movement distance, the smaller the value. Additionally, the inter-region movement distance is determined in the subsequent inter-region path determination process and is undetermined at this point in time. Therefore, the region allocation unit 15021 can determine the inter-region movement distance based on a predefined provisional distance according to the movement from which region to which region.
[0110] Figure 5 This figure illustrates an example of the result of task allocation performed by the apparatus 100 of this embodiment. As an example, this figure shows the task allocation for region B in time slot 2. As described above, robots 20j and 20k are allocated to region B in time slot 2. In this case, region B becomes the target region, and robots 20j and 20k are defined as target robots. In this case, the task allocation unit 15022 allocates tasks b1 to bn within region B, which is the target region, from among the multiple robots 20 that are the target robots, robots 20j and 20k.
[0111] In this figure, as an example, tasks b1, b2, b4, b5, and b6 are assigned to robot 20j, and tasks b3, b5, and b7 are assigned to robot 20k. Additionally, task b5 is assigned to both robot 20j and robot 20k. This may occur, for example, in a multi-task scenario where task b5 involves measuring the temperature of piping during valve opening and closing operations. In this case, task allocation unit 15022 can assign the valve opening and closing operation task of task b5 to robot 20k equipped with an arm, and the piping temperature measurement task of task b5 to robot 20j equipped with a thermal imager. Task allocation unit 15022 can also, for example, assign shared tasks to multiple robots 20.
[0112] The task allocation unit 15022 can perform such task allocation based on the specifications of multiple robots 20 and the necessary conditions of multiple tasks (e.g., based on execution feasibility information) using various existing algorithms. As an example, the task allocation unit 15022 can perform task allocation using an integer planning method, similar to the area allocation unit 15021. The task allocation unit 15022 may also choose not to allocate one or more tasks to the robots 20.
[0113] Figure 6 This figure illustrates another example of the result of task allocation performed by the device 100 in the embodiment. As an example, this figure shows the task allocation in each time slot. For instance, in the time slot from 8:30 to 9:00, the robot 20 with identification number "r1" can be assigned identification numbers "t1", "t2", ... "t". a The task is as follows: no task is assigned to robot 20 with identification number "r2", and identification numbers "t5", "t6", ... "t" are assigned to robot 20 with identification number "R". α The task of "".
[0114] Figure 7 This figure illustrates an example of a path within a region defined by the apparatus 100 of this embodiment. As an example, this figure shows a path within region B in time slot 2.
[0115] In this diagram, the white triangle represents the starting position sj2 of robot 20j in time slot 2. As mentioned above, the coordinates of the starting position sj2 are determined to be (Xsj2, Ysj2). Furthermore, in this diagram, the white circle represents the ending position ej2 of robot 20j in time slot 2. As mentioned above, the coordinates of the ending position ej2 are determined to be (Xej2, Yej2). Additionally, as mentioned above, tasks b1, b2, b4, b5, and b6 are assigned as tasks in time slot 2 of robot 20j.
[0116] In this scenario, the intra-region path determination unit 15023 can determine the intra-region path of robot 20j within time slot 2 based on the starting position sj2, the ending position ej2, and the respective positions of tasks b1, b2, b4, b5, and b6. In this figure, solid arrows represent intra-region paths of robot 20j within time slot 2. As an example, this figure shows that in time slot 2, robot 20j should move along the path: starting position sj2 → task b1 → task b4 → task b6 → task b5 → task b2 → ending position ej2.
[0117] The intra-region path determination unit 15023 can determine intra-regional paths according to predetermined rules. For example, the intra-regional path determination unit 15023 can also determine intra-regional paths in the order of task b1 closest to the starting position sj2 → task b4 closest to task b1 → ... from task b2 to the ending position ej2, following the rule of sequentially traversing from the most recent task. However, it is not limited to this. The intra-regional path determination unit 15023 can also determine intra-regional paths according to other rules. For example, the intra-regional path determination unit 15023 can also determine intra-regional paths according to a rule that makes the total distance of the intra-regional paths below a predetermined threshold (preferably the minimum). For example, in this way, the intra-regional path determination unit 15023 can determine intra-regional paths based on the starting position s and the ending position e in a time slot.
[0118] Similarly, in this diagram, the black triangle represents the starting position sk2 in time slot 2 of robot 20k. As mentioned above, the coordinates of the starting position sk2 are determined to be (Xsk2, Ysk2). Furthermore, in this diagram, the black circle represents the ending position ek2 in time slot 2 of robot 20k. As mentioned above, the coordinates of the ending position ek2 are determined to be (Xek2, Yek2). Moreover, as mentioned above, tasks b3, b5, and b7 are assigned as tasks in time slot 2 of robot 20k.
[0119] In this scenario, the intra-region path determination unit 15023 can determine the intra-region path of robot 20k within time slot 2 based on the starting position sk2, the ending position ek2, and the respective positions of tasks b3, b5, and b7. In this figure, the dashed arrows represent the intra-region path of robot 20k within time slot 2. As an example, this figure shows that in time slot 2, robot 20k should move along the path: starting position sk2 → task b3 → task b7 → task b5 → ending position ek2.
[0120] Furthermore, as described above, task b5 is assigned to both robot 20j and robot 20k. In this case, the intra-area path determination unit 15023 can determine the intra-area paths of robot 20j and robot 20k respectively, such that robot 20j and robot 20k are located at the position of task b5 at the same time. As an example, when a common task is assigned to multiple object robots, the intra-area path determination unit 15023 can use the waiting time for the arrival of other object robots among the multiple object robots at the position of the common task as a cost, and determine the intra-area paths of the multiple object robots respectively in a way that minimizes the value of the cost function (preferably in a way that minimizes it).
[0121] Furthermore, in this figure, the × symbol indicates the possibility of multiple object robots colliding with each other. For example, the path of robot 20j moving from task b2 to destination ej2 intersects with the path of robot 20k moving from task b5 to destination ek2, and there is a possibility that they pass through the intersection at the same time. In this case, the intra-area path determination unit 15023 can, for example, change the path of robot 20k moving from task b5 to destination ek2 to a path that does not intersect with the path of robot 20j moving from task b2 to destination ej2. Additionally, the above description illustrates, as an example, the intra-area path determination unit 15023 changes the path of any one robot 20 to prevent the paths of multiple object robots from intersecting, but it is not limited to this. Even if the paths of multiple object robots intersect, there is no possibility of collision if they pass through the intersection at different times. Therefore, the intra-area path determination unit 15023 can also be modified to allow any one object robot to remain idle so that multiple object robots pass through the intersection at different times. For example, the path determination unit 15023 within the region can determine the path within the region separately for multiple object robots to avoid collisions with each other. Furthermore, if the multiple object robots have different movement heights and there is no possibility of collision, the path determination unit 15023 within the region may not perform collision avoidance.
[0122] Figure 8 This figure illustrates an example of the inter-regional path determined by the apparatus 100 of this embodiment. As an example, this figure shows the inter-regional path between region A and region B between time slot 1 and time slot 2.
[0123] In this diagram, the white circle represents the endpoint position ej1 in time slot 1 of robot 20j. As mentioned above, the coordinates of the endpoint position ej1 are determined to be (Xej1, Yej1). Furthermore, in this diagram, the white triangle represents the starting position sj2 in time slot 2 of robot 20j. As mentioned above, the coordinates of the starting position sj2 are determined to be (Xsj2, Ysj2).
[0124] In this scenario, the inter-region path determination unit 15024 can determine the inter-region path between time slot 1 and time slot 2 of robot 20j based on the endpoint position ej1 in time slot 1 and the starting position sj2 in time slot 2. In this figure, the solid arrows represent the inter-region path between time slot 1 and time slot 2 of robot 20j.
[0125] The inter-region path determination unit 15024 can determine such an inter-region path according to a predetermined rule. For example, the inter-region path determination unit 15024 can determine obstacles that may hinder the movement of robot 20j based on specification information and environmental information, referring to the movement unit of robot 20j. Furthermore, the inter-region path determination unit 15024 can also determine the inter-region path according to a rule that avoids the determined obstacles and makes the distance from the end position ej1 to the start position sj2 below a predetermined threshold (preferably the minimum). For example, the inter-region path between time slot 1 and time slot 2 of robot 20j can also be determined in this way. However, it is not limited to this. The inter-region path determination unit 15024 can also determine the inter-region path according to other rules. For example, the inter-region path determination unit 15024 can determine the inter-region path based on the end position e in one time slot and the start position s in a subsequent time slot.
[0126] Similarly, in this figure, the black circle represents the end position ei1 in time slot 1 of robot 20i. As mentioned above, the coordinates of the end position ei1 are determined as (Xei1, Yei1). Furthermore, in this figure, the black triangle represents the starting position si2 in time slot 2 of robot 20i. As mentioned above, the coordinates of the starting position si2 are determined as (Xsi2, Ysi2).
[0127] In this case, the inter-region path determination unit 15024 can determine the inter-region path between time slot 1 and time slot 2 of robot 20i based on the end point position ei1 in time slot 1 and the start point position si2 in time slot 2. In this figure, the dashed arrows represent the inter-region path between time slot 1 and time slot 2 of robot 20i.
[0128] Furthermore, in this figure, the × symbol indicates the possibility of multiple robots 20 moving between the same area colliding with each other. For example, the path of robot 20j moving from the end position ej1 to the starting position sj2 intersects the path of robot 20i moving from the end position ei1 to the starting position si2, and there is a possibility that they will pass through the intersection at the same time. In this case, the inter-area path determination unit 15024 can change the path of robot 20i so that multiple robots pass through the intersection at different times. Additionally, collision avoidance in the inter-area path determination unit 15024 can be performed according to various rules, similar to the intra-area path determination unit 15023. For example, in this way, the inter-area path determination unit 15024 can determine inter-area paths for each of the multiple robots 20 in a manner that avoids mutual collisions.
[0129] Figure 9This is an example of a flowchart illustrating a method performed by the apparatus 100 of this embodiment. Each step in the method can be performed by a computer. However, in each step, as long as the computer is the overall agent, it is also possible for non-critical parts to be performed by something other than the computer. The same applies to other flowcharts.
[0130] In step S702, the device 100 acquires various information. For example, the acquisition processing unit 1501 can acquire various information for constructing the work plan during the first operation. As an example, the acquisition processing unit 1501 can acquire... Figure 3 The inspection criteria information, specification information, task information, environmental information, execution feasibility information, and external information are shown. Furthermore, in this embodiment, the acquisition processing unit 1501 can acquire information pre-stored in the storage unit 110. In the storage unit 110, as execution feasibility information, information pre-created manually, considering the specifications of the robot 20, the necessary conditions for the task, and the environment of the equipment 10, can be pre-stored.
[0131] In step S704, the device 100 generates a work plan. For example, the generation processing unit 1502 can generate candidate work plans for multiple tasks to be performed by multiple robots 20. The generation processing unit 1502 can generate a first work plan during a first work period, or it can generate a first work plan each time step S704 is performed.
[0132] The generation processing unit 1502 can generate a job plan in a manner that allows at least one task to be omitted. In this embodiment, as an example, the generation processing unit 1502 can generate a job plan such that the number of tasks not executed, i.e., the number of unassigned tasks, is any value from 0 to M. For example, the generation processing unit 1502 can increment the number of unassigned tasks from 0 to M and generate a job plan each time a base number of steps S730 is performed, or it can randomly determine the number of unassigned tasks within the range of 0 to M and generate a job plan. Alternatively, M can be a predetermined value that serves as an upper limit for the number of unassigned tasks. Alternatively, M can be the total number of tasks. Details of step S704 will be described later.
[0133] In step S706, the device 100 sets the penalty parameters for each task. For example, the setting processing unit 1504 can set the penalty parameters for each task to a value that increases with the priority of the task. As an example, when the priority of a task is set numerically, the setting processing unit 1504 can directly set the value of that priority as the penalty parameter.
[0134] In step S708, the device 100 determines whether the generation of the work plan meets the termination conditions. For example, the determination processing unit 1503 can determine whether a termination condition such as generating a baseline quantity of work plans is met. The baseline quantity can be preset to any value. If the termination condition is not met ("No" in step S708), the process can proceed to step S704. If the termination condition is met ("Yes" in step S708), the process can proceed to step S710.
[0135] In step S710, the device 100 determines a first work plan based on the generated work plan. For example, the determination processing unit 1503 can use the aforementioned objective function to determine a first work plan whose objective function value satisfies the baseline condition within the generated first work plan. The determination processing unit 1503 can calculate the objective function value for each of the first work plans generated in step S704 and determine the first work plan with the minimum objective function value. The determination processing unit 1503 can assign a penalty to the objective function corresponding to the penalty parameter of the task that is not executed in the penalty parameters set for each task, and calculate the objective function for each first work plan.
[0136] In step S712, device 100 outputs a first work plan. For example, output unit 160 may output at least a portion of the area allocation, task allocation, intra-area paths, and inter-area paths in the first work plan. As an example, output unit 160 may output all of the area allocation, task allocation, intra-area paths, and inter-area paths in the first work plan.
[0137] In step S722, the device 100 acquires various information. For example, the acquisition processing unit 1501 can acquire various information for constructing a work plan for the next work period after the first work period, i.e., the second work period, similar to step S702 described above. The task information acquired in step S722 may include information on new tasks not acquired in step S702. The task information acquired in step S722 may not include information on tasks executed through the first work plan, but may include information on tasks not executed in the first work plan. Furthermore, the processing in step S722 can be performed before, during, or after the execution of the first work plan determined in step S710.
[0138] In step S724, device 100 generates the next work plan, i.e., the second work plan. For example, generation processing unit 1502 can generate candidates for the second work plan during the second work period, similar to step S704 described above, by having multiple robots 20 perform multiple tasks. Generation processing unit 1502 can generate the second work plan for multiple tasks for which task information was obtained in step S722, or it can generate the second work plan for multiple new tasks that include tasks that are not performed in the first work plan.
[0139] In step S726, the device 100 sets the penalty parameters for each task. For example, the setting processing unit 1504 can set the penalty parameters for each task to a larger value if the priority of the task is higher, similar to step S706 described above. However, the setting processing unit 1504 can also set the penalty parameters for tasks that are not executed in the first job plan among the tasks for which task information was obtained in step S702, to be larger than the value set in step S706 when the first job plan was determined. As an example, the setting processing unit 1504 can add or multiply a constant to the penalty parameters set in step S706 to set a new penalty parameter.
[0140] In step S728, the device 100 determines whether the generated work plan meets the termination conditions. For example, the determination processing unit 1503 can determine whether the termination conditions are met in the same way as in step S708. If the termination conditions are not met ("No" in step S728), the process can proceed to step S724. If the termination conditions are met ("Yes" in step S728), the process can proceed to step S730.
[0141] In step S730, the device 100 determines a second work plan based on the generated work plan. For example, the determination processing unit 1503 can, similarly to step S710 above, use an objective function to determine a second work plan whose objective function value satisfies the reference conditions.
[0142] Device 100 terminates this process in this manner, for example. Furthermore, when generating work plans after the third work period, device 100 can repeatedly perform the same processing as steps S722 to S732 and output work plans after the third. In addition, as explained above, the termination condition for generating work plans is generating a baseline number of work plans, but it can also be generating work plans whose objective function value satisfies the baseline condition. In this case, during the processing in steps S708 and S728, the determination processing unit 1503 can determine whether the generated first and second work plans satisfy the baseline condition and whether the termination condition is met.
[0143] Based on the above actions, the penalty parameter for tasks not performed in the first work plan is greater when determining the second work plan than when determining the first work plan. Therefore, the second work plan can be determined in a way that more reliably performs tasks not performed in the first work plan.
[0144] Figure 10 This is an example of a flowchart illustrating the method performed by device 100. Through the actions shown in this figure, device 100 can generate a work plan in the aforementioned steps S704 and S724.
[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 by assigning the multiple robots 20 to the multiple areas divided by the device 10 based on at least a portion of the various information obtained in steps S702 and S722, such as execution availability information, and based on the specifications of the multiple robots 20 and the necessary conditions for the multiple tasks to be performed in the device 10 that is the target of the work. As an example, Figure 4 As shown, the region allocation unit 15021 can allocate robot 20j to region A, robot 20i to region B, and robot 20k to region C in time slot 1. Furthermore, the region allocation unit 15021 can allocate robot 20i to region A and robot 20j and robot 20k to region B in time slot 2. Additionally, the region allocation unit 15021 can allocate robot 20i and robot 20k to region A and robot 20j to region B in time slot 3.
[0146] At this time, as described above, in addition to assigning each robot 20 to a specific region according to each time slot, the region allocation unit 15021 can also, based on the results of region allocation in other time slots, determine the starting position s and ending position e of each robot 20 within its respective time slot. The region allocation unit 15021 supplies the region allocation results to the task allocation unit 15022, the intra-regional path determination unit 15023, the inter-regional path determination unit 15024, and the determination processing unit 1503.
[0147] In step S930, the device 100 performs task allocation. For example, the task allocation unit 15022 of the generation processing unit 1502 can allocate multiple tasks to multiple robots 20. The task allocation unit 15022 can perform task allocation for each of the multiple regions, specifically for an object robot among the multiple robots 20 that is assigned to at least one robot in the object region, to perform task allocation for tasks within the region that belong to at least one task in the object region. As an example, such as Figure 5As shown, the task allocation unit 15022 can allocate tasks b1, b2, b4, b5, and b6 to robot 20j in region B of time slot 2, and allocate tasks b3, b5, and b7 to robot 20k.
[0148] The task allocation unit 15022 can perform task allocation in the same way for other time slots and other regions. Furthermore, the results of such task allocation to other regions are completely independent and do not affect each other. Therefore, the task allocation unit 15022 can process task allocation to multiple regions in parallel. The task allocation unit 15022 supplies the results of the task allocation to the regional path determination unit 15023 and the determination processing unit 1503.
[0149] Here, the task allocation unit 15022 may also choose not to allocate at least one of the multiple tasks to be executed. In this embodiment, as an example, the task allocation unit 15022 may allocate the number of unexecuted tasks as any value from 0 to M. As an example, the task allocation unit 15022 may increment the number of unallocated tasks from 0 to M and allocate them each time the operation in this figure is performed a base number of times, or it may randomly determine the number of unallocated tasks within the range of 0 to M and allocate them. However, if the number of tasks to be executed is too large to allocate all tasks, the task allocation unit 15022 may choose not to allocate tasks exceeding the number of unallocated tasks. As an example, if L tasks cannot be allocated among the tasks to be executed, the task allocation unit 15022 may set the number of unexecuted tasks to any value from L to L+M and allocate them.
[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 can determine the region path that causes the target robot to move within the target region based on the result of the task allocation performed in step S930. As an example, for region B in time slot 2, the region path determination unit 15023 can cause the robot 20j to move according to... Figure 7 The solid arrows shown indicate the path movement method used to determine the path within the area of robot 20j. Similarly, the area path determination unit 15023 can cause robot 20k to follow... Figure 7 The dashed arrows shown indicate the path movement method used to determine the path within the area of robot 20k. At this time, as described above, the path determination unit 15023 can determine the path within the area based on the start position s and end position e within a time slot. Furthermore, as described above, the path determination unit 15023 can determine the path within the area for multiple object robots separately in a manner to avoid collisions between them.
[0151] The intra-region path determination unit 15023 can determine intra-region paths in the same way for other time slots and other regions. Furthermore, the results of determining intra-region paths for other time slots and other regions are completely independent and do not affect each other. Therefore, the intra-region path determination unit 15023 can process the determination of intra-region paths for multiple time slots and multiple regions in parallel. The intra-region path determination unit 15023 supplies the intra-region paths to the determination processing unit 1503.
[0152] In step S950, the device 100 determines the inter-region path. For example, the inter-region path determination unit 15024 of the generation processing unit 1502 can determine the inter-region path that allows the multiple robots 20 to move between multiple regions based on the region allocation performed in step S920. As an example, for the region A and region B between time slot 1 and time slot 2, the inter-region path determination unit 15024 can cause the robots 20j to move according to... Figure 8 The solid arrows shown indicate the path movement method used to determine the inter-region path of robot 20j. Similarly, the inter-region path determination unit 15024 can cause robot 20i to follow... Figure 8 The path movement of the dashed arrows shown in the diagram determines the inter-region path of robot 20i. At this time, as described above, the inter-region path determination unit 15024 can determine the inter-region path based on the end position e in one time slot and the start position s in a subsequent time slot. Furthermore, as described above, the inter-region path determination unit 15024 can determine the inter-region path for each of the multiple robots 20 in a manner that avoids mutual collisions.
[0153] The inter-region path determination unit 15024 can determine inter-region paths for other time slots and other regions in the same way. Furthermore, the results of determining inter-region paths for other time slots and other regions are completely independent and do not affect each other. Therefore, the inter-region path determination unit 15024 can process the determination of inter-region paths for multiple time slots and multiple regions in parallel. The inter-region path determination unit 15024 supplies the inter-region paths to the determination processing unit 1503.
[0154] Furthermore, the above description illustrates, as an example, the case where device 100 executes step S950 after steps S930 and S940. However, it is not limited to this. The determination of inter-regional paths in step S950, the result of task allocation in step S930, and the determination of intra-regional paths in step S940 are completely independent and do not affect each other. Therefore, device 100 can execute step S950 before steps S930 and S940, or it can execute step S950 in parallel with steps S930 and S940.
[0155] Previously, it was known that optimization problems were constructed based on various factors and planning guidelines, and the desired work plan was obtained by solving them. However, solving work planning problems based on multi-robot systems is a computationally very expensive problem known as NP-hard, making it impractical in application. Furthermore, the computational cost also depends on the scale of the equipment 10 and the number of robots introduced. For example, if a large number of robots are introduced into a large-scale equipment 10 such as a factory, it is conceivable that simply implementing methods to reduce the computational load and obtain approximate solutions will not be feasible.
[0156] In this embodiment, the apparatus 100 divides the processing into area allocation, task allocation, intra-area path determination, and inter-area path determination. Therefore, according to the apparatus 100 of this embodiment, the operation planning problem of multiple robots 20 can be solved, and a realistic operation plan can be constructed.
[0157] In particular, as described above, task allocation for different regions is independent. Therefore, the apparatus 100 of this embodiment can process task allocation for multiple regions in parallel. Similarly, the determination of intra-regional paths for different time slots and different regions is independent. Therefore, the apparatus 100 of this embodiment can process task allocation for multiple time slots and multiple regions in parallel. Similarly, the determination of inter-regional paths between different time slots and different regions is independent. Therefore, the apparatus 100 of this embodiment can process the determination of inter-regional paths between multiple time slots and multiple regions in parallel. Thus, according to the apparatus 100 of this embodiment, the job planning problem can be solved at high speed regardless of the size of the equipment 10 or the number of robots 20, thereby enabling the construction of realistic job plans with realistic computation time.
[0158] Furthermore, in the region allocation within a time slot, the apparatus 100 of this embodiment can also determine the start position and end position of each of the multiple robots 20 in their respective time slots based on the results of region allocation in other time slots. Therefore, according to the apparatus 100 of this embodiment, by determining the start position s and end position e through region allocation processing, the task allocation processing and the intra-regional path determination processing can be made independent of the inter-regional path determination processing, thereby providing flexibility for the execution of subsequent processes.
[0159] Furthermore, the apparatus 100 of this embodiment can also determine the path within a region based on the start position s and end position e in a time slot. Therefore, according to the apparatus 100 of this embodiment, the result of region allocation is followed when determining the path within a region, thus ensuring the consistency of the work plan.
[0160] Furthermore, the apparatus 100 of this embodiment can also determine the inter-regional path based on the end position e in a time slot and the start position s in a subsequent time slot. Therefore, according to the apparatus 100 of this embodiment, the inter-regional path is determined following the results of the region allocation, thus ensuring the consistency of the work plan.
[0161] Furthermore, the apparatus 100 of this embodiment can also determine at least one of the intra-regional path and the inter-regional path in a manner that avoids collisions between the robots 20. Thus, according to the apparatus 100 of this embodiment, even when it is necessary to assign a path to each of the multiple robots 20, interference between the robots 20 can be avoided, thereby preventing the operation from failing to proceed as planned due to interference.
[0162] Furthermore, the apparatus 100 of this embodiment can also output at least one of area allocation, task allocation, intra-area path, and inter-area path as a work plan. Therefore, according to the apparatus 100 of this embodiment, part or all of the plan for operating the equipment 10 through a multi-robot system can be communicated to the user or other systems, thereby reducing the load on the user or other systems.
[0163] Figure 11 An example of the block diagram of the apparatus 100 of the first variation of this embodiment is shown together with the device 10 that is the object of operation. In this figure, the device having the same characteristics as... Figure 1 Components with the same function and structure are labeled with the same reference numerals, and descriptions are omitted except for the following differences. In the above embodiment, as an example, the device 100 stores execution feasibility information pre-created manually; however, in this modified embodiment, the device 100 determines execution feasibility itself. In addition to the functional units included in the device 100 of the above embodiment, the device 100 of this modified embodiment also includes a feasibility determination unit 1507. The feasibility determination unit 1507 can be implemented by the processor 150 executing a program stored in the storage unit 110.
[0164] The feasibility determination unit 1507 determines whether one or more robots can perform one or more tasks based on specification information representing the specifications of one or more robots 20 and task information representing the necessary conditions for one or more tasks. Specifically, the feasibility determination unit 1507 can access the storage unit 110 to determine whether each of the multiple robots 20 can perform each of the multiple tasks based on specification information representing the specifications of each of the multiple robots 20 and task information representing the necessary conditions for the multiple tasks. For example, for a task involving sound acquisition, the feasibility determination unit 1507 can determine that robots 20i and 20k equipped with microphones can perform the task, while determining that robot 20j without microphones cannot perform the task. Similarly, for a task involving photography, it can determine that robots 20i and 20j equipped with cameras can perform the task, while determining that robot 20k without cameras cannot perform the task. Similarly, for a task involving valve operation, it can be determined that robot 20k with an arm can perform the task, while robots 20i and 20j without arms cannot perform the task.
[0165] Furthermore, the feasibility determination unit 1507 can further determine whether execution is feasible based on environmental information representing the environment of each area of the device 10 to which each of the multiple tasks belongs. For example, for a task located in an area where the radiation level is above a threshold, it can be determined that the explosion-proof robot 20k can perform the task, while the non-explosion-proof robots 20i and 20j cannot perform the task. Similarly, for a task located in front of a step 30cm high, it can be determined that the flying robot 20j and the robot 20k, which can cross steps less than 50cm, can perform the task, while the robot 20i, which can only cross steps less than 20cm, cannot perform the task.
[0166] The feasibility determination unit 1507 can determine whether each of the multiple tasks is feasible from multiple perspectives. In this case, since feasibility is determined for each perspective, the feasibility determination unit 1507 only needs to take the logical product of the results that are determined to be feasible. For example, for a task involving sound acquisition in an area with radiation levels above a threshold, the feasibility determination unit 1507 can determine that the robot 20k, equipped with a microphone and possessing explosion-proof features, can perform the task; conversely, it can determine that the robot 20i, although equipped with a microphone, cannot perform the task.
[0167] For example, the approval / disapproval determination unit 1507 can supply the result of such an approval / disapproval determination to the storage unit 110. The storage unit 110 can store the approval / disapproval result supplied by the approval / disapproval determination unit 1507 as approval / disapproval information. Furthermore, the region allocation unit 15021 can perform region allocation based on the approval / disapproval determination made by the approval / disapproval determination unit 1507.
[0168] Thus, the apparatus 100 of this modification determines, based on specification information and task information, whether each of the plurality of robots 20 is capable of performing each of the plurality of tasks. Therefore, according to the apparatus 100 of this modification, it is possible to avoid manually creating execution capability information, thereby reducing the manpower required to determine execution capability, and to construct a work plan based on objective execution capability information that does not depend on deviations or errors in the judgment criteria.
[0169] Furthermore, the apparatus 100 of this modification can further determine whether execution is feasible based on environmental information of each region to which each of the multiple tasks belongs. Thus, according to the apparatus 100 of this modification, the feasibility of execution is determined not only based on the specifications of the robot 20 and the necessary conditions of the task, but also based on the environment of each region where the task is located, thereby enabling the determination of feasibility of execution based on the actual usage environment.
[0170] Figure 12 An example of the block diagram of the apparatus 100 of the second variation of this embodiment is shown together with the device 10 that is the object of the operation. In this figure, the device having the same... Figure 1 , Figure 11 Components with the same function and structure are labeled with the same reference numerals, and descriptions are omitted except for the following differences. In the above embodiments and modifications, the structure of the device 100 outputting a work plan is shown as an example. However, in this modification, the device 100 also acquires and outputs an index for evaluating the output work plan. In addition to the functional units included in the device 100 of the above embodiments, the device 100 of this modification also includes an index acquisition unit 1508. The index acquisition unit 1508 can be implemented by the processor 150 executing a program stored in the storage unit 110. The device 100 of this modification may also include the approval / disapproval determination unit 1507 from the first modification.
[0171] The indicator acquisition unit 1508 acquires indicators that evaluate the work plan according to a predetermined benchmark. For example, the indicator acquisition unit 1508 can acquire indicators that evaluate the work plan against the operating cost of robot 20, the operating rate of robot 20, and the total work time. Furthermore, the indicator acquisition unit 1508 can acquire indicators evaluated by itself using an evaluation formula or evaluation model, indicators evaluated by other systems, or indicators evaluated manually. The indicator acquisition unit 1508 can also acquire the value of the objective function calculated based on the work plan determined by the determination processing unit 1503 as an indicator. In this case, the indicator acquisition unit 1508 can obtain the value of the objective function from the determination 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 apparatus 100 of this modification obtains and outputs the evaluation index of the work plan. Therefore, according to the apparatus 100 of this modification, it is possible to notify users or other systems not only of the constructed work plan, but also of the degree to which the work plan has been highly evaluated.
[0173] Figure 13 An example of the block diagram of the apparatus 100 of the third variation of this embodiment is shown together with the device 10 that is the object of the operation. In this figure, the device having the same... Figure 12 Components with the same function and structure are labeled with the same reference numerals, and descriptions are omitted except for the following differences. In the above variation, the structure up to the output index of device 100 is shown as an example, but in this variation, device 100 also changes at least one of the combination of robot 20 and the division of device 10 into multiple regions based on the output index.
[0174] In other words, up to this point, the combination of robots 20 is fixed (as explained above, it has been determined that robots 20i, 20j, and 20k will be imported into device 10), and the division of device 10 into multiple regions is fixed (as explained above, device 10 is pre-divided into three regions: region A, region B, and region C). Under these conditions, the process of constructing a work plan by device 100 has been described. However, in this variant, device 100 changes at least one of the output indicators. In addition to the functional units of device 100 in the aforementioned variant, device 100 in this variant also includes a robot modification unit 1509 and a region modification unit 1510. The robot modification unit 1509 and the region modification unit 1510 can be implemented by processor 150 executing programs stored in storage unit 110. Device 100 in this variant may also include the affirmative / negative determination unit 1507 from the first variant. In the device 100 of this modified example, the index acquisition unit 1508 supplies the index to the robot modification unit 1509 and the area modification unit 1510.
[0175] The robot modification unit 1509 evaluates the indicators of the work plan according to predetermined benchmarks and changes at least one of the number and specifications of the multiple robots 20. At this time, the robot modification unit 1509 may, for example, only change the number of robots 20 to be introduced into the equipment 10, or only change the specifications of the robots to be introduced into the equipment 10 while keeping the number unchanged, or change both the number and the specifications. As an example, if the total work time is long and the indicators do not meet the predetermined benchmarks, the robot modification unit 1509 may also increase the number of robots 20 to be introduced into the equipment 10. At this time, the robot modification unit 1509 may, for example, add a robot with the same specifications as the existing robots already included in the multiple robots 20 (e.g., robot 20i (2) with the same specifications as robot 20i), or add a new robot with different specifications than the existing robots (e.g., robot 20l). In addition, if the operating rate of a robot 20 is extremely high and the indicators do not meet the predetermined benchmarks, the robot modification unit 1509 may also change the specifications of the robot to be introduced into the equipment 10. At this time, the robot modification unit 1509 may, for example, modify at least one of the existing robots already included in the plurality of robots 20 to a robot of the same specifications as the other existing robots (e.g., modify robot 20i to robot 20j (2) of the same specifications as robot 20j), or modify it to a new robot of different specifications from the existing robots (e.g., modify robot 20i to robot 20l).
[0176] When the robot change unit 1509 changes at least one of the number or specifications of the multiple robots 20, it notifies the storage unit 110 of this change. Correspondingly, the storage unit 110 updates the stored information related to the robots 20 (e.g., specification information) to the new information of the multiple robots 20. Furthermore, the generation processing unit 1502 regenerates the work plan, and the determination processing unit 1503 determines the work plan for the target. For example, in the generation processing unit 1502, as an example, the area allocation unit 15021 reassigns the new multiple robots 20 with changed numbers and specifications to multiple areas. Correspondingly, the task allocation unit 15022 re-executes the task allocation, the intra-area path determination unit 15023 re-determines the intra-area path, and the inter-area path determination unit 15024 re-determines the inter-area path. The device 100 reconstructs the work plan in this way, and the output unit 160 outputs the reconstructed work plan.
[0177] The area modification unit 1510 evaluates the work plan's indicators based on predetermined benchmarks and modifies at least one of the number of areas and boundaries of multiple areas. In this case, the area modification unit 1510 may, for example, only change the number of areas, or only change the boundaries while keeping the number of areas unchanged, or change both the number of areas and the boundaries. As an example, if the total work time is long and the indicators do not meet the predetermined benchmarks, the area modification unit 1510 may also increase the number of areas. In this case, the area modification unit 1510 may, for example, modify multiple areas by re-dividing the equipment 10, which was previously divided into three areas, into four areas. Furthermore, if the robot 20 has an extremely high operating rate and the indicators do not meet the predetermined benchmarks, the area modification unit 1510 may also modify the boundaries used to divide the equipment 10 into multiple areas. In this case, the area modification unit 1510 may, for example, modify all boundaries, re-dividing the equipment 10 into three areas: area D, area E, and area F, or modify a portion of the boundaries, re-dividing the equipment 10 into three areas: area A, area D, and area E.
[0178] When the area change unit 1510 changes at least one of the number of areas or the boundaries of multiple areas, it notifies the storage unit 110 of this change. Furthermore, such a notification may include information indicating the location of the boundaries. Correspondingly, the storage unit 110 re-aggregates the stored task information according to each of the new multiple areas and updates the tasks within each area. Moreover, the area allocation unit 15021 reassigns the multiple robots 20 to the new multiple areas where at least one of the number of areas or the boundaries has changed. Correspondingly, the task allocation unit 15022 re-executes task allocation, the intra-area path determination unit 15023 re-determines the intra-area path, and the inter-area path determination unit 15024 re-determines the inter-area path. The device 100 reconstructs the work plan in this manner, for example, and the output unit 160 outputs the work plan reconstructed according to the new multiple areas.
[0179] Figure 14 This is an example of a flowchart illustrating a method performed by the apparatus 100 in a third variation of this embodiment for repeatedly constructing a work 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 can set the multiple robots 20 to three robots: robot 20i, robot 20j, and robot 20k. Correspondingly, the storage unit 110 can store information representing 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. As an example, the device 100 can set the multiple regions to three regions: region A, region B, and region C, which divide the device 10. Correspondingly, the storage unit 110 summarizes the stored task information according to region A, region B, and region C, and stores it as tasks within regions A, B, and C.
[0182] Correspondingly, the storage unit 110 can update the execution feasibility information. At this time, the storage unit 110 can update the stored execution feasibility information to information created manually, or it can update it based on the judgment result re-judged by the feasibility judgment unit 1507.
[0183] In step S1130, the device 100 constructs a work plan. The construction of the work plan is as described above. For example, the construction of the work plan can be performed through the processes described in steps S704 to S710 (or steps S724 to S730).
[0184] In step S1140, device 100 acquires an indicator. The acquisition of the indicator is as described above.
[0185] In step S1150, device 100 determines whether a termination condition is met. For example, device 100 determines whether the index obtained in step S1140 meets a predetermined benchmark. If it is determined that the index does not meet the predetermined benchmark ("No"), device 100 proceeds the process to step S1160.
[0186] In step S1160, the device 100 changes at least one of the number and specifications of the plurality of robots 20 and / or changes at least one of the number and boundaries of the plurality of regions. At this time, as described above, the robot changing unit 1509 may change only the number of robots 20 to be imported into the device 10, or it may change only the specifications of the robots to be imported into the device 10 while keeping the number unchanged, or it may change both the number and specifications. Furthermore, as described above, at this time, the region changing unit 1510 may change only the number of regions in the plurality of regions, or it may change the boundaries while keeping the number of regions unchanged, or it may change both the number of regions and the boundaries.
[0187] Then, the device 100 returns the process to step S1130 and continues the flow. That is, the device 100 updates the various information stored in the storage unit 110 and reconstructs the work plan based on the new information.
[0188] In step S1150, if it is determined that the index meets the predetermined benchmark ("yes"), the device 100 advances the process to step S1170.
[0189] In step S1170, device 100 outputs a work plan. For example, output unit 160 outputs a work plan that was determined in step S1150 to meet a predetermined benchmark.
[0190] Furthermore, the above description illustrates, as an example, whether the device 100 determines whether the termination condition is met in step S1150 by judging whether the index meets a predetermined benchmark, but it is not limited to this.
[0191] In step S1150, the device 100 may also determine whether the termination condition is met by judging whether the number of times the work plan has been constructed has reached a predetermined number. Alternatively, in step S1150, the device 100 may also determine whether the termination condition is met by judging whether the elapsed time since the start of this process has reached a predetermined time. In this case, the device 100 may also repeatedly construct the work plan and obtain the indicators according to predetermined rules, or by randomly performing the reconstruction of the robot 20 and / or the re-segmentation of the equipment 10, regardless of whether the indicators meet the benchmark. Moreover, the device 100 may also select the work plan with the best indicators from the multiple work plans constructed until the termination condition is met and output it.
[0192] Thus, the apparatus 100 of this variant, based on the evaluation indicators of the work plan, modifies at least one of the number and specifications of the multiple robots 20, reconstructs the work plan, and outputs it. Therefore, according to the apparatus 100 of this variant, by repeatedly solving the work plan problem while adjusting the number and specifications of the multiple robots 20, the appropriate number and specifications of the robots 20 can be calculated.
[0193] Furthermore, the apparatus 100 of this modification, based on the evaluation indicators of the work plan, modifies at least one of the number of areas and boundaries of multiple areas, reconstructs the work plan, and outputs it. Thus, according to the apparatus 100 of this modification, by repeatedly solving the work plan problem while adjusting the number of areas and boundaries of multiple areas, an appropriate number of areas and boundaries can be calculated. In this way, the apparatus 100 of this modification can calculate how to properly set the number and specifications of the robots 20, as well as the number of areas and boundaries. Therefore, according to the apparatus 100 of this modification, the time required for setup can be reduced, and whether the setup is appropriate can be clearly determined.
[0194] Figure 15 An example of the block diagram of the apparatus 100 of the fourth variation of this embodiment is shown together with the device 10 that is the object of the operation. In this figure, the device having the same... Figure 1 , Figures 11-13Components with the same function and structure are labeled with the same reference numerals, and descriptions are omitted except for the following differences. In the above embodiments and modifications, the structure up to the point where the device 100 outputs the work plan is shown as an example. However, in this modification, the device 100 also controls multiple robots 20 according to the output work plan. In addition to the functional units included in the device 100 of the above embodiments, the device 100 of this modification also includes a control unit 170. The device 100 of this modification may also include the approval / disapproval unit 1507 of the first modification, the index acquisition unit 1508 of the second modification, the robot modification unit 1509 of the third modification, and the area modification unit 1510. In the device 100 of this modification, the output unit 160 outputs the work plan to at least the control unit 170.
[0195] The control unit 170 controls multiple robots 20 according to the work plan. As described above, the work plan output from the output unit 160 may include at least one of area allocation, task allocation, intra-area path, and inter-area path. Therefore, the control unit 170 can control multiple robots 20 according to the area allocation so that the target robot is positioned in the target area. Furthermore, the control unit 170 can control multiple robots 20 according to the task allocation so that the target robot performs tasks within the area. The control unit 170 can cause the robots 20 to perform tasks according to the execution steps generated by the method described in Non-Patent Document 2. Furthermore, the control unit 170 can control multiple robots 20 according to the intra-area path so that the target robot moves within the area. Furthermore, the control unit 170 can control multiple robots 20 according to the inter-area path so that the multiple robots 20 move between areas.
[0196] In addition, the term "control" as used here may include not only direct control of robot 20, but also indirect control of robot 20 by controlling a controller that controls robot 20.
[0197] Thus, the device 100 of this modification controls multiple robots 20 according to the work plan. Therefore, the device 100 of this modification not only constructs the work plan but also functions as a control device, thereby enabling the constructed work plan to be implemented in actual control.
[0198] Figure 16 An example of the block diagram of the apparatus 100 of the second embodiment is shown together with the device 10 that is the object of the operation. In this figure, the device having the same... Figure 1 , Figures 11-13 , Figure 15Components with the same function and structure are labeled with the same reference numerals, and descriptions are omitted except for the following differences. In the above embodiments and variations, the structure of the apparatus 100 for constructing and executing a work plan for a task with pre-obtained task information is shown as an example. However, in this embodiment, the apparatus 100 corrects the work plan based on the occurrence of task interruption. In addition to the functional units included in the apparatus 100 of the above embodiments and variations, the apparatus 100 of this embodiment also includes a detection processing unit 1511 and a correction processing unit 1512. The detection processing unit 1511 and the correction processing unit 1512 can be implemented by the processor 150 executing a program stored in the storage unit 110. In the apparatus 100 of this variation, the determination processing unit 1503 outputs the determined work plan to at least the correction processing unit 1512.
[0199] In the event of an interruption task that should be performed through an interruption during the execution of a work plan (for example, the first work plan), the detection processing unit 1511 detects a robot 20 capable of performing the interruption task. The detection processing unit 1511 can detect, among multiple robots 20, the first robot 20 (also called the interruption-corresponding robot 20) that meets the specifications required for the interruption task and is located within a reference range from the execution position of the interruption task. The reference range can be set arbitrarily within a range such as 100m, depending on the moving speed of the robot 20.
[0200] Here, an interrupt task can be a task with a higher priority than other tasks. For example, an interrupt task can be a task that should be performed in an emergency, such as when an abnormality occurs in device 10. An interrupt task can also be a task that was not completed in its scheduled time slot due to an abnormality occurring in robot 20.
[0201] The occurrence of an interruption task can be detected by the acquisition processing unit 1501. Based on the occurrence of an interruption task, the acquisition processing unit 1501 supplies the task information of the interruption task and the specification information of each robot 20 to the detection processing unit 1511. Thus, the detection processing unit 1511 can detect the robot 20 corresponding to the interruption. The detection processing unit 1511 can then supply the identification information of the detected robot 20 corresponding to the interruption to the correction processing unit 1512.
[0202] The correction processing unit 1512 corrects the executing work plan based on the occurrence of the interrupted task. The correction processing unit 1512 can correct the executing work plan so that the interrupted robot 20 performs the interrupted task during the standby time specified in the executing work plan (for example, the first work plan). The standby time of the interrupted robot 20 in the work plan can be the time during which the interrupted robot 20 does not perform the task, or it can be a period longer than the time required to execute the interrupted task. The standby time of the interrupted robot 20 may or may not include the charging time of the interrupted robot 20.
[0203] If the execution of the work plan does not include a standby time for the corresponding robot 20, the correction processing unit 1512 can modify the work plan so that, while multiple robots 20 are executing multiple tasks including interruption tasks, the interruption-corresponding robot 20 performs the interruption task. For example, the correction processing unit 1512 can modify the execution of the work plan so that multiple robots 20 within the device 10 execute multiple tasks including unexecuted tasks and interruption tasks, and the interruption-corresponding robot 20 performs the interruption task. As an example, the correction processing unit 1512 can modify the work plan to create a temporary standby time for the interruption-corresponding robot 20 by assigning any task originally allocated to the interruption-corresponding robot 20 in the original work plan to other robots 20, thereby allowing the interruption-corresponding robot 20 to perform the interruption task during the temporary standby time.
[0204] The correction processing unit 1512 can supply the corrected work plan to the output processing unit 1505. As a result, multiple robots 20 execute the work plan corrected by the output unit 160 and the control unit 170, and the interrupt corresponding robot 20 executes the interrupt task.
[0205] According to the above-described apparatus 100, an interrupt-response 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. Furthermore, the work plan is revised so that the interrupt-response robot 20 performs the interrupt task during the standby time of the interrupt-response robot 20 in the executing work plan. Therefore, the original work plan can be executed, and the interrupt task can be performed.
[0206] Furthermore, if the work plan in progress does not include a standby time for the corresponding robot 20, the work plan is modified so that, while multiple robots 20 are executing multiple tasks including interruption tasks, the interruption task is executed by the corresponding robot 20. Therefore, the multiple tasks and interruption tasks included in the original work plan can be executed reliably.
[0207] Figure 17 This is an example of a flowchart illustrating a method by which the apparatus 100 of this embodiment performs an interrupt task. Furthermore, the operation of this diagram can be compared with the above... Figure 9 , Figure 14 The actions shown are performed in parallel and can be initiated by interrupting the execution of a pre-generated work plan. That is, at the start of this action, a work plan can be pre-generated, in which multiple robots 20 perform multiple tasks, and is in the process of execution.
[0208] In step S1610, the device 100 detects the occurrence of an interrupt task. For example, the acquisition processing unit 1501 can detect an interrupt task by obtaining task information about the interrupt task from a user or the like.
[0209] In step S1620, the device 100 detects the interrupt-corresponding robot 20 that should perform the interrupt task. For example, the detection processing unit 1511 can detect the interrupt-corresponding 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 among the multiple robots 20 in the device 10.
[0210] When the interruption task is performed by a single robot 20, the detection processing unit 1511 can detect only one interruption-corresponding robot 20. As an example, the detection processing unit 1511 can detect the robot 20 that meets the specifications required by the interruption task and is the closest robot 20 to the execution position of the interruption task as the interruption-corresponding robot 20.
[0211] When the interruption task is performed by multiple robots, the detection processing unit 1511 can detect multiple interruption-corresponding robots 20. For example, when the interruption task is performed by three robots, the detection processing unit 1511 can detect three interruption-corresponding robots 20 that meet the specifications required by the interruption task and are located within a reference range from the execution position of the interruption task.
[0212] In step S1630, the device 100 determines whether the interruption-corresponding robot 20 in the executing work plan has a standby time. When multiple interruption-corresponding robots 20 are detected, the correction processing unit 1512 can determine whether each of these interruption-corresponding robots 20 has a standby time. If it is determined that each interruption-corresponding robot 20 has a standby time ("Yes" in step S1630), the process can proceed to step S1640; if it is determined that there is no standby time ("No" in step S1630), the process can proceed to step S1650.
[0213] Furthermore, if the interrupted task is one that should be executed simultaneously by multiple robots 20, the correction processing unit 1512 can also determine whether each of the interrupted robots 20 has a standby time and whether the standby time is the same time within the operation period. In this case, if it is determined that each interrupted robot 20 has a standby time and the standby time is the same time, the processing can proceed to step S1640; if it is determined that there is no standby time or the standby time is different time within the operation period, the processing can proceed to step S1650.
[0214] In step S1640, the device 100 modifies the work plan for each interruption-corresponding robot 20. For example, the modification processing unit 1512 can modify the executing work plan so that the interruption-corresponding robot 20 performs the interruption task during the standby time of each interruption-corresponding robot 20 in the executing work plan (for example, the first work plan).
[0215] In step S1650, the device 100 modifies the work plan for each robot 20. For example, the modification processing unit 1512 can modify the work plan so that, during the execution of multiple tasks including interruption tasks by the multiple robots 20 in the device 10, the interruption task is executed by the interruption-corresponding robot 20.
[0216] Figure 18 A block diagram of a modified embodiment of the apparatus 100 is shown together with the device 10, which is the object of the operation. In this figure, the device having the same... Figure 1 , Figures 11-13 , Figure 15 , Figure 16 Components with the same function and structure are labeled with the same reference numerals, and descriptions are omitted except for the following differences. In the above embodiment, as an example, the device 100 executes an interruption task within an ongoing work plan. However, in this modified embodiment, an interruption task with a higher priority than the baseline priority is executed regardless of the work plan (as an example, an interruption task with high urgency). In addition to the functional units of the device 100 in the above embodiment, the device 100 of this modified embodiment also includes a control processing unit 1513. The control processing unit 1513 can be implemented by the processor 150 executing a program stored in the storage unit 110. In the device 100 of this modified embodiment, the detection processing unit 1511 can supply the identification information of the detected interruption-corresponding robot 20 and the priority of the interruption task to the correction processing unit 1512 and the control processing unit 1513.
[0217] The control processing unit 1513, based on the fact that the priority of the interrupt task is higher than the base priority, causes the interrupt-responsible robot 20 to execute the interrupt task, regardless of the ongoing work plan. This execution of the interrupt task by the interrupt-responsible robot 20, independent of the ongoing work plan, means that the interrupt-responsible robot 20 can execute the interrupt task independently of the work plan. In this case, if the task is assigned to the interrupt-responsible robot 20 in the work plan at the current moment, the task can be interrupted; if the task is assigned to the interrupt-responsible robot 20 after the current moment, the task can be left unexecuted. The control processing unit 1513 can cause the interrupt-responsible robot 20 to execute the interrupt task via the control unit 170.
[0218] When the priority of the interruption task is below the baseline priority, the correction processing unit 1512 can perform the same processing as in the second embodiment described above. When the priority of the interruption task is higher than the baseline priority, that is, when the interruption task is executed by the interruption-corresponding robot 20 by the control processing unit 1513 independently of the work plan, the correction processing unit 1512 can perform different processing than in the second embodiment.
[0219] For example, the correction processing unit 1512 can correct the ongoing work plan based on the fact that an unexecutable task (also called an unexecutable task) is generated in the tasks assigned to the interruption-corresponding robot 20 in the ongoing work plan due to the interruption of the interruption-corresponding robot 20's execution of the interrupted task, so that the unexecutable task can be executed by multiple robots 20 within the device 10. For example, the correction processing unit 1512 can correct the work plan so that the unexecutable task can be executed by multiple robots 20 within the device 10 other than the interruption-corresponding robot 20. As an example, the correction processing unit 1512 can correct the ongoing work plan so that the unexecutable task can be executed by a robot 20 within the device 10 that is different from the interruption-corresponding robot 20, meets the specifications required for the unexecutable task, and has a standby time set in the ongoing work plan. The unexecutable task may include the task interrupted by the interruption-corresponding robot 20.
[0220] The correction processing unit 1512 can also generate and determine the work plan after the current time in the same way as the generation processing unit 1502 and the determination processing unit 1503. The work plan can be generated and determined in a way that allows at least one of the multiple tasks to be executed, except for the interrupted task, to not be executed. The correction processing unit 1512 can supply the corrected work plan to the output processing unit 1505.
[0221] According to the above-described device 100, the interruption task is executed by the interruption-corresponding robot 20 regardless of the ongoing work plan, since the priority of the interruption task is higher than the baseline priority. Therefore, it is possible to reliably execute interruption tasks with high urgency.
[0222] Furthermore, based on the fact that an unexecutable task arises from the tasks assigned to the corresponding robot 20 due to the interruption of task execution, the job plan is revised so that the unexecutable task can be executed by multiple robots 20. Therefore, multiple tasks contained in the original job plan can be executed reliably.
[0223] Furthermore, the executing job plan is revised so that tasks that cannot be performed can be executed by multiple robots 20 other than the interrupt-response robot 20. Therefore, tasks that cannot be performed can be reliably executed by multiple robots 20 other than the interrupt-response robot 20 that performed the interrupted task.
[0224] Furthermore, in the second embodiment and the modified examples described above, it was explained that in the case where an interrupted task that should be performed by interruption occurs in the work plan being executed, but a task that should be performed occurs in the next work plan, as explained in the first embodiment, a work plan can be generated and determined by the generation processing unit 1502 and the determination processing unit 1503 so that multiple tasks including the task can be executed by multiple robots 20.
[0225] Furthermore, in the second embodiment and its variations described above, it is explained that the generation processing unit 1502 generates a work plan in a manner that allows at least one task to be omitted, and the determination processing unit 1503 determines any work plan as the execution target. However, the generation processing unit 1502 may also generate and execute a work plan in a manner that executes all tasks. In this case, the intra-regional path determination unit 15023 and the inter-regional path determination unit 1502 of the generation processing unit 1502 may not predetermine the path of the robot 20 in each time slot of the work plan, but instead determine the path of the robot 20 in the next time slot sequentially.
[0226] Furthermore, in the first embodiment, second embodiment, and variations described above, the storage unit 110 stores various information used to construct a work plan, but it may also store the work plan itself. For example, the storage unit 110 may store the work plan determined by the determination processing unit 1503 in correspondence with the task information and specification information used to generate the work plan. In this case, the determination processing unit 1503 may also detect from the storage unit 110 a combination of task information and specification information that approximates the combination of task information and specification information supplied from the acquisition processing unit 1501, and read the work plan corresponding to the detected task information and specification information and determine it as the target. In this case, the generation processing unit 1502 may not need to generate the work plan. This reduces the processing cost required for generating and determining the work plan.
[0227] Furthermore, it is explained that the acquisition processing unit 1501 acquires the charging position and current position for each robot 20, but it can also acquire either the charging position or the current position.
[0228] Various embodiments of the present invention can be described with reference to flowcharts and block diagrams, in which modules can represent (1) stages of a process for performing an operation or (2) portions of a device having the function of performing an operation. Specific stages and portions can be implemented by dedicated circuits, programmable circuits supplied together with computer-readable instructions stored on a computer-readable medium, and / or processors supplied together with computer-readable instructions stored on a computer-readable medium. Dedicated circuits may include digital and / or analog hardware circuits, and may also include integrated circuits (ICs) and / or discrete circuits. Programmable circuits may include reconfigurable hardware circuits, including logic AND, logic OR, logic XOR, logic NAND, logic NOR and other logic operations, flip-flops, registers, field-programmable gate arrays (FPGAs), programmable logic arrays (PLAs), and other memory elements.
[0229] Computer-readable media can include any tangible device capable of storing instructions executable by a suitable device. Consequently, a computer-readable medium having instructions stored therein includes an article containing instructions executable by means of a flowchart or block diagram. Examples of computer-readable media include: electronic storage media, magnetic storage media, optical storage media, electromagnetic storage media, semiconductor storage media, etc. More specific examples of computer-readable media include: floppy disks, magnetic disks, 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), optical disc read-only memory (CD-ROM), digital multipurpose disc (DVD), Blu-ray disc, memory stick, integrated circuit card, etc.
[0230] Computer-readable instructions include any one of source code and object code described by any combination of one or more programming languages, including assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, status setting data, or existing procedural programming languages such as Smalltalk (registered trademark), JAVA (registered trademark), C++, and "C" or similar programming languages.
[0231] Computer-readable instructions can be provided to the processor or programmable circuitry of a programmable data processing device such as a computer via a local area network (LAN), wide area network (WAN), or the Internet, and are executed to create units for performing operations specified by flowcharts or block diagrams. Here, a computer can be a PC (personal computer), tablet computer, smartphone, workstation, server computer, general-purpose computer, or special-purpose computer, or a computer system connecting multiple computers. Such a computer system connecting multiple computers is also called a distributed computing system, which is a broad definition of a computer. In a distributed computing system, multiple computers execute different parts of a program, exchanging data between the computers as needed, thereby enabling multiple computers to centrally execute the program.
[0232] Examples of processors include computer processors, central processing units (CPUs), processing units, microprocessors, digital signal processors, controllers, and microcontrollers. A computer can have one or more processors. In a multiprocessor system with multiple processors, each processor executes a portion of the program, exchanging data between processors as needed, thus allowing multiple processors to execute the program collectively. For example, in multitasking, multiple processors can switch tasks by time slices, executing different parts of each task in a segmented manner. In this case, which part of the program each processor executes is dynamically changing. Alternatively, which part of the program each processor executes can be statically determined by the programming of the multiple processors.
[0233] Figure 19 Examples of computer 1200 that can implement the present invention in whole or in part are shown. Through programs installed on computer 1200, computer 1200 can perform operations associated with an apparatus or one or more parts of that apparatus as embodiments of the present invention, or execute that operation or those one or more parts, and / or computer 1200 can execute processes or stages of processes of embodiments of the present invention. To enable computer 1200 to perform specific operations associated with several or all of the modules in the flowcharts and block diagrams described in this specification, such programs can be executed by CPU 1212.
[0234] The computer 1200 of this embodiment includes a CPU 1212, RAM 1214, a graphics controller 1216, and a display device 1218, which are interconnected via a main controller 1210. The computer 1200 also includes a communication interface 1222, a storage device 1224 such as a hard disk drive, an input / output unit such as a DVD-ROM drive 1226, and an IC card drive, which are connected to the main controller 1210 via an input / output controller 1220. The computer also includes conventional 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 the program stored in the ROM 1230 and RAM 1214, thereby controlling each unit. The graphics controller 1216 acquires image data generated by the CPU 1212 from the frame buffer or other storage provided in RAM 1214 or from its own storage, and displays the image data on the display device 1218.
[0236] Communication interface 1222 communicates with other electronic devices via a network. Storage device 1224 stores programs and data used by CPU 1212 within computer 1200. DVD-ROM drive 1226 reads programs or data from DVD-ROM 1227 and provides programs or data to storage device 1224 via RAM 1214. IC card driver reads programs and data from IC card and / or writes programs and data to IC card.
[0237] ROM 1230 stores a boot program and / or programs that depend on the hardware of computer 1200 and are executed by computer 1200 when activated. Input / output chip 1240 can also connect various input / output units to input / output controller 1220 via parallel port, serial port, keyboard port, mouse port, etc.
[0238] The program is provided by a computer-readable medium such as a DVD-ROM 1227 or an IC card. The program is read from the computer-readable medium and installed in a storage device 1224, RAM 1214, or ROM 1230, which is also an example of a computer-readable medium, and executed by the CPU 1212. The information processing described within these programs is read into the computer 1200, thereby enabling cooperation between the program and the aforementioned various types of hardware resources. The apparatus or method can be configured to perform information manipulation or processing in conjunction with the use of the computer 1200.
[0239] For example, when communication is performed between computer 1200 and an external device, CPU 1212 can execute a communication program loaded in RAM 1214, and instruct communication processing on communication interface 1222 based on the processing described in the communication program. Under the control of CPU 1212, 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, sends 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, etc.
[0240] Furthermore, the CPU 1212 can read all or necessary portions of files or databases stored on external recording media such as storage device 1224, DVD-ROM drive 1226 (DVD-ROM 1227), IC card, etc., into RAM 1214, and perform various types of processing on the data in RAM 1214. Then, the CPU 1212 writes the processed data back to the external recording medium.
[0241] Information of various types, such as programs, data, tables, and databases, can be stored in a recording medium and processed. The CPU 1212 performs various types of processing described throughout this disclosure on data read from RAM 1214 and writes the results back to RAM 1214. These various types of processing include operations specified by a sequence of program instructions, information processing, conditional judgments, conditional branches, unconditional branches, information retrieval / replacement, etc. Furthermore, the CPU 1212 can retrieve information from files, databases, etc., within the recording medium. For example, if multiple entries, each having an attribute value associated with a second attribute, are stored in the recording medium, the CPU 1212 can retrieve from these multiple entries an entry that matches a condition specifying the attribute value of the first attribute, and read the attribute value of the second attribute stored in that entry, thereby obtaining 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 can be stored on or near the computer 1200 on a computer-readable medium. Furthermore, recording media such as hard disks or RAM provided in a server system connected to a dedicated communication network or the Internet can be used as computer-readable media, thereby providing the program to the computer 1200 via the network.
[0243] The present invention has been described above using embodiments, but 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. As can be seen from the claims, such modifications or improvements may also be included within the technical scope of the present invention.
[0244] The execution order of actions, processes, steps, and stages in the apparatus, systems, programs, and methods shown in the claims, description, and drawings is not specifically stated as "earlier" or "before." Furthermore, it should be noted that any order is permissible as long as the output of the preceding process is not used in the subsequent process. Even if the flow of actions in the claims, description, and drawings is described using terms such as "firstly," "next," etc., for ease of explanation, it does not imply that the actions must be performed in that order. Explanation of reference numerals in the attached figures
[0245] 10 Equipment, 20 Robots, 100 Devices, 110 Storage Unit, 150 Processor, 160 Output Unit, 170 Control Unit, 1200 Computer, 1210 Main Controller, 1212 CPU, 1214 RAM, 1216 Graphics Controller, 1218 Display Device, 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 Determination Processing Unit, 1504 Setting Processing Unit, 1505 Output Processing Unit, 1506 Result Management Unit, 1507 Approval / Disapproval Unit, 1508 Index Acquisition Unit, 1509 Robot Change Unit, 1510 Area Change Department, 1511 Detection and Processing Department, 1512 Correction and Processing Department, 1513 Control and Processing Department, 15021 Area Allocation Department, 15022 Task Allocation Department, 15023 Intra-area Path Determination Department, 15024 Inter-area Path Determination Department.
Claims
1. An apparatus wherein, Equipped with a processor The processor executes: The generation process generates an execution plan in a manner that allows at least one task to be omitted, serving as an execution plan for multiple tasks to be performed by multiple robots; and The process involves determining the first execution plan whose objective function, which is penalized in cases where tasks are not executed in the execution plan, is used to determine the first execution plan in the generated execution plan whose objective function value satisfies the baseline conditions.
2. The apparatus according to claim 1, wherein, The penalty assigned to the objective function is a value corresponding to the parameter of the task that is not executed in the parameters set for each task.
3. The apparatus according to claim 2, wherein, The processor also performs a setting process that sets the parameters of each task to larger values if the priority of the task is higher.
4. The apparatus according to claim 3, wherein, For any new tasks in the first execution plan that are not to be executed, the processor further executes the generation process to generate the next execution plan. The processor further performs the determination process on the generated next execution plan to determine a second execution plan whose objective function value satisfies the baseline condition. In the setting process, compared to determining the first execution plan, the processor makes the parameters of the unexecuted tasks larger when determining the second execution plan.
5. The apparatus according to claim 1, wherein, The processor also performs output processing, which outputs the first execution plan and information indicating tasks that are not executed in the first execution plan.
6. The apparatus according to claim 1, wherein, The processor executes: The first step is to obtain the processing status of each task; and... The second acquisition process involves obtaining at least one of the charging position and the current position for each robot. The objective function includes the cost corresponding to the distance each robot travels when executing the execution plan as an element.
7. The apparatus according to claim 1, wherein, The processor also performs: In the case of an interruption task that should be executed by interruption during the execution of the first execution plan, the first robot among the plurality of robots that meets the specifications required by the interruption task and is located within a reference range from the execution position of the interruption task is detected. as well as A first correction process modifies the first execution plan so that the first robot executes the interrupted task during the standby time of the first robot in the first execution plan.
8. An apparatus wherein, Equipped with a processor The processor executes: Generate a first execution plan for multiple robots to perform multiple tasks. In the event of an interruption during the execution of the first execution plan, the system detects the first robot among the plurality of robots that meets the specifications required by the interruption task and is located within a reference range from the location where the interruption task was performed. as well as A first correction process modifies the first execution plan so that the first robot executes the interrupted task during the standby time of the first robot in the first execution plan.
9. The apparatus according to claim 7 or 8, wherein, In the absence of a standby time for the first robot in the first execution plan, the processor modifies the first execution plan in the first correction process so that the first robot executes the interrupt task while the plurality of robots are executing a plurality of tasks including the interrupt task.
10. The apparatus according to claim 7 or 8, wherein, The processor also performs control processing that causes the first robot to execute the interrupt task independently of the first execution plan, based on the fact that the priority of the interrupt task is higher than the baseline priority.
11. The apparatus according to claim 10, wherein, The processor also performs a second correction process, which corrects the first execution plan in such a way that the unexecutable task occurs in the task assigned to the first robot in the first execution plan due to the first robot performing the interrupted task, so that the unexecutable task is performed by the plurality of robots.
12. The apparatus according to claim 11, wherein, In the second correction process, the processor corrects the first execution plan in such a way that the inoperable task is performed by the plurality of robots other than the first robot.
13. A method in which: The generation process generates an execution plan in a manner that allows at least one task to be omitted, serving as an execution plan for multiple tasks to be performed by multiple robots; and The process involves determining the first execution plan whose objective function, which is penalized in cases where tasks are not executed in the execution plan, is used to determine the first execution plan in the generated execution plan whose objective function value satisfies the baseline conditions.
14. A method in which: Generate a first execution plan for multiple robots to perform multiple tasks. In the event of an interruption during the execution of the first execution plan, the system detects the first robot among the plurality of robots that meets the specifications required by the interruption task and is located within a reference range from the location where the interruption task was performed. as well as A first correction process modifies the first execution plan so that the first robot executes the interrupted task during the standby time of the first robot in the first execution plan.
15. A computer program product, wherein, The program is stored. The computer executes by executing the program: The generation process generates an execution plan in a manner that allows at least one task to be omitted, serving as an execution plan for multiple tasks to be performed by multiple robots; and The process involves determining the first execution plan whose objective function, which is penalized in cases where tasks are not executed in the execution plan, is used to determine the first execution plan in the generated execution plan whose objective function value satisfies the baseline conditions.
16. A computer program product, wherein, The program is stored. The computer executes by executing the program: Generate a first execution plan for multiple robots to perform multiple tasks. In the event of an interruption during the execution of the first execution plan, the system detects the first robot among the plurality of robots that meets the specifications required by the interruption task and is located within a reference range from the location where the interruption task was performed. as well as A first correction process modifies the first execution plan so that the first robot executes the interrupted task during the standby time of the first robot in the first execution plan.
Citation Information
Patent Citations
Robot control device
JP2006326703A
Robot system with adjustment mechanism and method for operating robot system
JP2021104900A
Device, method, and program
JP2024099938A
Mobile robot allocation system, and mobile robot allocation method
WO2023026592A1