Robot control device and robot control method

The robot control device and method efficiently adjust motion commands using an evaluation function to minimize vibrations and settling times, addressing the inefficiencies of existing methods by enabling global search and reducing calculation time.

JP7726365B2Active Publication Date: 2025-08-20MITSUBISHI ELECTRIC CORP
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
JP2024502284
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2022-02-22
Publication Date
2025-08-20
Estimated Expiration
2042-02-22

AI Technical Summary

Technical Problem

Existing robot control methods that adjust motion commands based on sensor data from actual machines or dynamics simulation take a long time to perform calculations when the commands before and after adjustment differ significantly, making them unsuitable for global adjustment.

Method used

A robot control device and method that include a teaching position acquisition unit, a first motion command calculation unit, a determination unit, and a second operation command calculation unit to calculate and adjust motion commands using an evaluation function to reduce settling time, even if initial commands differ significantly.

Benefits of technology

The method enables global search for optimized motion commands, reducing calculation time and ensuring efficient adjustment of motion commands to minimize vibrations and settling times.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007726365000008
    Figure 0007726365000008
  • Figure 0007726365000009
    Figure 0007726365000009
  • Figure 0007726365000010
    Figure 0007726365000010
Patent Text Reader

Abstract

This robot control device (2, 2a, 2b) comprises: a teaching position acquisition unit (21) that acquires an operation start position and an operation end position of a robot (4); a first operation command calculation unit (22) that calculates a first operation command on the basis of the operation start position and the operation end position; a determination unit (23, 23a) that determines whether a difference between a first settling time and a first discharge time of the first operation command is less than a prescribed value; a command candidate calculation unit (24, 24a, 24b) that, when the difference is the prescribed value or greater, calculates an operation command candidate satisfying prescribed conditions for an evaluation function based on an operation command and a discharge time of the operation command; and a second operation command calculation unit (25, 25a) that, when the difference is the prescribed value or greater, calculates a second operation command on the basis of the operation command candidate, and when the difference is less than the prescribed value, sets the first operation command as the second operation command, and outputs the second operation command as a target command.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to a robot control device and a robot control method. [Background technology]

[0002] When positioning an end effector connected to a robot, work efficiency can be improved by setting motion commands to speed up the movement from the start position to the end position. However, simply speeding up the movement can cause problems, such as vibrations in the end effector due to insufficient rigidity in the reducer of the robot's drive system and the robot arm, resulting in longer settling times. For this reason, technology has been developed to adjust motion commands to maintain high speeds while suppressing vibrations.

[0003] Patent Document 1 discloses a robot control device that calculates a movement correction amount while adjusting movement commands based on sensor data obtained when the robot is operated using an actual machine or only dynamics simulation. [Prior art documents] [Patent documents]

[0004] [Patent Document 1] Patent Publication No. 2021-13999 Summary of the Invention [Problem to be solved by the invention]

[0005] In Patent Document 1, the motion commands are adjusted based on sensor data obtained when the robot is operated using only an actual machine or dynamics simulation, so if the motion commands before and after adjustment differ significantly, it takes a long time to perform calculations. As such, there is a problem that the method is not suitable for global adjustment.

[0006] The present disclosure has been made to solve the above-mentioned problems, and aims to provide a robot control device and a robot control method that reduce the time required to adjust operation commands. [Means for solving the problem]

[0007] A robot control device according to the present disclosure includes a teaching position acquisition unit that acquires a motion start position and a motion end position in positioning of a robot, a first motion command calculation unit that calculates a first motion command based on the motion start position and the motion end position, a determination unit that calculates a difference between a first settling time of the first motion command and a first issuance time of the first motion command and determines whether the difference is less than a predetermined value, and a determination unit that, when the difference is equal to or greater than the predetermined value, outputs a predetermined characteristic frequency. Based on Based on Set the evaluation function for the vibration of the robot And before Review Value Function and movement and a second operation command calculation unit that, if the difference is equal to or greater than the predetermined value, calculates a second operation command based on the operation command candidates so that the settling time is equal to or less than the first settling time and outputs the second operation command as a target command, and, if the difference is less than the predetermined value, sets the first operation command as the second operation command and outputs the second operation command as a target command.

[0008] Further, a robot control method according to the present disclosure includes a step of acquiring an operation start position and an operation end position in positioning of a robot, a step of calculating a first operation command based on the operation start position and the operation end position, a step of calculating a difference between a first settling time of the first operation command and a first issuing time of the first operation command, and a step of determining whether or not the difference is less than a predetermined value, and a step of generating a predetermined characteristic frequency when the difference is equal to or greater than the predetermined value. Based on Based on Set the evaluation function for the vibration of the robot And before Review Value Function and movementand if the difference is equal to or greater than the predetermined value, calculating a second operation command based on the operation command candidates, the second operation command having a settling time equal to or less than the first settling time, and outputting the second operation command as a target command. If the difference is less than the predetermined value, setting the first operation command as the second operation command, and outputting the second operation command as a target command. [Effects of the Invention]

[0009] According to the present disclosure, a robot control device and a robot control method enable global search using an evaluation function based on motion commands, thereby reducing calculation time even if the motion commands before and after adjustment are significantly different. [Brief explanation of the drawings]

