Storage medium, control apparatus, and control method

A non-transitory computer-readable storage medium storing a program that causes a computer to execute a process, the process includes acquiring information in a log regarding an operating state of a plurality of robots; based on the acquired information in the log, calculating a first load in each time slot related to control of the plurality of robots; when there is a first time slot in which the first load is higher than or equal to a first threshold, extracting a robot that performs a first task, from the plurality of robots, in the first time slot; and changing a time slot for operating the extracted robot.

CROSS-REFERENCE TO RELATED APPLICATION

This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2019-179659, filed on Sep. 30, 2019, the entire contents of which are incorporated herein by reference.

FIELD

The embodiment discussed herein is related to a storage medium, a control apparatus, and a control method.

BACKGROUND

The upper limit to the number of robots that may be registered in each robotic process automation (RPA) server is about 100 to 1000 and depends on the specifications of the server machine. Therefore, many (for example, 1000 or more) of the same robots are not able to be monitored by the same server.

For example, after creating about 100 robots prior to construction of an RPA server and manually operating the robots for a certain time period (for example, about half a year), adding 100 robots may pose an operational obstacle to the management of robots. Examples of the related art are disclosed in Japanese Laid-open Patent Publication No. 7-160615 and Japanese Laid-open Patent Publication No. 10-105497.

SUMMARY

According to an aspect of the embodiments, a non-transitory computer-readable storage medium storing a program that causes a computer to execute a process, the process includes acquiring information in a log regarding an operating state of a plurality of robots; based on the acquired information in the log, calculating a first load in each time slot related to control of the plurality of robots; when there is a first time slot in which the first load is higher than or equal to a first threshold, extracting a robot that performs a first task, from the plurality of robots, in the first time slot; and changing a time slot for operating the extracted robot.

DESCRIPTION OF EMBODIMENTS

It is conceivable that management is performed by a plurality of servers. However, as the number of servers increases, the management of the registration state and operating state (for example, whether or not operations are being performed, an error state, and monitoring of execution logs) of robots performed by the system administrator becomes complicated.

In view of the above, it is desirable that the load related to a server that performs a control process of the plurality of robots be temporally distributed.

Hereinafter, an embodiment is described with reference to the accompanying drawings. The following embodiment is merely exemplary and is in no way intended to exclude various modifications and technical applications that are not explicitly described in the embodiment. For example, the present embodiment may be carried out in various modified forms without departing from the spirit and scope of the present embodiment.

Each drawing is not intended to include only components illustrated in the drawing but may include other functions and the like.

The same reference characters denote substantially the same components in the drawings, and the description thereof is omitted.

[A] Example of Embodiment

[A-1] Example of System Configuration

FIG.1schematically illustrates an example of a configuration of an exemplary control system100according to an embodiment.

As illustrated inFIG.1, the control system100includes a server1, a plurality of (three in the illustrated example) user machines2, and a plurality of (two in the illustrated example) virtual machines (VM)3.

The server1is, for example, an RPA server and a computer (for example, a control apparatus) having server functionality. The server1is communicably coupled to the user machines2and the VMs3.

The user machine2is a device provided to a user, and a manual execution robot21is deployed to the user machine2.

An automatic execution robot31is deployed to the VM3.

The manual execution robot21and the automatic execution robot31may hereafter be collectively referred to as a robot21,31.

The outline of a load balancing process in the control system100will be described below.

As denoted by reference character A1, the server1collects logs4from the user machines2and the VMs3.

As denoted by reference character A2, the server1calculates the operating state of the robots21,31. For example, the server1calculates the operating state of the manual execution robots21and the automatic execution robots31, and summarizes the execution schedules of the automatic execution robots31and the scheduled execution time points of the manual execution robots21for notifying the users.

In calculating the operating state in the server1, the execution schedules (for example, in scheduling such as “execution at XX:YY daily, weekly, and monthly”) of the automatic execution robots31registered in the server1are compared with the execution states (for example, indicating how many robots are executed in which time slots) of the manual execution robots21). Thereby, the server load state in each time slot is calculated, which enables users to be contacted with a time slot and the date and time when a high or low load state is indicated.

