WO2023162031A1 - ロボット制御装置およびロボット制御方法 - Google Patents

ロボット制御装置およびロボット制御方法 Download PDF

Info

Publication number
WO2023162031A1
WO2023162031A1 PCT/JP2022/007357 JP2022007357W WO2023162031A1 WO 2023162031 A1 WO2023162031 A1 WO 2023162031A1 JP 2022007357 W JP2022007357 W JP 2022007357W WO 2023162031 A1 WO2023162031 A1 WO 2023162031A1
Authority
WO
WIPO (PCT)
Prior art keywords
command
motion
robot
calculation unit
time
Prior art date
Application number
PCT/JP2022/007357
Other languages
English (en)
French (fr)
Inventor
七星 春尾
Original Assignee
三菱電機株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 三菱電機株式会社 filed Critical 三菱電機株式会社
Priority to JP2024502284A priority Critical patent/JPWO2023162031A1/ja
Priority to PCT/JP2022/007357 priority patent/WO2023162031A1/ja
Publication of WO2023162031A1 publication Critical patent/WO2023162031A1/ja

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/10Programme-controlled manipulators characterised by positioning means for manipulator elements
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/416Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by control of velocity, acceleration or deceleration

Definitions

  • the present disclosure relates to a robot control device and a robot control method.
  • the work efficiency is improved by setting the operation command to speed up the movement from the start position to the end position.
  • the operation speed is simply increased, there is a problem that vibration occurs in the end effector due to insufficient rigidity of the reduction gear of the robot driving system and the robot arm, and the static stabilization time becomes long. For this reason, techniques have been developed to adjust the operation command so as to keep the operation at high speed while suppressing the vibration.
  • Patent Document 1 discloses a robot control device that calculates a motion correction amount while adjusting a motion command based on sensor data when the robot is operated only by a real machine or dynamics simulation.
  • Patent Document 1 since the motion command is adjusted based on the sensor data when the robot is operated using only the actual machine or dynamics simulation, if the motion command before adjustment and the motion command after adjustment are far apart, Computation takes time. Thus, there is a problem that it is unsuitable for global adjustment.
  • the present disclosure has been made to solve the above-described problems, and aims to provide a robot control device and a robot control method that reduce the time required to adjust motion commands.
  • a robot control device includes a teaching position acquisition unit that acquires an operation start position and an operation end position in positioning a robot, and a first operation command that is calculated based on the operation start position and the operation end position. and a first motion command calculation unit that calculates the difference between the first settling time of the first motion command and the first payout time of the first motion command, and determines whether the difference is less than a predetermined value.
  • a determination unit for determining, a command candidate calculation unit for calculating, when the difference is equal to or greater than the predetermined value, an operation command candidate that satisfies a predetermined condition with respect to an evaluation function based on the operation command and the time to issue the operation command;
  • a second motion command is calculated based on the motion command candidate so that the settling time is equal to or less than the first settling time, and the second motion command is output as a target command.
  • a second operation command calculation unit that 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 method includes a step of acquiring an operation start position and an operation end position in positioning a robot, and calculating a first operation command based on the operation start position and the operation end position. calculating a difference between a first settling time of the first motion command and a first payout time of the first motion command, and determining whether the difference is less than a predetermined value; if the difference is equal to or greater than the predetermined value, calculating an operation command candidate that satisfies a predetermined condition with respect to an evaluation function based on the operation command and the output time of the operation command; calculates a second motion command whose static settling time is equal to or less than the first static settling time based on the motion command candidate, outputs the second motion command as a target command, and outputs the second motion command as a target command, wherein 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 the target command.
  • the robot control device and the robot control method enable a global search using an evaluation function based on the motion command, so the motion command before adjustment and the motion command after adjustment are far apart. can shorten the computation time.
  • FIG. 1 is a block diagram showing an example of a robot control device according to Embodiment 1;
  • FIG. 4 is a graph showing an example of an operation command in Embodiments 1 to 3;
  • 4 is a graph showing the definition of settling time in Embodiments 1 to 3.
  • FIG. 4 is a graph showing definitions of command parameters in Embodiments 1 to 3.
  • FIG. It is an example of the resonance frequency of the robot 4 in Embodiments 1-3.
  • 4 is a flow chart showing an example of the operation of the robot control device according to Embodiment 1;
  • 4 is a flow chart showing an example of the operation of a second action command calculation section according to Embodiment 1.
  • FIG. 9 is a flow chart showing another example of the operation of the second action command calculation section in Embodiment 1.
  • FIG. FIG. 10 is a block diagram showing an example of a robot control device according to Embodiment 2;
  • FIG. 9 is a flow chart showing an example of the operation of the robot control device according to Embodiment 2;
  • FIG. 11 is a block diagram showing an example of a robot control device according to Embodiment 3;
  • FIG. 12 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;
  • FIG. 14 is a flow chart showing an example of the operation of the robot control device according to Embodiment 3;
  • 3 is a diagram showing a hardware configuration of a robot control device and a control unit according to Embodiments 1 to 3;
  • FIG. 1 is a diagram showing an example of the configuration of a robot system 1 according to Embodiment 1. As shown in FIG. A robot system 1 includes a robot controller 2 , a controller 3 , and a robot 4 .
  • the robot control device 2 calculates a second motion command based on the motion start position and motion end position in positioning the robot 4, and outputs the second motion command to the control unit 3 as a target command.
  • Positioning of the robot 4 means positioning of the end effector 43 connected to the robot 4 .
  • the robot control device 2 may be configured not within the robot system 1, but within a personal computer outside the robot system 1 or in the cloud. The robot control device 2 will be described later in detail with reference to FIG.
  • the control unit 3 calculates a control signal for controlling the robot 4 according to the second motion command from the robot control device 2 and outputs the control signal to the actuator 41 of the robot 4 .
  • the robot 4 includes an actuator 41 that drives the robot arm 42 and the 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 speed reducer.
  • FIG. 2 is a block diagram showing an example of the robot control device 2 according to the first embodiment.
  • the robot control device 2 includes a teaching position acquisition unit 21, a first motion command calculation unit 22, a determination unit 23, a command candidate calculation unit 24, and a second motion command calculation unit 25. Prepare.
  • the teaching position acquisition unit 21 acquires the motion start position and the motion end position in positioning the robot 4 .
  • the motion start position and motion end position are generated in advance by a means (not shown).
  • the first motion command computation unit 22 computes the first motion command based on the motion start position and motion end position from the teaching position acquisition unit 21 .
  • the operation command is any one of a position command, a speed command, an acceleration/deceleration command, etc. to the end effector 43 .
  • 3 is a graph showing an example of an operation command according to Embodiment 1.
  • FIG. FIG. 3 is a graph for a speed command to the end effector 43.
  • FIG. The horizontal axis is the time, and the vertical axis is the speed command.
  • the motion command consists of 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, a function of the graph shown in FIG. 3, or point sequence data sampled for each control cycle based on the graph of FIG. . If the operation command is the above variable or the function of the graph shown in FIG. Also, the operation command may be composed of variables other than the above variables.
  • the first motion command calculator 22 calculates the first motion command by a known method based on the motion start position and the motion end position from the taught position acquisition part 21 .
  • the first motion command calculator 22 computes the first motion command so as to maximize the angular acceleration while satisfying the constraints such as the angular acceleration of each joint axis of the robot 4 . That is, the first action command calculation unit 22 calculates the first action command so that the payout time is the shortest within the range that satisfies the constraint conditions.
  • the first action command calculation section 22 outputs a first action command to the determination section 23 and the second action command calculation section 25 .
  • the first motion command corresponds to a target command when the command candidate computation unit 24 and the second motion command computation unit 25, which will be described later, do not perform computation processing.
  • the payout time refers to the period of the action command waveform from the action start position to the action end position. In the case of FIG. 3, the payout time is the sum of the acceleration time tk , the constant speed time tt and the deceleration time tg .
  • the determination unit 23 calculates the first stationary time T1 when the robot 4 is operated according to the first motion command from the first motion command calculation unit 22.
  • FIG. the determination unit 23 calculates the first settling time T1 by operating the robot 4 using dynamics simulation.
  • the first settling time T1 is a settling time when the operation command is set as the first operation command in the settling time of the operation command, which will be described later with reference to FIG.
  • the first payout time T 1, com is set to the first action command in the payout time of the action command shown in FIG . is the payout time of the hour.
  • FIG. 4 is a graph showing the definition of settling time in the first embodiment.
  • the horizontal axis is time
  • the vertical axis is the state quantity of the end effector 43 .
  • the time T indicates the time when the state quantity of the end effector 43 remains within the allowable range for the first time. 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 speed or acceleration of the end effector 43 .
  • the command candidate calculation unit 24 calculates a motion command candidate that satisfies a predetermined condition with respect to the evaluation function based on the motion command and the motion command output time. do. If the difference ⁇ T 1 is less than the predetermined value ⁇ T chk , the command candidate calculation unit 24 does not perform any processing.
  • the difference ⁇ T 1 is less than the predetermined value ⁇ T chk
  • the amplitude of the residual vibration generated by the resonance of the robot 4 is smaller than the allowable range
  • the first settling time T 1 is the first payout time T 1,com is almost the same as
  • a method for setting the evaluation function and a method for calculating the operation command candidate by the command candidate calculation unit 24 will be described below.
  • the command candidate computation unit 24 computes the gain at the characteristic frequency specified in advance based on the operation command, and sets an evaluation function including the gain and the weight of the gain.
  • the evaluation function COST(p) is the following formula (1).
  • N s is the set number of characteristic frequencies
  • f i is the characteristic frequency
  • K i is the gain weight at the characteristic frequency
  • F(p, f i ) is the gain at the characteristic frequency f i
  • p is the command parameter set.
  • the command parameter set p is a collection of motion command candidates and command parameters that are subject to calculation of a second motion command to be described later. That is, calculating the motion command candidate and the second motion command is equivalent to computing the command parameter set p.
  • FIG. 5(a) and 5(b) are graphs showing definitions 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 of FIG. 5(a).
  • the command parameters are acceleration increase time kt 1 , acceleration constant time kt 2 , acceleration decrease time kt 3 , deceleration increase time gt 1 , deceleration constant time gt 2 , deceleration decrease time gt 3 , maximum acceleration acc max . and maximum deceleration dec max .
  • the constant speed time ct is set based on the command parameters so that the robot 4 reaches the motion end position. Therefore, the constant speed time ct is not included in the command parameters.
  • the command parameter may be a parameter in the speed command of FIG. 5(b).
  • the command parameters should include at least maximum speed, acceleration time and deceleration time.
  • the maximum speed is v max in FIG. 5(b).
  • the acceleration time is the sum of acceleration increase time kt- 1 , acceleration constant time kt- 2 , and acceleration decrease time kt -3 .
  • the deceleration time is the sum of deceleration increase time gt- 1 , deceleration constant time gt- 2 , and deceleration decrease time gt- 3 .
  • Gain F(p, f i ) in Equation (1) is calculated by substituting characteristic frequency f i for frequency f in gain F(p, f) in Equation (2) below.
  • j is the imaginary unit
  • is the circular constant
  • G(2 ⁇ j*f) is the Laplace transform of the time function g(t) into the frequency domain f.
  • the time function g(t) expresses the motion command shown in FIG. 3 as a function.
  • is the absolute value of the function G;
  • the characteristic frequency f i in Equation (1) is, for example, the resonance frequency of the robot 4 calculated in advance.
  • FIG. 6 shows an example of resonance frequencies of the robot 4 according to the first embodiment.
  • FIG. 6 shows resonance frequencies calculated in advance every 0.1 [sec].
  • the characteristic frequencies fi are 10 [Hz], 18 [Hz], 23 [Hz], 41.2 [Hz], 66 [Hz] and 132 [Hz].
  • the command candidate calculation unit 24 may set the resonance frequency other than the time when the operation ends in each vibration mode as the characteristic frequency.
  • the command candidate calculation unit 24 may set not only the resonance frequency of the robot 4 but also a frequency within a predetermined range around the resonance frequency as the characteristic frequency.
  • the predetermined range may be a range of ⁇ 1 [Hz], for example.
  • 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 other vibration modes.
  • the command candidate calculation unit 24 may set, for example, 9 to 11 [Hz] as the characteristic frequency in increments of 0.5 [Hz].
  • the gain weight K i in Equation (1) may be sloped so that it increases as the resonance frequency decreases, or may be uniform for each resonance frequency.
  • the command candidate calculation unit 24 sets a frequency within a predetermined range before and after the resonance frequency as the characteristic frequency, for example, the gain weight K i at the resonance frequency is set to 1, and the gain weight K at frequencies 1 [Hz] before and after the resonance frequency. Let i be 0.8.
  • the command candidate calculation unit 24 calculates command parameters included in the command parameter set (in the case of FIG. 5, acceleration increase time kt 1 , constant acceleration time kt 2 , acceleration decrease time kt 3 , deceleration increase time gt 1 , deceleration
  • the initial values of the fixed time gt 2 , the deceleration decrease time gt 3 , the maximum acceleration acc max and the maximum deceleration dec max are set to M 1 (M 1 >1).
  • the command candidate calculation unit 24 may determine the initial value of the command parameter set by determining the range of each command parameter and performing a grid search, or may randomly determine the initial value by Latin hypercube sampling or the like.
  • the range of each command parameter is set such that the payout time does not exceed the first settling time T1 .
  • the command candidate calculation unit 24 can set the initial values of the command parameter set in a wide range, and can globally calculate the motion command candidates. Note that the method of setting the initial values of the command parameter set is not particularly limited to these.
  • the command candidate calculation unit 24 calculates the value of the evaluation function shown in Equation (1) for each of the initial values of the M1 sets of command parameter sets.
  • the command candidate calculation unit 24 selects a command parameter set in which the value of the evaluation function is equal to or less than a predetermined value V1 and the payout time is equal to or less than a predetermined value V2 .
  • the command candidate computing unit 24 computes motion commands corresponding to the command parameter sets of the selected M 2 sets (M 2 ⁇ 1, M 2 ⁇ M 1 ) as motion command candidates.
  • Predetermined values V1 and V2 may be preset fixed values, or may be values such that a certain number of parameter sets remain after selection. It should be noted that the method by which the command candidate computation unit 24 computes the motion command candidates is not limited to the above method.
  • the command candidate computing unit 24 computes the motion command candidate globally to some extent based on the evaluation function shown in formula (1). Therefore, the calculation time can be shortened compared to the case of calculating the settling time using the actual machine or the dynamics simulation and calculating the operation command candidate. In addition, since it is guaranteed that the motion command candidate has a high damping property, it becomes a motion command that is optimal to some extent. Therefore, even if the second motion command computing unit 25 computes the second motion command later using the dynamics simulation, the number of trials is small, so the computation time can be shortened as a whole.
  • the second operation command calculation unit 25 calculates M 2 Based on the motion command candidates, a second motion command is calculated so that the static settling time is equal to or less than the first static settling time T1 when the robot 4 is operated, and the second motion command is output as a target command.
  • the second action command calculation unit 25 sets the first action command as the second action command and outputs the second action command as the target command.
  • the second action command calculation unit 25 may calculate the second action command using a black box search algorithm, or may calculate the second action command using an algorithm for obtaining a suboptimal solution without using the black box search algorithm. can be calculated. Details of each algorithm will be described in detail later with reference to FIGS. 8 and 9.
  • FIG. Group reinforcement learning is an example of a black-box search algorithm. It should be noted that the method by which the second action command calculation unit 25 calculates the second action command is not limited to these.
  • FIG. 7 is a flow chart showing an example of the operation of the robot control device 2 according to the first embodiment. That is, FIG. 7 is a flow chart showing an example of the robot control method according to the first embodiment.
  • the teaching position acquisition unit 21 acquires the motion start position and motion end position of the robot 4 (step ST1).
  • the first motion command computing section 22 computes the first motion command based on the motion start position and the motion end position (step ST2).
  • the determination unit 23 calculates the first settling time T1 when the robot 4 is operated according to the first motion command using dynamics simulation, and determines the first settling time T1 , the first payout time T1 , and the first settling time T1 . com is calculated (step ST3 ).
  • the determination unit 23 determines whether or not the difference ⁇ T 1 is less than a predetermined value ⁇ T chk (step ST4).
  • step ST4 If the determination in step ST4 is "Yes”, the process proceeds to step ST5. If the determination in step ST4 is "No”, the process proceeds to step ST6.
  • step ST4 If the determination in step ST4 is "Yes", the second action command calculation section 25 sets the first action command as the second action command (step ST5).
  • step ST4 If the determination in step ST4 is "No", the command candidate calculation unit 24 calculates the resonance frequency of the robot 4 (step ST6).
  • the command candidate calculation unit 24 sets the characteristic frequency based on the resonance frequency of the robot 4 (step ST7).
  • the command candidate calculation unit 24 sets an evaluation function based on the motion command as shown in Equation (1) (step ST8).
  • the command candidate computation unit 24 computes, as motion command candidates, motion commands that satisfy predetermined conditions for the evaluation function based on the motion command and the motion command output time (step ST9).
  • the second motion command computing unit 25 computes a second motion command in which the settling time is equal to or shorter than the first settling time T1 based on the motion command candidate (step ST10).
  • the processing of step ST10 will be described later in detail with reference to FIGS. 8 and 9. FIG.
  • the second motion command calculator 25 outputs the second motion command as the target command (step ST11). After that, the control of the robot 4 is terminated by means not shown.
  • FIG. 8 is a flow chart showing an example of the operation of the second operation command calculation section 25 according to Embodiment 1.
  • FIG. 8 is a flowchart showing the details of the process of step ST10 in FIG. 7, and is a flowchart when the second action command calculation section 25 calculates the second action command using the black box search algorithm.
  • the second action command calculation unit 25 when the second action command calculation unit 25 starts the calculation processing of the second action command, it sets the search count K (K ⁇ 1) to a predetermined value (step ST101).
  • the second operation command calculation unit 25 initializes the counter k to 1 (step ST102).
  • the number of command parameter sets to be added may be changed according to the loop variable k. For example, the number of sets to be added may be increased when the loop variable k is small, and the number of sets to be added may be decreased as the loop variable k increases. The number of sets to add may be a function of the loop variable k.
  • the second motion command calculation unit 25 may add a slope such that many command parameter sets are added around the command parameter set that reduces the value of the evaluation function and the payout time.
  • the second motion command calculation unit 25 calculates the static settling time when the robot 4 is operated by motion commands based on each of the M3 sets of command parameter sets added in step ST103, using a dynamics simulation (step ST104).
  • the second operation command calculation unit 25 selects the minimum value T min of the settling time calculated in step ST104 (step ST105).
  • the second operation command calculation unit 25 determines whether or not the minimum value Tmin of the settling time is less than the first settling time T1 (step ST106).
  • step ST106 If the determination in step ST106 is "Yes”, the process proceeds to step ST107. If the determination in step ST106 is "No”, the process proceeds to step ST108.
  • step ST106 When the determination in step ST106 is "Yes", the second operation command calculation section 25 stores in the memory the command parameter set corresponding to the minimum value Tmin of the settling time selected in step ST105 (step ST107). .
  • step ST106 If the determination in step ST106 is "No", the command parameter set of the first motion command is stored in memory (step ST108).
  • the second operation command calculation unit 25 determines whether or not the loop variable k is equal to the search count K (step ST109).
  • step ST109 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.
  • step ST109 determines whether the second action command calculation unit 25 is "Yes" or not. If the determination in step ST109 is "Yes”, the second action command calculation unit 25 sets the action command based on the command parameter set stored in the memory as the second action command (step ST110). After that, the second action command calculation unit 25 ends the calculation processing of the second action command.
  • step ST109 When the determination in step ST109 is "No", the second operation command calculation unit 25 increases the loop variable k by 1 (step ST111). After that, the second operation command calculation section 25 performs the process of step ST103 again.
  • FIG. 9 is a flow chart showing another example of the operation of the second operation command calculation section 25 according to the first embodiment. That is, FIG. 9 is a flowchart showing the details of the process of step ST10 in FIG. It is a flowchart in the case of computing.
  • the payout time of the M2 sets of command parameter sets from the command candidate calculation unit 24 is the shortest.
  • a command parameter set p_tmp is selected (step ST121).
  • the second motion command calculation unit 25 uses dynamics simulation to calculate the settling time T tmp when the robot 4 is operated by the motion command based on the command parameter set p tmp (step ST122).
  • the second operation command calculation unit 25 determines whether or not the settling time Ttmp is less than the first settling time T1 (step ST123).
  • step ST123 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.
  • step ST123 If the determination in step ST123 is "Yes", the second motion command calculator 25 stores the command parameter set p_tmp in the memory (step ST124).
  • step ST123 When the determination in step ST123 is "No", the second motion command calculation unit 25 stores the command parameter set of the first motion command in memory (step ST125). Then, the process proceeds to step ST126.
  • the second operation command calculation unit 25 selects the command parameter set p_slct for which the determination in step ST127 has not been performed, among the M2 sets of command parameter sets from the command candidate calculation unit 24 (step ST126).
  • the second operation command calculation unit 25 determines whether or not the value of the evaluation function corresponding to the command parameter set p_slct is less than the value of the evaluation function corresponding to the command parameter set p_tmp (step ST127).
  • step ST127 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.
  • step ST127 If the determination in step ST127 is "Yes", the second motion command calculation unit 25 calculates the static set time T slct when the robot 4 is operated by the motion command based on the command parameter set p slct using dynamic simulation. Calculate (step ST128).
  • the second operation command calculation unit 25 determines whether or not the settling time Tslct is less than the settling time Ttmp (step ST129).
  • step ST129 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.
  • step ST129 If the determination in step ST129 is "Yes", the second motion command calculator 25 stores the command parameter set p slct in the memory and writes the value of the command parameter set p slct to ptmp (step ST130).
  • the second operation command calculation unit 25 determines whether evaluation of all of the M2 command parameter sets from the command candidate calculation unit 24 has been completed (step ST131). That is, the second operation command calculation unit 25 determines whether or not the determination in step ST127 has been performed for all of the M2 sets of command parameter sets.
  • step ST131 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.
  • step ST131 determines whether the second action command calculation section 25 is "Yes" or not. If the determination in step ST131 is "Yes”, the second action command calculation section 25 sets the action command based on the command parameter set stored in the memory as the second action command (step ST132). After that, the second action command calculation unit 25 ends the calculation processing of the second action command.
  • the determination unit 23 determines the motion command candidate and the second motion based on the difference between the settling time and the dispensing time when the robot 4 is operated by the first motion command. Since it is determined whether or not to perform the operation of the instruction, the minimum necessary operation is sufficient. Even if it is determined that the calculation should be performed, the command candidate calculation unit 24 can search for the operation command candidate globally based on the evaluation function with a small calculation load. After that, the second motion command computing unit 25 computes the second motion command using dynamics simulation. , the second operation command can be calculated with a small number of trials. Therefore, even if the operation command before adjustment and the operation command after adjustment are far apart, the calculation time can be shortened.
  • Embodiment 2 uses the sensor 5 to calculate the second motion command.
  • FIG. 10 is a block diagram showing an example of the robot control device 2a according to the second embodiment.
  • the robot control device 2a includes the sensor 5, the determination unit 23a instead of the determination unit 23, the command candidate calculation unit 24a instead of the command candidate calculation unit 24, and the second motion command. It differs from FIG.
  • the components other than the determination unit 23a, the command candidate calculation unit 24a, and the second motion command calculation unit 25a are the same as those shown in FIG.
  • the sensor 5 is a sensor that measures the position of the end effector 43 . Further, the sensor is not limited to this, and may be a sensor capable of calculating the state quantity of the end effector 43 by numerical calculation, such as an encoder, speed sensor, or acceleration sensor that measures the state quantity of the load directly or indirectly connected to the actuator 41 . may In this case, the sensor information from the sensor 5 is the state quantity such as the position, velocity or acceleration of the end effector 43 . Moreover, the sensor information may be the state quantity of the load connected to the actuator 41 .
  • the determination unit 23a uses sensor information from the sensor 5 instead of the dynamics simulation. Specifically, the determination unit 23a causes the robot 4 to actually move according to the first motion command, and uses the sensor information from the sensor 5 to calculate the first settling time T1 . Other processing is the same as the processing performed by the determination unit 23 in the first embodiment.
  • the command candidate calculation unit 24a changes the characteristic frequency f i of the evaluation function shown in Equation (1). Specifically, the command candidate calculation unit 24a obtains the vibration characteristics of the robot 4 by extracting information about the residual vibration after the completion of the command to the robot 4 from the sensor information. The command candidate calculation unit 24a identifies one or more peak frequencies included in the residual vibration by performing a fast Fourier transform on the extracted residual vibration component. The command candidate calculation unit 24a calculates the resonance frequency of the robot 4 based on the specified peak frequency, and sets the characteristic frequency fi . Other processing is the same as the processing performed by the command candidate calculation unit 24 in the first embodiment.
  • the second motion command calculation unit 25a uses sensor information from the sensor 5 instead of the dynamics simulation. Specifically, the second motion command calculation unit 25a causes the robot 4 to actually move, and uses the sensor information from the sensor 5 to compute the second motion command. Other processing is the same as the processing performed by the second operation command calculation unit 25 in the first embodiment.
  • the user may update the dynamics simulation based on the vibration characteristics of the robot 4 obtained from the sensor 5 .
  • the determination unit 23a calculates the first settling time T1 using the updated dynamics simulation.
  • the second motion command computing unit 25a computes the second motion command using the updated dynamics simulation.
  • the update timing of the dynamics simulation is not particularly limited, and may be updated, for example, when the amount of change in the resonance frequency from the previous update reaches or exceeds a certain value. However, in the following description, it is assumed that the determination unit 23a and the second operation command calculation unit 25a use sensor information from the sensor 5. FIG.
  • FIG. 11 is a flow chart showing an example of the operation of the robot control device 2a according to the second embodiment. That is, FIG. 11 is a flow chart showing an example of the robot control method according to the second embodiment.
  • 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.
  • step ST16 is performed instead of step ST10. Since steps other than steps ST12 to ST16 are the same as those shown in FIG. 7, description thereof is omitted.
  • the determination unit 23a calculates, using the sensor 5 , the first settling time T1 when the robot 4 is operated according to the first motion command, and calculates the first settling time T1 and the first payout time T1 ,com. ⁇ T 1 is calculated (step ST12).
  • step ST4 determines whether the determination in step ST4 is "No" or not.
  • 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).
  • the command candidate calculation unit 24a sets the characteristic frequency based on the resonance frequency of the robot 4 (step ST14).
  • the command candidate calculation unit 24a sets an evaluation function based on the motion command as shown in Equation (1) (step ST15).
  • the second motion command computing unit 25a computes a second motion command in which the settling time is equal to or shorter than the first settling time T1 based on the motion command candidates (step ST16).
  • the second motion command calculator 25a computes the second motion command, it calculates the settling time using the sensor information from the sensor 5 instead of the dynamics simulation.
  • the robot control device 2a can calculate the second motion command according to the actual motion of the robot 4 by using the sensor information from the sensor 5. Further, even if the vibration characteristics of the robot 4 change due to aging, etc., the second motion command can be calculated with high accuracy.
  • Embodiment 3 the robot control device 2b sets the gain weight K i 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 .
  • FIG. 12 is a block diagram showing an example of the robot control device 2b according to the third embodiment.
  • FIG. 12 differs from FIG. 2 in that a command candidate calculation section 24b is provided instead of the command candidate calculation section 24.
  • the command candidate calculation unit 24b sets the gain weight K i 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 . That is, the command candidate calculation unit 24 b sets the gain weight K i based on the influence of the vibration of the robot 4 on the state quantity of the end effector 43 .
  • 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 the third embodiment.
  • FIG. 13A is a graph showing the horizontal position of the end effector 43, with the horizontal axis representing time and the vertical axis representing the state quantity.
  • FIG. 13B is a graph showing the position of the end effector 43 in the height direction, with the horizontal axis representing time and the vertical axis representing the state quantity. In FIG. 13, a part of the graph within the payout period is omitted.
  • the settling time of the lateral position of the end effector 43 is Ta .
  • the settling time of the position of the end effector 43 in the height direction is Tb .
  • the settling times T a and T b have a relationship of T a >T b , and the settling time as a whole is Ta . Furthermore, it is desirable to suppress lateral vibrations in order to shorten the overall settling time.
  • Equation (3) As one method for estimating the influence of the vibration of the robot 4 on the state quantity of the end effector 43, there is a Jacobian matrix that represents the minute displacement of the position and orientation of the end effector 43 when each joint of the robot 4 is slightly displaced.
  • the Jacobian matrix is given by Equation (3) below.
  • the command candidate calculation unit 24b extracts a row corresponding to the lateral position of the end effector 43 in the Jacobian matrix, and selects a component with a large absolute value among the components of the extracted row. Since the column corresponding to the selected component corresponds to the joint of the robot 4, the command candidate calculation unit 24b identifies the vibration mode in which the corresponding joint has a large contribution rate, and increases the weight of the gain in that vibration mode. A method of setting the weight of the gain of the evaluation function will be described below.
  • the command candidate calculation unit 24b performs vibration mode analysis of the robot 4 in order to set gain weights.
  • the equation of motion of the robot 4 is the following formula (4).
  • m is the inertia matrix of the robot arm 42
  • h is the vector representing the centrifugal force and Coriolis force
  • k is the torsional rigidity vector of the reduction gear connected to each joint axis
  • x is the joint angle vector of the robot 4
  • the dots are the first-order differential (one dot) and the second-order differential (two dots) of x
  • x tgt is the command angle vector to each joint axis.
  • is a diagonal matrix.
  • the frequency of the vibration mode of the robot 4 can be calculated from each component of the diagonal matrix ⁇ .
  • the mode vector of the vibration mode is the eigenvector when one of the diagonal components of the diagonal matrix ⁇ is the eigenvalue.
  • the command candidate calculation unit 24b determines the weight of the gain of the evaluation function according to the magnitude of the absolute value of the component corresponding to the joint selected in the Jacobian matrix among the components included in the eigenvector. For example, if the absolute value is a, the gain weight for the corresponding frequency is a. In this case, it is desirable to normalize each eigenvector.
  • the vibration damping when it is small, it can be decomposed into each vibration mode.
  • a general solution of vibration is obtained by analyzing the decomposed equation of motion for each vibration mode by a known technique. From this general solution, the damping ratio of the vibration is obtained. For example, when the damping ratio of a certain vibration mode is b, the command candidate calculator 24b sets the weight of the evaluation function for the corresponding frequency to b. In addition, since the natural frequency changes due to the damping characteristic, the command candidate calculation unit 24b changes the characteristic frequency f i to f i ' shown in Equation (7) below.
  • FIG. 14 is a flow chart showing an example of the operation of the robot control device 2b according to the third embodiment. That is, FIG. 14 is a flow chart showing an example of the robot control method according to the third embodiment. 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. . Since steps other than steps ST17 to ST19 are the same as those shown in FIG. 7, description thereof is omitted.
  • the command candidate calculation unit 24b calculates the resonance frequency of the robot 4 based on the formula (7) as an example (step ST17).
  • the command candidate calculation unit 24b sets the characteristic frequency based on the formula (7) as an example (step ST18).
  • the command candidate calculation unit 24b sets an evaluation function based on the motion command as shown in Equation (1) (step ST19). At this time, the gain weight K i is set based on the mode vector of the vibration mode or the vibration damping ratio.
  • the equation of motion of the robot 4 is used to set the gain weight K i based on the influence of the vibration of the robot 4 on the state quantity of the end effector 43 .
  • the evaluation function it is possible to set the evaluation function with high accuracy, to preferentially improve the damping performance for frequencies directly linked to shortening of the settling time, and to calculate operation command candidates with shorter settling time.
  • the processing circuitry comprises at least one processor and at least one memory.
  • FIG. 15 is a diagram showing the hardware configuration of the robot control devices 2, 2a, 2b and the control section 3 in Embodiments 1-3.
  • the robot controllers 2, 2a, 2b and controller 3 can be realized by the processor 6 and memory 7 shown in FIG. 15(a).
  • the processor 6 is, for example, a CPU (Central Processing Unit, central processing unit, processing unit, arithmetic unit, microprocessor, microcomputer, processor, DSP (Digital Signal Processor)) or system LSI (Large Scale Integration).
  • the memory 7 includes, for example, RAM (Random Access Memory), ROM (Read Only Memory), flash memory, EPROM (Erasable Programmable Read Only Memory), EEPROM (registered trademark) (Electrically Erasable Programmable Read - Non-volatile or Volatile semiconductor memory, HDD (Hard Disk Drive), magnetic disk, flexible disk, optical disk, compact disk, mini disk, DVD (Digital Versatile Disk), and the like.
  • each part of the robot control devices 2, 2a, 2b and the control part 3 are realized by software (software, firmware, or software and firmware).
  • Software or the like is written as a program and stored in the memory 7 .
  • the processor 6 reads out and executes programs stored in the memory 7 to achieve the functions of each section. That is, it can be said that this program causes a computer to execute the procedures or methods of the robot controllers 2, 2a, 2b and the controller 3.
  • the program executed by the processor 6 may be stored in a computer-readable storage medium in an installable or executable format and provided as a computer program product. Also, the program executed by the processor 6 may be provided to the robot controllers 2, 2a, 2b and the controller 3 via a network such as the Internet.
  • the robot control devices 2, 2a, 2b and the control unit 3 may be realized by a dedicated processing circuit 8 shown in FIG. 15(b).
  • 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 thereof.
  • the configuration in which the functions of the components of the robot control devices 2, 2a, 2b and the control unit 3 are realized by either software or hardware has been described above.
  • the configuration is not limited to this, and may be a configuration in which a part of the components of the robot control devices 2, 2a, 2b and the control unit 3 are implemented by software or the like, and another part is implemented by dedicated hardware. good too.
  • Embodiments 1 to 3 above are examples, and can be combined with another known technique. It is also possible to combine the first to third embodiments. Furthermore, it is also possible to omit or change part of the configuration without departing from the scope of the invention.

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Numerical Control (AREA)

Abstract

ロボット制御装置(2,2a,2b)は、ロボット(4)の動作開始位置と動作終了位置とを取得する教示位置取得部(21)と、前記動作開始位置と前記動作終了位置とに基づいて、第1動作指令を演算する第1動作指令演算部(22)と、前記第1動作指令の第1静定時間と第1払い出し時間との差分が所定値未満であるか否かを判定する判定部(23,23a)と、前記差分が前記所定値以上の場合には、動作指令に基づく評価関数と前記動作指令の払い出し時間とに対する所定の条件を満たす動作指令候補を演算する指令候補演算部(24,24a,24b)と、前記差分が前記所定値以上の場合には、前記動作指令候補に基づいて第2動作指令を演算し、前記差分が前記所定値未満の場合には、前記第1動作指令を前記第2動作指令として設定し、前記第2動作指令を目標指令として出力する第2動作指令演算部(25,25a)と、を備える。

Description

ロボット制御装置およびロボット制御方法
 本開示は、ロボット制御装置およびロボット制御方法に関する。
 ロボットに接続されるエンドエフェクタの位置決めにおいて、開始位置から終了位置までの動作を高速化するよう動作指令を設定することで、作業効率が向上する。しかし、単純に動作を高速化させると、ロボット駆動系の減速機およびロボットアームの剛性不足などによって、エンドエフェクタに振動が発生し、静定時間が長くなる問題がある。このため、振動を抑制しつつ動作を高速に保つよう動作指令を調整する技術が開発されている。
 特許文献1では、実機あるいは動力学シミュレーションのみによってロボットを動作させた時のセンサデータに基づいて、動作指令を調整しつつ動作補正量を算出するロボットの制御装置について開示されている。
特開2021-13999号公報
 特許文献1では、実機あるいは動力学シミュレーションのみを用いてロボットを動作させた時のセンサデータに基づいて動作指令を調整するため、調整前の動作指令と調整後の動作指令とがかけ離れた場合に演算時間がかかる。このように、大域的な調整には不向きであるという問題がある。
 本開示は、上述の課題を解決するためになされたもので、動作指令の調整にかかる時間を短縮するロボット制御装置およびロボット制御方法を提供することを目的とする。
 本開示に係るロボット制御装置は、ロボットの位置決めにおける動作開始位置と動作終了位置とを取得する教示位置取得部と、前記動作開始位置と前記動作終了位置とに基づいて、第1動作指令を演算する第1動作指令演算部と、前記第1動作指令の第1静定時間と前記第1動作指令の第1払い出し時間との差分を算出し、前記差分が所定値未満であるか否かを判定する判定部と、前記差分が前記所定値以上の場合には、動作指令に基づく評価関数と前記動作指令の払い出し時間とに対する所定の条件を満たす動作指令候補を演算する指令候補演算部と、前記差分が前記所定値以上の場合には、前記動作指令候補に基づいて静定時間が前記第1静定時間以下となる第2動作指令を演算し、前記第2動作指令を目標指令として出力し、前記差分が前記所定値未満の場合には、前記第1動作指令を前記第2動作指令として設定し、前記第2動作指令を目標指令として出力する第2動作指令演算部と、を備える。
 また、本開示に係るロボット制御方法は、ロボットの位置決めにおける動作開始位置と動作終了位置とを取得するステップと、前記動作開始位置と前記動作終了位置とに基づいて、第1動作指令を演算するステップと、前記第1動作指令の第1静定時間と前記第1動作指令の第1払い出し時間との差分を算出し、前記差分が所定値未満であるか否かを判定するステップと、前記差分が前記所定値以上の場合には、動作指令に基づく評価関数と前記動作指令の払い出し時間とに対する所定の条件を満たす動作指令候補を演算するステップと、前記差分が前記所定値以上の場合には、前記動作指令候補に基づいて静定時間が前記第1静定時間以下となる第2動作指令を演算し、前記第2動作指令を目標指令として出力し、前記差分が前記所定値未満の場合には、前記第1動作指令を前記第2動作指令として設定し、前記第2動作指令を目標指令として出力するステップと、を備える。
 本開示によれば、ロボット制御装置およびロボット制御方法は、動作指令に基づく評価関数を用いて大域的な探索が可能となるため、調整前の動作指令と調整後の動作指令とがかけ離れていたとしても演算時間を短縮できる。
実施の形態1から3におけるロボットシステムの構成の一例を示す図である。 実施の形態1におけるロボット制御装置の一例を示すブロック図である。 実施の形態1から3における動作指令の一例を示すグラフである。 実施の形態1から3における静定時間の定義を示すグラフである。 実施の形態1から3における指令パラメータの定義を示すグラフである。 実施の形態1から3におけるロボット4の共振周波数の一例である。 実施の形態1におけるロボット制御装置の動作の一例を示すフローチャートである。 実施の形態1における第2動作指令演算部の動作の一例を示すフローチャートである。 実施の形態1における第2動作指令演算部の動作の別の一例を示すフローチャートである。 実施の形態2におけるロボット制御装置の一例を示すブロック図である。 実施の形態2におけるロボット制御装置の動作の一例を示すフローチャートである。 実施の形態3におけるロボット制御装置の一例を示すブロック図である。 実施の形態3におけるエンドエフェクタの状態量と静定時間との関係の一例を示すグラフである。 実施の形態3におけるロボット制御装置の動作の一例を示すフローチャートである。 実施の形態1から3におけるロボット制御装置および制御部のハードウェア構成を示す図である。
実施の形態1.
 図1は、実施の形態1におけるロボットシステム1の構成の一例を示す図である。ロボットシステム1は、ロボット制御装置2と、制御部3と、ロボット4とを備える。
 ロボット制御装置2は、ロボット4の位置決めにおける動作開始位置と動作終了位置とに基づいて第2動作指令を演算し、第2動作指令を目標指令として制御部3へ出力する。ロボット4の位置決めとは、ロボット4に接続されるエンドエフェクタ43の位置決めのことである。なお、ロボット制御装置2は、ロボットシステム1内に構成されず、ロボットシステム1外のパーソナルコンピュータの内部またはクラウドに構成されてもよい。ロボット制御装置2については、後に図2を用いて詳細に説明する。
 制御部3は、ロボット制御装置2からの第2動作指令に従って、ロボット4を制御するための制御信号を演算し、制御信号をロボット4のアクチュエータ41へ出力する。
 ロボット4は、ロボットアーム42およびエンドエフェクタ43を駆動するアクチュエータ41と、ロボットアーム42と、エンドエフェクタ43とを備える。アクチュエータ41は、例えばモータであり、減速機を介してロボットアーム42の各関節部に接続される。
 図2は、実施の形態1におけるロボット制御装置2の一例を示すブロック図である。図2に示すように、ロボット制御装置2は、教示位置取得部21と、第1動作指令演算部22と、判定部23と、指令候補演算部24と、第2動作指令演算部25とを備える。
 教示位置取得部21は、ロボット4の位置決めにおける動作開始位置と動作終了位置とを取得する。動作開始位置および動作終了位置は、図示しない手段によって予め生成される。
 第1動作指令演算部22は、教示位置取得部21からの動作開始位置と動作終了位置とに基づいて、第1動作指令を演算する。動作指令は、エンドエフェクタ43への位置指令、速度指令あるいは加減速指令などのうちいずれかである。図3は、実施の形態1における動作指令の一例を示すグラフである。図3は、エンドエフェクタ43への速度指令の場合のグラフである。横軸は時刻、縦軸は速度指令である。
 図3に示すように、動作指令は最高速度Vmax、加速時間t、定速時間tおよび減速時間tにより構成される。動作指令は、これらの変数そのものであってもよいし、図3に示すグラフの関数であってもよいし、図3のグラフに基づいて制御周期毎にサンプリングした点列データであってもよい。動作指令が上記変数あるいは図3に示すグラフの関数の場合には、後の制御部3によって制御周期毎の点列データに変換されてもよい。また、動作指令は上記変数以外によって構成されてもよい。
 第1動作指令演算部22は、教示位置取得部21からの動作開始位置と動作終了位置とに基づいて、公知の方法で第1動作指令を演算する。本実施の形態では、第1動作指令演算部22は、ロボット4の各関節軸の角加速度などの制約条件を満たしつつ、最も角加速度が大きくなるよう、第1動作指令を演算する。すなわち、第1動作指令演算部22は、制約条件を満たす範囲で払い出し時間が最短となるよう、第1動作指令を演算する。第1動作指令演算部22は、判定部23および第2動作指令演算部25に対し第1動作指令を出力する。第1動作指令は、後に説明する指令候補演算部24と第2動作指令演算部25とが演算処理を行わない場合の目標指令に相当する。払い出し時間とは、動作開始位置から動作終了位置までの動作指令波形の期間を指す。図3の場合、払い出し時間は加速時間tと定速時間tと減速時間tとの和である。
 図2に戻り、判定部23は、第1動作指令演算部22からの第1動作指令に従ってロボット4を動作させた時の第1静定時間Tを計算する。本実施の形態では、判定部23は、動力学シミュレーションを用いてロボット4を動作させることで、第1静定時間Tを計算する。判定部23は、第1静定時間Tと第1動作指令の第1払い出し時間T1,comとの差分ΔT=T-T1,comを算出し、差分ΔTが所定値ΔTchk未満であるか否かを判定する。第1静定時間Tは、後に図4を用いて説明する動作指令の静定時間において、動作指令を第1動作指令とした時の静定時間である。第1払い出し時間T1,comは、図3に示す動作指令の払い出し時間(加速時間tと定速時間tと減速時間tとの和)において、動作指令を第1動作指令とした時の払い出し時間である。所定値ΔTchkは、予め設定された固定値でもよいし、第1動作指令に基づいてその都度変更される可変値であってもよい。あるいは、ロボット4の振動モードにおける共振周波数のうち最も小さい周波数をfとすると、ΔTchk=2/fとしてもよい。
 図4は、実施の形態1における静定時間の定義を示すグラフである。横軸は時刻、縦軸はエンドエフェクタ43の状態量である。ロボット4が動作開始位置から動作終了位置まで動作した場合、動作終了位置に到達した後に周期的な振動が発生する。図4の場合、動作終了位置は、払い出し時間経過時の位置、すなわちエンドエフェクタ43の状態量がゼロとなる位置に相当する。ロボット4の動作開始からエンドエフェクタ43の状態量が所定の許容範囲内となるまでの時間を静定時間と定義する。図4の場合、静定時間はTとなる。図4の場合、時刻Tは、エンドエフェクタ43の状態量が許容範囲内を維持した時に、最初に許容範囲となる時刻を指す。なお、静定時間の定義はこれに限定されない。また、状態量とは、少なくともエンドエフェクタ43の位置および姿勢を含む。状態量は、エンドエフェクタ43の速度あるいは加速度も含まれてよい。
 図2に戻り、指令候補演算部24は、差分ΔTが所定値ΔTchk以上の場合には、動作指令に基づく評価関数と動作指令の払い出し時間とに対する所定の条件を満たす動作指令候補を演算する。指令候補演算部24は、差分ΔTが所定値ΔTchk未満の場合には、何の処理も行わない。差分ΔTが所定値ΔTchk未満の場合の一例として、ロボット4の共振によって発生する残留振動の振幅が許容範囲に比べて小さく、第1静定時間Tが第1払い出し時間T1,comとほぼ同じである場合が挙げられる。以下、指令候補演算部24が評価関数を設定する方法、および動作指令候補を演算する方法について説明する。
 まず、指令候補演算部24が評価関数を設定する方法について説明する。指令候補演算部24は、予め指定された特徴周波数におけるゲインを動作指令に基づいて演算し、ゲインとゲインの重みとを含む評価関数を設定する。一例として、評価関数COST(p)は、以下の数式(1)である。
Figure JPOXMLDOC01-appb-M000001
 但し、Nは特徴周波数の設定数、fは特徴周波数、Kは特徴周波数におけるゲインの重み、F(p,f)は特徴周波数fにおけるゲイン、pは指令パラメータセットである。指令パラメータセットpは、動作指令候補および後に示す第2動作指令の演算対象である指令パラメータをまとめたものである。すなわち、動作指令候補および第2動作指令を演算することは、指令パラメータセットpを演算することと等価である。
 図5(a)および図5(b)は、実施の形態1における指令パラメータの定義を示すグラフである。図5(a)は、時刻に対する加減速指令である。図5(b)は、時刻に対する速度指令であり、図5(a)の加減速指令を積分したものである。この場合、指令パラメータは、加速度増加時間kt、加速度一定時間kt、加速度減少時間kt、減速度増加時間gt、減速度一定時間gt、減速度減少時間gt、最高加速度accmaxおよび最高減速度decmaxである。但し、速度一定時間ctは、ロボット4が動作終了位置に到達するよう、上記指令パラメータに基づいて設定される。よって、速度一定時間ctは、指令パラメータに含まれない。なお、指令パラメータは、図5(a)の加減速指令における上記パラメータに限定されない。指令パラメータは、図5(b)の速度指令におけるパラメータであってもよい。この場合、指令パラメータは、少なくとも最高速度、加速時間および減速時間が含まれていればよい。最高速度は、図5(b)におけるvmaxである。加速時間は、加速度増加時間ktと、加速度一定時間ktと、加速度減少時間ktとの和である。減速時間は、減速度増加時間gtと、減速度一定時間gtと、減速度減少時間gtとの和である。
 数式(1)におけるゲインF(p,f)は、以下の数式(2)のゲインF(p,f)において、周波数fに特徴周波数fを代入することで算出される。
Figure JPOXMLDOC01-appb-M000002
 jは虚数単位、πは円周率、G(2πj*f)は時間関数g(t)を周波数領域fにラプラス変換した関数である。時間関数g(t)は、図3に示す動作指令を関数として表現したものである。|G|は、関数Gの絶対値である。
 ここで、数式(1)における特徴周波数fは、例えば予め計算されたロボット4の共振周波数である。図6は、実施の形態1におけるロボット4の共振周波数の一例である。図6は、予め計算された0.1[sec]毎の共振周波数である。一例として、指令候補演算部24は、各振動モードにおける動作終了時(時刻=0.3[sec])の共振周波数を特徴周波数fとして設定する。図6の場合、特徴周波数fは、10[Hz]、18[Hz]、23[Hz]、41.2[Hz]、66[Hz]および132[Hz]である。なお、指令候補演算部24は、各振動モードにおける動作終了時以外の共振周波数を特徴周波数として設定してもよい。
 指令候補演算部24は、ロボット4の共振周波数だけでなく、共振周波数の前後の所定範囲内の周波数を特徴周波数として設定してもよい。所定範囲を例えば±1[Hz]の範囲としてもよい。この場合、図6における動作終了時の1次振動モードの特徴周波数は、9[Hz]、10[Hz]および11[Hz]となる。他の振動モードについても同様である。なお、指令候補演算部24は、例えば9から11[Hz]を0.5[Hz]刻みで特徴周波数に設定してもよい。
 数式(1)におけるゲインの重みKは、共振周波数が小さいほど大きくなるよう傾斜をつけてもよいし、各共振周波数に対し均一でもよい。指令候補演算部24が共振周波数の前後の所定範囲内の周波数を特徴周波数として設定した場合、例えば共振周波数におけるゲインの重みKを1とし、その前後1[Hz]の周波数におけるゲインの重みKを0.8とする。
 次に、指令候補演算部24が動作指令候補を演算する方法について説明する。まず、指令候補演算部24は、指令パラメータセットに含まれる指令パラメータ(図5の場合、加速度増加時間kt、加速度一定時間kt、加速度減少時間kt、減速度増加時間gt、減速度一定時間gt、減速度減少時間gt、最高加速度accmaxおよび最高減速度decmax)のそれぞれの初期値をMセット(M>1)設定する。指令候補演算部24は、各指令パラメータの範囲を定めてグリッドサーチを行うことで指令パラメータセットの初期値を決定してもよいし、ラテン超方格サンプリングなどでランダムに決定してもよい。各指令パラメータの範囲は、払い出し時間が第1静定時間Tを超えないような範囲とする。これにより、指令候補演算部24は、指令パラメータセットの初期値を広範囲に設定でき、動作指令候補を大域的に演算することができる。なお、指令パラメータセットの初期値の設定方法は、特にこれらに限定されない。
 次に、指令候補演算部24は、Mセットの指令パラメータセットの初期値それぞれについて、数式(1)に示す評価関数の値を計算する。指令候補演算部24は、評価関数の値が所定値V以下、かつ払い出し時間が所定値V以下となる指令パラメータセットを選択する。指令候補演算部24は、選択されたMセット(M≧1、M<M)の指令パラメータセットに対応する動作指令を動作指令候補として演算する。所定値VおよびVは、予め設定された固定値でもよいし、選択後のパラメータセットが一定数残るような値でもよい。なお、指令候補演算部24が動作指令候補を演算する方法は、上記の方法に限定されない。
 指令候補演算部24は、数式(1)に示す評価関数に基づいて、ある程度大域的に動作指令候補を演算する。このため、実機あるいは動力学シミュレーションを用いて静定時間を計算して動作指令候補を演算する場合に比べ、演算時間を短縮できる。また、動作指令候補は制振性が高いことが保証されるため、ある程度最適な動作指令となる。よって、後に第2動作指令演算部25が動力学シミュレーションを用いて第2動作指令を演算したとしても、少ない試行回数で済むため、全体として演算時間を短縮できる。
 図2に戻り、第2動作指令演算部25は、第1静定時間Tと第1払い出し時間T1,comとの差分ΔTが所定値ΔTchk以上の場合には、M個の動作指令候補に基づいて、ロボット4を動作させた時の静定時間が第1静定時間T以下となる第2動作指令を演算し、第2動作指令を目標指令として出力する。第2動作指令演算部25は、差分ΔTが所定値ΔTchk未満の場合には、第1動作指令を第2動作指令として設定し、第2動作指令を目標指令として出力する。第2動作指令演算部25は、ブラックボックス探索アルゴリズムを用いて第2動作指令を演算してもよいし、ブラックボックス探索アルゴリズムを用いずに準最適解を求めるアルゴリズムを用いて第2動作指令を演算してもよい。各々のアルゴリズムの詳細は、後に図8および図9を用いて詳細に説明する。ブラックボックス探索アルゴリズムの一例として、群強化学習がある。なお、第2動作指令演算部25が第2動作指令を演算する方法は、これらに限定されない。
 図7は、実施の形態1におけるロボット制御装置2の動作の一例を示すフローチャートである。すなわち、図7は、実施の形態1におけるロボット制御方法の一例を示すフローチャートである。
 図7に示すように、図示しない手段によりロボット4の制御が開始されると、教示位置取得部21は、ロボット4の動作開始位置と動作終了位置とを取得する(ステップST1)。
 第1動作指令演算部22は、動作開始位置と動作終了位置とに基づいて、第1動作指令を演算する(ステップST2)。
 判定部23は、第1動作指令に従ってロボット4を動作させた時の第1静定時間Tを動力学シミュレーションを用いて計算し、第1静定時間Tと第1払い出し時間T1,comとの差分ΔTを算出する(ステップST3)。
 判定部23は、差分ΔTが所定値ΔTchk未満であるか否かを判定する(ステップST4)。
 ステップST4の判定が「Yes」の場合には、処理はステップST5に進む。ステップST4の判定が「No」の場合には、処理はステップST6に進む。
 ステップST4の判定が「Yes」の場合には、第2動作指令演算部25は、第1動作指令を第2動作指令として設定する(ステップST5)。
 ステップST4の判定が「No」の場合には、指令候補演算部24は、ロボット4の共振周波数を計算する(ステップST6)。
 指令候補演算部24は、ロボット4の共振周波数に基づいて、特徴周波数を設定する(ステップST7)。
 指令候補演算部24は、動作指令に基づく評価関数を数式(1)のように設定する(ステップST8)。
 指令候補演算部24は、動作指令に基づく評価関数と動作指令の払い出し時間とに対する所定の条件を満たす動作指令を動作指令候補として演算する(ステップST9)。
 第2動作指令演算部25は、動作指令候補に基づいて静定時間が第1静定時間T以下となる第2動作指令を演算する(ステップST10)。ステップST10の処理については、後に図8および図9を用いて詳細に説明する。
 第2動作指令演算部25は、第2動作指令を目標指令として出力する(ステップST11)。その後、図示しない手段によりロボット4の制御が終了する。
 図8は、実施の形態1における第2動作指令演算部25の動作の一例を示すフローチャートである。すなわち、図8は、図7のステップST10の処理の詳細を示すフローチャートであり、第2動作指令演算部25がブラックボックス探索アルゴリズムを用いて第2動作指令を演算する場合のフローチャートである。
 図8に示すように、第2動作指令演算部25は、第2動作指令の演算処理を開始すると、探索回数K(K≧1)を所定の値に設定する(ステップST101)。
 第2動作指令演算部25は、カウンタkを1に初期化する(ステップST102)。
 第2動作指令演算部25は、指令パラメータセットを追加でMセット生成する(ステップST103)。初回、すなわちk=1の場合には、第2動作指令演算部25は、指令候補演算部24からのMセットの指令パラメータセットに基づいて、指令パラメータセットを追加でMセット生成する。あるいは、第2動作指令演算部25は、指令パラメータセットを追加で生成せず、指令候補演算部24からのMセットの指令パラメータセットそのものを設定してもよい。k>1の場合には、第2動作指令演算部25は、前回のループにおいて生成されたMセットの指令パラメータセットに基づいて、更に追加でMセットの指令パラメータセットを生成する。
 なお、探索に用いる手法に応じて、セット数Mが変わる。一例として、ブラックボックス探索アルゴリズムとして群強化学習を用いる場合、M=Mとなる。ブラックボックス探索アルゴリズムとしてベイズ最適化を用いる場合、M=1となる。なお、ループ変数kに応じて、追加する指令パラメータセットのセット数を変えてもよい。例えば、ループ変数kが小さい場合には追加するセット数を大きくし、ループ変数kが大きくなるにつれて追加するセット数を小さくしてもよい。追加するセット数は、ループ変数kの関数になっていてもよい。ループ変数kに応じて追加する指令パラメータセットのセット数を変える場合、例えばk=1の場合には、指令候補演算部24からのMセットの指令パラメータセットに値が近い指令パラメータセットを増やしてもよい。これにあたり、第2動作指令演算部25は、評価関数の値および払い出し時間がより小さくなる指令パラメータセットの周辺に多くの指令パラメータセットを追加するといった傾斜をつけてもよい。
 第2動作指令演算部25は、ステップST103で追加したMセットの指令パラメータセットのそれぞれに基づく動作指令でロボット4を動作させた時の静定時間を動力学シミュレーションを用いて計算する(ステップST104)。
 第2動作指令演算部25は、ステップST104で計算した静定時間の最小値Tminを選定する(ステップST105)。
 第2動作指令演算部25は、静定時間の最小値Tminが第1静定時間T未満であるか否かを判定する(ステップST106)。
 ステップST106の判定が「Yes」の場合には、処理はステップST107に進む。ステップST106の判定が「No」の場合には、処理はステップST108に進む。
 ステップST106の判定が「Yes」の場合には、第2動作指令演算部25は、ステップST105で選定した静定時間の最小値Tminに対応する指令パラメータセットをメモリに格納する(ステップST107)。
 ステップST106の判定が「No」の場合には、第1動作指令の指令パラメータセットをメモリに格納する(ステップST108)。
 第2動作指令演算部25は、ループ変数kが探索回数Kと等しいか否かを判定する(ステップST109)。
 ステップST109の判定が「Yes」の場合には、処理はステップST110に進む。ステップST109の判定が「No」の場合には、処理はステップST111に進む。
 ステップST109の判定が「Yes」の場合には、第2動作指令演算部25は、メモリに格納された指令パラメータセットに基づく動作指令を第2動作指令に設定する(ステップST110)。その後、第2動作指令演算部25は、第2動作指令の演算処理を終了する。
 ステップST109の判定が「No」の場合には、第2動作指令演算部25は、ループ変数kを1増やす(ステップST111)。その後、第2動作指令演算部25は、ステップST103の処理を再び行う。
 図9は、実施の形態1における第2動作指令演算部25の動作の別の一例を示すフローチャートである。すなわち、図9は、図7のステップST10の処理の詳細を示すフローチャートであり、第2動作指令演算部25がブラックボックス探索アルゴリズムを用いずに準最適解を求めるアルゴリズムを用いて第2動作指令を演算する場合のフローチャートである。
 図9に示すように、第2動作指令演算部25は、第2動作指令の演算処理を開始すると、指令候補演算部24からのMセットの指令パラメータセットのうち、払い出し時間が最小となる指令パラメータセットptmpを選択する(ステップST121)。
 第2動作指令演算部25は、指令パラメータセットptmpに基づく動作指令でロボット4を動作させた時の静定時間Ttmpを動力学シミュレーションを用いて計算する(ステップST122)。
 第2動作指令演算部25は、静定時間Ttmpが第1静定時間T未満であるか否かを判定する(ステップST123)。
 ステップST123の判定が「Yes」の場合は、処理はステップST124に進む。ステップST123の判定が「No」の場合は、処理はステップST125に進む。
 ステップST123の判定が「Yes」の場合、第2動作指令演算部25は、指令パラメータセットptmpをメモリに格納する(ステップST124)。
 ステップST123の判定が「No」の場合、第2動作指令演算部25は、第1動作指令の指令パラメータセットをメモリに格納する(ステップST125)。そして、処理はステップST126に進む。
 第2動作指令演算部25は、指令候補演算部24からのMセットの指令パラメータセットのうち、後のステップST127の判定が行われていない指令パラメータセットpslctを選択する(ステップST126)。
 第2動作指令演算部25は、指令パラメータセットpslctに対応する評価関数の値が、指令パラメータセットptmpに対応する評価関数の値未満であるか否かを判定する(ステップST127)。
 ステップST127の判定が「Yes」の場合は、処理はステップST128に進む。ステップST127の判定が「No」の場合は、処理はステップST126に戻る。
 ステップST127の判定が「Yes」の場合、第2動作指令演算部25は、指令パラメータセットpslctに基づく動作指令でロボット4を動作させた時の静定時間Tslctを動力学シミュレーションを用いて計算する(ステップST128)。
 第2動作指令演算部25は、静定時間Tslctが静定時間Ttmp未満であるか否かを判定する(ステップST129)。
 ステップST129の判定が「Yes」の場合は、処理はステップST130に進む。ステップST129の判定が「No」の場合は、処理はステップST131に進む。
 ステップST129の判定が「Yes」の場合、第2動作指令演算部25は、指令パラメータセットpslctをメモリに格納し、指令パラメータセットpslctの値をptmpに書き込む(ステップST130)。
 第2動作指令演算部25は、指令候補演算部24からのMセットの指令パラメータセットの全てについて評価完了したか否かを判定する(ステップST131)。すなわち、第2動作指令演算部25は、Mセットの指令パラメータセットの全てについて、ステップST127の判定を行ったか否かを判定する。
 ステップST131の判定が「Yes」の場合は、処理はステップST132に進む。ステップST131の判定が「No」の場合は、処理はステップST126に戻る。
 ステップST131の判定が「Yes」の場合、第2動作指令演算部25は、メモリに格納された指令パラメータセットに基づく動作指令を第2動作指令に設定する(ステップST132)。その後、第2動作指令演算部25は、第2動作指令の演算処理を終了する。
 以上で説明した実施の形態1によれば、判定部23は、第1動作指令でロボット4を動作させた時の静定時間と払い出し時間との差分に基づいて、動作指令候補および第2動作指令の演算を行うか否かを判定するため、必要最低限の演算で済む。もし演算を行うと判定された場合でも、指令候補演算部24は、演算負荷の小さい評価関数に基づいて、動作指令候補の大域的な探索が可能となる。その後、第2動作指令演算部25は、動力学シミュレーションを用いて第2動作指令の演算を行うが、指令候補演算部24によって演算された動作指令候補はある程度最適化された動作指令であるため、少ない試行回数で第2動作指令の演算を行うことができる。よって、調整前の動作指令と調整後の動作指令とがかけ離れていたとしても、演算時間を短縮できる。
実施の形態2.
 実施の形態2では、ロボット制御装置2aは、センサ5を用いて第2動作指令を演算する。
 図10は、実施の形態2におけるロボット制御装置2aの一例を示すブロック図である。図10は、ロボット制御装置2aがセンサ5を備える点、判定部23の代わりに判定部23aを備える点、指令候補演算部24の代わりに指令候補演算部24aを備える点、および第2動作指令演算部25の代わりに第2動作指令演算部25aを備える点で、図2とは異なる。判定部23a、指令候補演算部24aおよび第2動作指令演算部25a以外は、図2に示すものと同じであるため、説明を省略する。
 センサ5は、エンドエフェクタ43の位置を計測するセンサである。またこれに限定されず、アクチュエータ41と直接的あるいは間接的に接続される負荷の状態量を計測するエンコーダ、速度センサおよび加速度センサなど、数値計算によってエンドエフェクタ43の状態量が算出できるセンサであってもよい。この場合、センサ5からのセンサ情報は、エンドエフェクタ43の位置、速度あるいは加速度などの状態量である。また、センサ情報はアクチュエータ41と接続される負荷の状態量でもよい。
 判定部23aは、動力学シミュレーションの代わりに、センサ5からのセンサ情報を用いる。具体的には、判定部23aは、第1動作指令に従ってロボット4を実動作させ、センサ5からのセンサ情報を用いて第1静定時間Tを計算する。その他の処理は、実施の形態1における判定部23が行う処理と同じである。
 指令候補演算部24aは、センサ5からのセンサ情報に基づいて、数式(1)に示す評価関数の特徴周波数fを変更する。具体的には、指令候補演算部24aは、ロボット4への指令終了後の残留振動に関する情報をセンサ情報から抽出することで、ロボット4の振動特性を取得する。指令候補演算部24aは、抽出された残留振動成分を高速フーリエ変換することで、残留振動に含まれるピーク周波数を1つ以上特定する。指令候補演算部24aは、特定されたピーク周波数に基づいてロボット4の共振周波数を計算し、特徴周波数fを設定する。その他の処理は、実施の形態1における指令候補演算部24が行う処理と同じである。
 第2動作指令演算部25aは、動力学シミュレーションの代わりに、センサ5からのセンサ情報を用いる。具体的には、第2動作指令演算部25aは、ロボット4を実動作させ、センサ5からのセンサ情報を用いて第2動作指令を演算する。その他の処理は、実施の形態1における第2動作指令演算部25が行う処理と同じである。
 なお、センサ5から取得されるロボット4の振動特性に基づいて、ユーザーが動力学シミュレーションを更新してもよい。この場合、判定部23aは、更新された動力学シミュレーションを用いて第1静定時間Tを計算する。同様に、第2動作指令演算部25aは、更新された動力学シミュレーションを用いて第2動作指令を演算する。なお、動力学シミュレーションの更新タイミングは特に限定されず、例えば前回更新した時からの共振周波数の変化量がある値以上となった場合に更新してもよい。但し以下では、判定部23aおよび第2動作指令演算部25aは、センサ5からのセンサ情報を用いるものとする。
 図11は、実施の形態2におけるロボット制御装置2aの動作の一例を示すフローチャートである。すなわち、図11は、実施の形態2におけるロボット制御方法の一例を示すフローチャートである。図11において、ステップST3の代わりにステップST12の処理を行う点、ステップST6の代わりにステップST13の処理を行う点、ステップST7の代わりにステップST14の処理を行う点、ステップST8の代わりにステップST15の処理を行う点、およびステップST10の代わりにステップST16の処理を行う点で、図7とは異なる。ステップST12からステップST16以外は、図7に示すものと同じであるため、説明を省略する。
 判定部23aは、第1動作指令に従ってロボット4を動作させた時の第1静定時間Tをセンサ5を用いて計算し、第1静定時間Tと第1払い出し時間T1,comとの差分ΔTを算出する(ステップST12)。
 ステップST4の判定が「No」の場合には、指令候補演算部24aは、センサ5からのセンサ情報に基づいて、ロボット4の共振周波数を計算する(ステップST13)。
 指令候補演算部24aは、ロボット4の共振周波数に基づいて、特徴周波数を設定する(ステップST14)。
 指令候補演算部24aは、動作指令に基づく評価関数を数式(1)のように設定する(ステップST15)。
 第2動作指令演算部25aは、動作指令候補に基づいて静定時間が第1静定時間T以下となる第2動作指令を演算する(ステップST16)。第2動作指令演算部25aが第2動作指令を演算するにあたり、動力学シミュレーションの代わりにセンサ5からのセンサ情報を用いて静定時間を計算する。
 以上で説明した実施の形態2によれば、ロボット制御装置2aは、センサ5からのセンサ情報を用いることで、ロボット4の実動作に合わせて第2動作指令を演算することができる。また、ロボット4の経年変化などにより振動特性が変わった場合でも、精度よく第2動作指令を演算することができる。
実施の形態3.
 実施の形態3では、ロボット制御装置2bは、ロボット4の振動とエンドエフェクタ43の状態量との関係に基づいて、数式(1)に示す評価関数のゲインの重みKを設定する。
 図12は、実施の形態3におけるロボット制御装置2bの一例を示すブロック図である。図12は、指令候補演算部24の代わりに指令候補演算部24bを備える点で、図2とは異なる。指令候補演算部24b以外は、図2に示すものと同じであるため、説明を省略する。
 指令候補演算部24bは、ロボット4の振動とエンドエフェクタ43の状態量との関係に基づいて、数式(1)に示す評価関数のゲインの重みKを設定する。すなわち、指令候補演算部24bは、ロボット4の振動がエンドエフェクタ43の状態量へ与える影響に基づいて、ゲインの重みKを設定する。図13(a)および図13(b)は、実施の形態3におけるエンドエフェクタ43の状態量と静定時間との関係の一例を示すグラフである。図13(a)は、横軸が時刻、縦軸が状態量としてエンドエフェクタ43の横方向の位置のグラフである。図13(b)は、横軸が時刻、縦軸が状態量としてエンドエフェクタ43の高さ方向の位置のグラフである。図13において、払い出し時間内の一部のグラフを省略している。
 図13(a)に示すように、エンドエフェクタ43の横方向の位置の静定時間はTである。図13(b)に示すように、エンドエフェクタ43高さ方向の位置の静定時間はTである。静定時間TおよびTは、T>Tの関係であり、全体としての静定時間はTとなる。更に、全体としての静定時間を短くするには、横方向の振動を抑えるようにするのが望ましい。
 ロボット4の振動がエンドエフェクタ43の状態量へ与える影響を見積もる方法の1つに、ロボット4の各関節が微小変位した時のエンドエフェクタ43の位置姿勢の微小変位を表すヤコビ行列が存在する。ヤコビ行列は、以下の数式(3)となる。
Figure JPOXMLDOC01-appb-M000003
 g(i=1~m,mは関数gの数)は、ロボット4の関節角度からエンドエフェクタ43の位置姿勢を計算する際の順運動学の関数である。x(j=1~n,nは関節の数)は、各関節角度である。ヤコビ行列の各行の成分を見ることで、ロボット4のある関節の角度の変化量に対するエンドエフェクタ43の状態量の変化量が把握できる。図13の例では、指令候補演算部24bは、ヤコビ行列において、エンドエフェクタ43の横方向の位置に対応する行を抽出し、抽出された行の成分のうち絶対値が大きい成分を選択する。選択された成分に対応する列はロボット4の関節に対応するため、指令候補演算部24bは、該当する関節の寄与率が大きい振動モードを同定し、その振動モードにおけるゲインの重みを大きくする。以下、評価関数のゲインの重みを設定する方法について説明する。
 指令候補演算部24bは、ゲインの重みを設定するために、ロボット4の振動モード解析を行う。ロボット4の運動方程式は、以下の数式(4)となる。
Figure JPOXMLDOC01-appb-M000004
 mはロボットアーム42の慣性行列、hは遠心力・コリオリ力を表すベクトル、kは各関節軸に接続される減速機のねじれ剛性のベクトル、xはロボット4の関節角度ベクトル、xの上部のドットはxの一階微分(ドットが1個)および二階微分(ドットが2個)、xtgtは各関節軸への指令角度ベクトルである。数式(4)に示す運動方程式をロボット4の動作終了位置での関節角度および関節角速度でテイラー展開し、線形化係数行列M、CおよびKを用いて線形化すると、以下の数式(5)となる。
Figure JPOXMLDOC01-appb-M000005
 次に、以下の数式(6)が成立する行列Φを計算する。
Figure JPOXMLDOC01-appb-M000006
 但し、Λは対角行列である。ロボット4の振動モードの周波数は、対角行列Λの各成分から計算できる。また、振動モードのモードベクトルは、対角行列Λの対角成分の1つを固有値とした時の固有ベクトルになる。指令候補演算部24bは、固有ベクトルに含まれる成分のうち、ヤコビ行列において選択された関節に対応する成分の絶対値の大きさに応じて、評価関数のゲインの重みを決定する。例えば、絶対値がaの場合、該当する周波数に対するゲインの重みをaとする。この場合、各固有ベクトルを正規化することが望ましい。
 また、固有ベクトルを並べた行列Φを用いて、q=Φ-1xという変換を行うと、ΦCΦ(ΦはΦの転置行列)の非対角成分が小さい場合、すなわち振動の減衰が小さい場合において各振動モードに分解できる。分解された振動モード毎の運動方程式を公知の手法で解析することで、振動の一般解が得られる。この一般解から、振動の減衰比が得られる。例えば、ある振動モードの減衰比がbの時、指令候補演算部24bは、該当する周波数に対する評価関数の重みをbとする。また、減衰特性により固有振動数に変化があるため、指令候補演算部24bは、特徴周波数fを以下の数式(7)に示すf’に変更する。
Figure JPOXMLDOC01-appb-M000007
 図14は、実施の形態3におけるロボット制御装置2bの動作の一例を示すフローチャートである。すなわち、図14は、実施の形態3におけるロボット制御方法の一例を示すフローチャートである。図14において、ステップST6の代わりにステップST17の処理を行う点、ステップST7の代わりにステップST18の処理を行う点、およびステップST8の代わりにステップST19の処理を行う点で、図7とは異なる。ステップST17からステップST19以外は、図7に示すものと同じであるため、説明を省略する。
 指令候補演算部24bは、一例として数式(7)に基づいてロボット4の共振周波数を計算する(ステップST17)。
 指令候補演算部24bは、一例として数式(7)に基づいて特徴周波数を設定する(ステップST18)。
 指令候補演算部24bは、動作指令に基づく評価関数を数式(1)のように設定する(ステップST19)。この際、振動モードのモードベクトルあるいは振動の減衰比に基づいてゲインの重みKを設定する。
 以上で説明した実施の形態3によれば、ロボット4の運動方程式を用い、ロボット4の振動がエンドエフェクタ43の状態量へ与える影響に基づいて、ゲインの重みKを設定する。これにより、精度よく評価関数を設定でき、静定時間の短縮に直結する周波数に対する制振性を優先的に高めることができ、より静定時間の短い動作指令候補を演算できる。
 なお、ここでは実施の形態1に対し実施の形態3を適用する場合について説明したが、実施の形態2に対し実施の形態3を適用することもできる。
 ここで、実施の形態1から3におけるロボット制御装置2,2a,2bおよび制御部3のハードウェア構成について説明する。ロボット制御装置2,2a,2bおよび制御部3の各機能は、処理回路によって実現し得る。処理回路は、少なくとも1つのプロセッサと少なくとも1つのメモリとを備える。
 図15は、実施の形態1から3におけるロボット制御装置2,2a,2bおよび制御部3のハードウェア構成を示す図である。ロボット制御装置2,2a,2bおよび制御部3は、図15(a)に示すプロセッサ6およびメモリ7によって実現することができる。プロセッサ6は、例えばCPU(Central Processing Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサ、DSP(Digital Signal Processor)ともいう)またはシステムLSI(Large Scale Integration)である。
 メモリ7は、例えばRAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、EPROM(Erasable Programmable Read Only Memory)、EEPROM(登録商標)(Electrically Erasable Programmable Read-Only Memory)などの不揮発性または揮発性の半導体メモリ、HDD(Hard Disk Drive)、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、またはDVD(Digital Versatile Disk)などである。
 ロボット制御装置2,2a,2bおよび制御部3の各部の機能は、ソフトウェアなど(ソフトウェア、ファームウェア、またはソフトウェアとファームウェア)により実現される。ソフトウェアなどはプログラムとして記述され、メモリ7に格納される。プロセッサ6は、メモリ7で記憶されているプログラムを読み出して実行することにより、各部の機能を実現する。すなわち、このプログラムは、ロボット制御装置2,2a,2bおよび制御部3の手順または方法をコンピュータに実行させるものであると言える。
 プロセッサ6が実行するプログラムは、インストール可能な形式または実行可能な形式のファイルで、コンピュータが読み取り可能な記憶媒体に記憶されてコンピュータプログラムプロダクトとして提供されてもよい。また、プロセッサ6が実行するプログラムは、インターネットなどのネットワーク経由でロボット制御装置2,2a,2bおよび制御部3に提供されてもよい。
 また、ロボット制御装置2,2a,2bおよび制御部3は、図15(b)に示す専用の処理回路8によって実現してもよい。処理回路8が専用のハードウェアである場合、処理回路8は、例えば単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)、またはこれらを組み合わせたものなどが該当する。
 以上、ロボット制御装置2,2a,2bおよび制御部3の各構成要素の機能が、ソフトウェアなど、またはハードウェアのいずれか一方で実現される構成について説明した。しかしこれに限ったものではなく、ロボット制御装置2,2a,2bおよび制御部3の一部の構成要素をソフトウェアなどで実現し、別の一部を専用のハードウェアで実現する構成であってもよい。
 以上の実施の形態1から3に示した構成は、一例を示すものであり、別の公知の技術と組み合わせることも可能である。また、実施の形態1から3同士を組み合わせることも可能である。更に、要旨を逸脱しない範囲で構成の一部を省略あるいは変更することも可能である。
 1 ロボットシステム、 2,2a,2b ロボット制御装置、 21 教示位置取得部、 22 第1動作指令演算部、 23,23a 判定部、 24,24a,24b 指令候補演算部、 25,25a 第2動作指令演算部、 3 制御部、 4 ロボット、 41 アクチュエータ、 42 ロボットアーム、 43 エンドエフェクタ、 5 センサ、 6 プロセッサ、 7 メモリ、 8 処理回路。

