Apparatus, method, and program
Through the area allocation and path decision of the device 100, the operation plan of the multi-robot system is quickly constructed, and the problems of high computing costs and inefficiency in large-scale facilities are solved, and efficient robot task allocation and path planning are realized.
Patent Information
- Application Number
- CN202380091201.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-01-13
- Filing Date
- 2023-12-28
- Publication Date
- 2025-08-29
AI Technical Summary
The prior art is difficult to efficiently construct operation plans for multi-robot systems, especially in large-scale facilities to have high computing costs and inefficient efficiency, and cannot effectively allocate and path planning.
The device 100 is used to perform regional allocation, task allocation, intra-regional path decisions and inter-regional path decisions, and to quickly build an operation plan through parallel processing, considering robot specifications, task requirements and environmental information.
Solve multi-robot operation planning problems at high speed within actual computing time, build feasible operation plans, reduce calculation load, and improve efficiency.
Smart Images

Figure CN120569686A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to an apparatus, a method and a program. The contents of the following patent applications are incorporated herein by reference: No. 2023-003588 filed in Japan on January 13, 2023 Background Art
[0002] Patent Document 1 describes an “autonomous multi-platform robot system.” Patent Document 2 describes a “system and method for optimizing non-preemptive task scheduling in a multi-robot environment.” (List of citations) (Patent Document) Patent Document 1: Japanese Translation of PCT Patent Application No. 2003-515801 Patent Document 2: Japanese Patent Application Publication No. 2020-149675 Summary of the Invention
[0003] In a first aspect of the present invention, an apparatus is provided. The apparatus includes: an area allocation unit that, based on the specifications of a plurality of robots and the requirements of a plurality of tasks to be performed in a facility, performs area allocation, allocating the plurality of robots to a plurality of areas, the plurality of areas being obtained by dividing the facility to be operated; and a task allocation unit that, for each target area as the plurality of areas, performs task allocation, allocating an in-area task to a target robot, the in-area task being at least one task among the plurality of tasks belonging to the target area, and the target robot being at least one robot among the plurality of robots assigned to the target area. The task allocation unit may perform task allocation to the plurality of areas through parallel processing.
[0004] The apparatus may further include an intra-region path decision unit that determines an intra-region path for the target robot to move in the target region based on the result of the task allocation. The intra-region path decision unit may determine the intra-region path by performing parallel processing for multiple time slots and multiple regions.
[0005] Each of the devices may further include an inter-area path decision unit configured to determine an inter-area path for the plurality of robots to move between the plurality of areas based on the result of the area allocation. The inter-area path decision unit may determine the inter-area path by performing parallel processing for a plurality of time slots and a plurality of areas.
[0006] In any of the devices, in the area allocation within one time slot, the area allocation unit may determine a start position and an end position within the one time slot for each of the plurality of robots based on results of the area allocation in other time slots.
[0007] In any of the above devices, the intra-regional path decision unit may determine the intra-regional path based on the starting position and the ending position within the one time slot. The intra-regional path decision unit may determine the intra-regional path so as to move the target robot from the starting position within the one time slot to the ending position via the position where each intra-regional task assigned to the target robot is to be executed.
[0008] In any of the devices, the inter-area path decision unit may determine the inter-area path according to the end point position in the one time slot and the start point position in a subsequent time slot.
[0009] Any of the devices may further include a feasibility determination unit that determines execution feasibility indicating whether the one or more robots are capable of performing the one or more tasks based on specification information indicating specifications of the one or more robots among the multiple robots and task information indicating requirements of the one or more tasks among the multiple tasks, and the area allocation unit may perform the area allocation based on the execution feasibility.
[0010] In any of the devices, the feasibility determination unit can determine the execution feasibility of whether each of the multiple robots is capable of performing each of the multiple tasks based on specification information representing the specifications of each of the multiple robots and task information representing the requirements of the multiple tasks.
[0011] In any of the apparatuses, the feasibility determination unit may further determine the execution feasibility based on environment information indicating an environment of the facility for each area to which each of the plurality of tasks belongs.
[0012] Any of the apparatuses may further include an operation plan output unit that outputs at least one of the result of the area allocation, the result of the task allocation, the intra-area path, or the inter-area path as an operation plan.
[0013] Any of the apparatuses may further include an index output unit that outputs an index obtained by evaluating the operation plan according to a predetermined standard. The index output unit may output an index value obtained by evaluating the operation plan using a predetermined evaluation formula or evaluation model.
[0014] Any of the devices may further include a robot changing unit that changes at least one of the number or specifications of the plurality of robots based on an indicator obtained by evaluating the operation plan according to predetermined criteria, and the area allocation unit may reallocate a plurality of new robots in which at least one of the number or the specifications has been changed to the plurality of areas.
[0015] Any of the devices may further include an area changing unit that changes at least one of the number of areas or boundaries of the plurality of areas based on an indicator obtained by evaluating the operation plan according to predetermined criteria, and the area assigning unit may reallocate the plurality of robots to a plurality of new areas in which at least one of the number of areas or the boundaries has been changed.
[0016] Any of the apparatuses may further include a control unit that controls the plurality of robots according to the operation plan.
[0017] In a second aspect of the present invention, a method is provided. The method, executed by a computer, includes: performing area allocation to allocate a plurality of robots to a plurality of areas obtained by dividing the facility to be operated, based on specifications of the plurality of robots and requirements of a plurality of tasks to be performed in a facility; and performing task allocation to allocate an in-area task to a target robot for each of the plurality of areas, the in-area task being at least one task belonging to the target area among the plurality of tasks, and the target robot being at least one robot among the plurality of robots assigned to the target area.
[0018] In a third aspect of the present invention, there is provided a program that is executed by a computer and causes the computer to function as: an area allocation unit that performs area allocation, based on the specifications of a plurality of robots and requirements of a plurality of tasks to be performed in a facility, to allocate the plurality of robots to a plurality of areas obtained by dividing the facility to be operated; and a task allocation unit that performs task allocation, with respect to a target area as each of the plurality of areas, to allocate an in-area task to a target robot, the in-area task being at least one task belonging to the target area among the plurality of tasks, and the target robot being at least one robot among the plurality of robots assigned to the target area.
[0019] These summary clauses do not necessarily describe all necessary features of an embodiment of the invention. The invention may also be a sub-combination of the features described above. BRIEF DESCRIPTION OF THE DRAWINGS
[0020] Figure 1 An example of a block diagram of an apparatus 100 according to the present embodiment together with a facility 10 to be operated is shown. [ Figure 2 ] Figure 2 Examples of various types of information stored in the device 100 according to the present embodiment are shown. [ Figure 3 ] Figure 3 An example of the result of area allocation performed by the apparatus 100 according to the present embodiment is shown. [ Figure 4 ] Figure 4 An example of the result of task allocation performed by the apparatus 100 according to the present embodiment is shown. [ Figure 5 ] Figure 5 An example of an intra-area path determined by the apparatus 100 according to this embodiment is shown. [ Figure 6 ] Figure 6 An example of an inter-area path determined by the apparatus 100 according to this embodiment is shown. [ Figure 7 ] Figure 7 An example of a flowchart of a method performed by the apparatus 100 according to the present embodiment is shown. [ Figure 8 ] Figure 8 An example of a block diagram of an apparatus 100 according to a first modification of the present embodiment together with a facility 10 to be operated is shown. [ Figure 9 ] Figure 9 An example of a block diagram of an apparatus 100 according to a second modification of the present embodiment together with a facility 10 to be operated is shown. [ Figure 10 ] Figure 10 An example of a block diagram of an apparatus 100 according to a third modification of the present embodiment together with a facility 10 to be operated is shown. [ Figure 11 ] Figure 11 An example of a flowchart of a method for repeatedly constructing an operation plan executed by the apparatus 100 according to the third modification of the present embodiment is shown. [ Figure 12 ] Figure 12 An example of a block diagram of an apparatus 100 according to a fourth modification of the present embodiment together with a facility 10 to be operated is shown. [ Figure 13 ] Figure 13 An example of a computer 9900 is shown in which aspects of the present invention may be embodied in whole or in part. DETAILED DESCRIPTION
[0021] Hereinafter, the present invention will be described by way of its embodiments, but the following embodiments do not limit the present invention according to the claims. In addition, not all combinations of features described in the embodiments are essential for the means for solving the problems of the present invention.
[0022] Figure 1 An example of a block diagram of an apparatus 100 according to this embodiment is shown, along with a facility 10 to be operated. Note that these blocks are functionally divided functional blocks and may not necessarily match the actual apparatus configuration. In other words, in this diagram, a unit shown as a block does not necessarily need to be constructed from a single apparatus. Furthermore, in this diagram, a unit shown as a separate block does not necessarily need to be constructed from a separate apparatus. This applies similarly to the other block diagrams.
[0023] Facility 10 is equipment, devices, buildings, etc. to be operated. For example, facility 10 may be a factory. In addition to chemical and biological industrial plants, examples of factories include factories for managing and controlling well fields such as gas and oil fields and their surroundings, factories for managing and controlling hydroelectric power generation, thermal power generation, and nuclear power generation, factories for managing and controlling environmental power generation such as solar and wind power, and factories for managing and controlling water supply and drainage, dams, and the like.
[0024] In such facilities 10, there is growing demand for the introduction of robots due to issues such as human resource shortages, work safety, and maintenance costs, and the development of a wide variety of robots with varying specifications is progressing. Among the robots currently under development or already in development are those capable of autonomous movement and those capable of performing tasks without human intervention. Research has been conducted into at least partially operating the facility 10 using a multi-robot system incorporating a plurality of such robots.
[0025] The robots 20 are introduced into the facility 10 and perform various tasks related to the operation of the facility 10. In this figure, a case where three robots 20, namely a robot 20i, a robot 20j, and a robot 20k (collectively referred to as "robots 20"), are introduced into the facility 10 is shown as an example.
[0026] For example, the robot 20i can be a robot capable of autonomous movement using a quadrupedal walk. Furthermore, for example, the robot 20i can use a mounted microphone to measure ambient sound and a mounted camera to capture images of a target. Furthermore, the robot 20i can move at a speed of, for example, 5 km / h. Furthermore, for example, when the battery is fully charged, the robot 20i can operate continuously for three hours. Furthermore, for example, the robot 20i can climb stairs less than 20 cm high.
[0027] For example, the robot 20j may be a robot capable of autonomous flight using rotors (e.g., a drone or multirotor). Furthermore, the robot 20j can measure the temperature of a measurement target using a mounted thermographic camera and can also capture images of a target using the mounted camera. Furthermore, the robot 20j can move at a speed of, for example, 10 km / h. Furthermore, when the battery is fully charged, the robot 20j can operate continuously for, for example, five hours.
[0028] For example, the robot 20k can be capable of autonomous movement using tracks. Furthermore, the robot 20k can use a mounted microphone to measure ambient sound and operate instruments (such as valves) using its mounted arm. Furthermore, the robot 20k can move at a speed of, for example, 3 km / h. Furthermore, when the battery is fully charged, the robot 20k can operate continuously for two hours. Furthermore, for example, the robot 20k can be explosion-proof. Furthermore, for example, the robot 20k can climb stairs less than 50 cm high.
[0029] As described above, a plurality of robots 20 having various specifications can be introduced into the facility 10. Note that in the above description, a case has been described as an example in which three robots 20 having different specifications, such as the robot 20i, the robot 20j, and the 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 thereto, and the multi-robot system can be composed of various combinations of various robots 20. In this case, for example, the plurality of robots introduced into the facility 10 may include a plurality of robots having the same specifications.
[0030] When a multi-robot system operates facility 10, it is necessary to create an operation plan. However, when creating this operation plan, various factors must be considered, such as the specifications of the various robots, the requirements of various tasks, and the limitations imposed by the environment of facility 10. Therefore, creating an operation plan based on human effort or rules requires considerable man-hours, and may result in inefficient plans and the assignment of unfeasible tasks to robots 20.
[0031] Conventionally, methods using optimization techniques have been established for this type of problem. It is known to construct an optimization problem based on the various factors and planning strategies mentioned above, and then solve it to obtain the desired operation plan. However, solving the problem of operation planning for a multi-robot system is considered a task known as non-deterministic polynomial-time (NP) hard, requiring extremely high computational costs and making it impractical to implement. Furthermore, computational costs also depend on the scale of the facility 10 and the number of robots 20 to be introduced. For example, when a large number of robots 20 are introduced to a large-scale facility 10 such as a factory, it is expected that simply implementing methods to reduce the computational load and obtain approximate solutions will not be sufficient to achieve an operational state.
[0032] In this regard, the apparatus 100 according to this embodiment divides the processing into area allocation, task allocation, intra-area routing, and inter-area routing. Therefore, the apparatus 100 according to this embodiment can solve operation planning problems involving multiple robots 20 at high speed and construct feasible operation plans within a practical computing time, regardless of the scale of the facility 10 and the number of robots 20. This apparatus 100 will be described in detail.
[0033] The apparatus 100 includes a storage unit 110 , an area allocation unit 120 , a task allocation unit 130 , an intra-area path decision unit 140 , an inter-area path decision unit 150 , and an operation plan output unit 160 .
[0034] The storage unit 110 stores various types of information used to construct an operation plan. This information can be obtained from the facility 10 or an external system via a network, can be obtained via user input, or can be obtained via various storage devices. The details of the information stored in the storage unit 110 will be described later.
[0035] The area allocation unit 120 allocates the plurality of robots 20 to a plurality of areas obtained by dividing the facility 10 to be operated, based on the specifications of the plurality of robots 20 and the requirements of the plurality of tasks to be performed in the facility 10. The area allocation unit 120 supplies the results of the area allocation to the task allocation unit 130, the intra-area path decision unit 140, the inter-area path decision unit 150, and the operation plan output unit 160.
[0036] For each of the plurality of regions, the task assignment unit 130 performs task assignment, assigning an intra-region task to a target robot, the intra-region task being at least one task belonging to the target region from among the plurality of tasks, and the target robot being at least one robot assigned to the target region from among the plurality of robots 20. The task assignment unit 130 supplies the result of the task assignment to the intra-region path decision unit 140 and the operation plan output unit 160.
[0037] The intra-area path decision unit 140 determines an intra-area path for the target robot to move within the target area based on the result of the task allocation, and supplies the determined intra-area path to the operation plan output unit 160 .
[0038] The inter-area path decision unit 150 determines an inter-area path for the robots 20 to move between the areas based on the area allocation result, and supplies the determined inter-area path to the operation plan output unit 160 .
[0039] The operation plan output unit 160 outputs at least one of the results of area assignment, the results of task assignment, and the intra-area path or inter-area path as an operation plan. The operation plan output unit 160 may be, for example, a monitor that displays and outputs the operation plan. Alternatively or additionally, the operation plan output unit 160 may be a communication unit that transmits and outputs the operation plan to other functional units or other devices. Alternatively or additionally, the operation plan output unit 160 may be a printer that prints out the operation plan. Alternatively or additionally, the operation plan output unit 160 may be a speaker that outputs the operation plan via voice.
[0040] The device 100 including such functional units can be a computer such as a personal computer (PC), tablet computer, smartphone, workstation, server computer, or general-purpose computer, or a computer system comprising multiple connected computers. Such a computer system is also a computer in a broad sense. Furthermore, the device 100 can be implemented using one or more virtual computer environments that can be executed on a computer. Alternatively, the device 100 can be a dedicated computer customized to provide the aforementioned functions, or it can be dedicated hardware implemented using dedicated circuitry. Furthermore, if connected to the internet, the device 100 can be implemented through cloud computing.
[0041] Such a computer may include a memory storing a program and a processor executing the program, and the functions of the apparatus 100 may be implemented by the processor executing the program. Specifically, a program is also provided that, when executed by the computer, causes the computer to function as: an area allocation unit that, based on the specifications of the plurality of robots 20 and the requirements of the plurality of tasks to be performed in the facility 10, performs area allocation, allocating the plurality of robots 20 to a plurality of areas obtained by dividing the facility 10 to be operated; and a task allocation unit that, for each target area as the plurality of areas, performs task allocation, allocating an in-area task to a target robot, the in-area task being at least one of the plurality of tasks belonging to the target area, the target robot being at least one of the plurality of robots 20 assigned to the target area. Furthermore, a non-transitory computer-readable medium having such a program recorded thereon is also provided.
[0042] Figure 2 1 and 2. Examples of various types of information stored in the apparatus 100 according to the present embodiment are shown. The storage unit 110 can 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 a preset inspection standard. As an example, the inspection standard information may include information such as the inspection type, importance level, quality determination standard, and necessity of a maintenance person in charge to be present.
[0044] Specification information is information indicating the specifications of each of the multiple robots 20. For example, the specification information may include information such as movement mode, installed sensors (measurable physical quantities), installed arms, movement speed, continuous operation time, remaining battery level, climbable steps, explosion resistance, and the number of tasks that can be performed per unit time for each of the multiple robots 20. The continuous operation time can be estimated based on the rated full charge capacity of the battery, or based on the full charge capacity while taking into account battery degradation due to the state of health (SOH). Furthermore, the remaining battery level can be the ratio of the current battery charge capacity to the rated full charge capacity of the battery, that is, the state of charge (SOC), or the ratio of the current battery charge capacity to the full charge capacity while taking into account battery degradation due to the SOH.
[0045] The task information is information indicating requirements of multiple tasks to be performed in the facility 10. As an example, the task information may include information such as location, deadline, time period, project, procedure, target instrument, and target operating instrument for each of the multiple tasks.
[0046] The environmental information is information indicating 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 feasibility information indicates whether each of the plurality of robots 20 can execute each of the plurality of tasks. In this embodiment, the feasibility information can be manually created in advance, taking into account the specifications of the robots 20, the requirements of the tasks, the environment of the facility 10, and the like.
[0048] External information is information indicating interference that may affect the construction of the operation plan. As an example, external information may include maintenance schedules, weather, external temperature, disaster information, etc.
[0049] Figure 3 An example of the results of area assignment performed by the device 100 according to this embodiment is shown. In this figure, as an example, robot 20j is assigned to area A during time slot 1 (9:00 to 9:30). Also, in this figure, as an example, robots 20j and 20k are assigned to area B during time slot 2 (9:30 to 10:00). Furthermore, in this figure, as an example, no robot 20 is assigned to area C during time slot 3 (10:00 to 10:30).
[0050] As described above, the area assignment unit 120 can assign multiple robots 20 to multiple areas for each predetermined time slot. In this case, the area assignment unit 120 does not necessarily need to assign each of the multiple robots 20 to any of the multiple areas. For example, suppose robot 20k has a continuous operating time of two hours. In this case, if robot 20k begins operating at 9:00, its battery is expected to be depleted by 11:00. In this case, for example, the area assignment unit 120 can assign areas so that robot 20k is charged during time slot 4 (10:30 to 11:00) without being assigned to any area.
[0051] Furthermore, when allocating areas within a time slot, the area allocation unit 120 can determine the starting position s and ending position e for each of the multiple robots 20 within that time slot based on the results of area allocation in other time slots. As an example, in this figure, with robot 20k at the center, "Xsk1" represents the X coordinate of the starting position sk1 of robot 20k within time slot 1. Similarly, "Ysk1" represents the Y coordinate of the starting position sk1 of robot 20k within time slot 1. Furthermore, "Xek1" represents the X coordinate of the ending position ek1 of robot 20k within time slot 1. Similarly, "Yek1" represents the Y coordinate of the ending position ek1 of robot 20k within time slot 1.
[0052] The robot 20 k is assigned to area C in time slot 1, to area B in time slot 2, and to area A in time slot 3. That is, when the robot 20 k transitions from time slot 1 to time slot 2, inter-area movement occurs from area C to area B. Similarly, when the robot 20 k transitions from time slot 2 to time slot 3, inter-area movement occurs from area B to area A.
[0053] In this 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 adjacent. 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 adjacent.
[0054] Therefore, the area allocation unit 120 can determine the coordinates (Xek1, Yek1) of the end position ek1 and the coordinates (Xsk2, Ysk2) of the starting position sk2 so that the end position ek1 and the starting position sk2 are close to each other. Similarly, the area allocation unit 120 can determine the coordinates (Xek2, Yek2) of the end position ek2 and the coordinates (Xsk3, Ysk3) of the starting position sk3 so that the end position ek2 and the starting position sk3 are close to each other. In other words, the area allocation unit 120 can determine the coordinates of the end position e(n-1) in time slot (n-1) and the coordinates of the starting 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 starting position s(n) in time slot (n) is equal to or less than a predetermined threshold (preferably a minimum).
[0055] In the case where the start or end of a time slot does not have an immediately preceding or immediately succeeding time slot, the area allocation unit 120 may determine the coordinates of the starting position s and the coordinates of the end position e so that the distance to any position (e.g., a standby position (charging station, etc.) of the robot 20, etc.) is equal to or less than a predetermined threshold (preferably a minimum).
[0056] The area allocation unit 120 can perform this area 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 feasibility information). For example, the area allocation unit 120 can perform area allocation using integer programming. In this case, the area allocation unit 120 can perform area allocation to maximize an objective function. In this case, the area allocation unit 120 can set the objective function so that the value increases with the amount (number) of tasks to be completed. Alternatively, the area allocation unit 120 can set the objective function so that the value decreases with increasing inter-area travel distance. Note that the inter-area travel distance is determined in a subsequent inter-area path decision process and is not determined at this time. Therefore, the area allocation unit 120 can determine the inter-area travel distance based on a provisional distance that is predefined based on the area from which the movement occurs.
[0057] Figure 4 The figure shows an example of the results of task allocation performed by the device 100 according to this embodiment. As an example, this figure illustrates the allocation of tasks to area B within time slot 2. As described above, within time slot 2, robots 20j and 20k are assigned to area B. In this case, area B is the target area, and robots 20j and 20k are defined as target robots. In this case, the task allocation unit 130 allocates the in-area tasks b1 to bn belonging to area B, which is the target area, from among the multiple tasks to robots 20j and 20k, which are the target robots, from among the multiple robots 20.
[0058] In this figure, as an example, tasks b1, b2, b4, b5, and b6 are assigned to robot 20j, and tasks b3, b5, and b7 are assigned to robot 20k. 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 while opening and closing a valve. In this case, task assignment unit 130 may assign the valve opening and closing task in task b5 to robot 20k, which is equipped with an arm, and the pipe temperature measurement task in task b5 to robot 20j, which is equipped with a thermal camera. For example, task assignment unit 130 can assign a common task to multiple robots 20 in this manner.
[0059] The task assignment unit 130 can perform such task assignment using various existing algorithms based on the specifications of the multiple robots 20 and the requirements of the multiple tasks (e.g., based on the feasibility information). For example, similar to the area assignment unit 120, the task assignment unit 130 can perform task assignment using integer programming.
[0060] Figure 5 The figure shows an example of an intra-region path determined by the apparatus 100 according to this embodiment. As an example, the figure shows an intra-region path of region B in time slot 2.
[0061] In this figure, the white triangle represents the starting position sj2 of robot 20j in time slot 2. As described above, the coordinates of starting position sj2 are determined as (Xsj2, Ysj2). Also, in this figure, the white circle represents the ending position ej2 of robot 20j in time slot 2. As described above, the coordinates of ending position ej2 are determined as (Xej2, Yej2). Furthermore, as described above, tasks b1, b2, b4, b5, and b6 are assigned to robot 20j in time slot 2.
[0062] In this case, the intra-regional path decision unit 140 can determine the intra-regional path of the robot 20j within time slot 2 based on the starting 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 represents the intra-regional path of the robot 20j within time slot 2. In this figure, as an example, the robot 20j moves along the path of the starting position sj2, task b1, task b4, task b6, task b5, task b2, and end position ej2 within time slot 2.
[0063] The intra-regional path decision unit 140 can determine such an intra-regional path based on a predetermined rule. For example, the intra-regional path decision unit 140 can determine an intra-regional path based on a rule that sequentially passes through the locations of the nearest tasks, such that task b1, which is closest to the starting point sj2, goes from task b4, which is closest to task b1, to task b2, and finally to the end point ej2. However, the present invention is not limited thereto. The intra-regional path decision unit 140 can determine an intra-regional path based on other rules. For example, the intra-regional path decision unit 140 can determine an intra-regional path based on a rule that the total distance of the intra-regional paths is equal to or less than a predetermined threshold (preferably a minimum). For example, in this manner, the intra-regional path decision unit 140 can determine an intra-regional path based on the starting point s and the end point e within a time slot.
[0064] Similarly, in this figure, the black triangle represents the starting position sk2 of the robot 20k in time slot 2. As described above, the coordinates of the starting position sk2 are determined as (Xsk2, Ysk2). Also, in this figure, the black circle represents the ending position ek2 of the robot 20k in time slot 2. As described above, the coordinates of the ending position ek2 are determined as (Xek2, Yek2). Furthermore, as described above, tasks b3, b5, and b7 are assigned to the robot 20k in time slot 2.
[0065] In this case, the intra-regional path decision unit 140 can determine the intra-regional path of the robot 20k within time slot 2 based on the starting position sk2, the end position ek2, and the positions of each of tasks b3, b5, and b7. In this figure, the dotted arrow represents the intra-regional path of the robot 20k within time slot 2. In this figure, as an example, the robot 20k moves along the path of starting position sk2 → task b3 → task b7 → task b5 → end position ek2 within time slot 2.
[0066] As described above, task b5 is assigned to both robot 20j and robot 20k. In this case, the intra-regional path decision unit 140 can determine the intra-regional paths for each of robot 20j and robot 20k so that both robots 20j and 20k are simultaneously located at the location of task b5. For example, when a common task is assigned to multiple target robots, the intra-regional path decision unit 140 can determine the intra-regional paths for each of the multiple target robots so that the value of a cost function, which uses the waiting time for other target robots to reach the location of the common task, is minimized (preferably, minimized).
[0067] In this figure, crosses indicate the possibility of collision between multiple target robots. For example, the path of robot 20j moving from the location of task b2 to the end point ej2 and the path of robot 20k moving from the location of task b5 to the end point ek2 may intersect, and robots 20j and 20k may pass through the intersection at the same time. In this case, for example, the intra-regional path decision unit 140 may change the path of robot 20k moving from the location of task b5 to the end point ek2 to a path that does not intersect with the path of robot 20j moving from the location of task b2 to the end point ej2. Note that the above description illustrates the case where the intra-regional path decision unit 140 changes the path of any one of the robots 20 so that the paths of the multiple target robots do not intersect, but the present invention is not limited to this. As long as the times of passing through the intersection are different, there is no possibility of collision even if the paths of the multiple target robots intersect. Therefore, the intra-regional path decision unit 140 may make changes so that any one of the target robots is on standby so that the multiple target robots pass through the intersection at different times. For example, in this manner, the intra-region path decision unit 140 can determine an intra-region path for each of the multiple target robots to avoid collision with each other. Note that if the multiple target robots have different moving heights and there is no possibility of collision, the intra-region path decision unit 140 may not perform collision avoidance.
[0068] Figure 6The figure shows an example of an inter-area path determined by the apparatus 100 according to the present embodiment. As an example, the figure shows an inter-area path between area A and area B between time slot 1 and time slot 2.
[0069] In this figure, the white circle represents the end position ej1 of the robot 20j in time slot 1. As described above, the coordinates of the end position ej1 are determined as (Xej1, Yej1). Also, in this figure, the white triangle represents the start position sj2 of the robot 20j in time slot 2. As described above, the coordinates of the start position sj2 are determined as (Xsj2, Ysj2).
[0070] In this case, the inter-area path decision unit 150 can determine the inter-area path of the robot 20j between time slot 1 and time slot 2 based on the end position ej1 in time slot 1 and the starting position sj2 in time slot 2. In this figure, the solid arrow represents the inter-area path of the robot 20j between time slot 1 and time slot 2.
[0071] The inter-area path decision unit 150 can determine such an inter-area path based on predetermined rules. For example, the inter-area path decision unit 150 can identify obstacles that may hinder the movement of the robot 20j based on the robot's movement pattern, based on the specification information and environmental information. The inter-area path decision unit 150 can then determine an inter-area path that avoids the identified obstacles based on the rule that the distance from the end position ej1 to the starting position sj2 is equal to or less than a predetermined threshold (preferably a minimum). For example, in this way, the inter-area path for the robot 20j between time slot 1 and time slot 2 can be determined. However, the present invention is not limited to this. The inter-area path decision unit 150 can determine an inter-area path based on other rules. For example, the inter-area path decision unit 150 can determine an inter-area path based on the end position e in one time slot and the starting position s in the following time slot.
[0072] Similarly, in this figure, the black circle represents the end position ei1 of robot 20i in time slot 1. As described above, the coordinates of end position ei1 are determined as (Xei1, Yei1). Furthermore, in this figure, the black triangle represents the starting position si2 of robot 20i in time slot 2. As described above, the coordinates of starting position si2 are determined as (Xsi2, Ysi2).
[0073] In this case, the inter-area path decision unit 150 can determine the inter-area path of the robot 20i between time slot 1 and time slot 2 based on the end position ei1 in time slot 1 and the starting position si2 in time slot 2. In this figure, the dotted arrow represents the inter-area path of the robot 20i between time slot 1 and time slot 2.
[0074] In this figure, cross marks indicate the possibility of collisions between multiple robots 20 moving between the same areas. For example, 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 may intersect, with robots 20j and 20i passing through the intersection at the same time. In this case, the inter-area path decision unit 150 can change the path of robot 20i so that the multiple robots pass through the intersection at different times. Note that, similar to the intra-area path decision unit 140, collision avoidance in the inter-area path decision unit 150 can also be performed based on various rules. For example, in this manner, the inter-area path decision unit 150 can determine an inter-area path for each of the multiple robots 20 to avoid collisions with each other.
[0075] Figure 7 This diagram illustrates an example of a flowchart of a method executed by the apparatus 100 according to this embodiment. Each step in this method can be executed by a computer as the operating subject. However, it is sufficient for the computer as the entire operating subject to execute each step, and it is also possible that components other than the computer execute a portion as a non-essential component. This also applies to the other flowcharts.
[0076] In step S710, the device 100 stores various types of information. For example, the storage unit 110 may store various types of information used to construct an operation plan. Figure 2 As shown, the storage unit 110 can store inspection standard information, specification information, task information, environment information, execution feasibility information, and external information. Note that in this embodiment, the storage unit 110 can store information manually created in advance taking into account the specifications of the robot 20, the requirements of the task, the environment of the facility 10, etc. as the execution feasibility information.
[0077] In step S720, the device 100 performs area allocation. For example, the area allocation unit 120 may allocate the plurality of robots 20 to a plurality of areas obtained by dividing the facility 10 to be operated based on at least a portion of the various types of information (e.g., execution feasibility information) stored in step S710 and based on the specifications of the plurality of robots 20 and the requirements of the plurality of tasks to be performed in the facility 10. As an example, Figure 3As shown, the area assignment unit 120 may assign the robot 20 j to area A, the robot 20 i to area B, and the robot 20 k to area C in time slot 1. In addition, the area assignment unit 120 may assign the robot 20 i to area A in time slot 2, and assign the robots 20 j and 20 k to area B. In addition, the area assignment unit 120 may assign the robots 20 i and 20 k to area A, and assign the robot 20 j to area B in time slot 3.
[0078] At this time, the area assignment unit 120 not only determines which robot 20 is assigned to which area for each time slot as described above, but also determines the starting position s and ending position e for each of the multiple robots 20 in the area assignment within a time slot based on the results of area assignments in other time slots. The area assignment unit 120 supplies the results of area assignment to the task assignment unit 130, the intra-area path decision unit 140, the inter-area path decision unit 150, and the operation plan output unit 160.
[0079] In step S730, the apparatus 100 performs task allocation. For example, for a target area as each of the plurality of areas, the task allocation unit 130 may perform task allocation to allocate tasks within the area to a target robot, where the task within the area is at least one task belonging to the target area among the plurality of tasks, and the target robot is at least one robot assigned to the target area among the plurality of robots 20. As an example, Figure 4 As shown, the task assignment unit 130 may assign tasks b1, b2, b4, b5, b6, and b7 to the robot 20j in area B, and assign tasks b3, b5, and b7 to the robot 20k in area B within time slot 2.
[0080] The task assignment unit 130 can similarly perform task assignments for other time slots and other areas. Note that these task assignments for other areas are completely independent of each other, and the results of each assignment do not affect each other at all. Therefore, the task assignment unit 130 can process task assignments for multiple areas in parallel. The task assignment unit 130 supplies the task assignment results to the intra-area path decision unit 140 and the operation plan output unit 160.
[0081] In step S740, the apparatus 100 determines an intra-regional path. For example, the intra-regional path decision unit 140 may determine an intra-regional path for the target robot to move in the target region based on the result of the task assignment performed in step S730. As an example, for region B in time slot 2, the intra-regional path decision unit 140 may determine an intra-regional path for the robot 20j such that the robot 20j moves along the path defined by Figure 5Similarly, the intra-region path decision unit 140 can determine the intra-region path of the robot 20k so that the robot 20k moves along the path indicated by the solid arrow. Figure 5 The dotted arrows shown in FIG. At this point, as described above, the intra-regional path decision unit 140 can determine an intra-regional path based on the starting position s and the ending position e within a time slot. Furthermore, as described above, the intra-regional path decision unit 140 can determine an intra-regional path for each of the multiple target robots to avoid collision.
[0082] The intra-regional path decision unit 140 can similarly determine intra-regional paths for other time slots and other areas. Note that these decisions regarding intra-regional paths for other time slots and other areas are completely independent of each other, and the individual results do not affect each other at all. Therefore, the intra-regional path decision unit 140 can process intra-regional path decisions for multiple time slots and multiple areas in parallel. The intra-regional path decision unit 140 supplies the intra-regional paths to the operation plan output unit 160.
[0083] In step S750, the apparatus 100 determines an inter-area path. For example, the inter-area path decision unit 150 may determine an inter-area path for the plurality of robots 20 to move between the plurality of areas based on the area allocation performed in step S720. For example, between time slot 1 and time slot 2 and between area A and area B, the inter-area path decision unit 150 may determine an inter-area path for the robot 20j such that the robot 20j moves along the path defined by Figure 6 Similarly, the inter-area path decision unit 150 can determine the inter-area path of the robot 20i so that the robot 20i moves along the path indicated by the solid arrow shown in FIG. Figure 6 The dotted arrows shown in FIG. Here, as described above, the inter-area path decision unit 150 can determine an inter-area path based on the end position e in one time slot and the start position s in the next time slot. Furthermore, as described above, the inter-area path decision unit 150 can determine an inter-area path for each of the multiple robots 20 to avoid collision.
[0084] The inter-area path decision unit 150 can similarly determine inter-area paths between other time slots and other areas. Note that these decisions regarding inter-area paths between other time slots and other areas are completely independent of each other, and the individual results do not affect each other at all. Therefore, the inter-area path decision unit 150 can process decisions regarding inter-area paths between multiple time slots and multiple areas in parallel. The inter-area path decision unit 150 supplies the inter-area paths to the operation plan output unit 160.
[0085] In step S760, the apparatus 100 outputs the operation plan. For example, the operation plan output unit 160 may output at least one of the result of the area allocation performed in step S720, the result of the task allocation performed in step S730, the intra-area path determined in step S740, or the inter-area path determined in step S750 as the operation plan. As an example, the operation plan output unit 160 may output all of the area allocations, task allocations, intra-area paths, and inter-area paths as the operation plan.
[0086] For example, the device 100 ends the process in this way. Note that in the above description, the case where the device 100 performs step S750 after steps S730 and S740 has been described as an example. However, the present invention is not limited to this. The decision on the inter-area path in step S750, the result of the task allocation in step S730, and the decision on the intra-area path in step S740 are completely independent of each other, and the respective results do not affect each other at all. Therefore, the device 100 can perform step S750 before steps S730 and S740, or can perform step S750 in parallel with steps S730 and S740.
[0087] As described above, a method executed by a computer is also provided, which includes: based on the specifications of the multiple robots 20 and the requirements of the multiple tasks to be performed in the facility 10, performing area allocation to allocate the multiple robots 20 to multiple areas, the multiple areas being obtained by dividing the facility 10 to be operated; and for the target area as each of the multiple areas, performing task allocation to allocate tasks within the area to the target robot, the task within the area being at least one task among the multiple tasks belonging to the target area, and the target robot being at least one robot among the multiple robots 20 assigned to the target area.
[0088] Conventionally, it is known to construct an optimization problem based on various factors, planning strategies, and the like, and solve this optimization problem to obtain a desired operation plan. However, solving the problem of operation planning for a multi-robot system is considered a task known as NP-hard, requiring extremely high computational costs and making it impractical to implement in practice. Furthermore, computational costs also depend on the scale of the facility 10 and the number of robots to be introduced. For example, when a large number of robots are introduced into a large-scale facility 10 such as a factory, it is expected that simply implementing methods for reducing the computational load and obtaining approximate solutions will not be sufficient to achieve an operational state.
[0089] On the other hand, the apparatus 100 according to this embodiment divides the processing into area allocation, task allocation, intra-area path decision making, and inter-area path decision making. Therefore, the apparatus 100 according to this embodiment can solve the problem of operation planning involving multiple robots 20 and construct a feasible operation plan.
[0090] In particular, as described above, the task allocations for different areas are independent of each other. Therefore, the device 100 according to the present embodiment can process the task allocations for multiple areas in parallel. Similarly, the decisions on intra-area paths for different time slots and different areas are independent of each other. Therefore, the device 100 according to the present embodiment can process the task allocations for multiple time slots and multiple areas in parallel. Similarly, the decisions on inter-area paths between different time slots and between different areas are independent of each other. Therefore, the device 100 according to the present embodiment can process the decisions on inter-area paths between multiple time slots and between multiple areas in parallel. Therefore, according to the device 100 of the present embodiment, the problem of operation planning can be solved at high speed, and a feasible operation plan can be constructed within the actual computing time, regardless of the scale of the facility 10 and the number of robots 20.
[0091] Furthermore, during the area allocation process within a time slot, the apparatus 100 according to this embodiment can determine the starting and ending positions for each of the plurality of robots 20 within that time slot based on the results of area allocation in other time slots. Therefore, according to the apparatus 100 according to this embodiment, since the starting and ending positions s and e are determined by the area allocation process, the task allocation process, the intra-area path decision process, and the inter-area path decision process can be made independent of each other, thereby providing flexibility in the execution of subsequent processes.
[0092] The apparatus 100 according to this embodiment can also determine an intra-regional path based on the start position s and the end position e within a time slot. Therefore, the apparatus 100 according to this embodiment can ensure consistency in the operation plan because it follows the results of the regional allocation when determining the intra-regional path.
[0093] Furthermore, the apparatus 100 according to this embodiment can also determine an inter-area path based on the end position e in one time slot and the start position s in the following time slot. Therefore, the apparatus 100 according to this embodiment can ensure consistency in the operation plan because it follows the results of the area allocation when determining the inter-area path.
[0094] In addition, the apparatus 100 according to this embodiment can also determine at least one of an intra-area path or an inter-area path to avoid collisions between the robots 20. Therefore, according to the apparatus 100 of this embodiment, even when it is necessary to assign paths to each of the plurality of robots 20, interference between the robots 20 can be avoided, and operations can be prevented from failing to proceed as planned due to the interference.
[0095] Furthermore, the apparatus 100 according to this embodiment can also output at least one of area allocation, task allocation, intra-area routing, or inter-area routing as an operation plan. Therefore, the apparatus 100 according to this embodiment allows the user or other system to know part or all of the plan for operating the facility 10 using the multi-robot system, thereby reducing the burden on the user or other system.
[0096] Figure 8 An example of a block diagram of an apparatus 100 according to a first variant of the present embodiment together with an installation 10 to be operated is shown. Figure 1 Components having the same functions and configurations are given the same reference numerals, and only the differences are described below. In the above embodiment, the case where the apparatus 100 stores the execution feasibility information manually created in advance has been described as an example, but in this variation, the apparatus 100 itself determines the execution feasibility. In addition to the functional units included in the apparatus 100 according to the above embodiment, the apparatus 100 according to this variation further includes a feasibility determination unit 810.
[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 from the plurality of robots 20 and task information indicating the requirements of one or more tasks. Specifically, the feasibility determination unit 810 may access the storage unit 110 and determine whether each of the plurality of robots 20 can perform each of the plurality of tasks based on the specification information indicating the specifications of each of the plurality of robots 20 and the task information indicating the requirements of the plurality of tasks. For example, for a task involving sound collection, the feasibility determination unit 810 may determine that robots 20i and 20k equipped with microphones can perform the task, while determining that robot 20j without a microphone cannot perform the task. Similarly, for a task involving video capture, the feasibility determination unit 810 may determine that robots 20i and 20j equipped with cameras can perform the task, while determining that robot 20k without a camera cannot perform the task. Similarly, for a task having a valve operation item, it can be determined that the robot 20k equipped with an arm can perform the task, while it can be determined that the robot 20i and the robot 20j not equipped with an arm cannot perform the task.
[0098] Furthermore, feasibility determination unit 810 can determine feasibility of execution based on environmental information representing the environment of each area of facility 10 to which each of the multiple tasks belongs. For example, for a task located in an area where the radiation dose is equal to or greater than a threshold, robot 20k with explosion resistance can be determined to be capable of executing the task, while robots 20i and 20j without explosion resistance can be determined to be incapable of executing the task. Similarly, for a task located on a step exceeding 30 cm, robot 20j, whose movement mode is flying, and robot 20k, which can climb steps less than 50 cm, can be determined to be capable of executing the task, while robot 20i, which can only climb steps less than 20 cm, can be determined to be incapable of executing the task.
[0099] For each of the multiple tasks, the feasibility determination unit 810 can determine the feasibility of execution from multiple perspectives. When determining the feasibility of execution based on each perspective, the feasibility determination unit 810 only needs to obtain the logical product of the execution-permitted determination results. For example, for a task that includes sound collection and falls within an area with a radiation dose equal to or greater than a threshold, the feasibility determination unit 810 may determine that robot 20k, which is equipped with a microphone and explosion-proof, can execute the task, while the feasibility determination unit 810 may determine that robot 20i, which is equipped with a microphone but lacks explosion-proofness, cannot execute the task.
[0100] For example, the feasibility determination unit 810 may supply the determination result of determining the execution feasibility in this manner to the storage unit 110. The storage unit 110 may store the determination result supplied from the feasibility determination unit 810 as execution feasibility information. Then, the region allocation unit 120 may perform region allocation based on the execution feasibility determined by the feasibility determination unit 810.
[0101] As described above, the apparatus 100 according to this variation determines whether each of the plurality of robots 20 is capable of executing each of the plurality of tasks based on the specification information and the task information. Therefore, according to the apparatus 100 of this variation, it is possible to avoid manually creating execution feasibility information, thereby reducing the manpower required to determine execution feasibility, and to construct an operation plan based on objective execution feasibility information without relying on deviations from the determination standard or determination errors.
[0102] Furthermore, the apparatus 100 according to this variation can further determine feasibility based on environmental information of each area to which each of the multiple tasks belongs. Therefore, the apparatus 100 according to this variation determines feasibility based not only on the specifications of the robot 20 and the requirements of the task, but also on the environment of each area in which the task resides. Therefore, feasibility can be determined based on the actual usage environment.
[0103] Figure 9 An example of a block diagram of an apparatus 100 according to a second variant of the present embodiment together with an installation 10 to be operated is shown. Figure 1 Components of the same function and structure are given the same figure marks, and only the differences are described below. In the above-mentioned embodiment, the structure until the device 100 outputs the operation plan has been described as an example, but in this modification, the device 100 also obtains an indicator obtained by evaluating the output operation plan and outputs the indicator. In addition to the functional units included in the device 100 according to the above-mentioned embodiment, the device 100 according to this modification further includes an indicator acquisition unit 910 and an indicator output unit 920. In addition, in the device 100 according to this modification, the operation plan output unit 160 outputs the operation plan to at least the indicator acquisition unit 910.
[0104] The indicator acquisition unit 910 acquires an indicator obtained by evaluating the operation plan based on predetermined criteria. For example, the indicator acquisition unit 910 may acquire an indicator obtained by evaluating the operation plan based on the operating cost of the robot 20, the operation rate of the robot 20, the total operation time, and the like. Note that the indicator acquisition unit 910 may acquire an indicator evaluated by itself using an evaluation formula or evaluation model, an indicator evaluated by another system, or an indicator evaluated manually. The indicator acquisition unit 910 supplies the acquired indicator to the indicator output unit 920.
[0105] The indicator output unit 920 outputs the indicators obtained by evaluating 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 out the indicators. Alternatively or additionally, the indicator output unit 920 may be a speaker, and may output the indicators by voice.
[0106] As described above, the apparatus 100 according to this variation acquires and outputs the index obtained by evaluating the operation plan. Therefore, the apparatus 100 according to this variation can notify the user or other systems not only of the constructed operation plan but also of the evaluation level of the operation plan.
[0107] Furthermore, the apparatus 100 according to this variation can construct multiple operation plans and acquire and output indicators for each of the multiple operation plans. Therefore, the apparatus 100 according to this variation can determine the appropriate arrangement of multiple robots 20 by repeatedly resolving the operation plan issues while adjusting the arrangement of the robots 20. This allows the apparatus to be used as a consulting support tool for robot introduction.
[0108] Figure 10 An example of a block diagram of an apparatus 100 according to a third variant of the present embodiment together with a facility 10 to be operated is shown. Figure 9 Components having the same functions and configurations are given the same reference numerals, and only the differences are described below. In the above-described modification, the configuration in which the device 100 outputs an index has been described as an example, but in this modification, the device 100 also changes at least one of the combination of the robots 20 or the division of the facility 10 into a plurality of areas based on the output index.
[0109] In other words, the description thus far has described a case where the apparatus 100 constructs an operation plan based on a fixed combination of robots 20 (in the above description, it has been decided that three robots 20, namely, robot 20i, robot 20j, and robot 20k, will be introduced into the facility 10), and 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 variation, the apparatus 100 changes at least one of these conditions based on the output index. In addition to the functional units included in the apparatus 100 according to the above variation, the apparatus 100 according to this variation further includes a robot changing unit 1010 and an area changing unit 1020. Furthermore, in the apparatus 100 according to this variation, the index output unit 920 supplies the index to the robot changing unit 1010 and the area changing unit 1020.
[0110] The robot changing unit 1010 changes at least one of the number or specifications of the plurality of robots 20 based on an index obtained by evaluating the operation plan according to a predetermined standard. At this time, for example, the robot changing 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 without changing the number, or may change both the number and the specifications. As an example, when the total operation time is long and the index does not satisfy the predetermined standard, the robot changing unit 1010 may increase the number of robots 20 to be introduced into the facility 10. At this time, for example, the robot changing unit 1010 may add a robot having the same specifications as an existing robot already included in the plurality of robots 20 (for example, a robot 20i (2) having the same specifications as the robot 20i), or may add a new robot having specifications different from those of the existing robots (for example, a robot 20l). In addition, when the operation rate of one robot 20 is extremely high and the index does not satisfy the predetermined standard, the robot changing unit 1010 may change the specifications of the robot to be introduced into the facility 10. At this time, for example, the robot changing unit 1010 can change at least one of the existing robots included in the plurality of robots 20 into a robot having the same specifications as another existing robot (for example, changing the robot 20i into the robot 20j (2) having the same specifications as the robot 20j), or can change at least one into a new robot having specifications different from those of the existing robots (for example, changing the robot 20i into the robot 20l).
[0111] When at least one of the number or specifications of the plurality of robots 20 changes, the robot changing unit 1010 notifies the storage unit 110 of the change. In response, the storage unit 110 updates the stored information about the robots 20 (e.g., specifications) with the new information about the plurality of robots 20. The area allocation unit 120 then reassigns the plurality of new robots 20, whose number or specifications have changed, to the plurality of areas. In response, the task allocation unit 130 reassigns tasks, the intra-area path decision unit 140 redetermines intra-area paths, and the inter-area path decision unit 150 redetermines inter-area paths. For example, the device 100 reconstructs the operation plan in this manner, 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 boundaries of the multiple areas based on an indicator obtained by evaluating the operation plan according to predetermined criteria. In this case, for example, the area change unit 1020 may change only the number of areas, only the boundaries without changing the number of areas, or both the number of areas and the boundaries. For example, when the total operation time is long and the indicator does not meet the predetermined criteria, the area change unit 1020 may increase the number of areas. In this case, for example, the area change unit 1020 may change multiple areas to re-divide the facility 10, which has been divided into three areas, into four areas. Furthermore, when the operation rate of a single robot 20 is extremely high and the indicator does not meet the predetermined criteria, the area change unit 1020 may change the boundaries used to divide the facility 10 into multiple areas. In this case, for example, the area change unit 1020 may change all boundaries to re-divide the facility 10 into three areas: Area D, Area E, and Area F, or may change some boundaries to re-divide the facility 10 into three areas: Area A, Area D, and Area E.
[0113] When at least one of the number of regions or boundaries of a plurality of regions changes, the region change unit 1020 notifies the storage unit 110 of the change. Note that such notification may include information indicating the location of the boundary. In response, the storage unit 110 reorganizes the stored task information for each of the plurality of new regions and updates the tasks within the region. The region allocation unit 120 then reallocates the plurality of robots 20 to the plurality of new regions in which at least one of the number of regions or boundaries has changed. In response, the task allocation unit 130 re-executes task allocation, the intra-region path decision unit 140 re-determines the intra-region path, and the inter-region path decision unit 150 re-determines the inter-region path. For example, the device 100 reconstructs the operation plan in this manner, and the operation plan output unit 160 outputs the reconstructed operation plan based on the plurality of new regions.
[0114] Figure 11 An example of a flowchart of a method for repeatedly constructing an operation plan executed by the apparatus 100 according to the third modification of the present embodiment is shown.
[0115] In step S1110, the device 100 sets the number and specifications of the plurality of robots 20 to default values. As an example, the device 100 may set the plurality of robots 20 to three robots 20: robot 20i, robot 20j, and robot 20k. In response, the storage unit 110 may store information indicating the specifications of each of the robots 20i, 20j, and 20k as specification information.
[0116] In step S1120, the device 100 sets the number of areas and boundaries of the plurality of areas to default values. As an example, the device 100 may set the plurality of areas so that the facility 10 is divided into three areas: Area A, Area B, and Area C. In response, the storage unit 110 organizes the stored task information for each of Area A, Area B, and Area C, and stores the organized task 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 execution feasibility information. At this time, the storage unit 110 may update the execution feasibility information to be stored to manually created information, or may update the execution feasibility information based on the determination result obtained by the re-determination of the feasibility determination unit 810.
[0118] In step S1130, the device 100 constructs an operation plan. The construction of the operation plan is as described above.
[0119] In step S1140, the apparatus 100 obtains an indicator. The acquisition of the indicator is also as described above.
[0120] In step S1150, the apparatus 100 determines whether an end condition is satisfied. For example, the apparatus 100 determines whether the indicator acquired in step S1140 satisfies a predetermined standard. If it is determined that the indicator does not satisfy the predetermined standard (No), the apparatus 100 advances the process to step S1160.
[0121] In step S1160, the device 100 changes at least one of the number or specifications of the plurality of robots 20, and / or changes at least one of the number or boundaries of the plurality of zones. At this point, as described above, the robot changing 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 without changing the number, or may change both the number and specifications. Furthermore, at this point, as described above, the zone changing unit 1020 may change only the number of zones, may change the boundaries without changing the number of zones, or may change both the number of zones and the boundaries.
[0122] Then, the device 100 returns the process to step S1130 and continues the flow. That is, the device 100 updates the various types of information stored in the storage unit 110 and reconstructs the operation plan based on the new information.
[0123] When it is determined in step S1150 that the index satisfies the predetermined criterion (YES), the device 100 advances the process to step S1170 .
[0124] In step S1170, the device 100 outputs the operation plan. For example, the operation plan output unit 160 outputs the operation plan for which the indicator determined in step S1150 satisfies the predetermined standard.
[0125] Note that in the above description, the case where the device 100 determines whether the end condition is satisfied based on whether the indicator satisfies a predetermined criterion in step S1150 has been described as an example, but the present invention is not limited thereto.
[0126] In step S1150, the apparatus 100 may determine whether the termination condition has been 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 has been met based on whether the time elapsed since the start of the process has reached a predetermined time. In this case, the apparatus 100 may repeatedly construct the operation plan and obtain the indicators, regardless of whether the indicators meet the criteria, while reconfiguring the robots 20 or repartitioning the facilities 10 according to predetermined rules or randomly. The apparatus 100 then selects the operation plan with the optimal indicators from the multiple operation plans constructed until the termination condition is met, and outputs the selected operation plan.
[0127] As described above, the apparatus 100 according to this variation changes at least one of the number or specifications of the plurality of robots 20 based on the indicator obtained by evaluating the operation plan, restructures the operation plan, and outputs the restructured operation plan. Thus, the apparatus 100 according to this variation can determine the appropriate number or specifications of the plurality of robots 20 by repeatedly resolving the operation plan while adjusting the number or specifications of the robots 20.
[0128] Furthermore, the apparatus 100 according to this variation changes at least one of the number of zones or boundaries of the multiple zones based on an indicator obtained by evaluating the operation plan, restructures the operation plan, and outputs the restructured operation plan. Thus, the apparatus 100 according to this variation can determine the appropriate number of zones or boundaries for the multiple zones by repeatedly resolving the operation plan while adjusting the number of zones or boundaries. As described above, the apparatus 100 according to this variation can determine the number or specifications of robots 20 and how to appropriately set the number of zones or boundaries. Therefore, the apparatus 100 according to this variation can reduce the time required for setup and clearly determine whether the setup is appropriate.
[0129] Figure 12 An example of a block diagram of an apparatus 100 according to a fourth variant of the present embodiment together with a facility 10 to be operated is shown. Figure 1Components with the same functions and configurations are given the same reference numerals, and only the differences are described below. In the above embodiment, the configuration in which the device 100 outputs an operation plan has been described as an example. However, in this modification, the device 100 also controls multiple robots 20 based on the output operation plan. In addition to the functional units included in the device 100 according to the above embodiment, the device 100 according to this modification further includes a control unit 1210. Furthermore, in the device 100 according to this modification, 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 according to the operation plan. As described above, the operation plan output from the operation plan output unit 160 may include at least one of area allocation, task allocation, intra-area path, or inter-area path. Therefore, the control unit 1210 can control the multiple robots 20 so that the target robot is placed in the target area according to the area allocation. In addition, the control unit 1210 can control the multiple robots 20 so that the target robot performs the task in the area according to the task allocation. In addition, the control unit 1210 can control the multiple robots 20 so that the target robot moves within the area according to the intra-area path. In addition, the control unit 1210 can control the multiple robots 20 so that the multiple robots 20 move between areas according to the inter-area path.
[0131] In addition to including directly controlling the robot 20 , the term “controlling” as used herein may also include indirectly controlling the robot 20 by controlling a controller that controls the robot 20 .
[0132] As described above, the device 100 according to this modification controls the plurality of robots 20 according to the operation plan. Therefore, the device 100 according to this modification is not only used to construct the operation plan but also used as a control device, and thus the constructed 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, the blocks of which may represent (1) stages in a process of performing an operation or (2) portions of an apparatus responsible for performing an operation. Certain stages and portions may be implemented by dedicated circuits, programmable circuits fed with computer-readable instructions stored on a computer-readable medium, and / or processors fed with computer-readable instructions stored on a computer-readable medium. Dedicated circuits may include digital and / or analog hardware circuits and may include integrated circuits (ICs) and / or discrete circuits. Programmable circuits may include: reconfigurable hardware circuits including logical AND, logical OR, logical XOR, logical NAND, logical NOR, and other logical operations; memory elements such as flip-flops, registers, field programmable gate arrays (FPGAs), and programmable logic arrays (PLAs); and the like.
[0134] A computer-readable medium may include any tangible device capable of storing instructions for execution by an appropriate device. Consequently, a computer-readable medium having instructions stored thereon includes an article of manufacture containing executable instructions for creating a means for performing the operations specified in the flowchart or block diagram. Examples of computer-readable media may include electronic storage media, magnetic storage media, optical storage media, electromagnetic storage media, semiconductor storage media, and the like. More specific examples of computer-readable media may include floppy disks, magnetic disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), electrically erasable programmable read-only memory (EEPROM), static random access memory (SRAM), compact disc read-only memory (CD-ROM), digital versatile discs (DVD), Blu-ray discs (registered trademark), memory sticks, integrated circuit cards, and the like.
[0135] Computer readable instructions may include: assembly instructions; instruction set architecture (ISA) instructions; machine instructions; machine-dependent instructions; microcode; firmware instructions; state setting data; or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk (registered trademark), JAVA (registered trademark), C++, and conventional procedural programming languages such as the "C" programming language or similar programming languages.
[0136] Computer-readable instructions can be provided locally or via a local area network (LAN), a wide area network (WAN) (such as the Internet), etc. to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device, or to a programmable circuit to execute the computer-readable instructions, thereby creating a means for performing the operations specified in the flowchart or block diagram. Examples of processors include computer processors, processing units, microprocessors, digital signal processors, controllers, microcontrollers, etc.
[0137] Figure 13 An example of a computer 9900 that can embody all or part of various aspects of the present invention is shown. A program installed in the computer 9900 can cause the computer 9900 to function as a device or one or more portions of a device according to an embodiment of the present invention, or to perform operations associated with a device or one or more portions of a device according to an embodiment of the present invention, and / or can cause the computer 9900 to perform a process or steps thereof according to an embodiment of the present invention. Such a program can be executed by the CPU 9912 to cause the computer 9900 to perform certain operations associated with some or all of the blocks in the flowcharts and block diagrams described herein.
[0138] The computer 9900 according to the present embodiment includes a CPU 9912, a RAM 9914, a graphics controller 9916, and a display device 9918, which are connected to each other via 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 conventional 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 the programs stored in the ROM 9930 and the RAM 9914, thereby controlling each unit. The graphics controller 9916 acquires image data generated by the CPU 9912 on a frame buffer or the like provided in the RAM 9914 or itself, and causes the display device 9918 to display the image data.
[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 through 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 a boot program or the like executed by the computer 9900 at the time of activation and / or programs according to the hardware of the computer 9900. The input / output chip 9940 can 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, and the like.
[0142] The program is provided on a computer-readable medium such as a DVD-ROM 9901 or an IC card. The program is 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 into the computer 9900, resulting in cooperation between the programs and the various types of hardware resources described above. A device or method can be constructed by implementing information manipulation or processing based on the use of the computer 9900.
[0143] For example, when communication is performed between the computer 9900 and an external device, the CPU 9912 can execute a communication program loaded on the RAM 9914 to instruct the communication process based on the process described in the communication program to the communication interface 9922. Under the control of the CPU 9912, the communication interface 9922 reads transmission data stored on a transmission buffer provided in a recording medium such as the RAM 9914, the hard disk drive 9924, the DVD-ROM 9901, or an IC card, and transmits the read transmission data to the network, or writes reception data received from the network to a reception buffer provided on the recording medium, etc.
[0144] Furthermore, the CPU 9912 can read all or a necessary part of a file or database stored in an external recording medium such as the hard disk drive 9924, the DVD drive 9926 (DVD-ROM 9901), an IC card, etc., into the RAM 9914, and perform various types of processing on the data on the RAM 9914. The CPU 9912 then writes the processed data back to the external recording medium.
[0145] Various types of information, such as various types of programs, data, tables, and databases, can be stored in the recording medium and information processing can be performed. The CPU 9912 can perform various types of processing on the data read from the RAM 9914 and write the results back to the RAM 9914. The various types of processing include various types of operations, information processing, conditional judgments, conditional branches, unconditional branches, information search / replacement, etc., as described throughout this disclosure and specified by the instruction sequence of the program. In addition, the CPU 9912 can search for information in files, databases, etc. in the recording medium. For example, when a plurality of entries each having an attribute value of a first attribute associated with an attribute value of a second attribute are stored in the recording medium, the CPU 9912 can search for an entry that matches the condition specifying the attribute value of the first attribute from the plurality of entries, and read the attribute value of the second attribute stored in the entry, thereby obtaining the attribute value of the second characteristic associated with the first attribute that meets the predetermined condition.
[0146] The above-described program or software module can be stored in a computer-readable medium on or near the computer 9900. In addition, 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 be used as a computer-readable medium to provide the program to the computer 9900 via the network.
[0147] Although the present invention has been described by way of embodiments, the technical scope of the present invention is not limited to the above-described embodiments. It will be apparent to those skilled in the art that various modifications or improvements may be made to the above-described embodiments. It will also be apparent from the claims that embodiments incorporating such modifications or improvements are within the technical scope of the present invention.
[0148] As long as the order is not indicated by "prior to," "before," etc., and as long as the output from the previous process is not used in the subsequent process, the operations, procedures, steps, and stages of the processes performed by the apparatus, system, program, and method shown in the claims, embodiments, or drawings may be performed in any order. Even if phrases such as "first" or "next" are used to describe the flow of operations within the scope of the claims, description, or drawings, it does not necessarily mean that the processes must be performed in this order. Reference Signs List
[0149] 10: Facilities; 20: Robot; 100: device; 110: storage unit; 120: Regional allocation unit; 130: Task allocation unit; 140: intra-regional path decision unit; 150: Inter-regional path decision unit; 160: Operation plan output unit; 810: Feasibility determination unit; 910: indicator acquisition unit; 920: indicator output unit; 1010: robot changing unit; 1020: Area change unit; 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: Input / output chip; and 9942: Keyboard.
Claims
1. A device comprising: an area allocation unit that performs area allocation for allocating the plurality of robots to a plurality of areas obtained by dividing the facility to be operated, based on specifications of the plurality of robots and requirements of a plurality of tasks to be performed in the facility; and A task allocation unit, which performs task allocation to allocate tasks within the target area as each of the multiple areas to a target robot, wherein the task within the area is at least one task among the multiple tasks belonging to the target area, and the target robot is at least one robot among the multiple robots allocated to the target area.
2. The apparatus according to claim 1, further comprising: An intra-region path decision unit is configured to determine an intra-region path for the target robot to move in the target region based on a result of the task allocation.
3. The apparatus according to claim 2, further comprising: An inter-area path decision unit determines, based on the result of the area allocation, an inter-area path for the plurality of robots to move between the respective areas of the plurality of areas.
4. The apparatus according to claim 3, wherein, in the area allocation within one time slot, the area allocation unit determines a start position and an end position within the one time slot for each of the plurality of robots based on results of the area allocation in other time slots. 5 . The apparatus according to claim 4 , wherein the intra-area path decision unit determines the intra-area path according to the starting position and the ending position within the one time slot. 6 . The apparatus according to claim 5 , wherein the inter-area path decision unit determines the inter-area path according to the end point position in the one time slot and the start point position in a subsequent time slot.
7. The device according to any one of claims 1 to 6, further comprising: a feasibility determination unit that determines execution feasibility indicating whether the one or more robots can execute the one or more tasks based on specification information indicating specifications of the one or more robots among the plurality of robots and task information indicating requirements of the one or more tasks among the plurality of tasks, wherein The area allocation unit performs the area allocation based on the execution feasibility.
8. An apparatus according to claim 7, wherein the feasibility determination unit determines the execution feasibility indicating whether each of the multiple robots is capable of performing each of the multiple tasks based on specification information indicating the specifications of each of the multiple robots and task information indicating the requirements of the multiple tasks. 9 . The apparatus according to claim 8 , wherein the feasibility determination unit determines the execution feasibility further based on environment information indicating an environment of the facility for each area to which each of the plurality of tasks belongs.
10. The apparatus according to any one of claims 3 to 6, further comprising: An operation plan output unit outputs at least one of the result of the area allocation, the result of the task allocation, the intra-area path, or the inter-area path as an operation plan.
11. The apparatus according to claim 10, further comprising: An index output unit outputs an index obtained by evaluating the operation plan according to predetermined criteria.
12. The apparatus according to claim 10, further comprising: a robot changing unit that changes at least one of the number or specifications of the plurality of robots based on an index obtained by evaluating the operation plan according to a predetermined standard, wherein The area allocation unit reallocates a plurality of new robots of which at least one of the number or the specifications has been changed to the plurality of areas.
13. The apparatus according to claim 10, further comprising: an area changing unit that changes at least one of the number of areas or boundaries of the plurality of areas based on an indicator obtained by evaluating the operation plan according to a predetermined standard, wherein The area assignment unit reallocates the plurality of robots to a plurality of new areas in which at least one of the number of areas or the boundaries has changed.
14. The apparatus according to claim 10, further comprising: A control unit controls the plurality of robots according to the operation plan.
15. A computer-implemented method, the method comprising: performing area allocation of the plurality of robots to a plurality of areas obtained by dividing the facility to be operated based on specifications of the plurality of robots and requirements of a plurality of tasks to be performed in the facility; and For a target area as each of the multiple areas, task allocation is performed to allocate tasks within the area to a target robot, wherein the task within the area is at least one task among the multiple tasks belonging to the target area, and the target robot is at least one robot among the multiple robots allocated to the target area.
16. A program which, when executed by a computer, causes the computer to function as: an area allocation unit that performs area allocation for allocating the plurality of robots to a plurality of areas obtained by dividing the facility to be operated, based on specifications of the plurality of robots and requirements of a plurality of tasks to be performed in the facility; and A task allocation unit, which performs task allocation to allocate tasks within the target area as each of the multiple areas to a target robot, wherein the task within the area is at least one task among the multiple tasks belonging to the target area, and the target robot is at least one robot among the multiple robots allocated to the target area.
Citation Information
Patent Citations
System and method for optimizing scheduling of non-preemptive task in multi-robotic environment
JP2020149675A