As denoted by reference character A3, the server1notifies each user machine2of the execution states of the other robots21,31.

As denoted by reference character A4, the user confirms the operating state of which the user has been notified, and performs operations so as to execute the manual execution robot21in a time slot in which the server load is low.

Methods of displaying the execution states of the robots21,31on the user machine2include, in addition to directly displaying data indicating how high or low the load information is, for example, a method of processing data into a graph, a table, or the like and displaying the graph, the table, or the like.

At the stage where the user machine2is notified of the operating state, if the previous execution time slot of the manual execution robot21of the user matches a time slot in which the server load is high, the user may be notified of the match and be prompted to reduce the server load.

The user may select a scheduled execution time point from candidate execution time points or input a scheduled execution time point. In this case, the server1receives the scheduled execution time point. If the scheduled execution time point that will lead to a high server load is specified, the server1may reschedule the execution of the automatic execution robots31so that the server load will be lower than or equal to a threshold.

The processing denoted by reference characters A2and A3is not limited to the functionality of an RPA server. Instead, an agent that transmits and receives data and performs calculations may be provided in a machine where the RPA server is installed, and the agent may execute the processing.

FIG.2is an illustration for explaining a process of rescheduling execution time points of the automatic execution robots31in the control system100illustrated inFIG.1.

In the example illustrated inFIG.2, as denoted by reference character81, the scheduled execution time point of today of the manual execution robot A is set to “10:10”, and, as denoted by reference character B2, the scheduled execution time point of today of the manual execution robot C is set to “10:58”. It is assumed that the time period taken to complete execution of each robot21,31is 5 minutes.

As denoted by reference character B3, the server1compares the scheduled execution time points of today of which the server1has been notified by the manual execution robots21(the manual execution robots A and C in the illustrated example), with the execution schedules of the automatic execution robots31. In the illustrated example, the execution time slots of the manual execution robot A and the automatic execution robot B overlap, and the execution time slots of the manual execution robot C and the automatic execution robot D overlap.

Therefore, as denoted by reference character B4, the server1reschedules the execution schedule of the automatic execution robot B from “10:10” to “10:15”, and, as denoted by reference character B5, reschedules the execution schedule of the automatic execution robot D from “11:00” to “11:03”.

FIG.3is a block diagram schematically illustrating an example of a software configuration of the control system100illustrated inFIG.1.

In the server1, an operating state calculation service102and an RPA server service103are deployed on an operating system (OS)101. The operating state calculation service102calculates the operating state of the robots21,31and manages the logs4acquired from the user machines2and the VMs3and other information. The RPA server service103manages the user machines2and the VMs3.

In the user machine2, the manual execution robot21and a viewer202are deployed on an OS201. The manual execution robot21manages information about the log4. The viewer202manages a display message203transmitted from the server1.

In the VM3, the automatic execution robot31is deployed on an OS301. The automatic execution robot31manages information about the log4.

FIG.4is a block diagram schematically illustrating an example of a hardware configuration of the server1illustrated inFIG.1.

As illustrated inFIG.4, the server1includes a central processing unit (CPU)11, a memory12, a display control unit13, a storage device14, an input interface (I/F)15, a read/write processing unit16, and a communication I/F17.

The memory12is an example of a storage unit and is, for example, a storage device including a read-only memory (ROM) and a random-access memory (RAM). A program, such as a basic input and output system (BIOS), may be written to the ROM of the memory12. The software program in the memory12may be appropriately read into and executed by the CPU11. The RAM of the memory12may be used as a primary recording memory or a working memory.

The storage device14is, by way of example, a device that reads and writes data and stores the data, and, for example, a hard disk drive (HDD), a solid-state drive (SSD), or a storage class memory (SCM) may be used.