Claims (10)

  1.  ロボットの位置決めにおける動作開始位置と動作終了位置とを取得する教示位置取得部と、
     前記動作開始位置と前記動作終了位置とに基づいて、第1動作指令を演算する第1動作指令演算部と、
     前記第1動作指令の第1静定時間と前記第1動作指令の第1払い出し時間との差分を算出し、前記差分が所定値未満であるか否かを判定する判定部と、
     前記差分が前記所定値以上の場合には、動作指令に基づく評価関数と前記動作指令の払い出し時間とに対する所定の条件を満たす動作指令候補を演算する指令候補演算部と、
     前記差分が前記所定値以上の場合には、前記動作指令候補に基づいて静定時間が前記第1静定時間以下となる第2動作指令を演算し、前記第2動作指令を目標指令として出力し、前記差分が前記所定値未満の場合には、前記第1動作指令を前記第2動作指令として設定し、前記第2動作指令を目標指令として出力する第2動作指令演算部と、
     を備えるロボット制御装置。
  2.  前記指令候補演算部は、予め指定された特徴周波数におけるゲインを前記動作指令に基づいて演算し、前記ゲインと前記ゲインの重みとを含む前記評価関数を設定する請求項1に記載のロボット制御装置。
  3.  前記特徴周波数は、前記ロボットの共振周波数である請求項2に記載のロボット制御装置。
  4.  前記特徴周波数は、前記共振周波数の前後の所定範囲内の周波数である請求項3に記載のロボット制御装置。
  5.  前記指令候補演算部は、前記ロボットの振動と前記ロボットに接続されるエンドエフェクタの状態量との関係に基づいて、前記ゲインの重みを設定する請求項2から4のいずれか1項に記載のロボット制御装置。
  6.  前記指令候補演算部は、前記ロボットの振動モードの減衰比に基づいて、前記ゲインの重みを設定する請求項2から5のいずれか1項に記載のロボット制御装置。
  7.  前記第2動作指令演算部は、ブラックボックス探索アルゴリズムを用いて前記第2動作指令を演算する請求項1から6のいずれか1項に記載のロボット制御装置。
  8.  前記ブラックボックス探索アルゴリズムは、群強化学習である請求項7に記載のロボット制御装置。
  9.  前記動作指令候補および前記第2動作指令の演算対象である指令パラメータは少なくとも、最高速度、加速時間および減速時間である請求項1から8のいずれか1項に記載のロボット制御装置。
  10.  ロボットの位置決めにおける動作開始位置と動作終了位置とを取得するステップと、
     前記動作開始位置と前記動作終了位置とに基づいて、第1動作指令を演算するステップと、
     前記第1動作指令の第1静定時間と前記第1動作指令の第1払い出し時間との差分を算出し、前記差分が所定値未満であるか否かを判定するステップと、
     前記差分が前記所定値以上の場合には、動作指令に基づく評価関数と前記動作指令の払い出し時間とに対する所定の条件を満たす動作指令候補を演算するステップと、
     前記差分が前記所定値以上の場合には、前記動作指令候補に基づいて静定時間が前記第1静定時間以下となる第2動作指令を演算し、前記第2動作指令を目標指令として出力し、前記差分が前記所定値未満の場合には、前記第1動作指令を前記第2動作指令として設定し、前記第2動作指令を目標指令として出力するステップと、
     を備えるロボット制御方法。