[0010] [Figure 1] FIG. 1 is a diagram illustrating an example of a configuration of a robot system according to first to third embodiments. [Figure 2] FIG. 1 is a block diagram showing an example of a robot control device according to a first embodiment. [Figure 3] 4 is a graph showing an example of an operation command in the first to third embodiments. [Figure 4] 10 is a graph showing the definition of the settling time in the first to third embodiments. [Figure 5] 4 is a graph showing definitions of command parameters in the first to third embodiments. [Figure 6] 4 shows an example of a resonance frequency of the robot 4 in the first to third embodiments. [Figure 7] 4 is a flowchart showing an example of the operation of the robot control device in the first embodiment. [Figure 8] 6 is a flowchart showing an example of the operation of a second operation command calculation unit in the first embodiment. [Figure 9] 10 is a flowchart showing another example of the operation of the second operation command calculation unit in the first embodiment. [Figure 10]FIG. 10 is a block diagram showing an example of a robot control device according to a second embodiment. [Figure 11] 10 is a flowchart showing an example of the operation of the robot control device in the second embodiment. [Figure 12] FIG. 11 is a block diagram showing an example of a robot control device according to a third embodiment. [Figure 13] 11 is a graph showing an example of the relationship between the state quantity of the end effector and the settling time in the third embodiment. [Figure 14] 11 is a flowchart showing an example of the operation of the robot control device in the third embodiment. [Figure 15] FIG. 2 is a diagram illustrating a hardware configuration of a robot control device and a control unit according to the first to third embodiments. DETAILED DESCRIPTION OF THE INVENTION

[0011] Embodiment 1 1 is a diagram showing an example of the configuration of a robot system 1 according to Embodiment 1. The robot system 1 includes a robot control device 2, a control unit 3, and a robot 4.

[0012] The robot control device 2 calculates a second operation command based on the operation start position and operation end position in positioning the robot 4, and outputs the second operation command to the control unit 3 as a target command. Positioning the robot 4 refers to positioning of the end effector 43 connected to the robot 4. The robot control device 2 does not have to be configured within the robot system 1, but may be configured inside a personal computer outside the robot system 1 or in the cloud. The robot control device 2 will be described in detail later using FIG. 2.

[0013] The control unit 3 calculates a control signal for controlling the robot 4 in accordance with the second operation command from the robot control device 2, and outputs the control signal to the actuator 41 of the robot 4.

[0014] The robot 4 includes an actuator 41 that drives a robot arm 42 and an end effector 43, the robot arm 42, and the end effector 43. The actuator 41 is, for example, a motor, and is connected to each joint of the robot arm 42 via a reducer.

[0015] Fig. 2 is a block diagram showing an example of the robot control device 2 in embodiment 1. As shown in Fig. 2, the robot control device 2 includes a teaching position acquisition unit 21, a first operation command calculation unit 22, a determination unit 23, a command candidate calculation unit 24, and a second operation command calculation unit 25.

[0016] The teaching position acquisition unit 21 acquires the motion start position and motion end position for positioning the robot 4. The motion start position and motion end position are generated in advance by means not shown.

[0017] The first operation command calculation unit 22 calculates a first operation command based on the operation start position and operation end position from the taught position acquisition unit 21. The operation command is one of a position command, a speed command, an acceleration / deceleration command, etc. to the end effector 43. Fig. 3 is a graph showing an example of an operation command in the first embodiment. Fig. 3 is a graph in the case of a speed command to the end effector 43. The horizontal axis represents time, and the vertical axis represents the speed command.

[0018] As shown in Figure 3, the motion command is the maximum speed V max , acceleration time t k , constant speed time t t and deceleration time t g The operation command may be these variables themselves, may be a function of the graph shown in Fig. 3, or may be point sequence data sampled for each control cycle based on the graph of Fig. 3. When the operation command is the above variables or a function of the graph shown in Fig. 3, it may be converted into point sequence data for each control cycle by the control unit 3 later. The operation command may also be composed of variables other than the above variables.

[0019] The first motion command calculation unit 22 calculates a first motion command using a known method based on the motion start position and motion end position from the teaching position acquisition unit 21. In this embodiment, the first motion command calculation unit 22 calculates the first motion command so that the angular acceleration is maximized while satisfying constraints such as the angular acceleration of each joint axis of the robot 4. In other words, the first motion command calculation unit 22 calculates the first motion command so that the issuance time is shortest within the range in which the constraints are satisfied. The first motion command calculation unit 22 outputs the first motion command to the determination unit 23 and the second motion command calculation unit 25. The first motion command corresponds to a target command when the command candidate calculation unit 24 and the second motion command calculation unit 25, which will be described later, do not perform calculation processing. The issuance time refers to the period of the motion command waveform from the motion start position to the motion end position. In the case of FIG. 3, the issuance time is equal to the acceleration time t k and constant speed time t t and deceleration time t g It is the harmony of.