The input I/F15may be coupled to input devices, such as a mouse151and a keyboard152, to control the input devices, such as the mouse151and the keyboard152. The mouse151and the keyboard152are exemplary input devices. The operator performs various input operations via these input devices.

A recording medium160may be attached to the read/write processing unit16. When the recording medium160is attached to the read/write processing unit16, the read/write processing unit16may read information recorded on the recording medium160. In this example, the recording medium160has portability. For example, the recording medium160is a floppy disk, an optical disk, a magnetic disk, a magneto-optical disk, a semiconductor memory, or the like.

The communication I/F17is an interface that enables communication with an external device.

The CPU11is a processing unit that performs various types of control and executes computations. The CPU11implements various functions by executing the OS and programs stored in the memory12.

A device for controlling the operations of the entire server1is not limited to the CPU11but may be, for example, any one of a MPU, a DSP, an ASIC, a PLD, and an FPGA. The device for controlling the entire operations of the server1may be a combination of two or more of the CPU, the MPU, the DSP, the ASIC, the PLD, and the FPGA. The MPU is an abbreviation for microprocessor unit, the DSP is an abbreviation for digital signal processor, and the ASIC is an abbreviation for application-specific integrated circuit. The PLD is an abbreviation for programmable logic device, and the FPGA is an abbreviation for field-programmable gate array.

FIG.5is a block diagram schematically illustrating an example of a software configuration of the server1illustrated inFIG.1.

In the operating state calculation service102illustrated inFIG.3, the server1includes functions as a log acquisition unit111, a load calculation unit112, a robot extraction unit113, a time changing unit114, and an information output unit115.

The log acquisition unit111acquires information in the logs4regarding the operating state of a plurality of robots21,31.

Based on the acquired information in the logs4, the load calculation unit112calculates a first load in each time slot related to control of the plurality of robots21,31. The load calculation unit112may calculate a second load in a second time slot when a change to the second time slot is made.

When there is a first time slot in which the first load is higher than or equal to a first threshold, the robot extraction unit113extracts the robot21,31that performs a first task, from the plurality of robots21,31, in the first time slot. The robot extraction unit113may determine the first task depending on whether a task is performed by a user who uses the robot21,31.

The time changing unit114changes a time slot for operating the extracted robot21,31.

After calculation of the operating state of the robots21,31, the time changing unit114may shift the schedule of the automatic execution robot31to a time slot in which the server load is low. For example, in cases where the execution time point of the automatic execution robot31may be shifted into a time slot during which the user is absent, the time changing unit114shifts the execution time point of the automatic execution robot31into a late-night time slot. For example, the time changing unit114may change the time slot for operating the extracted robot21,31to the second time slot in which the first load is lowest.

Prior to transmitting the calculation data of a load state to a user, the time changing unit114may shift the schedule of the automatic execution robot31. When the server load is unable to be reduced only by the schedule shift of the automatic execution robot31, the time changing unit114may create data for notifying the user to change the execution time slot of the manual execution robot21, and transmit the data to the user. Thus, both the user and the server1reduce the load. For example, the time changing unit114may determine, depending on the calculated second load, whether to execute changing of the time slot for operating the robot21,31.

The information output unit115may display a list of candidate execution time points of the manual execution robot21of the user, in addition to the operating state acquired by the user from the server1. When the user selects a scheduled execution time point from the list of candidate execution time points, the server1may receive the selected scheduled execution time point. Based on the received scheduled execution time point, the execution information of the manual execution robots21of the other users calculated in advance, and the schedule information of the automatic execution robots31registered in the server1, the server1may calculate the server load state at the scheduled execution time point. When the calculated server load state is at or above a threshold, the server1may change the scheduled execution time point or the schedule of the robot21,31registered in the server1so that the server load is lower than or equal to the threshold, thereby enabling the server load to be reduced. For example, when the second load is in a certain state, the information output unit115may output information on a load in at least a partial time slot included in each time slot.

FIG.6exemplarily illustrates a robot management table in the server1illustrated inFIG.1.