PCT/JP2022/007357 2022-02-22 2022-02-22 ロボット制御装置およびロボット制御方法 WO2023162031A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2024502284A JPWO2023162031A1 (ja) 2022-02-22 2022-02-22
PCT/JP2022/007357 WO2023162031A1 (ja) 2022-02-22 2022-02-22 ロボット制御装置およびロボット制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/007357 WO2023162031A1 (ja) 2022-02-22 2022-02-22 ロボット制御装置およびロボット制御方法

Publications (1)

Publication Number Publication Date
WO2023162031A1 true WO2023162031A1 (ja) 2023-08-31

Family

ID=87765174

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/007357 WO2023162031A1 (ja) 2022-02-22 2022-02-22 ロボット制御装置およびロボット制御方法

Country Status (2)

Country Link
JP (1) JPWO2023162031A1 (ja)
WO (1) WO2023162031A1 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05301196A (ja) * 1992-04-28 1993-11-16 Canon Inc ロボット制御系パラメータ調整装置
JPH06250723A (ja) * 1993-02-25 1994-09-09 Komatsu Ltd ロボットの振動低減装置
WO2000042479A1 (de) * 1999-01-14 2000-07-20 Siemens Aktiengesellschaft Steuerungsverfahren sowie numerische steuerung zur schwingungsarmen beschleunigungsführung eines bewegbaren maschinenelementes
JP2011088225A (ja) * 2009-10-20 2011-05-06 Yaskawa Electric Corp インピーダンス制御パラメータの調整装置および調整方法
JP2019111604A (ja) * 2017-12-22 2019-07-11 セイコーエプソン株式会社 制御装置、ロボット、およびロボットシステム
WO2022009333A1 (ja) * 2020-07-08 2022-01-13 三菱電機株式会社 ロボット制御装置、ロボット制御方法、およびロボット制御プログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05301196A (ja) * 1992-04-28 1993-11-16 Canon Inc ロボット制御系パラメータ調整装置
JPH06250723A (ja) * 1993-02-25 1994-09-09 Komatsu Ltd ロボットの振動低減装置
WO2000042479A1 (de) * 1999-01-14 2000-07-20 Siemens Aktiengesellschaft Steuerungsverfahren sowie numerische steuerung zur schwingungsarmen beschleunigungsführung eines bewegbaren maschinenelementes
JP2011088225A (ja) * 2009-10-20 2011-05-06 Yaskawa Electric Corp インピーダンス制御パラメータの調整装置および調整方法
JP2019111604A (ja) * 2017-12-22 2019-07-11 セイコーエプソン株式会社 制御装置、ロボット、およびロボットシステム
WO2022009333A1 (ja) * 2020-07-08 2022-01-13 三菱電機株式会社 ロボット制御装置、ロボット制御方法、およびロボット制御プログラム

