Apparatus, method, and program
By dividing the operation planning process into area and task allocation, and path determination, the device efficiently allocates robots and tasks, addressing computational challenges in multi-robot systems and creating a realistic operation plan for large-scale facilities.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2023-01-13
- Publication Date
- 2026-03-04
AI Technical Summary
Creating an operation plan for multi-robot systems in large-scale facilities is computationally expensive and inefficient, leading to unrealistic implementation due to non-deterministic polynomial time hardness, especially when considering diverse robot specifications, task requirements, and environmental constraints.
The device divides the operation planning process into area allocation, task allocation, intra-area path determination, and inter-area path determination, using algorithms like integer programming to quickly construct a realistic operation plan within a feasible time frame.
The device efficiently allocates robots to areas and tasks, determining optimal paths, thereby reducing computational load and enabling a practical operation plan for multi-robot systems in large-scale facilities.
Smart Images

Figure 0007823595000001 
Figure 0007823595000002 
Figure 0007823595000003
Abstract
Description
[Technical Field]
[0001] The present invention relates to an apparatus, a method, and a program. [Background technology]
[0002] Patent Document 1 describes an "autonomous multi-platform robot system." Patent Document 2 describes a "system and method for optimizing scheduling of non-preemptive tasks in a multi-robot environment." [Prior art document] [Patent documents] [Patent Document 1] JP-A-2003-515801 [Patent Document 2] JP 2020-149675 Summary of the Invention
[0003] A first aspect of the present invention provides an apparatus including: an area allocation unit that performs area allocation to allocate a plurality of robots to a plurality of areas obtained by dividing an equipment to be operated based on specifications of the plurality of robots and requirements of a plurality of tasks to be executed in the equipment; and a task allocation unit that performs task allocation for a target area that is each of the plurality of areas, to a target robot that is at least one robot among the plurality of robots assigned to the target area, the target robot being at least one task among the plurality of tasks that belongs to the target area.
[0004] The device may further include an intra-area path determination unit that determines an intra-area path for moving the target robot within the target area based on a result of the task allocation.
[0005] Any of the devices may further include an inter-area path determination unit that determines an inter-area path for moving the plurality of robots between the plurality of areas based on the result of the area allocation.
[0006] In any of the above devices, the area allocation unit may determine, in the area allocation for one time slot, a start position and an end position for each of the plurality of robots in the one time slot based on the results of the area allocation for other time slots.
[0007] In any of the above devices, the intra-area route determination unit may determine the intra-area route according to the start point position and the end point position in the one time slot.
[0008] In any of the above devices, the inter-area path determination unit may determine the inter-area path according to the end point location in the one time slot and the start point location in the subsequent time slot.
[0009] Any of the devices may further include a feasibility determination unit that determines whether the one or more robots are capable of executing the one or more tasks based on specification information that indicates the specifications of one or more robots among the plurality of robots and task information that indicates the requirements of one or more tasks among the plurality of tasks, and the area allocation unit may perform the area allocation based on the feasibility determination.
[0010] In any of the devices, the feasibility determination unit may determine whether each of the plurality of robots can execute each of the plurality of tasks, based on specification information indicating the specifications of each of the plurality of robots and task information indicating the requirements of the plurality of tasks.
[0011] In any of the devices, the possibility determination unit may determine the possibility of execution further based on environmental information indicating an environment of the equipment for each area to which each of the plurality of tasks belongs.
[0012] Any of the devices may further include an operation plan output unit that outputs at least one of the results of the area allocation, the results of the task allocation, the intra-area paths, or the inter-area paths as an operation plan.
[0013] Any of the devices may further include an index output unit that outputs an index that evaluates the operation plan according to a predetermined standard.
[0014] Any of the devices may further include a robot change unit that changes at least one of the number or specifications of the plurality of robots based on an index that evaluates the operation plan in accordance with predetermined criteria, and the area allocation unit may reassign the new plurality of robots, the number or specifications of which have been changed, to the plurality of areas.
[0015] Any of the devices may further include an area change unit that changes at least one of the number of areas or boundaries of the multiple areas based on an index that evaluates the operation plan in accordance with predetermined criteria, and the area allocation unit may reassign the multiple robots to new multiple areas in which at least one of the number of areas or boundaries has been changed.
[0016] Any of the devices may further include a control unit that controls the plurality of robots in accordance with the operation plan.
[0017] A second aspect of the present invention provides a method, the method comprising: a computer executing area allocation for allocating a plurality of robots to a plurality of areas obtained by dividing an equipment to be operated based on specifications of the plurality of robots and requirements of a plurality of tasks to be performed in the equipment; and a computer executing task allocation for a target area, which is each of the plurality of areas, for assigning an intra-area task, which is at least one task of the plurality of tasks belonging to the target area, to a target robot, which is at least one robot of the plurality of robots assigned to the target area.
[0018] A third aspect of the present invention provides a program that, when executed by a computer, causes the computer to function as an area allocation unit that performs area allocation to allocate a plurality of robots to a plurality of areas obtained by dividing an equipment to be operated, based on specifications of the plurality of robots and requirements of a plurality of tasks to be performed in the equipment, and a task allocation unit that performs task allocation for a target area that is each of the plurality of areas, to a target robot that is at least one robot among the plurality of robots assigned to the target area, the target robot being at least one task among the plurality of tasks that belongs to the target area.
[0019] The above summary of the invention does not list all of the features of the present invention, and subcombinations of these features may also be inventions. [Brief explanation of the drawings]
[0020] [Figure 1] An example of a block diagram of the device 100 according to this embodiment is shown together with the facility 10 that is the subject of operation. [Figure 2] 1 shows an example of various types of information stored in the device 100 according to this embodiment. [Figure 3] 10 shows an example of the result of region allocation performed by the device 100 according to the present embodiment. [Figure 4] 10 shows an example of the result of task allocation executed by the device 100 according to the present embodiment. [Figure 5] 10 shows an example of an intra-area route determined by the device 100 according to the present embodiment. [Figure 6] 10 shows an example of an inter-region path determined by the device 100 according to the present embodiment. [Figure 7] 1 shows an example of a flow diagram of a method performed by the device 100 according to the present embodiment. [Figure 8] An example of a block diagram of an apparatus 100 according to a first modified example of this embodiment is shown together with a facility 10 to be operated. [Figure 9]An example of a block diagram of an apparatus 100 according to a second modification of this embodiment is shown together with a facility 10 to be operated. [Figure 10] An example of a block diagram of an apparatus 100 according to a third modification of this embodiment is shown together with a facility 10 to be operated. [Figure 11] 10 shows an example of a flow diagram of a method executed by the apparatus 100 according to the third modification of this embodiment to repeatedly construct an operation plan. [Figure 12] An example of a block diagram of an apparatus 100 according to a third modification of this embodiment is shown together with a facility 10 to be operated. [Figure 13] 99 illustrates an example computer 9900 in which aspects of the present invention may be embodied, in whole or in part. DETAILED DESCRIPTION OF THE INVENTION
[0021] The present invention will be described below through embodiments of the invention, but the following embodiments do not limit the scope of the invention according to the claims. Furthermore, not all of the combinations of features described in the embodiments are necessarily essential to the means for solving the problems of the invention.
[0022] FIG. 1 shows an example of a block diagram of an apparatus 100 according to this embodiment, together with the equipment 10 to be operated. Note that these blocks are functionally separated functional blocks and may not necessarily match the actual apparatus configuration. In other words, just because one block is shown in this diagram does not necessarily mean that it is composed of one device. Also, just because separate blocks are shown in this diagram does not necessarily mean that they are composed of separate devices. The same applies to other block diagrams.
[0023] The facility 10 is a machine, device, building, or the like to be operated. For example, the facility 10 may be a plant. Examples of the plant include industrial plants such as chemical and bio plants, plants that manage and control wellheads and surrounding areas of gas fields and oil fields, plants that manage and control power generation such as hydroelectric, thermal, and nuclear power, plants that manage and control environmental power generation such as solar and wind power, and plants that manage and control water supply and sewage systems, dams, etc.
[0024] In such facilities 10, there is a growing demand for the introduction of robots due to issues such as labor shortages, work safety, and maintenance costs, and development of a wide variety of robots with different specifications is underway. Some robots currently under development or already developed are capable of autonomous movement and some can perform tasks without human intervention. It is being considered to operate at least part of the facility 10 using a multi-robot system incorporating multiple such robots.
[0025] The robots 20 are introduced into the facility 10 to perform various tasks related to the operation of the facility 10. In this figure, a case where three robots 20, robot 20i, robot 20j, and robot 20k (collectively referred to as "robots 20"), are introduced into the facility 10 is shown as an example.
[0026] The robot 20i may be, for example, a quadruped robot capable of autonomously moving. The robot 20i may be, for example, capable of measuring ambient sounds using a mounted microphone and capturing images of a target using a mounted camera. The robot 20i may be, for example, capable of moving at a speed of 5 km / h. The robot 20i may be, for example, capable of operating continuously for 3 hours when the battery is fully charged. The robot 20i may be, for example, capable of climbing over steps of 20 cm or less.
[0027] The robot 20j may be, for example, a robot (such as a drone or multicopter) capable of flying autonomously using rotors. The robot 20j may be capable of measuring the temperature of a measurement target using a mounted thermal camera and capturing an image of a target using a mounted camera. The robot 20j may be capable of moving at a speed of, for example, 10 km / h. The robot 20j may be capable of operating continuously for, for example, 5 hours when its battery is fully charged.
[0028] The robot 20k may be, for example, a robot capable of autonomously moving using caterpillar tracks. The robot 20k may be, for example, capable of measuring surrounding sounds using a mounted microphone and capable of operating a control device (such as a valve) using a mounted arm. The robot 20k may be, for example, capable of moving at a speed of 3 km / h. The robot 20k may be capable of continuous operation for 2 hours when the battery is fully charged. The robot 20k may be, for example, explosion-proof. The robot 20z may be, for example, capable of climbing over steps of 50 cm or less.
[0029] In this way, a wide variety of multiple robots 20 with different specifications may be introduced into the facility 10. Note that the above description has shown an example in which three robots 20 with different specifications, such as robot 20i, robot 20j, and robot 20k, are introduced into the facility 10. However, the number and specifications of the robots 20 introduced into the facility 10 are not limited to this, and a multi-robot system may be configured with various combinations of various robots 20. In this case, for example, the multiple robots introduced into the facility 10 may include multiple robots with the same specifications.
[0030] To operate the facility 10 using a multi-robot system, an operation plan must be created. However, when creating such an operation plan, various factors must be taken into consideration, such as the specifications of the diverse robots, the requirements for a wide range of tasks, and the environmental constraints of the facility 10. Therefore, creating an operation plan manually or based on rules requires a considerable amount of man-hours, and problems such as the created plan being inefficient or assigning an infeasible task to a robot 20 may occur.
[0031] Conventionally, methods using optimization technology have been established to address such problems. It is known that a desired operation plan can be obtained by formulating an optimization problem based on the various factors and planning policies mentioned above and solving that problem. However, solving operation planning problems for multi-robot systems is computationally expensive, known as non-deterministic polynomial time (NP) hardness, making it unrealistic to implement. Furthermore, the computational cost depends in part on the size of the facility 10 and the number of robots 20 to be introduced. For example, in a large-scale facility 10 such as a plant, where many robots 20 are introduced, simply implementing a method to reduce the computational load and obtain an approximate solution is likely to be insufficient for operation.
[0032] Therefore, the device 100 according to this embodiment divides the processing into area allocation, task allocation, intra-area path determination, and inter-area path determination. As a result, the device 100 according to this embodiment can quickly solve operation planning problems for multiple robots 20, regardless of the scale of the facility 10 or the number of robots 20, and can construct a realistic operation plan in a realistic calculation time. Such a device 100 will be described in detail below.
[0033] The device 100 includes a storage unit 110 , an area allocation unit 120 , a task allocation unit 130 , an intra-area route determination unit 140 , an inter-area route determination unit 150 , and an operation plan output unit 160 .
[0034] The storage unit 110 stores various information for constructing an operation plan. Such information may be acquired from the facility 10 or an external system via a network, may be acquired via user input, or may be acquired via various memory devices. Details of the information stored in the storage unit 110 will be described later.
[0035] The area allocation unit 120 performs area allocation to allocate the multiple robots 20 to multiple areas obtained by dividing the equipment 10, based on the specifications of the multiple robots 20 and the requirements of the multiple tasks to be executed in the equipment 10 that is the target of operation. The area allocation unit 120 supplies the results of the area allocation to the task allocation unit 130, the intra-area path determination unit 140, the inter-area path determination unit 150, and the operation plan output unit 160.
[0036] The task allocating unit 130 executes task allocation for a target area, which is each of the multiple areas, by allocating an intra-area task, which is at least one task belonging to the target area among the multiple tasks, to a target robot, which is at least one robot assigned to the target area among the multiple robots 20. The task allocating unit 130 supplies the result of the task allocation to the intra-area path determining unit 140 and the operation plan output unit 160.
[0037] The intra-area path determination unit 140 determines an intra-area path along which the target robot will move within the target area based on the task allocation result. The intra-area path determination unit 140 supplies the determined intra-area path to the operation plan output unit 160.
[0038] The inter-area path determination unit 150 determines inter-area paths for moving the multiple robots 20 between the multiple areas based on the results of the area allocation. The inter-area path determination unit 150 supplies the determined inter-area paths to the operation plan output unit 160.
[0039] The operation plan output unit 160 outputs at least one of the results of area allocation, the results of task allocation, the intra-area paths, and the inter-area paths as an operation plan. The operation plan output unit 160 may be, for example, a monitor and may display and output the operation plan. Alternatively or additionally, the operation plan output unit 160 may be a communication unit and may transmit and output the operation plan to other functional units or other devices. Alternatively or additionally, the operation plan output unit 160 may be a printer and may print out the operation plan. Alternatively or additionally, the operation plan output unit 160 may be a speaker and may output the operation plan as audio.
[0040] The device 100 equipped with such functional units may be a computer such as a personal computer (PC), tablet computer, smartphone, workstation, server computer, or general-purpose computer, or may be a computer system in which multiple computers are connected. Such a computer system is also a computer in the broad sense. The device 100 may also be implemented using one or more virtual computer environments executable within a computer. Alternatively, the device 100 may be a dedicated computer customized to provide the above-described functions, or may be dedicated hardware implemented using dedicated circuits. Furthermore, if the device 100 is connectable to the Internet, it may be implemented using cloud computing.
[0041] Such a computer may include a memory for storing a program and a processor for executing the program, and the functions of the apparatus 100 may be implemented by the processor executing the program. That is, there is also provided a program that, when executed by a computer, causes the computer to function as an area allocation unit that performs area allocation to allocate the multiple robots 20 to multiple areas into which the equipment 10 is divided based on the specifications of the multiple robots 20 and the requirements of the multiple tasks to be performed in the equipment 10 to be operated, and a task allocation unit that performs task allocation to assign, for each of the multiple areas, an intra-area task that is at least one task belonging to a target area among the multiple tasks, to a target robot that is at least one robot of the multiple robots 20 assigned to the target area. There is also provided a non-transitory computer-readable medium having such a program recorded thereon.
[0042] 2 shows an example of various types of information stored in the device 100 according to this embodiment. The storage unit 110 may store, for example, inspection standard information, specification information, task information, environment information, execution feasibility information, and external information.
[0043] The inspection standard information is information indicating inspection standards that have been set in advance. For example, the inspection standard information may include information such as the type of inspection, the importance, the pass / fail criteria, and whether or not a maintenance technician needs to be present during the inspection.
[0044] The specification information indicates the specifications of each of the plurality of robots 20. For example, the specification information may include information about each of the plurality of robots 20, such as the means of transportation, the mounted sensors (measurable physical quantities), the mounted arms, the movement speed, the continuous operation time, the remaining battery charge, the level of steps that can be overcome, the explosion-proof resistance, and the number of tasks that can be executed per unit time. Here, the continuous operation time may indicate the time during which continuous operation is possible estimated based on the battery's standard full charge capacity, or may indicate the time during which continuous operation is possible estimated based on the battery's full charge capacity at a deteriorated state taking into account the SOH (State of Health). Furthermore, the remaining battery charge may indicate the ratio of the current battery charge capacity to the battery's standard full charge capacity, i.e., the SOC (State of Charge), or may indicate the ratio of the current battery charge capacity to the battery's deteriorated full charge capacity taking into account the SOH.
[0045] The task information is information that indicates the requirements of multiple tasks to be executed in the equipment 10. As an example, the task information may include information such as the location, deadline, period, item, procedure, target instrument, and target controller for each of the multiple tasks.
[0046] The environmental information is information that indicates the environment of the facility 10. As an example, the environmental information may include information such as a 3D map, temperature, humidity, gas concentration, and radiation dose at each of a plurality of points of the facility 10.
[0047] The execution feasibility information is information indicating whether each of the plurality of robots 20 can execute each of the plurality of tasks. In this embodiment, such execution feasibility information may be manually created in advance, taking into consideration the specifications of the robots 20, the requirements of the tasks, the environment of the facility 10, and the like.
[0048] The external information is information indicating disturbances that may affect the creation of an operation plan. For example, the external information may include maintenance plans, weather, outside temperature, disaster information, and the like.
[0049] 3 shows an example of the result of area allocation performed by the device 100 according to this embodiment. In this figure, as an example, robot 20j is assigned to area A in time slot 1 (9:00 to 9:30). Also, in this figure, as an example, robots 20j and 20k are assigned to area B in time slot 2 (9:30 to 10:00). Also, in this figure, as an example, no robots 20 are assigned to area C in time slot 3 (10:00 to 10:30).
[0050] In this way, the area allocation unit 120 may allocate multiple robots 20 to multiple areas for each predetermined time slot. In this case, the area allocation unit 120 does not necessarily have to allocate each of the multiple robots 20 to one of the multiple areas. For example, robot 20k has a continuous operating time of 2 hours. In this case, if robot 20k starts operating at 9:00, it is predicted that the battery will run out at 11:00. In such a case, the area allocation unit 120 may execute area allocation so that robot 20k is not assigned to any area during time slot 4 (10:30 to 11:00), for example, but is allowed to charge.
[0051] Furthermore, in the region allocation for one time slot, the region allocation unit 120 may determine the start position s and the end position e for each of the multiple robots 20 in the time slot based on the results of the region allocation for other time slots. As an example, focusing on robot 20k, in this figure, "Xsk1" indicates the X coordinate of the start position sk1 for robot 20k in time slot 1. Similarly, "Ysk1" indicates the Y coordinate of the start position sk1 for robot 20k in time slot 1. Furthermore, "Xek1" indicates the X coordinate of the end position ek1 for robot 20k in time slot 1. Similarly, "Yek1" indicates the Y coordinate of the end position ek1 for robot 20k in time slot 1.
[0052] Robot 20k is assigned to area C in time slot 1, area B in time slot 2, and area A in time slot 3. That is, when robot 20k moves from area C to area B when it moves from time slot 1 to time slot 2, robot 20k moves from area B to area A when it moves from time slot 2 to time slot 3.
[0053] In such a case, it is preferable that the end position ek1 of the robot 20k in time slot 1 and the start position sk2 of the robot 20k in time slot 2 are close to each other. Similarly, it is preferable that the end position ek2 of the robot 20k in time slot 2 and the start position sk3 of the robot 20k in time slot 3 are close to each other.
[0054] Therefore, the region allocating unit 120 may determine the coordinates (Xek1, Yek1) of the end position ek1 and the coordinates (Xsk2, Ysk2) of the start position sk2 so that the end position ek1 and the start position sk2 are close to each other. Similarly, the region allocating unit 120 may determine the coordinates (Xek2, Yek2) of the end position ek2 and the coordinates (Xsk3, Ysk3) of the start position sk3 so that the end position ek2 and the start position sk3 are close to each other. That is, the region allocating unit 120 may determine the coordinates of the end position e(n-1) in time slot (n-1) and the coordinates of the start position s(n) in time slot (n) so that the distance between the end position e(n-1) in time slot (n-1) and the start position s(n) in time slot (n) is equal to or less than a predetermined threshold (preferably, a minimum).
[0055] In addition, when the time slot is the beginning or end and there is no time slot immediately before or after it, the area allocation unit 120 may determine the coordinates of the start position s and the end position e so that the distance from an arbitrary position, for example, the waiting position of the robot 20 (such as a charging station), is less than (preferably, the minimum) a predetermined threshold value.
[0056] The region allocation unit 120 may perform such region allocation using various existing algorithms based on the specifications of the multiple robots 20 and the requirements of the multiple tasks (e.g., based on execution feasibility information). As an example, the region allocation unit 120 may perform region allocation using integer programming. In this case, the region allocation unit 120 may perform region allocation so as to maximize an objective function. In this case, the region allocation unit 120 may set the objective function so that the value increases as the amount (number) of tasks to be accomplished increases. Furthermore, the region allocation unit 120 may set the objective function so that the value decreases as the movement distance between regions increases. Note that the movement distance between regions is to be determined in a later process of determining inter-region paths and is undetermined at this point. Therefore, the region allocation unit 120 may determine the movement distance between regions based on a provisional distance predefined depending on the movement from one region to another.
[0057] FIG. 4 shows an example of the result of task allocation executed by the device 100 according to this embodiment. This figure shows an example of task allocation for area B in time slot 2. As described above, robot 20j and robot 20k are assigned to area B in time slot 2. In this case, area B is the target area, and robot 20j and robot 20k are defined as target robots. In this case, the task allocating unit 130 assigns intra-area tasks b1 to bn belonging to area B, which is the target area among the multiple tasks, to robot 20j and robot 20k, which are target robots among the multiple robots 20.
[0058] In this diagram, 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. Note that task b5 is assigned to both robot 20j and robot 20k. This may occur, for example, when task b5 is a multitasking task, such as measuring the temperature of a pipe when a valve is opened or closed. In such a case, the task allocating unit 130 may assign the task of opening and closing the valve, which is part of task b5, to robot 20k equipped with an arm, and assign the task of measuring the temperature of the pipe, which is part of task b5, to robot 20j equipped with a thermal camera. For example, the task allocating unit 130 may assign a common task to multiple robots 20 in this manner.
[0059] The task allocating unit 130 may perform such task allocation using various existing algorithms based on the specifications of the multiple robots 20 and the requirements of the multiple tasks (for example, based on execution feasibility information). As an example, the task allocating unit 130 may perform task allocation using integer programming, similar to the region allocating unit 120.
[0060] 5 shows an example of an intra-area route determined by the device 100 according to this embodiment. This figure shows an intra-area route for area B in time slot 2 as an example.
[0061] In this figure, the white triangle indicates the start position sj2 of robot 20j in time slot 2. As described above, the coordinates of start position sj2 are determined to be (Xsj2, Ysj2). Also, in this figure, the white circle indicates the end position ej2 of robot 20j in time slot 2. As described above, the coordinates of end position ej2 are determined to be (Xej2, Yej2). Also, as described above, tasks b1, b2, b4, b5, and b6 are assigned as tasks in time slot 2 of robot 20j.
[0062] In this case, the intra-area path determination unit 140 may determine the intra-area path of the robot 20j in time slot 2 according to the start position sj2, the end position ej2, and the positions of each of the tasks b1, b2, b4, b5, and b6. In this figure, the solid arrow indicates the intra-area path of the robot 20j in time slot 2. As an example, this figure indicates that in time slot 2, the robot 20j should move along the path of start position sj2 → task b1 → task b4 → task b6 → task b5 → task b2 → end position ej2.
[0063] The intra-area path determination unit 140 may determine such an intra-area path according to a predetermined rule. As an example, the intra-area path determination unit 140 may determine the intra-area path according to a rule that passes through the tasks in order from the closest to the start position sj2, such as task b1 closest to task b1, task b4 closest to task b1, ..., and task b2 to the end position ej2. However, this is not limited to this. The intra-area path determination unit 140 may determine the intra-area path according to another rule. As an example, the intra-area path determination unit 140 may determine the intra-area path according to a rule that the total distance of the intra-area path is equal to or less than a predetermined threshold (preferably, a minimum). For example, in this way, the intra-area path determination unit 140 may determine the intra-area path according to the start position s and the end position e in one time slot.
[0064] Similarly, in this figure, the black triangle indicates the start position sk2 of robot 20k in time slot 2. The coordinates of the start position sk2 are determined as (Xsk2, Ysk2) as described above. Also, in this figure, the black circle indicates the end position ek2 of robot 20k in time slot 2. The coordinates of the end position ek2 are determined as (Xek2, Yek2) as described above. Also, as tasks in time slot 2 of robot 20k, tasks b3, b5, and b7 are assigned as described above.
[0065] In this case, the intra-area path determination unit 140 may determine the intra-area path of the robot 20k in time slot 2 according to the start position sk2, the end position ek2, and the positions of tasks b3, b5, and b7. In this figure, the dotted arrow indicates the intra-area path of the robot 20k in time slot 2. In this figure, as an example, it is shown that in time slot 2, the robot 20k should move along the path of start position sk2 → task b3 → task b7 → task b5 → end position ek2.
[0066] As described above, task b5 is assigned to both robot 20j and robot 20k. In such a case, intra-area path determination unit 140 may determine intra-area paths for robot 20j and robot 20k, respectively, so that robot 20j and robot 20k are positioned at the position of task b5 at the same time. As an example, when a common task is assigned to multiple target robots, intra-area path determination unit 140 may determine intra-area paths for each of the multiple target robots, using the waiting time for waiting for the arrival of another target robot among the multiple target robots at the position of the common task as a cost, so as to reduce (preferably minimize) the value of the cost function.
[0067] In addition, in this figure, crosses indicate the possibility of collision between multiple target robots. As an example, the path of robot 20j moving from the position of task b2 to the end position ej2 and the path of robot 20k moving from the position of task b5 to the end position ek2 may intersect and pass through the intersection at the same time. In such a case, the intra-area path determination unit 140 may, for example, change the path of robot 20k moving from the position of task b5 to the end position ek2 so that it does not intersect with the path of robot 20j moving from the position of task b2 to the end position ej2. Note that the above description shows an example in which the intra-area path determination unit 140 changes the path of one of the robots 20 so that the paths of the multiple target robots do not intersect, but this is not limiting. Even if the paths of multiple target robots intersect, there is no possibility of collision if they pass through the intersection at different times. Therefore, the intra-area path determination unit 140 may change the path of one of the target robots so that the multiple target robots pass through the intersection at different times. For example, in this manner, the intra-area path determination unit 140 may determine an intra-area path for each of the multiple target robots so as to avoid collisions with each other. Note that if the moving heights of the multiple target robots are different and there is no possibility of collision, the intra-area path determination unit 140 does not need to execute collision avoidance.
[0068] 6 shows an example of an inter-area path determined by the device 100 according to this embodiment. This figure shows an example of an inter-area path between area A and area B between time slot 1 and time slot 2.
[0069] In this diagram, the white circle indicates the end position ej1 of robot 20j in time slot 1. The coordinates of the end position ej1 are determined as (Xej1, Yej1) as described above. Also in this diagram, the white triangle indicates the start position sj2 of robot 20j in time slot 2. The coordinates of the start position sj2 are determined as (Xsj2, Ysj2) as described above.
[0070] In this case, the inter-area path determination unit 150 may determine the inter-area path between time slot 1 and time slot 2 of the robot 20j according to the end position ej1 in time slot 1 and the start position sj2 in time slot 2. In this figure, the solid arrow indicates the inter-area path between time slot 1 and time slot 2 of the robot 20j.
[0071] The inter-area path determination unit 150 may determine such an inter-area path according to a predetermined rule. As an example, the inter-area path determination unit 150 may identify obstacles that may hinder the movement of the robot 20j in light of the robot's means of transportation based on the specification information and the environmental information. Then, the inter-area path determination unit 150 may determine the inter-area path according to a rule that the distance from the end position ej1 to the start position sj2 is equal to or less than (preferably, minimum) a predetermined threshold while avoiding the identified obstacles. For example, the inter-area path between time slot 1 and time slot 2 of the robot 20j may be determined in this manner. However, this is not limited to this. The inter-area path determination unit 150 may also determine the inter-area path according to other rules. For example, the inter-area path determination unit 150 may determine the inter-area path according to the end position e in one time slot and the start position s in the subsequent time slot.
[0072] Similarly, in this diagram, the black circle indicates the end position ei1 of the robot 20i in time slot 1. The coordinates of the end position ei1 are determined as (Xei1, Yei1) as described above. Also, in this diagram, the black triangle indicates the start position si2 of the robot 20i in time slot 2. The coordinates of the start position si2 are determined as (Xsi2, Ysi2) as described above.
[0073] In this case, the inter-area path determination unit 150 may determine the inter-area path between time slot 1 and time slot 2 of the robot 20i according to the end position ei1 in time slot 1 and the start position si2 in time slot 2. In this figure, the dotted arrow indicates the inter-area path between time slot 1 and time slot 2 of the robot 20i.
[0074] In addition, in this figure, crosses indicate the possibility of collision between multiple robots 20 moving between the same areas. As an example, there is a possibility that the path of robot 20j moving from end position ej1 to start position sj2 and the path of robot 20i moving from end position ei1 to start position si2 intersect and pass through the intersection at the same time. In such a case, the inter-area path determination unit 150 may change the path of robot 20i so that the multiple robots pass through the intersection at different times. Note that collision avoidance in the inter-area path determination unit 150 may be performed according to various rules, similar to the intra-area path determination unit 140. For example, in this manner, the inter-area path determination unit 150 may determine inter-area paths for each of the multiple robots 20 so that they avoid collision with each other.
[0075] 7 shows an example of a flow diagram of a method executed by the device 100 according to this embodiment. Each step in the method may be performed mainly by a computer. However, as long as each step is performed mainly by a computer, some parts that are not the main parts may be performed by a device other than a computer. The same applies to other flow diagrams.
[0076] In step S710, the apparatus 100 stores various types of information. For example, the storage unit 110 may store various types of information for constructing an operation plan. As an example, the storage unit 110 may store inspection standard information, specification information, task information, environmental information, execution feasibility information, and external information as shown in FIG. 2. Note that in this embodiment, the storage unit 110 may store information that has been manually created in advance as the execution feasibility information, taking into consideration the specifications of the robot 20, task requirements, the environment of the facility 10, and the like.
[0077] In step S720, the apparatus 100 performs region allocation. For example, the region allocation unit 120 may perform region allocation in which the multiple robots 20 are allocated to multiple regions into which the equipment 10 is divided, based on at least a portion of the various information stored in step S710, such as the executability information, the specifications of the multiple robots 20, and the requirements of the multiple tasks to be executed in the equipment 10 to be operated. As an example, as shown in FIG. 3 , in time slot 1, the region allocation unit 120 may allocate robot 20j to region A, robot 20i to region B, and robot 20k to region C. In addition, in time slot 2, the region allocation unit 120 may allocate robot 20i to region A and robots 20j and 20k to region B. In addition, in time slot 3, the region allocation unit 120 may allocate robots 20i and 20k to region A, and robot 20j to region B.
[0078] At this time, as described above, the area allocation unit 120 may not only determine which robot 20 to allocate to which area for each time slot, but also, in area allocation for one time slot, determine the start position s and end position e for each of the multiple robots 20 in the position time slot based on the results of area allocation for other time slots. The area allocation unit 120 supplies the results of area allocation to the task allocation unit 130, the intra-area path determination unit 140, the inter-area path determination unit 150, and the operation plan output unit 160.
[0079] In step S730, the apparatus 100 performs task allocation. For example, the task allocating unit 130 may perform task allocation in which, for a target area that is each of a plurality of areas, an intra-area task that is at least one task belonging to the target area among the plurality of tasks is assigned to a target robot that is at least one robot assigned to the target area among the plurality of robots 20. As an example, as shown in FIG. 4, for area B in time slot 2, the task allocating unit 130 may assign tasks b1, b2, b4, b5, b6, and b7 to robot 20j, and assign tasks b3, b5, and b7 to robot 20k.
[0080] The task allocation unit 130 may similarly perform task allocation for other time slots and other areas. Note that the task allocation results for such other areas are completely independent and do not affect each other. Therefore, the task allocation unit 130 can process task allocation for multiple areas in parallel. The task allocation unit 130 supplies the results of the task allocation to the intra-area route determination unit 140 and the operation plan output unit 160.
[0081] In step S740, the apparatus 100 determines an intra-area path. For example, the intra-area path determination unit 140 may determine an intra-area path for moving the target robot within the target area based on the result of the task assignment performed in step S730. As an example, for area B in time slot 2, the intra-area path determination unit 140 may determine an intra-area path for robot 20j so that the target robot moves along the path indicated by the solid arrow in FIG. 5. Similarly, the intra-area path determination unit 140 may determine an intra-area path for robot 20k so that the target robot moves along the path indicated by the dotted arrow in FIG. 5. In this case, the intra-area path determination unit 140 may determine the intra-area path based on the start position s and the end position e in one time slot, as described above. Furthermore, the intra-area path determination unit 140 may determine an intra-area path for each of the multiple target robots so that the target robots avoid collisions with each other, as described above.
[0082] The intra-area path determination unit 140 may similarly determine intra-area paths for other time slots and other areas. The determination of intra-area paths for such other time slots and other areas is completely independent, with no mutual influence between the results. Therefore, the intra-area path determination unit 140 can process the determination of intra-area paths for multiple time slots and multiple areas in parallel. The intra-area path determination unit 140 supplies the intra-area paths to the operation plan output unit 160.
[0083] In step S750, the apparatus 100 determines inter-area paths. For example, the inter-area path determination unit 150 may determine inter-area paths for moving the multiple robots 20 between the multiple areas based on the area allocation performed in step S720. As an example, for the area A and the area B between time slot 1 and time slot 2, the inter-area path determination unit 150 may determine the inter-area path for the robot 20j so that the robot 20j moves along the path indicated by the solid arrow in FIG. 6. Similarly, the inter-area path determination unit 150 may determine the inter-area path for the robot 20i so that the robot 20i moves along the path indicated by the dotted arrow in FIG. 6. In this case, the inter-area path determination unit 150 may determine the inter-area path based on the end position e in one time slot and the start position s in the subsequent time slot, as described above. Furthermore, the inter-area path determination unit 150 may determine the inter-area path for each of the multiple robots 20 so that the robots 20 avoid collision with each other, as described above.
[0084] The inter-area path determination unit 150 may similarly determine inter-area paths between other time slots and other areas. Note that the determination of inter-area paths between other time slots and other areas is completely independent, with no mutual influence between the results of each determination. Therefore, the inter-area path determination unit 150 can process the determination of inter-area paths between multiple time slots and multiple areas in parallel. The inter-area path determination unit 150 supplies the inter-area paths to the operation plan output unit 160.
[0085] In step S760, the apparatus 100 outputs an operation plan. For example, the operation plan output unit 160 may output, as the operation plan, at least one of the results of the area allocation performed in step S720, the results of the task allocation performed in step S730, the intra-area paths determined in step S740, and the inter-area paths determined in step S750. As an example, the operation plan output unit 160 may output all of the area allocation, task assignment, intra-area paths, and inter-area paths as the operation plan.
[0086] The device 100 ends this flow in this manner, for example. In the above description, the device 100 executes step S750 after steps S730 and S740 as an example. However, this is not limiting. The determination of the inter-area path in step S750, the result of task allocation in step S730, and the determination of the intra-area path in step S740 are completely independent, with no mutual influence between the results. Therefore, the device 100 may execute step S750 before steps S730 and S740, or may execute step S750 in parallel with steps S730 and S740.
[0087] In this way, a method is also provided, which includes a computer performing area allocation to allocate a plurality of robots 20 to a plurality of areas divided into which the equipment 10 is divided based on the specifications of the plurality of robots 20 and the requirements of a plurality of tasks to be performed in the equipment 10 to be operated, and a task allocation to assign, for a target area which is each of the plurality of areas, an intra-area task which is at least one task among the plurality of tasks that belongs to the target area to a target robot which is at least one robot among the plurality of robots 20 assigned to the target area.
[0088] Conventionally, it is known to construct an optimization problem based on various factors and planning policies, and then solve it to obtain a desired operation plan. However, solving an operation planning problem for a multi-robot system is computationally expensive, known as NP-hard, making it unrealistic for practical use. Furthermore, the computational cost depends in part on the size of the facility 10 and the number of robots to be introduced. For example, when introducing many robots into a large facility 10 such as a plant, simply implementing a method to reduce the computational load and obtain an approximate solution is likely to be insufficient for practical use.
[0089] In contrast, the device 100 according to this embodiment divides the process into area allocation, task allocation, intra-area route determination, and inter-area route determination. As a result, the device 100 according to this embodiment can solve operation planning problems for multiple robots 20, and can construct realistic operation plans.
[0090] In particular, as described above, task allocation for different areas is independent of each other. Therefore, the device 100 according to this embodiment can process task allocation for multiple areas in parallel. Similarly, determination of intra-area paths for different time slots and different areas is independent of each other. Therefore, the device 100 according to this embodiment can process task allocation for multiple time slots and multiple areas in parallel. Similarly, determination of inter-area paths between different time slots and between different areas is independent of each other. Therefore, the device 100 according to this embodiment can process inter-area paths between multiple time slots and between multiple areas in parallel. As a result, the device 100 according to this embodiment can quickly solve the operation planning problem regardless of the size of the facility 10 or the number of robots 20, and can construct a realistic operation plan in a realistic calculation time.
[0091] Furthermore, in area allocation in one time slot, the device 100 according to this embodiment can also determine the start and end positions in the position time slot for each of the multiple robots 20 based on the results of area allocation in other time slots. As a result, according to the device 100 according to this embodiment, the start and end positions s and e are determined by the area allocation process, so that the task allocation process and intra-area route determination process can be made independent of the inter-area route determination process, allowing flexibility in the execution of subsequent processes.
[0092] Furthermore, the device 100 according to this embodiment can also determine an intra-area route according to the start position s and the end position e in one time slot. As a result, the device 100 according to this embodiment follows the results of the area allocation when determining an intra-area route, thereby ensuring the consistency of the operation plan.
[0093] Furthermore, the device 100 according to this embodiment can also determine inter-area routes according to the end position e in one time slot and the start position s in the subsequent time slot. As a result, the device 100 according to this embodiment follows the results of area allocation when determining inter-area routes, thereby ensuring the consistency of the operation plan.
[0094] Furthermore, the device 100 according to this embodiment can also determine at least one of an intra-area path or an inter-area path so as to avoid collisions between the robots 20. As a result, even when it is necessary to assign a path to each of the multiple robots 20, the device 100 according to this embodiment can avoid interference between the robots 20 and prevent interference from causing operations to not proceed as planned.
[0095] Furthermore, the device 100 according to this embodiment can output at least one of area allocation, task allocation, intra-area route, and inter-area route as an operation plan. As a result, the device 100 according to this embodiment can notify a user or another system of part or all of the plan for operating the facility 10 using the multi-robot system, thereby reducing the load on the user or other system.
[0096] FIG. 8 shows an example of a block diagram of the apparatus 100 according to a first modified example of this embodiment, together with the equipment 10 to be operated. In this figure, components having the same functions and configurations as those in FIG. 1 are given the same reference numerals, and explanations will be omitted hereinafter except for differences. In the above-described embodiment, an example was shown in which the apparatus 100 stores executability information created manually in advance, but in this modified example, the apparatus 100 itself determines executability. The apparatus 100 according to this modified example further includes a feasibility determination unit 810 in addition to the functional units included in the apparatus 100 according to the above-described embodiment.
[0097] The feasibility determination unit 810 determines whether one or more robots can perform one or more tasks based on specification information indicating the specifications of one or more robots among the multiple robots 20 and task information indicating the requirements of one or more tasks. In particular, the feasibility determination unit 810 may access the storage unit 110 and determine whether each of the multiple robots 20 can perform each of the multiple tasks based on specification information indicating the specifications of each of the multiple robots 20 and task information indicating the requirements of the multiple tasks. As an example, for a task involving sound collection, the feasibility determination unit 810 may determine that the robots 20i and 20k equipped with microphones can perform the task, while determining that the robot 20j not equipped with a microphone cannot perform the task. Similarly, for a task involving photography, the feasibility determination unit 810 may determine that the robots 20i and 20j equipped with cameras can perform the task, while determining that the robot 20k not equipped with a camera cannot perform the task. Similarly, for a task in which the item is the operation of a valve, it may be determined that the robot 20k equipped with an arm is capable of performing the task, while the robots 20i and 20j not equipped with arms are not capable of performing the task.
[0098] The feasibility determination unit 810 may also determine whether or not a plurality of tasks can be performed based on environmental information indicating the environment of the equipment 10 for each area to which the tasks belong. For example, for a task that belongs to an area where the radiation dose is equal to or greater than a threshold, the feasibility determination unit 810 may determine that the robot 20k, which has explosion-proof resistance, can perform the task, while the robots 20i and 20j, which do not have explosion-proof resistance, cannot perform the task. Similarly, for a task located beyond a 30-cm step, the robot 20j, which uses flying as a means of locomotion, and the robot 20k, which can overcome steps of 50 cm or less, can perform the task, while the robot 20i, which can only overcome steps of 20 cm or less, cannot perform the task.
[0099] The feasibility determination unit 810 may determine whether each of the multiple tasks can be executed from multiple perspectives. In this case, if the feasibility of execution differs depending on the perspective, the feasibility determination unit 810 may simply perform a logical AND of the results of determining that the task is executable. For example, for a task that involves sound collection and belongs to an area where the radiation dose is equal to or greater than a threshold, the feasibility determination unit 810 may determine that the robot 20k that is equipped with a microphone and has explosion-proof resistance can execute the task, while determining that the robot 20i that is equipped with a microphone but does not have explosion-proof resistance cannot execute the task.
[0100] The feasibility determination unit 810 may supply the determination result of whether execution is possible or not to the storage unit 110. The storage unit 110 may store the determination result supplied from the feasibility determination unit 810 as execution possibility information. Then, the area allocation unit 120 may perform area allocation based on the execution possibility determined by the feasibility determination unit 810.
[0101] In this way, the apparatus 100 according to this modification determines whether each of the plurality of robots 20 can execute each of the plurality of tasks based on the specification information and task information. As a result, the apparatus 100 according to this modification can avoid manually creating feasibility information, thereby reducing the manpower required to determine feasibility, and can create an operation plan based on objective feasibility information that is not dependent on fluctuations in the determination criteria or judgment errors.
[0102] Furthermore, the device 100 according to this modification can also determine whether a task can be executed based on environmental information for each area to which each of the tasks belongs. As a result, the device 100 according to this modification determines whether a task can be executed based not only on the specifications of the robot 20 and the requirements of the task, but also on the environment for each area in which the task is located, so that it can determine whether a task can be executed in accordance with the actual usage environment.
[0103] FIG. 9 shows an example of a block diagram of an apparatus 100 according to a second modification of this embodiment, together with the equipment 10 to be operated. In this figure, components having the same functions and configurations as those in FIG. 1 are denoted by the same reference numerals, and descriptions thereof will be omitted hereinafter except for differences. In the above-described embodiment, the configuration in which the apparatus 100 outputs an operation plan was shown as an example. However, in this modification, the apparatus 100 further acquires and outputs indices that evaluate the output operation plan. The apparatus 100 according to this modification further includes an index acquisition unit 910 and an index output unit 920 in addition to the functional units included in the apparatus 100 according to the above-described embodiment. Furthermore, in the apparatus 100 according to this modification, the operation plan output unit 160 outputs the operation plan to at least the index acquisition unit 910.
[0104] The index acquisition unit 910 acquires indexes that evaluate the operation plan in accordance with predetermined criteria. In this case, the index acquisition unit 910 may acquire indexes that evaluate the operation plan in light of, for example, the running cost of the robot 20, the availability rate of the robot 20, and the total operation time. The index acquisition unit 910 may acquire indexes that it has evaluated itself using an evaluation formula or an evaluation model, or may acquire indexes that it has evaluated by another system, or may acquire indexes that it has evaluated manually. The index acquisition unit 910 supplies the acquired indexes to the index output unit 920.
[0105] The indicator output unit 920 outputs indicators that evaluate the operation plan according to predetermined criteria. The indicator output unit 920 may be, for example, a monitor and may display and output the indicators. Alternatively or additionally, the indicator output unit 920 may be a communication unit and may transmit and output the indicators to other functional units or other devices. Alternatively or additionally, the indicator output unit 920 may be a printer and may print and output the indicators. Alternatively or additionally, the indicator output unit 920 may be a speaker and may output the indicators as audio.
[0106] In this way, the device 100 according to this modification acquires and outputs an index that evaluates the operation plan. As a result, the device 100 according to this modification can not only notify the user or another system of the constructed operation plan, but also of how highly the operation plan is evaluated.
[0107] Furthermore, the apparatus 100 according to this modification may create multiple operation plans and acquire and output indicators for each of the multiple operation plans. As a result, the apparatus 100 according to this modification can determine an appropriate placement of the robots 20 by repeatedly solving an operation plan problem while adjusting the placement of the multiple robots 20, and therefore can also function as a consulting support tool for introducing robots.
[0108] Fig. 10 shows an example of a block diagram of the device 100 according to a third modified example of this embodiment, together with the equipment 10 that is the object of operation. In this figure, the same reference numerals are used to designate components that have the same functions and configurations as those in Fig. 9, and explanations will be omitted hereinafter except for differences. In the above-described modified example, the configuration up to the point where the device 100 outputs an index is shown as an example, but in this modified example, the device 100 further changes at least one of the combination of robots 20 or the division of the equipment 10 into multiple areas based on the output index.
[0109] In other words, the case where the apparatus 100 constructs an operation plan has been described above under the assumption that the combination of robots 20 is fixed (in the above description, it has already been decided that three robots 20, robot 20i, robot 20j, and robot 20k, will be introduced into the facility 10) and that the division of the facility 10 into multiple areas is fixed (in the above description, the facility 10 is pre-divided into three areas, area A, area B, and area C). However, in this modification, the apparatus 100 changes at least one of these based on the output indicators. The apparatus 100 according to this modification further includes a robot change unit 1010 and an area change unit 1020 in addition to the functional units included in the apparatus 100 according to the above modification. Furthermore, in the apparatus 100 according to this modification, the indicator output unit 920 supplies indicators to the robot change unit 1010 and the area change unit 1020.
[0110] The robot changing unit 1010 changes at least one of the number and specifications of the multiple robots 20 based on an index obtained by evaluating the operation plan according to predetermined criteria. In this case, the robot changing unit 1010 may, for example, change only the number of robots 20 to be introduced into the facility 10, or may change only the specifications of the robots to be introduced into the facility 10 while keeping the number the same, or may change both the number and the specifications. As an example, if the total operation time is long and the index does not satisfy the predetermined criteria, the robot changing unit 10 may increase the number of robots 20 to be introduced into the facility 10. In this case, the robot changing unit 1010 may, for example, add a robot with the same specifications as an existing robot already included in the multiple robots 20 (e.g., robot 20i(2) with the same specifications as robot 20i), or may add a new robot with specifications different from those of the existing robots (e.g., robot 20l). Furthermore, when the operating rate of one robot 20 is extremely high and the index does not satisfy a predetermined standard, the robot changing unit 1010 may change the specifications of the robot to be introduced into the facility 10. In this case, the robot changing unit 1010 may, for example, change at least one of the existing robots already included in the plurality of robots 20 to a robot with the same specifications as the other existing robots (for example, changing robot 20i to robot 20j(2) with the same specifications as robot 20j), or may change to a new robot with specifications different from those of the existing robots (for example, changing robot 20i to robot 20l).
[0111] When at least one of the number or specifications of the multiple robots 20 is changed, the robot change unit 1010 notifies the storage unit 110 of this fact. In response, the storage unit 110 updates the stored information about the robots 20 (e.g., specification information) to information about the new multiple robots 20. The area allocation unit 120 then reassigns the new multiple robots 20, the number or specifications of which have been changed, to multiple areas. In response, the task allocation unit 130 re-executes task allocation, the intra-area path determination unit 140 re-determines intra-area paths, and the inter-area path determination unit 150 re-determines inter-area paths. The apparatus 100 reconstructs an operation plan in this manner, for example, and the operation plan output unit 160 outputs the reconstructed operation plan.
[0112] The area change unit 1020 changes at least one of the number of areas or the boundaries of the multiple areas based on an index obtained by evaluating the operation plan according to a predetermined standard. In this case, the area change unit 1020 may, for example, change only the number of areas, change only the boundaries while leaving the number of areas unchanged, or change both the number of areas and the boundaries. For example, if the total operation time is long and the index does not satisfy the predetermined standard, the area change unit 1020 may increase the number of areas. In this case, the area change unit 1020 may, for example, change the multiple areas so that the equipment 10, which is divided into three areas, is redivided into four areas. Furthermore, if the operating rate of one robot 20 is extremely high and the index does not satisfy the predetermined standard, the area change unit 1020 may change the boundaries used to divide the equipment 10 into multiple areas. In this case, the area change unit 1020 may, for example, change all of the boundaries and subdivide the equipment 10 into three areas: area D, area E, and area F, or may change part of the boundaries and subdivide the equipment 10 into three areas: area A, area D, and area E.
[0113] When the area change unit 1020 changes at least one of the number of areas or the boundaries of the multiple areas, it notifies the storage unit 110 of this. Note that this notification may include information indicating the location of the boundaries. In response, the storage unit 110 reorganizes the stored task information for each of the new multiple areas and updates the intra-area tasks. The area allocation unit 120 then reassigns the multiple robots 20 to the new multiple areas where at least one of the number of areas or the boundaries has been changed. In response, the task allocation unit 130 reassigns tasks, the intra-area path determination unit 140 re-determines intra-area paths, and the inter-area path determination unit 150 re-determines inter-area paths. In this manner, for example, the apparatus 100 reconstructs an operation plan, and the operation plan output unit 160 outputs the reconstructed operation plan according to the new multiple areas.
[0114] FIG. 11 shows an example of a flow diagram of a method executed by the apparatus 100 according to the third modification of this embodiment to repeatedly construct an operation plan.
[0115] In step S1110, the apparatus 100 sets default numbers and specifications of the plurality of robots 20. As an example, the apparatus 100 may set the plurality of robots 20 as three robots 20: robot 20i, robot 20j, and robot 20k. In response to this, the storage unit 110 may store information indicating the specifications of each of the robots 20i, robot 20j, and robot 20k as specification information.
[0116] In step S1120, the device 100 sets the number of areas and boundaries of the multiple areas to defaults. As an example, the device 100 may set the multiple areas so that the facility 10 is divided into three areas: area A, area B, and area C. In response to this, the storage unit 110 organizes the stored task information for each of area A, area B, and area C, and stores the information as intra-area tasks for each of area A, area B, and area C.
[0117] In response to this, the storage unit 110 may update the executability information. At this time, the storage unit 110 may update the stored executability information to information created manually, or may update it based on the determination result re-determined by the executability determination unit 810.
[0118] In step S1130, the apparatus 100 creates an operation plan. The creation of the operation plan is as described above.
[0119] In step S1140, the apparatus 100 acquires the index. The acquisition of the index is also as described above.
[0120] In step S1150, the apparatus 100 determines whether a termination condition is met. For example, the apparatus 100 determines whether the index acquired in step S1140 meets a predetermined criterion. If the apparatus 100 determines that the index does not meet the predetermined criterion (No), the apparatus 100 proceeds to step S1160.
[0121] In step S1160, the apparatus 100 changes at least one of the number or specifications of the multiple robots 20, and / or changes at least one of the number of regions or boundaries of the multiple regions. At this time, the robot change unit 1010 may change only the number of robots 20 to be introduced into the facility 10, may change only the specifications of the robots to be introduced into the facility 10 while keeping the number the same, or may change both the number of robots and the specifications. Also, at this time, the region change unit 1020 may change only the number of regions of the multiple regions, may change the boundaries while keeping the number of regions the same, or may change both the number of regions and the boundaries, as described above.
[0122] Then, apparatus 100 returns the process to step S1130 and continues the flow. That is, apparatus 100 updates the various information stored in storage unit 110 and reconstructs the operation plan based on the new information.
[0123] If it is determined in step S1150 that the index satisfies the predetermined criterion (Yes), the apparatus 100 advances the process to step S1170.
[0124] In step S1170, apparatus 100 outputs the operation plan. For example, operation plan output unit 160 outputs the operation plan that led to the index being determined to satisfy the predetermined criterion in step S1150.
[0125] In the above description, an example is given in which device 100 determines whether the termination condition is met in step S1150 based on whether the index meets a predetermined criterion, but this is not limited to this.
[0126] In step S1150, the apparatus 100 may determine whether the termination condition is met based on whether the number of times the operation plan has been constructed has reached a predetermined number. Alternatively, in step S1150, the apparatus 100 may determine whether the termination condition is met based on whether a predetermined time has elapsed since the start of this flow. In this case, the apparatus 100 may repeat the construction of operation plans and the acquisition of indicators multiple times while reconfiguring the robot 20 / redividing the facility 10 according to a predetermined rule or randomly, regardless of whether the indicators satisfy the criteria. The apparatus 100 may then select the operation plan with the best indicator from among the multiple operation plans constructed until the termination condition is met, and output the selected operation plan.
[0127] In this way, the apparatus 100 according to this modification changes at least one of the number and specifications of the multiple robots 20 based on the index used to evaluate the operation plan, reconstructs the operation plan, and outputs it. As a result, the apparatus 100 according to this modification can determine the appropriate number and specifications of the robots 20 by repeatedly solving the operation planning problem while adjusting the number and specifications of the multiple robots 20.
[0128] Furthermore, the apparatus 100 according to this modification changes at least one of the number of regions or the boundaries of the multiple regions based on the index used to evaluate the operation plan, reconstructs the operation plan, and outputs it. Thus, the apparatus 100 according to this modification can determine the appropriate number of regions and boundaries by repeatedly solving the operation planning problem while adjusting the number of regions and boundaries of the multiple regions. In this way, the apparatus 100 according to this modification can determine the appropriate number and specifications of the robots 20, as well as how to set the number of regions and boundaries. Thus, the apparatus 100 according to this modification can reduce the man-hours required for setting the operation plan and clarify whether the settings were appropriate.
[0129] FIG. 12 shows an example of a block diagram of an apparatus 100 according to a third modified example of this embodiment, together with the equipment 10 to be operated. In this figure, components having the same functions and configurations as those in FIG. 1 are denoted by the same reference numerals, and descriptions thereof will be omitted hereinafter except for differences. In the above-described embodiment, the configuration in which the apparatus 100 outputs an operation plan is shown as an example. However, in this modified example, the apparatus 100 further controls multiple robots 20 in accordance with the output operation plan. The apparatus 100 according to this modified example further includes a control unit 1210 in addition to the functional units included in the apparatus 100 according to the above-described embodiment. Furthermore, in the apparatus 100 according to this modified example, the operation plan output unit 160 outputs the operation plan to at least the control unit 1210.
[0130] The control unit 1210 controls the multiple robots 20 in accordance with the operation plan. As described above, the operation plan output from the operation plan output unit 160 may include at least one of an area allocation, a task allocation, an intra-area path, and an inter-area path. Therefore, the control unit 1210 may control the multiple robots 20 so that a target robot is placed in a target area in accordance with the area allocation. Furthermore, the control unit 1210 may control the multiple robots 20 so that a target robot performs an intra-area task in accordance with the task assignment. Furthermore, the control unit 1210 may control the multiple robots 20 so that the target robot moves within an area in accordance with the intra-area path. Furthermore, the control unit 1210 may control the multiple robots 20 so that the target robot moves between areas in accordance with the inter-area path.
[0131] It should be noted that the term "control" here may include not only direct control of the robot 20, but also indirect control of the robot 20 by controlling a controller that controls the robot 20.
[0132] In this way, the device 100 according to this modification controls the plurality of robots 20 in accordance with the operation plan. As a result, the device 100 according to this modification not only creates an operation plan but also functions as a control device, so that the created operation plan can be applied to actual control.
[0133] Various embodiments of the present invention may be described with reference to flowcharts and block diagrams, where the blocks may represent (1) stages of a process in which operations are performed or (2) sections of an apparatus responsible for performing the operations. Particular stages and sections may be implemented by dedicated circuitry, programmable circuitry provided with computer-readable instructions stored on a computer-readable medium, and / or a processor provided with computer-readable instructions stored on a computer-readable medium. Dedicated circuitry may include digital and / or analog hardware circuitry, and may include integrated circuits (ICs) and / or discrete circuits. Programmable circuitry may include reconfigurable hardware circuitry, including logical AND, OR, XOR, NAND, NOR, and other logical operations, flip-flops, registers, memory elements such as field programmable gate arrays (FPGAs), programmable logic arrays (PLAs), and the like.
[0134] A computer-readable medium may include any tangible device capable of storing instructions that are executed by an appropriate device, such that the computer-readable medium having instructions stored thereon comprises an article of manufacture containing instructions that can be executed to create means for performing the operations specified in the flowcharts or block diagrams. Examples of computer-readable media may include electronic, magnetic, optical, electromagnetic, and semiconductor storage media. More specific examples of computer-readable media may include floppy disks, diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), electrically erasable programmable read-only memory (EEPROM), static random access memory (SRAM), compact disc read-only memory (CD-ROM), digital versatile disc (DVD), Blu-ray (RTM) disc, memory stick, integrated circuit card, and the like.
[0135] The computer readable instructions may include either assembler instructions, Instruction Set Architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state-setting data, or source or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk®, JAVA®, C++, etc., and conventional procedural programming languages such as the “C” programming language or similar programming languages.
[0136] The computer-readable instructions may be provided to a processor or programmable circuitry of a general-purpose computer, special-purpose computer, or other programmable data processing apparatus, either locally or over a wide-area network (WAN) such as a local area network (LAN), the Internet, etc., which executes the computer-readable instructions to create means for performing the operations specified in the flowcharts or block diagrams. Examples of processors include computer processors, processing units, microprocessors, digital signal processors, controllers, microcontrollers, etc.
[0137] 13 illustrates an example of a computer 9900 in which aspects of the present invention may be embodied, in whole or in part. Programs installed on the computer 9900 may cause the computer 9900 to function as or perform operations associated with an apparatus or one or more sections of the apparatus according to embodiments of the present invention, and / or to perform a process or steps of a process according to embodiments of the present invention. Such programs may be executed by the CPU 9912 to cause the computer 9900 to perform specific operations associated with some or all of the blocks in the flowcharts and block diagrams described herein.
[0138] The computer 9900 according to this embodiment includes a CPU 9912, a RAM 9914, a graphics controller 9916, and a display device 9918, which are interconnected by a host controller 9910. The computer 9900 also includes input / output units such as a communication interface 9922, a hard disk drive 9924, a DVD drive 9926, and an IC card drive, which are connected to the host controller 9910 via an input / output controller 9920. The computer also includes legacy input / output units such as a ROM 9930 and a keyboard 9942, which are connected to the input / output controller 9920 via an input / output chip 9940.
[0139] The CPU 9912 operates according to programs stored in the ROM 9930 and RAM 9914, thereby controlling each unit. The graphics controller 9916 retrieves image data generated by the CPU 9912 into a frame buffer or the like provided in the RAM 9914 or into the graphics controller itself, and causes the image data to be displayed on the display device 9918.
[0140] The communication interface 9922 communicates with other electronic devices via a network. The hard disk drive 9924 stores programs and data used by the CPU 9912 in the computer 9900. The DVD drive 9926 reads programs or data from the DVD-ROM 9901 and provides the programs or data to the hard disk drive 9924 via the RAM 9914. The IC card drive reads programs and data from an IC card and / or writes programs and data to an IC card.
[0141] The ROM 9930 stores therein a boot program or the like that is executed by the computer 9900 upon activation, and / or programs that depend on the hardware of the computer 9900. The input / output chip 9940 may also connect various input / output units to the input / output controller 9920 via a parallel port, a serial port, a keyboard port, a mouse port, etc.
[0142] The programs are provided by a computer-readable medium such as a DVD-ROM 9901 or an IC card. The programs are read from the computer-readable medium, installed in the hard disk drive 9924, RAM 9914, or ROM 9930, which are also examples of computer-readable media, and executed by the CPU 9912. The information processing described in these programs is read by the computer 9900, and causes cooperation between the programs and the various types of hardware resources described above. An apparatus or method may be configured by implementing information manipulation or processing in accordance with the use of the computer 9900.
[0143] For example, when communication is performed between the computer 9900 and an external device, the CPU 9912 may execute a communication program loaded into the RAM 9914 and instruct the communication interface 9922 to perform communication processing based on the processing described in the communication program. Under the control of the CPU 9912, the communication interface 9922 reads transmission data stored in a transmission buffer processing area provided in the RAM 9914, the hard disk drive 9924, the DVD-ROM 9901, or a recording medium such as an IC card, and transmits the read transmission data to the network, or writes received data received from the network to a reception buffer processing area or the like provided on the recording medium.
[0144] The CPU 9912 may also cause all or a necessary portion of a file or database stored on an external recording medium such as a hard disk drive 9924, a DVD drive 9926 (DVD-ROM 9901), an IC card, etc. to be read into the RAM 9914, and perform various types of processing on the data on the RAM 9914. The CPU 9912 then writes back the processed data to the external recording medium.
[0145] Various types of information, such as various types of programs, data, tables, and databases, may be stored on the recording medium and subjected to information processing. The CPU 9912 may perform various types of processing on data read from the RAM 9914, including various types of operations, information processing, conditional judgment, conditional branching, unconditional branching, information search / replacement, etc., as described throughout this disclosure and specified by the instruction sequences of the programs, and write the results back to the RAM 9914. The CPU 9912 may also search for information in a file, database, etc. on the recording medium. For example, if multiple entries each having an attribute value of a first attribute associated with an attribute value of a second attribute are stored on the recording medium, the CPU 9912 may search for an entry that matches a condition specified by the attribute value of the first attribute from among the multiple entries, read the attribute value of the second attribute stored in the entry, and thereby obtain the attribute value of the second attribute associated with the first attribute that satisfies a predetermined condition.
[0146] The programs or software modules described above may be stored in a computer-readable medium on or near the computer 9900. A recording medium such as a hard disk or RAM provided in a server system connected to a dedicated communication network or the Internet can also be used as a computer-readable medium, thereby providing the programs to the computer 9900 via the network.
[0147] Although the present invention has been described above using embodiments, the technical scope of the present invention is not limited to the scope described in the above embodiments. It will be apparent to those skilled in the art that various modifications and improvements can be made to the above embodiments. It is clear from the claims that such modifications and improvements can also be included within the technical scope of the present invention.
[0148] It should be noted that the execution order of each process, such as operations, procedures, steps, and stages, in the devices, systems, programs, and methods shown in the claims, specifications, and drawings is not specifically stated as "before," "prior to," etc., and that the processes can be performed in any order unless the output of a previous process is used in a subsequent process. Even if the operational flow in the claims, specifications, and drawings is described using "first," "next," etc. for convenience, this does not mean that the processes must be performed in this order. [Explanation of symbols]
[0149] 10 Equipment 20. Robot 100 devices 110 Storage section 120 Area Allocation Unit 130 Task Allocation Unit 140 Intra-area route determination unit 150 Inter-area route determination unit 160 Operation plan output section 810 Possibility judgment section 910 Index acquisition unit 920 Index output section 1010 Robot Modification Department 1020 Area Change Section 1210 Control Unit 9900 Computer 9901 DVD-ROM 9910 Host Controller 9912 CPU 9914 RAM 9916 Graphics Controller 9918 Display Device 9920 Input / Output Controller 9922 Communication Interface 9924 Hard Disk Drive 9926 DVD drive 9930 ROM 9940 I / O chip 9942 keyboard
Claims
1. an area allocation unit that executes area allocation to allocate the plurality of robots to a plurality of areas obtained by dividing the equipment based on specifications of the plurality of robots and requirements of a plurality of tasks to be executed in the equipment to be operated; a task allocation unit that executes task allocation for a target area that is each of the plurality of areas, to a target robot that is at least one robot among the plurality of robots that is assigned to the target area, the target robot being an intra-area task that is at least one task that belongs to the target area among the plurality of tasks; an inter-area path determination unit that determines inter-area paths for moving the plurality of robots between the plurality of areas based on the result of the area allocation; An apparatus comprising:
2. The apparatus according to claim 1 , further comprising an intra-area path determination unit that determines an intra-area path for moving the target robot within the target area based on a result of the task allocation.
3. The device according to claim 2 , wherein the region allocation unit determines a start position and an end position in one time slot for each of the plurality of robots based on the results of the region allocation in one time slot and the results of the region allocation in other time slots.
4. The device according to claim 3 , wherein the intra-area route determination unit determines the intra-area route according to the start point position and the end point position in the one time slot.
5. The device according to claim 4 , wherein the inter-region path determination unit determines the inter-region path according to the end point location in the one time slot and the start point location in the subsequent time slot.
6. further comprising an execution possibility determination unit that determines whether the one or more robots can execute the one or more tasks based on specification information that indicates specifications of one or more robots among the plurality of robots and task information that indicates requirements of one or more tasks among the plurality of tasks, The device according to claim 1 , wherein the region allocating unit executes the region allocation based on the feasibility.
7. 7. The device according to claim 6, wherein the feasibility determination unit determines whether each of the plurality of robots can execute each of the plurality of tasks based on specification information indicating specifications of each of the plurality of robots and task information indicating requirements of the plurality of tasks.
8. The apparatus according to claim 7 , wherein the possibility determination unit determines the possibility of execution further based on environmental information indicating an environment of the facility for each area to which each of the plurality of tasks belongs.
9. The device according to claim 2 , further comprising an operation plan output unit that outputs at least one of the results of the area allocation, the results of the task allocation, the intra-area paths, or the inter-area paths as an operation plan.
10. The apparatus according to claim 9 , further comprising an index output unit that outputs an index that evaluates the operation plan according to a predetermined standard.
11. a robot change unit that changes at least one of the number or specifications of the plurality of robots based on an index that evaluates the operation plan in accordance with a predetermined standard; The apparatus according to claim 9 , wherein the area allocation unit reallocates the new plurality of robots, the number of which or the specifications of which have been changed, to the plurality of areas.
12. The system further includes a region changing unit that changes at least one of the number of regions or boundaries of the plurality of regions based on an index that evaluates the operation plan according to a predetermined standard, The apparatus according to claim 9 , wherein the region allocator reassigns the plurality of robots to new regions in which at least one of the number of regions or boundaries has been changed.
13. The apparatus according to claim 9 , further comprising a control unit that controls the plurality of robots in accordance with the operation plan.
14. The computer Executing area allocation to allocate the plurality of robots to a plurality of areas obtained by dividing the facility based on specifications of the plurality of robots and requirements of a plurality of tasks to be performed in the facility to be operated; performing task allocation for a target area that is each of the plurality of areas, in which an intra-area task that is at least one task belonging to the target area among the plurality of tasks is assigned to a target robot that is at least one robot among the plurality of robots assigned to the target area; determining inter-area paths for moving the plurality of robots between the plurality of areas based on the results of the area allocation; A method comprising:
15. When executed by a computer, the computer is an area allocation unit that executes area allocation to allocate the plurality of robots to a plurality of areas obtained by dividing the equipment based on specifications of the plurality of robots and requirements of a plurality of tasks to be executed in the equipment to be operated; a task allocation unit that executes task allocation for a target area that is each of the plurality of areas, to a target robot that is at least one robot among the plurality of robots that is assigned to the target area, the target robot being an intra-area task that is at least one task that belongs to the target area among the plurality of tasks; an inter-area path determination unit that determines inter-area paths for moving the plurality of robots between the plurality of areas based on the result of the area allocation; A program that makes things work.
Citation Information
Patent Citations
Autonomous multi-platform robot system
JP2003515801A
System and method for optimizing scheduling of non-preemptive task in multi-robotic environment
JP2020149675A
Flight path determination method, information processing device, program, and storage medium
US20200050189A1
Systems and methods for management of a robot fleet
US20220269284A1