Information about the robot management table is stored in the storage device14of the server1, and a robot ID, a robot type, a schedule, a previous execution time point, an execution state, and an execution time period average are associated with one another.

The robot ID is an identifier for uniquely identifying the robot21,31. The robot type indicates whether the robot of interest is the manual execution robot21or the automatic execution robot31. The schedule indicates a time point at which the robot21,31is to be executed next time. The previous execution time point indicates a time point at which the robot21,31was executed previously. The execution state indicates whether the robot21,31is currently being executed (ON) or not being executed (OFF). The execution time period average indicates an average time period taken for one execution of the robot21,31.

FIG.7exemplarily illustrates a log management table in the server1illustrated inFIG.1.

Information about the log management table is stored in the storage device14of the server1, and a robot ID, a log ID, and a log message are associated with one another.

The robot ID is an identifier for uniquely identifying the robot21,31. The log ID is an identifier for uniquely identifying the log4. The log message indicates the content of the log4.

FIG.8exemplarily illustrates a candidate execution time point management table in the server1illustrated inFIG.1.

Information about the candidate execution time point management table is stored in the storage device14of the server1, and a robot ID and one or more (three in the illustrated example) candidate execution time points (denoted by “CANDIDATE” in the drawing) are associated with each other.

The robot ID is an identifier for uniquely identifying the robot21,31. The candidate execution time points represent candidate execution time points of the manual execution robot21presented to the user. The user selects any candidate execution time point.

FIG.9exemplarily illustrates an execution time management table in the server1illustrated inFIG.1.

Information about the execution time management table is stored in the storage device14of the server1, and a robot ID, an execution start time point, and an execution end time point are associated with one another.

The robot ID is an identifier for uniquely identifying the robot21,31. The execution start time point indicates a time point at which execution of the robot21,31was started. The execution end time point represents a time point at which execution of the robot21,31was completed.

FIG.10exemplarily illustrates candidate execution time point management tables in the user machine2and the VM3illustrated inFIG.1.

Information about the candidate execution time point management table is stored in storage devices (not illustrated) of the user machine2and the VM3. As in the example illustrated inFIG.8, a robot ID and one or more (three in the illustrated example) candidate execution time points (denoted by “CANDIDATE” in the drawing) are associated with each other. The user machine2and the VM3separately manage the candidate execution time point management tables.

FIG.11exemplarily illustrates log management tables in the user machines2and the VMs3illustrated inFIG.1.

Information about the log management tables is stored in storage devices (not illustrated) of the user machines2and the VMs3. As in the example illustrated inFIG.7, a robot ID, a log ID, and a log message are associated with one another.

FIG.12illustrates an example of an output of a warning dialog in the control system100illustrated inFIG.1.

In the example illustrated inFIG.12, the operating state of the robots21,31denoted by reference character A4inFIG.1is illustrated as a server load state. In the server load state, the utilization percentage of resources in the control system100may be indicated in each time slot.

A user references the warning dialog illustrated inFIG.12and causes the manual execution robot21to be executed in any time slot in which the load is low.

The server load state is represented as a percentage in the illustrated example but is not limited to this. For example, assuming that the number of robots21,31registered in the control system100is a denominator, the number of robots21,31that are being executed may be displayed as a numerator. For example, in the case where 50 robots21,31are registered and 15 robots21,31among them are being executed, the server load state may be displayed as “15/50”.

In the illustrated example, each time slot for aggregating loads, which is displayed in the server load state, is 4 hours. However, each time slot for aggregating loads is not limited to this but any time slot may be set.

FIG.13illustrates an example of an output of a dialog when the server load is low in the control system100illustrated inFIG.1.

In the example illustrated inFIG.13, a message is displayed to the effect that, because of a low server load state, the manual execution robot21may be executed at any time.

The user references the dialog illustrated inFIG.13and causes the manual execution robot21to be executed in any time slot in which the load is low.

FIG.14illustrates an example of an output of a scheduled execution time point input dialog in the control system100illustrated inFIG.1.

