Robot control device and robot control program
By introducing a mechanism of dynamic update execution rules in the robot control device, the problem of unsmooth robot operation in the prior art is solved, and smoother and more efficient operation under high load conditions is achieved.
Patent Information
- Application Number
- JP2021069751
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-04-16
- Publication Date
- 2025-04-09
- Estimated Expiration
- 2041-04-16
AI Technical Summary
When existing robot control devices execute teaching programs, the robot operation may not be smooth due to the use status of the processor or memory.
A robot control device is designed that includes an execution unit and an update unit. The execution unit executes instructions one by one and performs playback control according to the execution rules of the teaching program. The update unit dynamically updates execution rules based on the usage status of the processor or memory to ensure that the load on the processor or memory is reduced under high load conditions.
By dynamically updating execution rules, it is possible to reduce the delay and non-smoothing in robot operations when the processor or memory load is high, thereby improving the smoothness of robot operations.
Smart Images

Figure 0007659176000001 
Figure 0007659176000002 
Figure 0007659176000003
Abstract
Description
[Technical field]
[0001] The present invention relates to a robot control device and a robot control program. [Background technology]
[0002] Conventionally, robot control devices that control the driving of robots using a teaching playback method have been known (see, for example, Patent Documents 1 and 2). This teaching playback method of driving control consists of a "teaching mode" in which an operator teaches a series of actions while directly moving the robot and generates a teaching program that describes multiple commands, and a "playback mode" in which the teaching program is executed in the order of the commands to make the robot reproduce the series of actions. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] JP 2018-114601 A [Patent Document 2] JP 2016-016474 A Summary of the Invention [Problem to be solved by the invention]
[0004] This type of control device performs drive control using a teaching playback method by queuing a teaching program that describes a series of commands on an instruction-by-instruction basis and executing them in the order of the commands. However, depending on the usage status of the processor and memory used by the control device, the robot's movements may not be smooth.
[0005] The present invention has been made in consideration of these problems, and its purpose is to provide a robot control device and a robot control program that can drive a robot more smoothly when controlling the drive of the robot while queuing a teaching program that describes a series of commands on an instruction-by-command basis. [Means for solving the problem]
[0006] A robot control device in a first aspect of the present invention is a device that controls the drive of a robot using a processor and a memory, and includes an execution unit that performs playback control of the robot by queuing a teaching program that describes a series of instructions and executing the program in order of instructions according to execution rules, and an update unit that updates the execution rules in accordance with the usage status of the processor or the memory while the execution unit is executing the playback control.
[0007] In a second aspect of the present invention, the robot control device further includes an acquisition unit that acquires measurement values indicating the measurement results of the usage state, and a prediction unit that uses the measurement values acquired by the acquisition unit to predict the usage state after the time when the measurement values were measured and calculates a predicted value indicating the predicted result of the usage state, and the update unit updates the execution rules using the predicted value calculated through prediction by the prediction unit.
[0008] In a robot control device according to a third aspect of the present invention, the predicted value is defined to increase as the utilization rate of the processor or the memory increases, and the update unit updates the execution rules so that the load on the processor or the memory is lower while the predicted value is above a first threshold value compared to when the predicted value does not exceed the first threshold value.
[0009] In a robot control device according to a fourth aspect of the present invention, the predicted value is defined to increase as the utilization rate of the processor or the memory increases, and the update unit updates the execution rules so that the time required for the playback control is shorter while the predicted value is below a second threshold value compared to when the predicted value is not below the second threshold value.
[0010] In a robot control device according to a fifth aspect of the present invention, the execution rules are determined by at least one execution parameter among the maximum number of instructions that can be queued, the length or frequency of pauses between instructions, and the type of execution format of the instructions.
[0011] A robot control program in a sixth aspect of the present invention causes a computer that uses a processor and memory to control the driving of a robot to function as an execution unit that performs playback control of the robot by queuing a teaching program that describes a series of instructions and executing the teaching program in order of instructions while queuing the program on an instruction-by-instruction basis in accordance with execution rules of the teaching program, and an update unit that sequentially updates the execution rules in accordance with the usage status of the processor or the memory while the execution unit is performing the playback control. Effect of the Invention
[0012] According to the present invention, when controlling the drive of a robot while queuing a teaching program describing a series of commands on an instruction-by-instruction basis, the robot can be driven more smoothly. [Brief description of the drawings]
[0013] [Figure 1] 1 is an overall configuration diagram of a robot system incorporating a robot control device according to an embodiment of the present invention; [Diagram 2] 2 is a functional block diagram of the processor shown in FIG. 1. [Diagram 3] 3 is a time chart showing an example of an operation by the playback execution unit of FIG. 2; [Figure 4] 13 is a flowchart showing an example of update control of an execution rule. [Diagram 5] FIG. 13 is a diagram illustrating an example of a predicted result of a processor utilization rate. [Figure 6] FIG. 11 illustrates an example of an update rule for an execution parameter. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0014] Hereinafter, an embodiment of the present invention will be described with reference to the accompanying drawings. In order to facilitate understanding of the description, the same reference numerals are used to refer to the same components in each drawing as much as possible, and duplicated description will be omitted.
[0015] [Configuration of robot system 10] <Overall composition> 1 is a diagram showing the overall configuration of a robot system 10 incorporating a robot control device 14 according to an embodiment of the present invention. Specifically, the robot system 10 includes a robot 12, a robot control device 14, and a teaching pendant 16.
[0016] The robot 12 is a vertical joint type robot having multiple joint axes (six axes in the example of FIG. 1). An end effector (not shown) is attached to the hand of the robot 12. The robot 12 can perform various tasks including gripping and moving a workpiece, welding, and painting by independently driving the multiple joint axes in response to commands from a robot control device 14.
[0017] The robot control device 14 is a computer responsible for controlling the robot 12. An operating system (OS) and multiple applications that can be run under this OS are installed in the robot control device 14. Specifically, the robot control device 14 includes a connector 18, a communication I / F 20, a processor 22, and a memory 24. The number of each component is one in the example of Fig. 1, but may be two or more.
[0018] The connector 18 is a terminal for electrically connecting to the robot 12 via a power cable or a communication cable. With this, the robot control device 14 supplies power and control signals to the robot 12, and also acquires measurement signals from various sensors provided on the robot 12.
[0019] The communication I / F 20 is an interface for communicating with an external device. This allows the robot control device 14 to exchange data with, for example, the teaching pendant 16, a work terminal not shown, or a higher-level device. Here, the teaching pendant 16 is an input device used for online teaching of the robot 12. On the other hand, in the case of offline teaching, the configuration of the teaching pendant 16 may be omitted.
[0020] The processor 22 may be a general-purpose processor including a CPU (Central Processing Unit) or a dedicated processor including an FPGA (Field Programmable Gate Array) or a GPU (Graphics Processing Unit). The memory 24 is a non-transitory computer-readable storage medium that stores programs and data required for the processor 22 to control each component.
[0021] <Function block diagram> Fig. 2 is a functional block diagram of the processor 22 shown in Fig. 1. The processor 22 is configured to be able to control the robot 12 by a teaching playback method. In this case, the processor 22 switches between a plurality of control modes including a teaching mode and a replay mode. Here, the "teaching mode" is a control mode in which a series of actions is taught while moving the actual or virtual robot 12, and a teaching program P describing a plurality of commands is generated. Also, the "replay mode" is a control mode in which the teaching program P is executed in the order of commands to make the robot 12 reproduce the series of actions.
[0022] This processor 22 functions as a program generation unit 30, a measurement value acquisition unit 32 (acquisition unit), a usage state prediction unit 34 (prediction unit), an execution rule update unit 36 (update unit), and a playback execution unit 38 (execution unit) by reading and executing the robot control program stored in the memory 24. Here, the program generation unit 30 operates in conjunction with the execution of the "teaching mode", while the remaining functional units operate in conjunction with the execution of the "playback mode".
[0023] The program generation unit 30 generates a teaching program P indicating a series of instructions by receiving a teaching operation of the teaching pendant 16 (FIG. 1) by an operator. The teaching method may be either PTP (Point To Point) or CP (Continuous Path). This teaching program P is stored in the memory 24 in a state readable by the processor 22. The execution unit of instructions (i.e., block unit) can be set in various ways depending on the type of operation.
[0024] The measurement acquisition unit 32 periodically or irregularly acquires measurement values indicating the measurement results of the usage state of the hardware resources of the robot control device 14, more specifically, at least one of the processor 22 and the memory 24. This usage state may be either an absolute value or a relative value of the usage amount, or may be an amount of change indicating the change over time in the usage amount.
[0025] Examples of relative values of usage include [1] the usage rate of the processor 22 (hereinafter, processor usage rate), [2] the usage rate of the memory 24 by the operating system (hereinafter, system-side memory usage rate), and [3] the usage rate of the memory 24 by the robot control program (hereinafter, application-side memory usage rate). The processor usage rate and the system-side memory usage rate are each provided through an API (Application Programming Interface) of the operating system. On the other hand, the application-side memory usage rate is provided through the playback execution unit 38.
[0026] The usage state prediction unit 34 uses a measurement value acquired by the measurement value acquisition unit 32 to predict a usage state after the time point at which the measurement value was measured. Through this prediction, a predicted value indicating the predicted result of the usage state of the processor 22 or memory 24 is calculated. The usage state prediction unit 34 may calculate the predicted value using a most recently acquired measurement value, or may calculate the predicted value using a measurement value set including measurement values acquired in the past. In the latter case, the usage state prediction unit 34 may use the measurement value set to obtain a curve (e.g., an approximation curve or an interpolation curve) indicating the time change of the measurement value, and calculate a predicted value at the prediction time point from the obtained curve.
[0027] The execution rule update unit 36 updates the execution rules according to the usage state of the processor 22 or memory 24 included in the robot control device 14 while the playback execution unit 38 is executing the playback control. The execution rules are determined by at least one execution parameter, for example, among [1] the maximum number of instructions that can be queued, [2] the length or frequency of pauses between instructions, and [3] the type of execution format of the instructions. Here, the "pause" may be a waiting time inserted between two instructions, or a waiting time inserted between two sets of instructions when a series of instructions (i.e., an instruction set) is repeatedly executed. In addition, examples of the "execution format" include a format for high load, a format for low load, etc.
[0028] When the above-mentioned measured value and predicted value are defined to increase as the utilization rate of the processor 22 or memory 24 increases, the execution rule update unit 36 determines the execution rules so that the load on the processor 22 or memory 24 is lower while the predicted value is above the first threshold value, compared to when the predicted value does not exceed the first threshold value. In other words, each execution parameter is determined so that the maximum number of instructions is smaller, the pause time is longer, the pause frequency is higher, and an execution format for low load is obtained.
[0029] Alternatively, while the predicted value is below the second threshold value (a value smaller than the first threshold value), the execution rule update unit 36 determines an execution rule such that the required time for the playback control is shorter than when it is not below the second threshold value. That is, each execution parameter is determined so that the maximum number of instructions increases, the time of small pauses becomes shorter, the frequency of small pauses becomes lower, and the execution format is for high load.
[0030] The playback execution unit 38 performs playback control of the robot 12 by executing the instruction program P describing a plurality of instructions in the order of instructions according to the execution rule updated by the execution rule update unit 36. The playback execution unit 38 may immediately reflect the update of the execution rule when continuing the playback control as it is, or may reflect the update of the execution rule immediately after a series of instructions ends. A specific example of this playback control will be described later.
[0031] [Operation of the Robot Control Device 14] The robot system 10 in this embodiment is configured as described above. Subsequently, the operation of the robot control device 14 that constitutes a part of the robot system 10 will be described with reference to FIGS. 3 to 6.
[0032] <Explanation of Playback Control> FIG. 3 is a time chart showing an example of the operation by the playback execution unit 38 in FIG. 2. The playback execution unit 38 reads and queues a plurality of instructions and executes them according to a predetermined order. Here, the maximum number of instructions that can be queued (hereinafter, also referred to as the "maximum queue number") is set to 5. The playback execution unit 38 reads out five instructions C1 to C5 in a state where they can be executed immediately before the first instruction C1 is executed (time t < t1).
[0033] At time t=t1, the playback execution unit 38 executes the earliest instruction C1 of the instructions C1 to C5 waiting for execution. Since the execution of this instruction C1 creates space in the queue, the playback execution unit 38 reads out the earliest instruction C6 of the set of instructions that have not yet been queued.
[0034] At time t=t2, after the end of command C1, the playback execution unit 38 performs a short pause (i.e., a standby process) with a preset length and frequency, thereby temporarily suspending the execution of command C2.
[0035] At time t=t3, the playback execution unit 38 executes the earliest instruction C2 of instructions C2 to C6 waiting for execution. Since the execution of this instruction C2 creates space in the queue, the playback execution unit 38 reads out the earliest instruction C7 of the set of instructions that have not yet been queued.
[0036] At time t=t4, after the end of instruction C2, the playback execution unit 38 executes the earliest instruction C3 among instructions C3 to C7 waiting for execution. Thereafter, the playback execution unit 38 continues playback control until all instructions are completed, while repeating the reading and execution of instructions synchronously or asynchronously.
[0037] <Update control of execution rules> Next, the update control of the execution rules will be described with reference to the flowchart of Fig. 4 and Figs. 5 and 6. Here, it is assumed that the update control is executed in parallel and independently of the playback control described above during the execution of the playback control. Alternatively, the playback control and the update control may be executed synchronously.
[0038] 4, the execution rule update unit 36 sets the execution parameters that define the execution rules to initial values (for example, standard values). Then, the playback execution unit 48 starts playback control according to the "standard" execution parameters.
[0039] In step SP12, the processor 22 checks whether the timing for updating the execution parameters has arrived. If the timing for updating has not arrived yet (step SP12: NO), the processor 22 remains in step SP12 until the timing arrives. On the other hand, if the timing for updating has arrived (step SP12: YES), the processor 22 proceeds to the next step SP14.
[0040] In step SP14, the measurement acquisition unit 32 acquires measurement values indicating the usage state of the processor 22 or the memory 24 (here, "processor usage rate" and "system side memory usage rate").
[0041] In step SP16, the usage state predicting section 34 predicts the usage state after the measurement point using the measurement value acquired in step SP14.
[0042] 5 is a diagram showing an example of a prediction result of processor utilization. The horizontal axis of the graph indicates time (unit: s), and the vertical axis of the graph indicates processor utilization (unit: %). Here, measured values of processor utilization are acquired sequentially at sampling intervals ΔT. For example, assume that the measured values of the most recent three times are P1, P2, and P3, the measured value of the current time is P4, and the predicted value of the current time is P5. In this case, if the fluctuations of the measured values of P1 to P3 are small and there are signs of an increase in P4, a prediction result is obtained that P5 will increase rapidly.
[0043] 4, the execution rule update unit 36 refers to the predicted value calculated through the prediction in step SP16 and determines whether or not it is necessary to update the execution parameters. If it is necessary to update (step SP18: YES), the process proceeds to step SP20, whereas if it is not necessary to update (step SP18: NO), the process skips the execution of step SP20.
[0044] In step SP20, the execution rule update unit 36 updates at least one execution parameter according to the calculated predicted value. Then, the playback execution unit 48 continues playback control according to the updated execution parameter. Note that commands that have already been queued may be left as they are, or may be deleted and then reloaded.
[0045] FIG. 6 is a diagram showing an example of an update rule for execution parameters. This update rule shows the correspondence between a combination of usage states and a combination of execution parameters. Here, the usage state is composed of a processor usage rate (A) and a memory usage rate (B). The processor usage rate can take any value within the range of 0≦A≦100. The memory usage rate is classified into one of the classes "low", "standard (medium)", and "high".
[0046] The execution parameters consist of (1) maximum queue number, (2) pause frequency, and (3) execution format. The maximum queue number is classified into one of the following classes: "low," "standard (medium)," or "high." The pause frequency is classified into one of the following classes: "low," "standard (medium)," or "high." The execution format is classified into one of the following classes: "for low load," "standard," or "for high load."
[0047] The execution rule update unit 36 checks whether the predicted usage state corresponds to any one of the seven combinations (No. 1 to No. 7) shown in Fig. 6, and identifies the corresponding combination of execution parameters. Specifically, when "A=95" and "B=high", the maximum queue number is determined to be "low", the short break frequency is determined to be "high", and the execution format is determined to be "for high load" (No. 3). Alternatively, when "A=20" and "B=low", the maximum queue number is determined to be "high", the short break frequency is determined to be "low", and the execution format is determined to be "for low load" (No. 7).
[0048] For example, while the relationship 80 < A ≤ 100 is satisfied (No2 - 4), the execution parameters are updated so that the load on the processor 22 or the memory 24 is lower compared to the case where 40 ≤ A ≤ 80 (No1). This makes it less likely for a delay in the playback operation due to an excessive load on the processor 22 or the memory 24 to occur.
[0049] Also, while the relationship 0 ≤ A < 40 is satisfied (No5 - 7), the execution rules are updated so that the required time for playback control is shorter compared to the case where 40 ≤ A ≤ 100 (No1). Thereby, under the situation where the load on the processor 22 or the memory 24 is relatively low, the playback operation can be promptly performed.
[0050] In step SP22 of FIG. 4, the processor 22 checks whether the playback operation by the playback execution unit 38 has ended. If it has not ended yet (step SP22: NO), it returns to step SP12 and sequentially repeats steps SP12 - SP22 until the operation ends. On the other hand, if the operation of the playback execution unit 38 has ended (step SP22: YES), the series of operations according to the flowchart of FIG. 4 ends.
[0051] [Effect by the robot control device 14] As described above, the robot control device 14 in this embodiment is a device that performs drive control of the robot 12 by the teaching playback method. It includes a playback execution unit 38 that performs playback control of the robot 12 by executing the teaching program P in order of instructions while queuing the teaching program P in instruction units according to the execution rules of the teaching program P that describes a series of instructions, and an execution rule update unit 36 that updates the execution rules according to the usage state of the processor 22 or the memory 24 during the execution of the playback control by the playback execution unit 38.
[0052] Furthermore, according to the robot control method and program of this embodiment, the robot control device 14 as a computer performs playback control of the robot 12 by queuing the teaching program P on an instruction-by-instruction basis and executing the teaching program P in the order of instructions according to execution rules of the teaching program P, which describes a series of instructions, and includes an update step (SP20 in FIG. 4) of updating the execution rules according to the usage state of the processor 22 or the memory 24 during execution of the playback control.
[0053] In this way, by updating the execution rules according to the usage state of the processor 22 or the memory 24, playback control can be performed while dynamically setting execution rules (i.e., queuing rules) appropriate for the usage state, and the robot 12 can be driven more smoothly when controlling the drive of the robot 12 while queuing the teaching program P describing a series of instructions on an instruction-by-instruction basis.
[0054] The robot control device 14 may further include a measurement acquisition unit 32 that acquires measurement values indicating the measurement results of the usage state, and a usage state prediction unit 34 that predicts the usage state after the measurement time point of the measurement using the measurement values acquired by the measurement acquisition unit 32 and calculates a predicted value indicating the predicted result of the usage state, and the execution rule update unit 36 may update the execution rules using the predicted value calculated through prediction by the usage state prediction unit 34. This enables updating that takes into account the time lag between the measurement time point and the prediction time point, and accordingly improves the real-time nature of the update.
[0055] Furthermore, for a predicted value defined to increase as the usage rate of the processor 22 or memory 24 increases, the execution rule update unit 36 may update the execution rules so that while the predicted value is above a first threshold, the load on the processor 22 or memory 24 is lower than when the predicted value does not exceed the first threshold. This makes it less likely that a delay in the playback operation due to an excessive load on the processor 22 or memory 24 will occur.
[0056] Furthermore, for a predicted value defined to increase as the usage rate of the processor 22 or memory 24 increases, the execution rule update unit 36 may update the execution rule so that the time required for playback control is shorter while the predicted value is below the second threshold value compared to when the predicted value is not below the second threshold value. This allows the playback operation to be performed quickly when the load on the processor 22 or memory 24 is relatively low.
[0057] The execution rules may also be determined by at least one execution parameter of the maximum number of instructions that can be queued, the length or frequency of pauses between instructions, and the type of execution format of the instructions.
[0058] [Variations] The present invention is not limited to the above-described embodiment, and can be freely modified without departing from the spirit and scope of the present invention. Alternatively, the respective configurations may be arbitrarily combined without causing any technical contradiction.
[0059] In the above embodiment, a case has been described in which the execution rule update unit 36 updates the execution rules using predicted values, but the input values to the execution rule update unit 36 are not limited to this. For example, the execution rule update unit 36 may sequentially update the execution rules using both the predicted values from the usage state prediction unit 34 and the actual measured values from the measurement value acquisition unit 32. Alternatively, the execution rule update unit 36 may sequentially update the execution rules using only the actual measured values from the measurement value acquisition unit 32. In this case, the configuration of the usage state prediction unit 34 is not necessary.
[0060] In the above embodiment, a six-axis vertical articulated robot has been described as an example, but the type of robot 12 is not limited to this. For example, the robot 12 may be any of a seven-axis robot, a horizontal articulated robot (a so-called SCARA robot), a parallel link robot, and an orthogonal robot (a so-called gantry robot). Furthermore, the present invention is not limited to industrial robots, and may be applied to various movable devices that can be driven by a teaching playback method. [Explanation of symbols]
[0061] 10... robot system, 12... robot, 14... robot control device, 22... processor, 24... memory, 32... measurement value acquisition unit (acquisition unit), 34... usage state prediction unit (prediction unit), 36... execution rule update unit (update unit), 38... playback execution unit (execution unit)
Claims
1. A robot control device that uses a processor and a memory to control the drive of a robot, an execution unit that performs playback control of the robot by queuing a teaching program that describes a series of instructions and executing the teaching program in order of instructions according to execution rules; an acquisition unit that acquires a measurement value indicating a measurement result of a usage state of the processor or the memory; a prediction unit that predicts a usage state after a time point of measuring the measurement value by using the measurement value acquired by the acquisition unit, and calculates a predicted value indicating a prediction result of the usage state; an update unit that updates the execution rule by using the predicted value calculated by the prediction unit during the execution of the playback control by the execution unit; A robot control device comprising:
2. the predicted value is defined so as to increase as the utilization rate of the processor or the memory increases; The robot control device according to claim 1, characterized in that the update unit updates the execution rules so as to reduce the load on the processor or the memory while the predicted value is above a first threshold value compared to when the predicted value does not exceed the first threshold value.
3. the predicted value is defined so as to increase as the utilization rate of the processor or the memory increases; The robot control device according to claim 1, characterized in that the update unit updates the execution rules so that the time required for the playback control is shorter while the predicted value is below a second threshold value compared to when the predicted value is not below the second threshold value.
4. 4. A robot control device according to claim 1, wherein the execution rules are determined by at least one execution parameter of a maximum number of instructions that can be queued, a length or frequency of pauses between instructions, and a type of execution format of the instructions.
5. A computer that uses a processor and a memory to control the drive of a robot, an execution unit for performing playback control of the robot by queuing a teaching program describing a series of instructions and executing the teaching program in an order of instructions according to execution rules of the teaching program; an acquisition unit that acquires a measurement value indicating a measurement result of a usage state of the processor or the memory; a prediction unit that predicts a usage state after a time point of measuring the measurement value by using the measurement value acquired by the acquisition unit, and calculates a predicted value indicating a prediction result of the usage state; an update unit that updates the execution rule using the predicted value calculated by the prediction unit while the execution unit is executing the playback control; A robot control program comprising:
Citation Information
Patent Citations
Control system of industrial robot
JP1985200310A
Testing device for information processor
JP1995262038A
Network queuing system
JP1999039175A
Robot control device
JP2016016474A
Robot system and control device of robot
JP2018114601A