Also Published As

Publication number Publication date
JPWO2023162031A1 (ja) 2023-08-31

Similar Documents

Publication Publication Date Title
US11175739B2 (en) Method and device for performing actuator control based on an actuator model
CN105717947B (zh) 控制空中装置的方法和有实现此方法的控制器的空中装置
EP3023208B1 (en) Control device for motor drive device, control device for multi-axial motor, and control method for motor drive device
US6861814B2 (en) Control parameter automatic adjustment apparatus
KR101242678B1 (ko) 제어 파라미터를 적응적으로 변화시키는 pid 제어 방법 및 이를 이용한 pid 제어 장치
JP6494897B1 (ja) 数値制御装置
JP6545390B2 (ja) パラレルリンク機構の制御装置
CN110494648A (zh) 基于位置对机舱运动的减振
WO2022044191A1 (ja) 調整システム、調整方法および調整プログラム
WO2023162031A1 (ja) ロボット制御装置およびロボット制御方法
JP7095834B2 (ja) 制御パラメータ計算方法、制御パラメータ計算プログラム、及び制御パラメータ計算装置
JP2005502057A5 (ja)
JP5212890B2 (ja) プラント運転支援装置
EP3923092A1 (en) Control device, model creation method, control program
EP3923091B1 (en) Control device and control program
JP3805476B2 (ja) モータ制御装置
US7607343B2 (en) System for nano position sensing in scanning probe microscopes using an estimator
JP2010045957A (ja) モータ制御装置とバックラッシ同定方法
JP4119011B2 (ja) 制御装置
JP7059957B2 (ja) 制御装置および制御プログラム
JP7331779B2 (ja) 機械制御システム、波形生成装置、波形生成方法、および波形生成プログラム
CN114268246B (zh) 电机控制方法、装置、***及计算机可读存储介质
JPWO2023162031A5 (ja)
Cyr et al. Towards reinforcement learning-based control of an energy harvesting pendulum
KR101927844B1 (ko) 보의 거동 해석 장치 및 방법

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22928562

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2024502284

Country of ref document: JP