When the “OK” button is pressed down in the warning dialog illustrated inFIG.12, the scheduled execution time point input dialog illustrated inFIG.14may be displayed. The scheduled execution time point input dialog displays one or more (three in the illustrated example) candidate execution time points of the manual execution robot21in a time slot in which the server load state is relatively low.

The user selects a scheduled execution time point from the candidate execution time points by checking a checkbox in the scheduled execution time point input dialog.

The scheduled execution time point is not limited to a selection method as illustrated inFIG.14, but may be input in such a way that the user inputs, into a textbox, any time point at which the server load is low.

When the scheduled execution time point input in the scheduled execution time point input dialog is transmitted to the server1and, as a result, the server load during the time slot selected by the user may become high, the server1may shift the execution time slot of the automatic execution robot31.

[A-2] Operation Examples

A first example of the load balancing process in the control system100illustrated inFIG.1will be described with reference to a flowchart (steps S1to S3) illustrated inFIG.15.

The user machines2and the VMs3transmit the logs4of the robots21,31to the server1(step S1).

The server1calculates the operating state of the robots21,31based on the logs4(step S2). The process of calculating the operating state of the robots21,31in step S2is described later in detail with reference toFIG.16.

The server1notifies the users of data regarding the calculated operating state (step S3). The load balancing process is then complete.

Next, the process of calculating the operating state of the robots21,31in the server1illustrated inFIG.15will be described in detail with reference to a flowchart (steps S11to S18) illustrated inFIG.16.

The log acquisition unit111receives the logs4of the robots21,31(step S11).

The load calculation unit112calculates a server load state in each time slot based on the schedules of the automatic execution robots31and the execution time points of the manual execution robots21included in the logs4(step S12).

The load calculation unit112processes data information regarding the calculated server load state into notification information, a graph, a table, or the like (step S13).

The robot extraction unit113confirms the calculation data of the execution time point of the manual execution robot21(step S14).

The robot extraction unit113determines whether the schedule of the automatic execution robot31is the same as the execution time slot of the manual execution robot21(step S15).

If the schedule of the automatic execution robot31is not the same as the execution time slot of the manual execution robot21(refer to the NO route in step S15), the process proceeds to step S17.

If, however, the schedule of the automatic execution robot31is the same as the execution time slot of the manual execution robot21(refer to the YES route in step S15), the robot extraction unit113adds data regarding the load state to data to be transmitted to the user (step S16).

The information output unit115transmits the data regarding the calculated load state to the user (step S17).

The robot extraction unit113determines whether the data regarding the calculated load state has been transmitted to all the users for whom the manual execution robots21are installed (step S18).

If there is still a user to whom the data regarding the load state has not been transmitted (refer to the NO route in step S18), the process returns to step S14.

If, however, the data regarding the load state has been transmitted to all the users (refer to the YES route in step S18), the process of calculating the operating state of the robots21,31is complete.

Next, a second example of the load balancing process in the control system100illustrated inFIG.1will be described with reference to a flowchart (steps S21to S26) illustrated inFIG.17.

The user machines2and the VMs3transmit the logs4of the robots21,31to the server1(step S21).

The server1calculates the operating state of the robots21,31based on the logs4(step S22). The process of calculating the operating state of the robots21,31in step S22is described later in detail with reference toFIG.18.

The server1notifies the users of data regarding the calculated operating state (step S23).

The user machines2present candidate execution time points of the manual execution robots21to the users (step S24).

The user machines2accept selection of scheduled execution time points from the candidate execution time points by the users (step S25).

The server1receives the scheduled execution time points selected by the users and carries out rescheduling of execution time points of the automatic execution robots31(step S26). The rescheduling of execution time points of the automatic execution robots31in step S26is described later in detail with reference toFIG.19.

Next, the process of calculating the operating state of the robots21,31in the server1illustrated inFIG.17will be described in detail with reference to a flowchart (steps S31to S39) illustrated inFIG.18.