[0020] Returning to FIG. 2, the determination unit 23 calculates the first settling time T1 when the robot 4 is operated in accordance with the first operation command from the first operation command calculation unit 22. In this embodiment, the determination unit 23 calculates the first settling time T1 by operating the robot 4 using a dynamics simulation. The determination unit 23 calculates the first settling time T1 by comparing the first settling time T1 with the first delivery time T of the first operation command. 1,com The difference ΔT1=T1-T 1,com is calculated, and the difference ΔT1 is the predetermined value ΔT chk The first settling time T1 is the settling time when the operation command is the first operation command, which will be described later with reference to FIG. 4. 1,com is the time required to issue the operation command (acceleration time t k and constant speed time t t and deceleration time t g The sum of the predetermined value ΔT is the delivery time when the operation command is the first operation command. chk may be a fixed value set in advance, or may be a variable value that is changed each time based on the first operation command. Alternatively, when the smallest frequency among the resonance frequencies in the vibration mode of the robot 4 is set to f0, ΔTchk =2 / f0.

[0021] FIG. 4 is a graph illustrating the definition of the settling time in the first embodiment. The horizontal axis represents time, and the vertical axis represents the state quantity of the end effector 43. When the robot 4 moves from the operation start position to the operation end position, periodic vibration occurs after the robot 4 reaches the operation end position. In FIG. 4, the operation end position corresponds to the position at which the payout time has elapsed, i.e., the position at which the state quantity of the end effector 43 becomes zero. The settling time is defined as the time from the start of the robot 4's operation until the state quantity of the end effector 43 falls within a predetermined allowable range. In FIG. 4, the settling time is T. In FIG. 4, time T refers to the time at which the state quantity of the end effector 43 first falls within the allowable range after maintaining the allowable range. Note that the definition of the settling time is not limited to this. The state quantity includes at least the position and orientation of the end effector 43. The state quantity may also include the velocity or acceleration of the end effector 43.

[0022] Returning to FIG. 2, the command candidate calculation unit 24 calculates the difference ΔT1 as a predetermined value ΔT chk In the above cases, the operation command candidate calculation unit 24 calculates an operation command candidate that satisfies a predetermined condition for the evaluation function based on the operation command and the issuing time of the operation command. chk If the difference ΔT1 is less than the predetermined value ΔT, no processing is performed. chk As an example of a case where the amplitude of the residual vibration generated by the resonance of the robot 4 is smaller than the allowable range, the first settling time T1 is shorter than the first dispensing time T 1,com Hereinafter, a method for the command candidate calculation unit 24 to set the evaluation function and a method for calculating the operation command candidates will be described.

[0023] First, a method for setting an evaluation function by the command candidate calculation unit 24 will be described. The command candidate calculation unit 24 calculates a gain at a pre-specified characteristic frequency based on an operation command, and sets an evaluation function including a gain and a gain weight. As an example, the evaluation function COST(p) is expressed by the following formula (1).

[0024]

number

[0025] However, N s is the number of feature frequencies, f i is the characteristic frequency, K i is the gain weight at the feature frequency, F(p,f i ) is the characteristic frequency f i The gain in and p are command parameter sets. The command parameter set p is a collection of command parameters that are the targets of calculation of the operation command candidates and the second operation command described later. In other words, calculating the operation command candidates and the second operation command is equivalent to calculating the command parameter set p.

[0026] 5(a) and 5(b) are graphs showing the definition of command parameters in the first embodiment. FIG. 5(a) shows an acceleration / deceleration command with respect to time. FIG. 5(b) shows a speed command with respect to time, which is obtained by integrating the acceleration / deceleration command in FIG. 5(a). In this case, the command parameters are acceleration increase time kt1, constant acceleration time kt2, acceleration decrease time kt3, deceleration increase time gt1, constant deceleration time gt2, deceleration decrease time gt3, maximum acceleration acc max and maximum deceleration dec max However, the constant speed time ct is set based on the above command parameters so that the robot 4 reaches the operation end position. Therefore, the constant speed time ct is not included in the command parameters. Note that the command parameters are not limited to the above parameters in the acceleration / deceleration command of FIG. 5(a). The command parameters may be parameters in the speed command of FIG. 5(b). In this case, the command parameters only need to include at least the maximum speed, acceleration time, and deceleration time. The maximum speed is determined by v in FIG. 5(b). max The acceleration time is the sum of the acceleration increase time kt1, the constant acceleration time kt2, and the acceleration decrease time kt3. The deceleration time is the sum of the deceleration increase time gt1, the constant deceleration time gt2, and the deceleration decrease time gt3.

[0027] The gain F(p,f i ) is the gain F(p,f) of the following formula (2), where frequency f is the characteristic frequency f i It is calculated by substituting

[0028]

number

[0029] j is the imaginary unit, π is the constant of the circumference of a circle, and G(2πj*f) is the function obtained by Laplace transforming the time function g(t) into the frequency domain f. The time function g(t) is a function that expresses the operation command shown in Figure 3. |G| is the absolute value of the function G.

[0030] Here, the characteristic frequency f i is, for example, a pre-calculated resonance frequency of the robot 4. FIG. 6 shows an example of the resonance frequency of the robot 4 in the first embodiment. FIG. 6 shows a pre-calculated resonance frequency every 0.1 [sec]. As an example, the command candidate calculation unit 24 calculates the resonance frequency at the end of the operation in each vibration mode (time=0.3 [sec]) as a characteristic frequency f i In the case of Figure 6, the characteristic frequency f i are 10 [Hz], 18 [Hz], 23 [Hz], 41.2 [Hz], 66 [Hz], and 132 [Hz]. Note that the command candidate calculation unit 24 may set a resonance frequency other than the one at the end of operation in each vibration mode as the characteristic frequency.

[0031] The command candidate calculation unit 24 may set not only the resonant frequency of the robot 4 but also frequencies within a predetermined range around the resonant frequency as characteristic frequencies. The predetermined range may be, for example, a range of ±1 Hz. In this case, the characteristic frequencies of the primary vibration mode at the end of the operation in FIG. 6 are 9 Hz, 10 Hz, and 11 Hz. The same applies to the other vibration modes. Note that the command candidate calculation unit 24 may set the characteristic frequencies, for example, from 9 to 11 Hz in increments of 0.5 Hz.

[0032] The gain weight K in Equation (1) i may be inclined so that it increases as the resonance frequency decreases, or may be uniform for each resonance frequency. When the command candidate calculation unit 24 sets frequencies within a predetermined range around the resonance frequency as the characteristic frequencies, for example, the gain weight K i is set to 1, and the gain weight K i Let be 0.8.

[0033] Next, a method for calculating operation command candidates by the command candidate calculation unit 24 will be described. First, the command candidate calculation unit 24 calculates the operation command candidates by calculating the command parameters included in the command parameter set (in the case of FIG. 5, the acceleration increase time kt1, the acceleration constant time kt2, the acceleration decrease time kt3, the deceleration increase time gt1, the deceleration constant time gt2, the deceleration decrease time gt3, the maximum acceleration acc max and maximum deceleration dec max ) sets M1 sets of initial values (M1>1) for each of the command parameter sets. The command candidate calculation unit 24 may determine the initial values of the command parameter set by defining a range for each command parameter and performing a grid search, or may determine them randomly using Latin hypercube sampling or the like. The range for each command parameter is set so that the delivery time does not exceed the first settling time T1. This allows the command candidate calculation unit 24 to set the initial values of the command parameter set over a wide range, and to globally calculate operation command candidates. Note that the method for setting the initial values of the command parameter set is not particularly limited to these.

[0034] Next, for each initial value of the instruction parameter set in the M1 set, the instruction candidate calculation unit 24 calculates the value of the evaluation function shown in Equation (1). The instruction candidate calculation unit 24 selects an instruction parameter set for which the value of the evaluation function is less than or equal to a predetermined value V1 and the payout time is less than or equal to a predetermined value V2. The instruction candidate calculation unit 24 calculates an operation instruction corresponding to the selected M2 set (M2≥1, M2<M1) of instruction parameter sets as an operation instruction candidate. The predetermined values V1 and V2 may be preset fixed values or values such that a certain number of parameter sets remain after selection. Note that the method by which the instruction candidate calculation unit 24 calculates the operation instruction candidate is not limited to the above method.

[0035] Based on the evaluation function shown in Equation (1), the instruction candidate calculation unit 24 calculates the operation instruction candidate in a somewhat global manner. Therefore, the calculation time can be shortened compared to the case where the static settling time is calculated using the actual machine or dynamic simulation to calculate the operation instruction candidate. Also, since it is guaranteed that the operation instruction candidate has high vibration damping performance, it becomes an operation instruction that is optimal to some extent. Thus, even if the second operation instruction calculation unit 25 later calculates the second operation instruction using dynamic simulation, the number of trial calculations can be small, so the overall calculation time can be shortened.

[0036] Returning to FIG. 2, when the difference ΔT1 between the first static settling time T1 and the first payout time T 1,com is greater than or equal to a predetermined value ΔT chk the second operation instruction calculation unit 25 calculates a second operation instruction for which the static settling time when the robot 4 is operated is less than or equal to the first static settling time T1 based on the M2 operation instruction candidates, and outputs the second operation instruction as the target instruction. When the difference ΔT1 is greater than or equal to the predetermined value ΔT chkIf the difference is less than 1 / (√{square root over ( ...

[0037] 7 is a flowchart showing an example of the operation of the robot control device 2 in embodiment 1. That is, FIG. 7 is a flowchart showing an example of the robot control method in embodiment 1.

[0038] As shown in FIG. 7, when control of the robot 4 is started by means not shown, the taught position acquisition unit 21 acquires the operation start position and operation end position of the robot 4 (step ST1).

[0039] The first action command calculation unit 22 calculates a first action command based on the action start position and the action end position (step ST2).

[0040] The determination unit 23 calculates the first settling time T1 when the robot 4 is operated in accordance with the first operation command using a dynamics simulation, and calculates the first settling time T1 and the first dispensing time T 1,com The difference ΔT1 between these values is calculated (step ST3).

[0041] The determination unit 23 determines whether the difference ΔT1 is equal to a predetermined value ΔT chk It is determined whether or not it is less than (step ST4).

[0042] If the determination in step ST4 is "Yes", the process proceeds to step ST5, whereas if the determination in step ST4 is "No", the process proceeds to step ST6.

[0043] If the determination in step ST4 is "Yes", the second operation command calculation unit 25 sets the first operation command as the second operation command (step ST5).

[0044] If the determination in step ST4 is "No", the command candidate calculation unit 24 calculates the resonance frequency of the robot 4 (step ST6).

[0045] The command candidate calculation unit 24 sets a characteristic frequency based on the resonance frequency of the robot 4 (step ST7).

[0046] The command candidate calculation unit 24 sets an evaluation function based on the operation command as shown in Equation (1) (step ST8).

[0047] The command candidate calculation unit 24 calculates, as a candidate for an operation command, an operation command that satisfies a predetermined condition for an evaluation function based on the operation command and an issuance time of the operation command (step ST9).

[0048] The second operation command calculation unit 25 calculates a second operation command whose settling time is equal to or shorter than the first settling time T1 based on the operation command candidates (step ST10). The processing of step ST10 will be described in detail later with reference to FIGS. 8 and 9.

[0049] The second operation command calculation unit 25 outputs the second operation command as a target command (step ST11), after which the control of the robot 4 is terminated by means not shown.

[0050] Fig. 8 is a flowchart showing an example of the operation of second operation command calculation unit 25 in embodiment 1. That is, Fig. 8 is a flowchart showing details of the processing of step ST10 in Fig. 7, and is a flowchart for the case where second operation command calculation unit 25 calculates the second operation command using a black-box search algorithm.

[0051] As shown in FIG. 8, when second action command calculation section 25 starts the calculation process of the second action command, it sets the number of searches K (K≧1) to a predetermined value (step ST101).

[0052] Second operation command calculation unit 25 initializes counter k to 1 (step ST102).

[0053] The second operation command calculation unit 25 generates an additional M3 set of command parameter sets (step ST103). For the first time, i.e., when k=1, the second operation command calculation unit 25 generates an additional M3 set of command parameter sets based on the M2 set of command parameter sets from the command candidate calculation unit 24. Alternatively, the second operation command calculation unit 25 may set the M2 set of command parameter sets from the command candidate calculation unit 24 itself without generating additional command parameter sets. When k>1, the second operation command calculation unit 25 generates an additional M3 set of command parameter sets based on the M3 set of command parameter sets generated in the previous loop.

[0054] The number of sets M3 varies depending on the search method. For example, when swarm reinforcement learning is used as the black-box search algorithm, M3 = M2. When Bayesian optimization is used as the black-box search algorithm, M3 = 1. The number of command parameter sets to be added may be changed depending on the loop variable k. For example, the number of sets to be added may be increased when the loop variable k is small, and may be decreased as the loop variable k increases. The number of sets to be added may be a function of the loop variable k. When the number of command parameter sets to be added depending on the loop variable k is changed, for example, when k = 1, the number of command parameter sets whose values are close to the M2 set of command parameter sets from the command candidate calculation unit 24 may be increased. In this case, the second motion command calculation unit 25 may create a gradient by adding many command parameter sets around a command parameter set that reduces the evaluation function value and delivery time.

[0055] The second movement command calculation unit 25 uses dynamics simulation to calculate the settling time when the robot 4 is operated in accordance with the movement commands based on each of the command parameter sets of the M3 set added in step ST103 (step ST104).

[0056] The second operation command calculation unit 25 calculates the minimum value T min is selected (step ST105).

[0057] The second operation command calculation unit 25 calculates the minimum value T min It is determined whether or not the first settling time T1 is less than the first settling time T1 (step ST106).

[0058] If the determination in step ST106 is "Yes", the process proceeds to step ST 107. If the determination in step ST106 is "No", the process proceeds to step ST108.

[0059] If the determination in step ST106 is "Yes", the second operation command calculation unit 25 calculates the minimum value T min The command parameter set corresponding to the command is stored in the memory (step ST107).

[0060] If the determination in step ST106 is "No", the command parameter set of the first operation command is stored in memory (step ST108).

[0061] The second operation command calculation unit 25 determines whether the loop variable k is equal to the number of searches K (step ST109).

[0062] If the determination in step ST109 is "Yes", the process proceeds to step ST110. If the determination in step ST109 is "No", the process proceeds to step ST111.

[0063] If the determination in step ST109 is "Yes," second operation command calculation unit 25 sets the operation command based on the command parameter set stored in memory as the second operation command (step ST110). After that, second operation command calculation unit 25 ends the calculation process of the second operation command.

[0064] If the determination in step ST109 is "No", second action command calculation section 25 increments loop variable k by 1 (step ST111). After that, second action command calculation section 25 performs the process of step ST103 again.

[0065] Fig. 9 is a flowchart showing another example of the operation of second operation command calculation unit 25 in embodiment 1. That is, Fig. 9 is a flowchart showing details of the processing of step ST10 in Fig. 7, and is a flowchart for the case where second operation command calculation unit 25 calculates a second operation command using an algorithm that finds a quasi-optimal solution without using a black-box search algorithm.

[0066] As shown in FIG. 9, when the second operation command calculation unit 25 starts the calculation process of the second operation command, it selects the command parameter set p that has the shortest delivery time from among the M2 sets of command parameter sets from the command candidate calculation unit 24. tmp (step ST121).

[0067] The second operation command calculation unit 25 calculates the command parameter set p tmp The settling time T when the robot 4 is operated by the operation command based on tmp is calculated using dynamic simulation (step ST122).

[0068] The second operation command calculation unit 25 calculates the settling time T tmp It is determined whether the time T1 is less than the first settling time T1 (step ST123).

[0069] If the determination in step ST123 is "Yes", the process proceeds to step ST124. If the determination in step ST123 is "No", the process proceeds to step ST125.

[0070] If the determination in step ST123 is "Yes", the second operation command calculation unit 25 calculates the command parameter set p tmp is stored in the memory (step ST124).

[0071] If the determination in step ST123 is "No", second operation command calculation section 25 stores the command parameter set of the first operation command in memory (step ST125), and the process then proceeds to step ST126.

[0072] The second operation command calculation unit 25 selects the command parameter set p from the M2 set of command parameter sets from the command candidate calculation unit 24, which has not yet been subjected to the determination in the subsequent step ST127. slct (step ST126).

[0073] The second operation command calculation unit 25 calculates the command parameter set p slct The value of the evaluation function corresponding to the command parameter set p tmp It is determined whether the value is less than the value of the evaluation function corresponding to (step ST127).

[0074] If the determination in step ST127 is "Yes", the process proceeds to step ST128. If the determination in step ST127 is "No", the process returns to step ST126.

[0075] If the determination in step ST127 is "Yes", the second operation command calculation unit 25 calculates the command parameter set p slct The settling time T when the robot 4 is operated by the operation command based on slct is calculated using dynamic simulation (step ST128).

[0076] The second operation command calculation unit 25 calculates the settling time T slct is the settling time T tmp It is determined whether or not it is less than the predetermined value (step ST129).

[0077] If the determination in step ST129 is "Yes", the process proceeds to step ST130. If the determination in step ST129 is "No", the process proceeds to step ST131.

[0078] If the determination in step ST129 is "Yes", the second operation command calculation unit 25 calculates the command parameter set p slct is stored in memory, and the command parameter set p slct The value of p tmp (step ST130).

[0079] The second operation command calculation unit 25 determines whether or not evaluation has been completed for all of the command parameter sets of the M2 set from the command candidate calculation unit 24 (step ST131). That is, the second operation command calculation unit 25 determines whether or not the determination of step ST127 has been performed for all of the command parameter sets of the M2 set.

[0080] If the determination in step ST131 is "Yes", the process proceeds to step ST132. If the determination in step ST131 is "No", the process returns to step ST126.

[0081] If the determination in step ST131 is "Yes," second operation command calculation unit 25 sets the operation command based on the command parameter set stored in memory as the second operation command (step ST132). After that, second operation command calculation unit 25 ends the calculation process of the second operation command.

[0082] According to the first embodiment described above, the determination unit 23 determines whether to calculate the motion command candidates and the second motion command based on the difference between the settling time and the delivery time when the robot 4 is operated by the first motion command, so only the minimum amount of calculation is required. Even if it is determined that calculation should be performed, the command candidate calculation unit 24 can perform a global search for motion command candidates based on an evaluation function with a low calculation load. Thereafter, the second motion command calculation unit 25 calculates the second motion command using dynamics simulation. However, since the motion command candidates calculated by the command candidate calculation unit 24 are motion commands that are optimized to a certain extent, the second motion command can be calculated with a small number of trials. Therefore, even if the motion command before adjustment and the motion command after adjustment are significantly different, the calculation time can be reduced.

[0083] Embodiment 2 In the second embodiment, the robot control device 2a uses the sensor 5 to calculate the second operation command.

[0084] Fig. 10 is a block diagram showing an example of a robot control device 2a according to embodiment 2. Fig. 10 differs from Fig. 2 in that the robot control device 2a includes a sensor 5, a determination unit 23a instead of the determination unit 23, a command candidate calculation unit 24a instead of the command candidate calculation unit 24, and a second operation command calculation unit 25a instead of the second operation command calculation unit 25. Since the components other than the determination unit 23a, the command candidate calculation unit 24a, and the second operation command calculation unit 25a are the same as those shown in Fig. 2, a description thereof will be omitted.

[0085] The sensor 5 is a sensor that measures the position of the end effector 43. However, without being limited to this, the sensor may be a sensor that can calculate the state quantity of the end effector 43 by numerical calculation, such as an encoder that measures the state quantity of a load directly or indirectly connected to the actuator 41, a speed sensor, or an acceleration sensor. In this case, the sensor information from the sensor 5 is a state quantity such as the position, speed, or acceleration of the end effector 43. The sensor information may also be a state quantity of the load connected to the actuator 41.

[0086] The determination unit 23a uses sensor information from the sensor 5 instead of dynamics simulation. Specifically, the determination unit 23a causes the robot 4 to actually operate in accordance with the first operation command, and calculates the first settling time T1 using the sensor information from the sensor 5. Other processes are the same as those performed by the determination unit 23 in the first embodiment.

[0087] The command candidate calculation unit 24a calculates the characteristic frequency f of the evaluation function shown in Equation (1) based on the sensor information from the sensor 5. i Specifically, the command candidate calculation unit 24a acquires the vibration characteristics of the robot 4 by extracting information about the residual vibration after the command to the robot 4 is completed from the sensor information. The command candidate calculation unit 24a performs a fast Fourier transform on the extracted residual vibration component to identify one or more peak frequencies contained in the residual vibration. The command candidate calculation unit 24a calculates the resonant frequency of the robot 4 based on the identified peak frequencies, and obtains a characteristic frequency f i The other processes are the same as those performed by the command candidate calculation unit 24 in the first embodiment.

[0088] Second movement command calculation unit 25a uses sensor information from sensor 5 instead of dynamics simulation. Specifically, second movement command calculation unit 25a causes robot 4 to actually move, and calculates a second movement command using the sensor information from sensor 5. Other processing is the same as the processing performed by second movement command calculation unit 25 in the first embodiment.

[0089] The user may update the dynamics simulation based on the vibration characteristics of the robot 4 acquired from the sensor 5. In this case, the determination unit 23a calculates the first settling time T1 using the updated dynamics simulation. Similarly, the second movement command calculation unit 25a calculates the second movement command using the updated dynamics simulation. The timing of updating the dynamics simulation is not particularly limited, and the dynamics simulation may be updated, for example, when the amount of change in the resonant frequency since the previous update reaches or exceeds a certain value. However, in the following, the determination unit 23a and the second movement command calculation unit 25a are assumed to use sensor information from the sensor 5.

[0090] FIG. 11 is a flowchart showing an example of the operation of the robot control device 2a in the second embodiment. That is, FIG. 11 is a flowchart showing an example of a robot control method in the second embodiment. FIG. 11 differs from FIG. 7 in that step ST12 is performed instead of step ST3, step ST13 is performed instead of step ST6, step ST14 is performed instead of step ST7, step ST15 is performed instead of step ST8, and step ST16 is performed instead of step ST10. Steps other than step ST12 to ST16 are the same as those shown in FIG. 7, and therefore description thereof will be omitted.

[0091] The determination unit 23a calculates the first settling time T1 when the robot 4 is operated in accordance with the first operation command using the sensor 5, and calculates the first settling time T1 and the first dispensing time T 1,com The difference ΔT1 between these values is calculated (step ST12).

[0092] If the determination in step ST4 is "No", the command candidate calculation unit 24a calculates the resonance frequency of the robot 4 based on the sensor information from the sensor 5 (step ST13).

[0093] The command candidate calculation unit 24a sets a characteristic frequency based on the resonance frequency of the robot 4 (step ST14).

[0094] The command candidate calculation unit 24a sets an evaluation function based on the operation command as shown in Equation (1) (step ST15).

[0095] The second motion command calculation unit 25a calculates a second motion command whose settling time is equal to or shorter than the first settling time T1 based on the motion command candidates (step ST16). When the second motion command calculation unit 25a calculates the second motion command, the settling time is calculated using sensor information from the sensor 5 instead of dynamics simulation.

[0096] According to the second embodiment described above, the robot control device 2a can calculate the second movement command in accordance with the actual movement of the robot 4 by using the sensor information from the sensor 5. Furthermore, even if the vibration characteristics of the robot 4 change due to aging or the like, the second movement command can be calculated with high accuracy.

[0097] Embodiment 3 In the third embodiment, the robot control device 2b calculates the weight K of the gain of the evaluation function shown in the formula (1) based on the relationship between the vibration of the robot 4 and the state quantity of the end effector 43. i Set.

[0098] Fig. 12 is a block diagram showing an example of a robot control device 2b according to embodiment 3. Fig. 12 differs from Fig. 2 in that a command candidate calculation unit 24b is provided instead of the command candidate calculation unit 24. Since the components other than the command candidate calculation unit 24b are the same as those shown in Fig. 2, a description thereof will be omitted.

[0099] The command candidate calculation unit 24b calculates the weight K of the gain of the evaluation function shown in Equation (1) based on the relationship between the vibration of the robot 4 and the state quantity of the end effector 43. i That is, the command candidate calculation unit 24b sets the weight K of the gain based on the influence of the vibration of the robot 4 on the state quantity of the end effector 43. iis set. Figures 13(a) and 13(b) are graphs showing an example of the relationship between the state quantity of the end effector 43 and the settling time in embodiment 3. Figure 13(a) is a graph where the horizontal axis represents time and the vertical axis represents the horizontal position of the end effector 43 as a state quantity. Figure 13(b) is a graph where the horizontal axis represents time and the vertical axis represents the height position of the end effector 43 as a state quantity. In Figure 13, a part of the graph within the delivery time is omitted.

[0100] As shown in FIG. 13(a), the stabilization time of the lateral position of the end effector 43 is T a As shown in FIG. 13(b), the time required for the end effector 43 to settle in the height direction is T b The settling time T a and T b is T a >T b The overall settling time is T a Furthermore, to shorten the overall settling time, it is desirable to suppress lateral vibrations.

[0101] One method for estimating the effect of vibration of the robot 4 on the state quantity of the end effector 43 is to use a Jacobian matrix that represents the minute displacement of the position and posture of the end effector 43 when each joint of the robot 4 is slightly displaced. The Jacobian matrix is expressed by the following equation (3).

[0102]

number

[0103] g i (i=1~m, m is the function g i The number of (x) is a function of forward kinematics when calculating the position and orientation of the end effector 43 from the joint angles of the robot 4. j(j = 1 to n, n is the number of joints) is the angle of each joint. By looking at the components of each row of the Jacobian matrix, it is possible to understand the amount of change in the state quantity of the end effector 43 relative to the amount of change in the angle of a certain joint of the robot 4. In the example of FIG. 13, the command candidate calculation unit 24b extracts a row in the Jacobian matrix that corresponds to the lateral position of the end effector 43, and selects a component with a large absolute value from the components of the extracted row. Since the column corresponding to the selected component corresponds to a joint of the robot 4, the command candidate calculation unit 24b identifies a vibration mode in which the contribution rate of the corresponding joint is large, and increases the gain weight for that vibration mode. A method for setting the gain weight for the evaluation function will be described below.

[0104] In order to set the weights of the gains, the command candidate calculation unit 24b performs a vibration mode analysis of the robot 4. The equation of motion of the robot 4 is given by the following mathematical expression (4).

[0105]

number

[0106] m is the inertia matrix of the robot arm 42, h is a vector representing the centrifugal force and Coriolis force, k is the vector of the torsional stiffness of the reducer connected to each joint axis, x is the joint angle vector of the robot 4, the dots above x are the first-order differential (one dot) and second-order differential (two dots) of x, x tgt is the command angle vector for each joint axis. The equation of motion shown in formula (4) is Taylor expanded with the joint angles and joint angular velocities at the end position of the robot 4's movement, and linearized using the linearization coefficient matrices M, C, and K, resulting in the following formula (5).

[0107]

number

[0108] Next, a matrix Φ is calculated so that the following formula (6) holds.

[0109]

number

[0110] where Λ is a diagonal matrix. The frequencies of the vibration modes of the robot 4 can be calculated from each component of the diagonal matrix Λ. Furthermore, the mode vector of the vibration mode is an eigenvector when one of the diagonal components of the diagonal matrix Λ is set as an eigenvalue. The command candidate calculation unit 24b determines the gain weight of the evaluation function according to the magnitude of the absolute value of the component included in the eigenvector that corresponds to the joint selected in the Jacobian matrix. For example, if the absolute value is a, the gain weight for the corresponding frequency is set to a. In this case, it is desirable to normalize each eigenvector.

[0111] Also, using the matrix Φ in which the eigenvectors are arranged, q=Φ -1 When we perform the transformation x, Φ T CΦ(Φ T When the off-diagonal components of the equation (transpose matrix of Φ) are small, that is, when the vibration damping is small, the vibration can be decomposed into each vibration mode. A general solution for the vibration can be obtained by analyzing the equation of motion for each decomposed vibration mode using a known method. The vibration damping ratio can be obtained from this general solution. For example, when the damping ratio of a certain vibration mode is b, the command candidate calculation unit 24b sets the weight of the evaluation function for the corresponding frequency to b. Furthermore, since the natural frequency changes depending on the damping characteristics, the command candidate calculation unit 24b calculates the characteristic frequency f i f shown in the following formula (7) i '.

[0112]

number

[0113] Fig. 14 is a flowchart showing an example of the operation of the robot control device 2b in embodiment 3. That is, Fig. 14 is a flowchart showing an example of a robot control method in embodiment 3. Fig. 14 differs from Fig. 7 in that step ST17 is performed instead of step ST6, step ST18 is performed instead of step ST7, and step ST19 is performed instead of step ST8. Steps other than step ST17 to ST19 are the same as those shown in Fig. 7, and therefore description thereof will be omitted.

[0114] The command candidate calculation unit 24b calculates the resonance frequency of the robot 4 based on, for example, equation (7) (step ST17).

[0115] The command candidate calculation unit 24b sets the characteristic frequency based on, for example, Equation (7) (step ST18).

[0116] The command candidate calculation unit 24b sets an evaluation function based on the operation command as shown in Equation (1) (step ST19). At this time, the gain weight K i Set.

[0117] According to the third embodiment described above, the equation of motion of the robot 4 is used, and the gain weight K i This allows the evaluation function to be set with high precision, enables the vibration damping performance for frequencies that directly lead to a reduction in the settling time to be preferentially improved, and enables operation command candidates with shorter settling times to be calculated.

[0118] Although the case where the third embodiment is applied to the first embodiment has been described here, the third embodiment can also be applied to the second embodiment.

[0119] Here, the hardware configuration of the robot control devices 2, 2a, and 2b and the control unit 3 in the first to third embodiments will be described. Each function of the robot control devices 2, 2a, and 2b and the control unit 3 can be realized by a processing circuit. The processing circuit includes at least one processor and at least one memory.

[0120] Fig. 15 is a diagram showing the hardware configuration of the robot control devices 2, 2a, 2b and the control unit 3 in the first to third embodiments. The robot control devices 2, 2a, 2b and the control unit 3 can be realized by a processor 6 and memory 7 shown in Fig. 15(a). The processor 6 is, for example, a CPU (Central Processing Unit, also called a central processing unit, processing unit, arithmetic unit, microprocessor, microcomputer, processor, or DSP (Digital Signal Processor)) or a system LSI (Large Scale Integration).

[0121] The memory 7 may be, for example, a non-volatile or volatile semiconductor memory such as RAM (Random Access Memory), ROM (Read Only Memory), flash memory, EPROM (Erasable Programmable Read Only Memory), EEPROM (registered trademark) (Electrically Erasable Programmable Read-Only Memory), HDD (Hard Disk Drive), magnetic disk, flexible disk, optical disk, compact disk, mini disk, or DVD (Digital Versatile Disk).

[0122] The functions of each part of the robot control devices 2, 2a, 2b and the control unit 3 are realized by software or the like (software, firmware, or software and firmware). The software or the like is written as a program and stored in the memory 7. The processor 6 realizes the function of each part by reading and executing the program stored in the memory 7. In other words, it can be said that this program causes the computer to execute the procedure or method of the robot control devices 2, 2a, 2b and the control unit 3.

[0123] The program executed by the processor 6 may be provided as a computer program product stored in a computer-readable storage medium as an installable or executable file. Alternatively, the program executed by the processor 6 may be provided to the robot control devices 2, 2a, 2b and the control unit 3 via a network such as the Internet.

[0124] The robot control devices 2, 2a, 2b and the control unit 3 may also be realized by a dedicated processing circuit 8 shown in Fig. 15(b). When the processing circuit 8 is dedicated hardware, the processing circuit 8 may be, for example, a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, an ASIC (Application Specific Integrated Circuit), an FPGA (Field-Programmable Gate Array), or a combination of these.

[0125] The above describes a configuration in which the functions of each component of the robot control devices 2, 2a, 2b and the control unit 3 are realized either by software or hardware. However, this is not a limitation, and some of the components of the robot control devices 2, 2a, 2b and the control unit 3 may be realized by software, and other components may be realized by dedicated hardware.

[0126] The configurations shown in the above-described first to third embodiments are merely examples, and they can be combined with other known technologies. Furthermore, it is also possible to combine the first to third embodiments with each other. Furthermore, it is also possible to omit or change part of the configuration without departing from the spirit of the invention. [Explanation of symbols]

[0127] 1 robot system, 2, 2a, 2b robot control device, 21 teaching position acquisition unit, 22 first operation command calculation unit, 23, 23a judgment unit, 24, 24a, 24b command candidate calculation unit, 25, 25a second operation command calculation unit, 3 control unit, 4 robot, 41 actuator, 42 robot arm, 43 end effector, 5 sensor, 6 processor, 7 memory, 8 processing circuit.

Claims

1. a teaching position acquisition unit that acquires a motion start position and a motion end position in positioning of the robot; a first operation command calculation unit that calculates a first operation command based on the operation start position and the operation end position; a determination unit that calculates a difference between a first settling time of the first operation command and a first delivery time of the first operation command, and determines whether the difference is less than a predetermined value; a command candidate calculation unit that, when the difference is equal to or greater than the predetermined value, sets an evaluation function related to vibration of the robot based on a pre-specified characteristic frequency, and calculates operation command candidates that satisfy predetermined conditions for the evaluation function and an issuance time of an operation command; a second operation command calculation unit that calculates a second operation command based on the operation command candidate, such that the settling time is equal to or shorter than the first settling time, and outputs the second operation command as a target command, when the difference is equal to or greater than the predetermined value, and sets the first operation command as the second operation command, and outputs the second operation command as a target command, when the difference is less than the predetermined value; A robot control device comprising:

2. A robot control device as described in Claim 1, wherein the command candidate calculation unit, when the difference is greater than or equal to the predetermined value, calculates a gain at the characteristic frequency by substituting the characteristic frequency in the Laplace transform of the operation command, and sets the evaluation function including the gain.

3. The robot control device according to claim 2 , wherein the command candidate calculation unit sets the evaluation function including the gain and a weight for the gain.

4. The robot control device according to claim 3 , wherein the characteristic frequency is a resonance frequency of the robot.

5. The robot control device according to claim 4 , wherein the characteristic frequency is a frequency within a predetermined range around the resonant frequency.

6. The robot control device according to claim 3 , wherein the command candidate calculation unit sets weights for the gains based on a relationship between vibrations of the robot and state quantities of an end effector connected to the robot.

7. The robot control device according to claim 3 , wherein the command candidate calculation unit sets the weight of the gain based on a damping ratio of a vibration mode of the robot.

8. The robot control device according to claim 1 , wherein the second operation command calculation unit calculates the second operation command using a black-box search algorithm.

9. The robot control device according to claim 8 , wherein the black-box search algorithm is swarm reinforcement learning.

10. The robot control device according to claim 1 , wherein command parameters to be calculated for the operation command candidate and the second operation command are at least a maximum speed, an acceleration time, and a deceleration time.

11. acquiring a motion start position and a motion end position in positioning the robot; calculating a first movement command based on the movement start position and the movement end position; calculating a difference between a first settling time of the first operation command and a first delivery time of the first operation command, and determining whether the difference is less than a predetermined value; If the difference is equal to or greater than the predetermined value, setting an evaluation function relating to vibration of the robot based on a pre-specified characteristic frequency, and calculating an operation command candidate that satisfies predetermined conditions for the evaluation function and an issuance time of the operation command; When the difference is equal to or greater than the predetermined value, calculating a second operation command based on the operation command candidate such that the settling time is equal to or less than the first settling time, and outputting the second operation command as a target command; when the difference is less than the predetermined value, setting the first operation command as the second operation command, and outputting the second operation command as a target command; A robot control method comprising:

Citation Information

Patent Citations

  • Robot control system parameter regulating device

    JP1993301196A

  • Vibration reducing device for robot

    JP1994250723A

  • Device for adjusting impedance control parameter and method for adjusting the same

    JP2011088225A

  • Control device, robot and robot system

    JP2019111604A

  • Robot control device

    JP2021013999A