The log acquisition unit111receives the logs4of the robots21,31(step S31).

The load calculation unit112calculates a server load state in each time slot based on the schedules of the automatic execution robots31and the execution time points of the manual execution robots21included in the logs4(step S32).

The load calculation unit112processes data information regarding the calculated server load state into notification information, a graph, a table, or the like (step S33).

The robot extraction unit113confirms the calculation data of the execution time point of the manual execution robot21(step S34).

The robot extraction unit113determines whether the schedule of the automatic execution robot31is the same as the execution time slot of the manual execution robot21(step S35).

If the schedule of the automatic execution robot31is not the same as the execution time slot of the manual execution robot21(refer to the NO route in step S35), the process proceeds to step S37.

If, however, the schedule of the automatic execution robot31is the same as the execution time slot of the manual execution robot21(refer to the YES route in step S35), the robot extraction unit113adds data regarding the load state to data to be transmitted to the user (step S36).

The load calculation unit112calculates candidate execution time points of the manual execution robot21from the execution states and schedules of the robots21,31(step S37).

The information output unit115transmits the data regarding the calculated load state to the user (step S38).

The robot extraction unit113determines whether the data regarding the calculated load state has been transmitted to all the users for whom the manual execution robots21are installed (step S39).

If there is still a user to whom the data regarding the load state has not been transmitted (refer to the NO route in step S39), the process returns to step S34.

If, however, the data regarding the load state has been transmitted to all the users (refer to the YES route in step S39), the process of calculating the operating state of the robots21,31is complete.

Next, the process of rescheduling execution time points of the automatic execution robots31illustrated inFIG.17will be described in detail with reference to a flowchart (steps S41to S46) illustrated inFIG.19.

The load calculation unit112receives information on a scheduled execution time point of the manual execution robot21(step S41).

The load calculation unit112determines whether the scheduled execution time point is selected from the candidate execution time points (step S42).

If the scheduled execution time point is selected from the candidate execution time points (refer to the YES route in step S42), the process proceeds to step S46.

If, however, the scheduled execution time point is not selected from the candidate execution time points (refer to the NO route in step S42), the load calculation unit112calculates server load information at the selected scheduled execution time point (step S43).

The time changing unit114determines whether the server load at the selected scheduled execution time point is higher than or equal to a threshold (step S44).

If the server load at the selected scheduled execution time point is lower than the threshold (refer to the NO route in step S44), the process proceeds to step S46.

If, however, the server load at the selected scheduled execution time point is higher than or equal to the threshold (refer to the YES route in step S44), the time changing unit114carries out rescheduling of execution time points of the automatic execution robots31(step S45).

The load calculation unit112determines whether the scheduled execution time points of all the users for whom the manual execution robots21are installed have been received (step S46).

If there is still a user whose scheduled execution time point has not been received (refer to the NO route in step S46), the process returns to step S42.

If, however, the scheduled execution time points of all the users have been received (refer to the YES route in step S46), the process of rescheduling execution time points of the automatic execution robots31is complete.

According to the control program, the control apparatus, and the control method in the example of the embodiment described above, for example, the following operations and advantages may be achieved.

The log acquisition unit111acquires information in the logs4regarding the operating state of a plurality of robots21,31. Based on the acquired information in the logs4, the load calculation unit112calculates a first load in each time slot related to control of the plurality of robots21,31. When there is a first time slot in which the first load is higher than or equal to a first threshold, the robot extraction unit113extracts the robot21,31that performs a first task, from the plurality of robots21,31, in the first time slot. The time changing unit114changes a time slot for operating the extracted robot21,31.

Therefore, the load related to the server1that performs a control process of the plurality of robots21,31may be temporally distributed. The number of robots21,31that are able to be deployed on the control system100may be increased, and management of many robots21,31may be made easier.

The robot extraction unit113determines the first task depending on whether a task is performed by a user who uses the robot21,31. The time changing unit114changes the time slot for operating the extracted robot21,31to the second time slot in which the first load is lowest.

Therefore, the execution time point of the manual execution robot21, which is arbitrarily executed by the user, may be set in a low-load time slot.

The load calculation unit112calculates the second load in the second time slot when a change to the second time slot is made. The time changing unit114determines, depending on the calculated second load, whether to execute changing of the time slot for operating the robot21,31.

Therefore, even when the scheduled execution time point selected by the user is in a high-load time slot, the execution time slot of the automatic execution robot31may be changed.

When the second load is in a certain state, the information output unit115outputs information on a load in at least a partial time slot included in each time slot.

This allows the user to grasp a low-load time slot.

The techniques disclosed herein are not limited to the foregoing embodiment and may be variously modified and changed without departing from the gist of the present embodiment. The configurations and processes described in the present embodiment may be selected as desired or may be combined as appropriate.

The following appendices are disclosed regarding the above embodiment.

A control program for causing a computer that controls operations of a plurality of robots to execute a process, the process comprising:

acquiring information in a log regarding an operating state of the plurality of robots;

based on the acquired information in the log, calculating a first load in each time slot related to control of the plurality of robots;

when there is a first time slot in which the first load is higher than or equal to a first threshold, extracting a robot that performs a first task, from the plurality of robots, in the first time slot; and

changing a time slot for operating the extracted robot.

The control program according to appendix 1, wherein the extracting a robot includes determining the first task depending on whether a task is performed by a user who uses the robot.

The control program according to appendix 1 or 2, wherein the changing includes changing a time slot for operating the extracted robot to a second time slot in which the first load is lowest.

The control program according to appendix 3, wherein

the calculating includes calculating a second load in the second time slot when a change to the second time slot is made, and

the changing the time slot includes determining, depending on the calculated second load, whether to execute the changing.

The control program according to appendix 4, the process further comprising:

outputting information on a load in at least a partial time slot included in the time slot, when the second load is in a certain state.

A control apparatus that controls operations of a plurality of robots, comprising:

a log acquisition unit that acquires information in a log regarding an operating state of the plurality of robots;

a load calculation unit that, based on the acquired information in the log, calculates a first load in each time slot related to control of the plurality of robots;

a robot extraction unit that, when there is a first time slot in which the first load is higher than or equal to a first threshold, extracts a robot that performs a first task, from the plurality of robots, in the first time slot; and

a time changing unit that changes a time slot for operating the extracted robot.

The control apparatus according to appendix 6, wherein the robot extraction unit determines the first task depending on whether a task is performed by a user who uses the robot.

The control apparatus according to appendix 6 or 7, wherein the time changing unit changes the time slot for operating the extracted robot to a second time slot in which the first load is lowest.

The control apparatus according to appendix 8, wherein

the load calculation unit calculates a second load in the second time slot when a change to the second time slot is made, and

the time changing unit determines, depending on the calculated second load, whether to execute the changing.

The control apparatus according to appendix 9, further comprising an information output unit that outputs information on a load in at least a partial time slot included in the time slot, when the second load is in a certain state.

A control method for controlling operations of a plurality of robots, comprising:

acquiring information in a log regarding an operating state of the plurality of robots;

based on the acquired information in the log, calculating a first load in each time slot related to control of the plurality of robots;

when there is a first time slot in which the first load is higher than or equal to a first threshold, extracting a robot that performs a first task, from the plurality of robots, in the first time slot; and

changing a time slot for operating the extracted robot.

The control method according to appendix 11, wherein the extracting a robot includes determining the first task depending on whether a task is performed by a user who uses the robot.

The control method according to appendix 11 or 12, wherein the changing includes changing a time slot for operating the extracted robot to a second time slot in which the first load is lowest.

The control method according to appendix 13, wherein

the calculating includes calculating a second load in the second time slot when a change to the second time slot is made, and

the changing includes determining, depending on the calculated second load, whether to execute the changing.

The control method according to appendix 14, further comprising outputting information on a load in at least a partial time slot included in the time slot, when the second load is in a certain state.