WO2020255724A1 - ロボット制御装置及びロボット制御方法 - Google Patents

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

Info

Publication number
WO2020255724A1
WO2020255724A1 PCT/JP2020/022026 JP2020022026W WO2020255724A1 WO 2020255724 A1 WO2020255724 A1 WO 2020255724A1 JP 2020022026 W JP2020022026 W JP 2020022026W WO 2020255724 A1 WO2020255724 A1 WO 2020255724A1
Authority
WO
WIPO (PCT)
Prior art keywords
command value
unit
joint
torque
control unit
Prior art date
Application number
PCT/JP2020/022026
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 CN202080042517.0A priority Critical patent/CN114007820A/zh
Publication of WO2020255724A1 publication Critical patent/WO2020255724A1/ja

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1661Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages

Definitions

  • the present invention relates to a robot control device and a robot control method capable of simultaneously controlling the position and posture and force of a robot.
  • robots robot arms
  • robot control devices that simultaneously (parallel) control the position and posture and force are used (see, for example, Patent Document 1).
  • the position / posture represents at least one of the position and the posture of the robot.
  • 13 to 15 show an example of the robot control device 1b.
  • the robot control device 1b shown in FIG. 13 includes a main control unit (upper controller) 11b and a plurality of joint control units (lower controller) 12b.
  • the joint control unit 12b is provided for each joint of the robot 2.
  • the main control unit 11b and each joint control unit 12b are connected by a communication line.
  • the robot 2 has a motor 21 and a sensor 22 (torque sensor 23 and encoder 24) for each joint.
  • the motor 21 and the sensor 22 are each connected to the corresponding joint control unit 12b by a power line or the like.
  • the torque sensor 23 detects the current value of the torque of the corresponding joint.
  • the encoder 24 detects the current value of the corresponding joint angle. Note that FIG. 14 shows only one set of the motor 21, the torque sensor 23, and the encoder 24.
  • the main control unit 11b controls the entire robot 2 by outputting a command value to each joint control unit 12b.
  • the main control unit 11b has a force command value, a position / posture command value, and a command value of the angular velocity for each joint based on the current value of the torque for each joint and the current value of the angle of the robot 2. Is calculated.
  • the main control unit 11b includes a force calculation unit 111b, a force control unit 112b, a position / attitude calculation unit 113b, a position / attitude control unit 114b, a command value synthesis unit 115b, and a command value conversion unit 116b. I have.
  • the force calculation unit 111b calculates the current value of the force of the robot 2 based on the current value of the torque of each joint of the robot 2.
  • the torque for each joint of the robot 2 is represented by the joint coordinate system, and in this force calculation unit 111b, the coefficient multiplication unit 1111b multiplies the vector in which the torque for each joint is arranged by the inverse matrix of the translocation of the Jacobi matrix. , Converts the torque for each joint into the force expressed in the orthogonal coordinate system.
  • represents the current value of torque
  • J represents the Jacobian matrix
  • F represents the current value of force.
  • the force control unit 112b calculates the force control command value based on the force command value and the current value of the force calculated by the force calculation unit 111b.
  • the deviation calculator 1121b obtains the deviation between the command value of the force and the current value of the force, and the coefficient multiplication unit 1122b multiplies the deviation of the calculation result by the deviation calculator 1121b by the gain. Then, the command value of force control is obtained.
  • Fr represents the command value of the force
  • G F represents a gain.
  • the position / posture calculation unit 113b calculates the current value of the position / posture of the robot 2 based on the current value of the angle of each joint of the robot 2.
  • the current value of the angle for each joint of the robot 2 is represented by the joint coordinate system
  • the position / posture calculation unit 113b converts the current value of the angle for each joint into the current value of the position / posture represented by the Cartesian coordinate system.
  • represents the current value of the angle
  • X represents the current value of the position and orientation.
  • the position / posture control unit 114b calculates the position / posture control command value based on the position / posture command value and the position / posture current value calculated by the position / posture calculation unit 113b.
  • the deviation calculator 1141b obtains the deviation between the command value of the position / posture and the current value of the position / posture, and the coefficient multiplication unit 1142b multiplies the calculation result by the deviation calculator 1141b by the gain.
  • the command value for position / attitude control is obtained.
  • Xr represents the command value of the position and orientation
  • G Z represents the gain.
  • the command value combining unit 115b synthesizes the force control command value calculated by the force control unit 112b and the position / attitude control command value calculated by the position / attitude control unit 114b.
  • the adder 1151b adds the command value for force control and the command value for position / attitude control.
  • the command value conversion unit 116b converts the synthesis result by the command value synthesis unit 115b into a command value of the angular velocity of each joint of the robot 2.
  • the coefficient multiplication unit 1161b multiplies the synthesis result by the inverse matrix of the Jacobian matrix. That is, the command value conversion unit 116b converts the command value represented by the orthogonal coordinate system into the command value represented by the joint coordinate system.
  • ⁇ (dot) r represents the command value of the angular velocity.
  • the joint control unit 12b controls the motor 21 provided in the corresponding joint in response to a command from the main control unit 11b. As shown in FIG. 14, the joint control unit 12b includes a torque acquisition unit 121b and a joint angle control unit 122b.
  • the torque acquisition unit 121b acquires the current value of the torque at the corresponding joint.
  • the data indicating the current value of the torque acquired by the torque acquisition unit 121b is output to the main control unit 11b (force calculation unit 111b).
  • the joint angle control unit 122b calculates a command value for the motor 21 provided in the corresponding joint based on the command value of the angular velocity calculated by the main control unit 11b and the current value of the angle for each joint of the robot 2. ..
  • the speed conversion unit 1221b converts the current value of the angle into the current value of the angular velocity
  • the subtractor 1223b subtracts the current value of the angular velocity obtained by the speed conversion unit 1221b from the command value of the angular velocity.
  • the PI control unit 1224b performs PI control based on the subtraction result by the subtractor 1223b to obtain a command value for the motor 21.
  • the robot control device 1b shown in FIGS. 13 to 15 it is necessary to operate a plurality of joints in cooperation with each other, and the main control unit 11b has a degree of freedom of multiple joints (for example, 6 degrees of freedom).
  • the result of controlling and calculating the position and posture and the force at the same time is synthesized, and the combined result is converted into a signal to the joint control unit 12b of each axis and then output. That is, in the robot control device 1b, the main control unit 11b executes the main calculation of the compliance control. Therefore, the robot control device 1b has an advantage that parameters to be adjusted can be rationally integrated.
  • the feedback system is configured by the main control unit. That is, in this robot control device, the feedback control calculation is performed by a component having a physical and communication distance from the robot. Therefore, the delay from the detection of torque by the torque sensor to the input of the command value to the motor becomes long. As a result, in this robot control device, there is inevitably more room for wasted time, which is a factor that suppresses high gain that can maintain stability.
  • the dead time itself is not an element that can be canceled by lead compensation or the like, an adverse effect on the response time is unavoidable. As described above, it is difficult to improve the force control performance (particularly quick response) in the conventional robot control device, and further improvement is required.
  • the present invention has been made to solve the above problems, and an object of the present invention is to provide a robot control device capable of improving the force control performance with respect to the conventional configuration.
  • the robot control device has a first frequency separator that separates the command value of the robot force or the command value of the torque of each joint of the robot into a low frequency component and a high frequency component, and a current value of the robot force.
  • the torque for each joint of the robot is based on the second frequency separation section that separates the current value of the torque for each joint of the robot into the low frequency component and the high frequency component, and the high frequency component obtained by the first frequency separation section.
  • the high frequency component of the command value of is calculated, and the command value of force control is calculated based on the low frequency component obtained by the first frequency separator and the low frequency component obtained by the second frequency separator, and the force control is performed.
  • the main control unit that calculates the control command value for each joint of the robot based on the command value of, and the high frequency component and the main control unit that are provided for each joint of the robot and are obtained by the second frequency separation unit.
  • the command value of torque control is calculated based on the high frequency component of the command value of the torque
  • the motor provided in the corresponding joint is calculated based on the command value of the torque control and the control command value calculated by the main control unit.
  • a joint control unit that calculates a command value is provided, and the first frequency separation unit and the second frequency separation unit are provided outside or inside the main control unit and the joint control unit.
  • the force control performance can be improved as compared with the conventional configuration.
  • FIG. 3A and 3B are diagrams showing a configuration example of the frequency separation unit according to the first embodiment. It is a flowchart which shows the operation example of the robot control apparatus which concerns on Embodiment 1. FIG. It is a flowchart which shows the operation example of the main control part in Embodiment 1. It is a flowchart which shows the operation example of the joint control part in Embodiment 1. It is a figure which shows an example of low frequency force control and high frequency torque control by the robot control device which concerns on Embodiment 1.
  • FIG. 3A and 3B are diagrams showing a configuration example of the frequency separation unit according to the first embodiment. It is a flowchart which shows the operation example of the robot control apparatus which concerns on Embodiment 1. FIG. It is a flowchart which shows the operation example of the main control part in Embodiment 1. It is a flowchart which shows the operation example of the joint control part in Embodiment 1. It is a figure which shows an example of low frequency force control and high frequency torque control by the robot
  • FIG. It is a figure which shows another configuration example of the robot control device which concerns on Embodiment 1.
  • FIG. It is a figure which shows the configuration example of the robot control device which concerns on Embodiment 2.
  • Embodiment 1. 1 and 2 are diagrams showing a configuration example of the robot control device 1 according to the first embodiment.
  • the relationship between the robot control device 1 and the robot 2 is the same as that in FIG. 13, and the description thereof will be omitted.
  • the robot control device 1 controls the position / posture and the force of the robot 2 at the same time (parallel).
  • the robot control device 1 includes a main control unit (upper controller) 11 and a plurality of joint control units (lower controllers) 12.
  • the joint control unit 12 is provided for each joint of the robot 2.
  • the main control unit 11 and each joint control unit 12 are connected by a communication line.
  • the main control unit 11 controls the entire robot 2 by outputting a command value to each joint control unit 12. Specifically, the main control unit 11 is based on the low frequency component of the force command value and the position / posture command value of the robot 2, the current value of the angle for each joint and the current value of the torque of the robot 2. The high frequency component and control command value of the torque command value for each joint are calculated. In FIGS. 1 and 2, the control command value calculated by the main control unit 11 is the command value of the angular velocity. As shown in FIG.
  • the main control unit 11 includes a frequency separation unit (first frequency separation unit) 111, a torque command value conversion unit 112, a force calculation unit 113, a force control unit 114, a position / orientation calculation unit 115, and a position / orientation. It includes a control unit 116, a command value synthesis unit 117, and a command value conversion unit 118.
  • the position / attitude calculation unit 115, the position / attitude control unit 116, and the command value synthesis unit 117 are necessary when controlling both the force and the position / attitude, and are not necessary when controlling only the force.
  • the main control unit 11 is realized by a processing circuit such as a system LSI (Large Scale Integration), a CPU (Central Processing Unit) that executes a program stored in a memory or the like, or the like.
  • the frequency separation unit 111 separates the command value of the force into a low frequency component and a high frequency component.
  • Fr represents a force command value.
  • the frequency separation unit 111 sets the low frequency region and the high frequency region based on, for example, the amount of delay from the detection of torque by the torque sensor 23 to the input of the command value to the motor 21. For example, when the delay amount is about 5 ms, the frequency separation unit 111 sets a low frequency region and a high frequency region at a boundary of about 50 ms, which is 10 times the delay amount. The same applies to the frequency separation unit 122 described later.
  • the torque command value conversion unit 112 converts the high frequency component of the force command value obtained by the frequency separation unit 111 into the high frequency component of the torque command value for each joint of the robot 2.
  • the torque command value conversion unit 112 has a coefficient multiplication unit 1121.
  • the coefficient multiplication unit 1121 multiplies the high frequency component of the command value of the force by the transposed matrix of the Jacobian matrix.
  • the high frequency component of the force command value is represented by the Cartesian coordinate system
  • the torque command value conversion unit 112 converts the high frequency component of the force command value into the high frequency component of the torque command value represented by the joint coordinate system. ..
  • J represents the Jacobian matrix
  • ⁇ r represents the command value of torque.
  • the force calculation unit 113 converts the low frequency component of the current value of the torque of each joint of the robot 2 into the low frequency component of the current value of the force.
  • the force calculation unit 113 has a coefficient multiplication unit 1131.
  • the coefficient multiplication unit 1131 multiplies the low frequency component of the current value of torque by the inverse matrix of the transpose of the Jacobian matrix.
  • the low frequency component of the current torque value is a value represented by the joint coordinate system, but since the force control unit 114 needs a force command value represented by the Cartesian coordinate system, it is converted by the force calculation unit 113. ..
  • the low frequency component of the current value of the torque for each joint of the robot 2 is obtained by the frequency separation unit 122.
  • the force control unit 114 has a speed command value (low frequency) based on the low frequency component of the force command value obtained by the frequency separation unit 111 and the low frequency component of the current force value obtained by the force calculation unit 113. Force control command value) is calculated. The force control unit 114 will execute control in the low frequency range (control of steady response) in the force control.
  • the force control unit 114 has a subtractor 1141 and a coefficient multiplication unit 1142.
  • the subtractor 1141 obtains the deviation between the low frequency component of the command value of the force and the low frequency component of the current value of the force by subtraction.
  • the coefficient multiplication unit 1142 obtains the command value of the velocity by multiplying the deviation obtained by the subtractor 1141 by the gain.
  • G F represents the gain for deviations of the force.
  • the position / posture calculation unit 115 calculates the current value of the position / posture of the robot 2 based on the current value of the angle of each joint of the robot 2.
  • the angle of each joint of the robot 2 is represented by the joint coordinate system, and the position / posture calculation unit 115 converts the angle of each joint into the position / posture represented by the orthogonal coordinate system.
  • the current value of the angle of each joint of the robot 2 is detected by the encoder 24 provided for each joint. In FIG. 2, ⁇ represents the current value of the angle, and X represents the current value of the position and orientation.
  • the position / attitude control unit 116 calculates a speed command value (position / attitude control command value) based on the position / attitude command value and the current position / attitude value calculated by the position / attitude calculation unit 115.
  • the position / attitude control unit 116 includes a deviation calculator 1161 and a coefficient multiplication unit 1162.
  • the deviation calculator 1161 calculates the deviation between the command value of the position / orientation and the current value of the position / orientation.
  • the coefficient multiplication unit 1162 obtains a speed command value by multiplying the deviation of the calculation result by the deviation calculator 1161 by the gain.
  • Xr represents a command value of position and orientation
  • G Z represents a gain.
  • the command value synthesis unit 117 synthesizes by adding the speed command value calculated by the force control unit 114 and the speed command value calculated by the position / attitude control unit 116, and obtains one speed command value. ..
  • the command value synthesizer 117 has an adder 1171.
  • the adder 1171 adds the speed command value calculated by the force control unit 114 and the speed command value calculated by the position / attitude control unit 116.
  • the command value conversion unit 118 converts the speed command value obtained by the command value synthesis unit 117 into the command value of the angular velocity for each joint of the robot 2.
  • the command value conversion unit 118 has a coefficient multiplication unit 1181.
  • the coefficient multiplication unit 1181 multiplies the command value of the velocity obtained by the command value synthesis unit 117 by the inverse matrix of the Jacobian matrix. That is, the command value conversion unit 118 converts the command value represented by the orthogonal coordinate system into the command value represented by the joint coordinate system.
  • ⁇ (dot) r represents the command value of the angular velocity.
  • the joint control unit 12 controls the motor 21 provided in the corresponding joint in response to a command from the main control unit 11. Specifically, the joint control unit 12 is provided in the corresponding joint based on the current value of the torque in the corresponding joint and the high frequency component and the control command value of the torque command value calculated by the main control unit 11. The command value for the motor 21 is calculated. In FIGS. 1 and 2, the control command value is a command value of the angular velocity. As shown in FIG. 1, the joint control unit 12 includes a torque acquisition unit 121, a frequency separation unit (second frequency separation unit) 122, a torque control unit 123, and a motor control unit 124. The motor control unit 124 has a joint angle control unit 125 and a command value synthesis unit 126.
  • the torque acquisition unit 121 acquires the current value of the torque at the corresponding joint.
  • the current value of the torque for each joint of the robot 2 is detected by the torque sensor 23 provided for each joint.
  • the frequency separation unit 122 separates the current value of the torque acquired by the torque acquisition unit 121 into a low frequency component and a high frequency component.
  • the torque control unit 123 calculates the command value of torque control based on the high frequency component of the current value of the torque obtained by the frequency separation unit 122 and the high frequency component of the command value of the torque calculated by the main control unit 11.
  • the torque control unit 123 executes control (transient response control) in the high frequency region of the force control.
  • the torque control unit 123 has a subtractor 1231 and a PI control unit 1232.
  • the subtractor 1231 subtracts the high frequency component of the current value of the torque obtained by the frequency separation unit 122 from the high frequency component of the command value of the torque calculated by the main control unit 11.
  • the PI control unit 1232 obtains a command value for torque control by performing PI control based on the subtraction result by the subtractor 1231.
  • the joint angle control unit 125 calculates the command value of the angular velocity control based on the command value of the angular velocity calculated by the main control unit 11.
  • the joint angle control unit 125 has a speed conversion unit 1251 and a speed control unit 1252.
  • the speed control unit 1252 has a subtractor 1253 and a PI control unit 1254.
  • the speed conversion unit 1251 converts the current value of the angle at the corresponding joint into the current value of the angular velocity.
  • the subtractor 1253 subtracts the current value of the angular velocity obtained by the speed conversion unit 1251 from the command value of the angular velocity calculated by the main control unit 11.
  • the PI control unit 1254 obtains a command value for angular velocity control by performing PI control based on the subtraction result by the subtractor 1253.
  • the command value combining unit 126 synthesizes the torque control command value calculated by the torque control unit 123 and the angular velocity control command value calculated by the joint angle control unit 125.
  • the command value synthesizing unit 126 has an adder 1261.
  • the adder 1261 adds the torque control command value calculated by the torque control unit 123 and the angular velocity control command value calculated by the joint angle control unit 125.
  • FIG. 3 shows a configuration example of the frequency separation unit 111, the same applies to the frequency separation unit 122.
  • the frequency separation unit 111 shown in FIG. 3A has a low-pass filter 1111 and a high-pass filter 1112.
  • the low-pass filter 1111 passes only the low frequency component of the signal input from the outside.
  • the high-pass filter 1112 passes only the high frequency component of the signal input from the outside. It is desirable that the low-pass filter 1111 and the high-pass filter 1112 have the same cutoff frequency (including substantially the same meaning).
  • the frequency separator 111 shown in FIG. 3B includes a low-pass filter 1113 and a subtractor 1114.
  • the low-pass filter 1113 passes only the low frequency component of the signal input from the outside.
  • the subtractor 1114 subtracts the signal that has passed through the low-pass filter 1113 from the signal input from the outside.
  • the signal obtained by the subtractor 1114 is a high frequency component of the signal input from the outside.
  • FIG. 3 shows a case where the frequency separation unit 111 has a low-pass filter 1113.
  • the frequency separation unit 111 may have a configuration using another signal processing method having a smoothing effect, such as a weighted moving average, instead of the low-pass filter 1113.
  • the main control unit 11 first sets the command value of the force of the robot 2 and the command value of the position and attitude. Based on the low frequency component of the current value of the angle for each joint and the current value of the torque of the robot 2, the high frequency component of the command value of the torque for each joint and the command value of the angular velocity are calculated (step ST401).
  • the joint control unit 12 is a motor provided in the corresponding joint based on the current value of the torque in the corresponding joint, the high frequency component of the torque command value calculated by the main control unit 11, and the angular velocity command value.
  • the command value for 21 is calculated (step ST402).
  • the frequency separation unit 111 first separates the force command value into a low frequency component and a high frequency component (step ST501).
  • the torque command value conversion unit 112 converts the high frequency component of the force command value obtained by the frequency separation unit 111 into the high frequency component of the torque command value for each joint of the robot 2 (step ST502).
  • the coefficient multiplication unit 1121 multiplies the high frequency component of the command value of the force by the transposed matrix of the Jacobian matrix. Since the Jacobian matrix changes depending on the angle of the joints of the robot 2, it is necessary to update it as appropriate.
  • the force calculation unit 113 converts the low frequency component of the current value of the torque of each joint of the robot 2 into the low frequency component of the current value of the force (step ST503).
  • the coefficient multiplication unit 1131 multiplies the low frequency component of the current value of torque by the inverse matrix of the transpose of the Jacobian matrix. Since the current value of the torque acquired by the torque acquisition unit 121 usually includes a torque component caused by gravity, the low frequency component of the current value of torque is used to convert the torque component caused by gravity before converting the torque into force. It is good to subtract the estimated value and remove it.
  • the force control unit 114 sets the speed command value (1) based on the low frequency component of the force command value obtained by the frequency separation unit 111 and the low frequency component of the current value of the force obtained by the force calculation unit 113.
  • the command value for low frequency force control is calculated (step ST504).
  • the subtractor 1141 obtains the deviation between the low frequency component of the command value of the force and the low frequency component of the current value of the force by subtraction, and the coefficient multiplication unit 1142 is obtained by the subtractor 1141. By multiplying the deviation by the gain, the command value of the speed is obtained.
  • the position / posture calculation unit 115 calculates the current value of the position / posture of the robot 2 based on the current value of the angle of each joint of the robot 2 (step ST505).
  • the position / attitude control unit 116 calculates a speed command value (position / attitude control command value) based on the position / attitude command value and the position / attitude current value calculated by the position / attitude calculation unit 115 (step). ST506).
  • the deviation calculator 1161 calculates the deviation between the command value of the position / orientation and the current value of the position / orientation
  • the coefficient multiplication unit 1162 calculates the deviation of the calculation result by the deviation calculator 1161.
  • the deviation of the position is obtained by subtracting the coordinate value of the current value from the coordinate value of the command value.
  • the attitude deviation can be obtained by obtaining the rotation conversion from the attitude of the current value to the attitude of the command value.
  • the command value combining unit 117 synthesizes by adding the speed command value calculated by the force control unit 114 and the speed command value calculated by the position / attitude control unit 116, and synthesizes one speed command value. (Step ST507).
  • the command value conversion unit 118 converts the speed command value obtained by the command value synthesis unit 117 into the command value of the angular velocity for each joint of the robot 2 (step ST508).
  • the coefficient multiplication unit 1181 obtains the command value of the angular velocity for each joint by multiplying the command value of the velocity obtained by the command value synthesis unit 117 by the inverse matrix of the Jacobian matrix.
  • the torque acquisition unit 121 first acquires the current value of the torque at the corresponding joint (step ST601).
  • the frequency separation unit 122 separates the current value of the torque acquired by the torque acquisition unit 121 into a low frequency component and a high frequency component (step ST602).
  • the torque control unit 123 calculates the torque control command value based on the high frequency component of the current value of the torque obtained by the frequency separation unit 122 and the high frequency component of the torque command value calculated by the main control unit 11. (Step ST603).
  • the subtractor 1231 subtracts the high frequency component of the current value of the torque obtained by the frequency separation unit 122 from the high frequency component of the command value of the torque calculated by the main control unit 11, and the PI control unit 1232.
  • the command value of torque control is obtained by performing PI control based on the subtraction result by the subtractor 1231.
  • the joint angle control unit 125 calculates the command value of the angular velocity control based on the command value of the angular velocity calculated by the main control unit 11 (step ST604).
  • the speed conversion unit 1251 converts the current value of the angle at the corresponding joint into the current value of the angular velocity
  • the subtractor 1253 converts the speed from the command value of the angular velocity calculated by the main control unit 11.
  • the current value of the angular velocity obtained by the unit 1251 is subtracted, and the PI control unit 1254 performs PI control based on the subtraction result by the subtractor 1253 to obtain the command value of the angular velocity control.
  • the command value synthesizing unit 126 synthesizes the torque control command value calculated by the torque control unit 123 and the angular velocity control command value calculated by the joint angle control unit 125 (step ST605).
  • the adder 1261 adds the torque control command value calculated by the torque control unit 123 and the angular velocity control command value calculated by the joint angle control unit 125.
  • FIG. 7 is a diagram showing an example of low frequency force control and high frequency torque control by the robot control device 1 according to the first embodiment.
  • the thick solid line arrow indicates the flow of the low frequency component of the force or torque
  • the thin solid line arrow indicates the flow of the high frequency component of the force or torque.
  • the portion where the thick solid line arrow and the thin solid line arrow are parallel to each other indicates a portion where the force or torque is not separated by frequency.
  • the broken line arrow indicates a part related only to the position / attitude control.
  • the force control unit 114 controls the low frequency component of the current value of the force so as to match the low frequency component of the command value of the force.
  • the low frequency component of the current value of the force is obtained by frequency-separating the current value of the torque by the frequency separation unit 122 and converting it into a force by the force calculation unit 113.
  • the low frequency component of the force command value is obtained by frequency-separating the force command value by the frequency separation unit 111.
  • the command value generated by the force control unit 114 drives the motor 21 via the command value synthesis unit 117, the command value conversion unit 118, the speed control unit 1252, and the command value synthesis unit 126. In this way, in the robot control device 1 according to the first embodiment, the low frequency component of the force is controlled, and the steady response is controlled.
  • the torque control unit 123 controls the high frequency component of the current value of the torque so as to match the high frequency component of the command value of the torque.
  • the high frequency component of the current value of torque is obtained by frequency-separating the current value of torque by the frequency separation unit 122.
  • the high-frequency component of the torque command value is obtained by frequency-separating the force command value by the frequency separation unit 111 and converting it by the torque command value conversion unit 112.
  • the command value generated by the torque control unit 123 drives the motor 21 via the command value synthesis unit 126. In this way, in the robot control device 1 according to the first embodiment, the high frequency component of the force is controlled and the transient response is controlled.
  • the above two controls are combined by the command value synthesizing unit 126, so that the current value of the force is controlled to match the command value of the force as a whole.
  • the feedback system is configured by the main control unit 11b. That is, in this robot control device 1b, the feedback control calculation is performed by a component that is physically and communicatively away from the robot 2. Therefore, the delay from the detection of torque by the torque sensor 23 to the input of the command value to the motor 21 becomes long. As a result, in the robot control device 1b, there is inevitably more room for wasted time, which becomes a factor of suppressing high gain that can maintain stability. Moreover, since the dead time itself is not an element that can be canceled by lead compensation or the like, an adverse effect on the response time is unavoidable.
  • the execution of force control is divided into transient response control (high frequency range) and steady response control (low frequency range), and transient response control is performed. It is realized by controlling the value of the torque sensor 23 that can be arranged on the side close to the joint control unit 12, and the main calculation of the control is executed on the lower controller (joint control unit 12 in the figure) side.
  • the robot control device 1 according to the first embodiment it is possible to reduce the room for waste time and improve the quick response. That is, in the robot control device 1 according to the first embodiment, adjustment corresponding to high gain of the controller capable of maintaining stability (gain adjustment of one-variable control for each joint) is also possible.
  • the steady response is controlled by the host controller (main control unit 11) in cooperation with a plurality of joints as in the conventional case.
  • the joint control unit 12 controls the joint unit, and a steady control deviation may occur. For example, if an external force in the X-axis direction is applied as a disturbance while the force is controlled in the Z-axis direction, a deviation may occur between the current value and the target value of the force in the Z-axis direction. Since such disturbance cannot be suppressed by the control of each joint, a control deviation occurs.
  • the main control unit 11 controls the steady response, and the above problem can be solved. Since it is mainly the control of the transient response (high frequency range) that affects the quick response, the problem that it is difficult to improve the quick response that the conventional technology has can be solved.
  • the frequency separation unit 111 frequency-separates the command value of the force
  • the frequency separation unit 122 frequency-separates the current value of the torque.
  • the torque command value conversion unit 112 and the force calculation unit 113 can convert torque and force to each other. Therefore, the frequency separation unit 111 may perform frequency separation after converting the force command value into the torque command value.
  • the frequency separation unit 122 may perform frequency separation after converting the current value of torque into the current value of force. In other words, even if the mutual conversion of force and torque and the calculation by the frequency separation units 111 and 122 are exchanged, the frequency separation unit 111 frequency-separates the command value of the force, and the frequency separation unit 122 is the current torque. It is equivalent to frequency separation of values.
  • the command value of the torque may be input to the frequency separation unit 111, or the current value of the force may be input to the frequency separation unit 122.
  • the deviation obtained by subtracting the torque current value from the force command value may be frequency-separated. This can be interpreted as integrating the frequency separation unit 111 and the frequency separation unit 122 into one, and is equivalent.
  • the frequency separation unit 111 is provided inside the main control unit 11 is shown.
  • the present invention is not limited to this, and the frequency separation unit 111 may be provided outside the main control unit 11.
  • the case where the frequency separation unit 122 is provided inside the joint control unit 12 is shown.
  • the present invention is not limited to this, and the frequency separation unit 122 may be provided outside the joint control unit 12.
  • FIG. 8 shows a case where the frequency separation unit 111 and the frequency separation unit 122 are provided outside the main control unit 11 and the joint control unit 12.
  • the robot control device 1 separates the command value of the force of the robot 2 or the command value of the torque of each joint of the robot 2 into a low frequency component and a high frequency component. Obtained by the frequency separation unit 111, the frequency separation unit 122 that separates the current value of the force of the robot 2 or the current value of the torque of each joint of the robot 2 into a low frequency component and a high frequency component, and the frequency separation unit 111.
  • the high frequency component of the command value of the torque for each joint of the robot 2 is calculated based on the high frequency component, and the force is calculated based on the low frequency component obtained by the frequency separation unit 111 and the low frequency component obtained by the frequency separation unit 122.
  • a main control unit 11 that calculates a control command value and calculates a control command value for each joint of the robot 2 based on the force control command value, and a frequency separation unit 122 provided for each joint of the robot 2.
  • the command value of torque control was calculated based on the high frequency component obtained by the above and the high frequency component of the command value of the torque calculated by the main control unit 11, and was calculated by the command value of the torque control and the main control unit 11.
  • a joint control unit 12 that calculates a command value for a motor 21 provided in a corresponding joint based on a control command value is provided, and the frequency separation unit 111 and the frequency separation unit 122 are the main control unit 11 and the joint control unit 12. It was installed outside or inside.
  • the robot control device 1 according to the first embodiment can improve the force control performance as compared with the conventional configuration. Further, the robot control device 1 according to the first embodiment can suppress the control deviation.
  • the joint control unit 12 calculates the angular velocity control command value using the angular velocity command value calculated by the main control unit 11, and then calculates the torque control command value and the angular velocity control command value.
  • the case of synthesizing is shown.
  • the joint control unit 12 synthesizes the torque control command value and the angular velocity command value calculated by the main control unit 11, and then calculates the angular velocity control command value using the combined result.
  • You may. 9 and 10 are diagrams showing a configuration example of the robot control device 1 according to the second embodiment. The robot control device 1 according to the second embodiment shown in FIGS.
  • the command value synthesis unit 127 synthesizes the command value of the angular velocity calculated by the main control unit 11 and the command value of the torque control calculated by the torque control unit 123.
  • the command value synthesizing unit 127 has an adder 1271.
  • the adder 1271 adds the command value of the angular velocity calculated by the main control unit 11 and the command value of the torque control calculated by the torque control unit 123.
  • the joint angle control unit 128 calculates the command value for angular velocity control based on the synthesis result by the command value synthesis unit 127.
  • the joint angle control unit 128 has a speed conversion unit 1281 and a speed control unit 1282.
  • the speed control unit 1282 has a subtractor 1283 and a PI control unit 1284.
  • the velocity conversion unit 1281 converts the current value of the angle at the corresponding joint into the current value of the angular velocity.
  • the subtractor 1283 subtracts the current value of the angular velocity obtained by the speed conversion unit 1281 from the synthesis result by the command value synthesis unit 127.
  • the PI control unit 1284 obtains a command value for angular velocity control by performing PI control based on the subtraction result by the subtractor 1283.
  • the command value (current command value) of the angular velocity control calculated by the joint angle control unit 128 is output to the motor 21 provided in the corresponding joint.
  • the command value of the angular velocity and the command value of the torque control are combined, and the angular velocity control is performed based on the combined result.
  • the robot control device 1 according to the second embodiment also has the same effect as the robot control device 1 according to the first embodiment. Further, the robot control device 1 according to the second embodiment has a correspondence relationship close to that of the conventional compliance control.
  • Embodiment 3 In the robot control device 1 according to the first embodiment shown in FIGS. 1 and 2, a case where the frequency separation unit 122 is provided in the joint control unit 12 is shown. However, the frequency separation unit 122 may be divided into a main control unit 11 and a joint control unit 12.
  • FIG. 11 is a diagram showing a configuration example of the robot control device 1 according to the third embodiment.
  • the robot control device 1 according to the third embodiment shown in FIG. 11 has a frequency separation unit 122 as a low-pass filter 119, an addition unit 120, and a subtraction unit with respect to the robot control device 1 according to the first embodiment shown in FIGS. It has been changed to 129.
  • the low-pass filter 119, the addition unit 120, and the subtraction unit 129 are provided for each joint of the robot 2. As shown in FIGS. 11 and 12, the low-pass filter 119, the addition unit 120, and the subtraction unit 129 form a frequency separation unit (second frequency separation unit) 13. Other configurations are the same, and the same reference numerals are given and the description thereof will be omitted. In FIG. 12, (low) indicates a low frequency component, (high) indicates a high frequency component, and (low + high) indicates both components, that is, the original signal.
  • the low-pass filter 119 is provided in the main control unit 11 and passes only the low frequency component of the current value of the torque acquired by the torque acquisition unit 121.
  • the addition unit 120 is provided in the main control unit 11 and adds the low frequency component of the current value of the torque that has passed through the low-pass filter 119 and the high frequency component of the command value of the torque obtained by the torque command value conversion unit 112. ..
  • the subtraction unit 129 is provided in the joint control unit 12 and subtracts the current value of the torque acquired by the torque acquisition unit 121 from the addition result by the addition unit 120.
  • the output by the subtraction unit 129 is a value obtained by subtracting the high frequency component of the current torque value from the high frequency component of the command value of the torque.
  • the position / posture control by the robot control device 1 according to the third embodiment is the same as the position / posture control by the robot control device 1 according to the first embodiment.
  • the force control (low frequency control) by the robot control device 1 according to the third embodiment the low frequency component of the current value of the torque obtained by the frequency separation unit 13 is converted into the low frequency component of the current value of the force by the force calculation unit 113. It is performed using the one converted into the above, and is substantially the same as the force control by the robot control device 1 according to the first embodiment.
  • the torque control (high frequency control) by the robot control device 1 according to the third embodiment is different from the torque control by the robot control device 1 according to the first embodiment. In the following, only the part related to this torque control will be described.
  • the current value of the torque acquired by the torque acquisition unit 121 is branched by the joint control unit 12, and then one is output to the main control unit 11.
  • the current value of the torque output to the main control unit 11 is input to the low-pass filter 119, and a low frequency component of the current value of the torque is obtained.
  • This signal is output to the force calculation unit 113 and the addition unit 120.
  • the addition unit 120 adds the high frequency component of the command value of the torque obtained by the torque command value conversion unit 112 and the low frequency component of the current value of the torque, and outputs the addition to the joint control unit 12.
  • the added value output to the joint control unit 12 is input to the subtracting unit 129, and the current value of the torque is subtracted.
  • the low frequency component of the current value of the torque from the main control unit 11 and the low frequency component of the current value of the torque acquired by the torque acquisition unit 121 cancel each other out, so that the high frequency component of the current value of the torque becomes.
  • the high frequency component of the current torque value is subtracted from the high frequency component of the torque command value, and the high frequency component of the torque deviation (difference between the command value and the current value) is output from the frequency separation unit 13.
  • the high frequency component of this torque deviation is output to the torque control unit 123. After that, it is the same as the first embodiment.
  • the low frequency component of the current value of the torque obtained by the subtraction unit 129 from the addition unit 120 is a value obtained through two communications when viewed from the current value of the torque input to the frequency separation unit 13, and thus is delayed. Exists. Therefore, strictly speaking, the low frequency components are not completely offset. However, the low frequency component changes slowly from the beginning, and if the delay is sufficiently small as compared with the time constant of the low-pass filter 119, the effect of the delay becomes small.
  • FIGS. 11 and 12 show the case where the low-pass filter 119 is used.
  • the present invention is not limited to this, and the low frequency component of the current value of torque may be estimated using a Kalman filter or an observer.
  • the main control unit calculates the command value of the angular velocity and the joint angle control unit performs the speed control.
  • the main control unit performs other methods such as acceleration or current. It is also possible to control the position and posture and the force by calculating the command value of the physical quantity and controlling the physical quantity by the joint angle control unit.
  • the robot control device can improve the force control performance as compared with the conventional configuration, and is suitable for use in a robot control device or the like capable of simultaneously controlling the position and orientation and force of the robot.
  • Robot control device 2 Robot 11 Main control unit 12 Joint control unit 13 Frequency separation unit (second frequency separation unit) 21 Motor 22 Sensor 23 Torque sensor 24 Encoder 111 Frequency separator (1st frequency separator) 112 Torque command value conversion unit 113 Force calculation unit 114 Force control unit 115 Position / orientation calculation unit 116 Position / orientation control unit 117 Command value synthesis unit 118 Command value conversion unit 119 Low-pass filter 120 Addition unit 121 Torque acquisition unit 122 Frequency separation unit (No.

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Manipulator (AREA)

Abstract

力又はトルクの指令値を低周波成分及び高周波成分に分離する周波数分離部(111)と、力又はトルクの現在値を低周波成分及び高周波成分に分離する周波数分離部(122)と、周波数分離部(111)による高周波成分に基づいてトルクの指令値の高周波成分を演算し、周波数分離部(111,122)による低周波成分に基づいて力制御の指令値を演算し、当該力制御の指令値に基づいて制御指令値を演算するメイン制御部(11)と、関節毎に設けられ、周波数分離部(122)による高周波成分及びメイン制御部(11)によるトルクの指令値の高周波成分に基づいてトルク制御の指令値を演算し、当該トルク制御の指令値及び当該メイン制御部(11)による制御指令値に基づいてモータ(21)に対する指令値を演算する関節制御部(12)とを備え、周波数分離部(111,122)はメイン制御部(11)及び関節制御部(12)の外部又は内部に設けられた。

Description

ロボット制御装置及びロボット制御方法
 この発明は、ロボットの位置姿勢と力を同時に制御可能なロボット制御装置及びロボット制御方法に関する。
 垂直多関節ロボット等のロボット(ロボットアーム)では、位置姿勢と力を同時(並列)に制御対象とするロボット制御装置が用いられている(例えば特許文献1参照)。なお、位置姿勢は、ロボットの位置及び姿勢のうちの少なくとも一方を表す。図13~図15に、ロボット制御装置1bの一例を示す。
 図13に示すロボット制御装置1bは、メイン制御部(上位コントローラ)11b、及び複数の関節制御部(下位コントローラ)12bを備えている。関節制御部12bは、ロボット2が有する関節毎に設けられている。なお、メイン制御部11bと各関節制御部12bとの間は通信線により接続されている。
 また、図13に示すように、ロボット2は、関節毎に、モータ21及びセンサ22(トルクセンサ23及びエンコーダ24)を有している。モータ21及びセンサ22はそれぞれ、対応する関節制御部12bに対して電力線等により接続されている。トルクセンサ23は、対応する関節のトルクの現在値を検出する。エンコーダ24は、対応する関節の角度の現在値を検出する。なお図14では、モータ21、トルクセンサ23及びエンコーダ24を一組のみ示している。
 メイン制御部11bは、各関節制御部12bに指令値を出力することで、ロボット2全体を制御する。具体的には、メイン制御部11bは、力の指令値及び位置姿勢の指令値並びにロボット2が有する関節毎のトルクの現在値及び角度の現在値に基づいて、当該関節毎の角速度の指令値を演算する。メイン制御部11bは、図14及び図15に示すように、力演算部111b、力制御部112b、位置姿勢演算部113b、位置姿勢制御部114b、指令値合成部115b及び指令値変換部116bを備えている。
 力演算部111bは、ロボット2が有する関節毎のトルクの現在値に基づいて、ロボット2の力の現在値を演算する。ロボット2が有する関節毎のトルクは関節座標系で表されており、この力演算部111bでは、係数乗算部1111bで関節毎のトルクを並べたベクトルにヤコビ行列の転置の逆行列を乗算して、関節毎のトルクを直交座標系で表された力に変換する。図15において、τはトルクの現在値を表し、Jはヤコビ行列を表し、Fは力の現在値を表している。
 力制御部112bは、力の指令値及び力演算部111bにより演算された力の現在値に基づいて、力制御の指令値を演算する。この力制御部112bでは、偏差演算器1121bで力の指令値と力の現在値の間の偏差を求め、係数乗算部1122bで偏差演算器1121bによる演算結果の偏差に対してゲインを乗算することで、力制御の指令値を得る。図15において、Frは力の指令値を表し、Gはゲインを表している。
 位置姿勢演算部113bは、ロボット2が有する関節毎の角度の現在値に基づいて、ロボット2の位置姿勢の現在値を演算する。ロボット2が有する関節毎の角度の現在値は関節座標系で表されており、位置姿勢演算部113bは、関節毎の角度の現在値を直交座標系で表された位置姿勢の現在値に変換する。図15において、θは角度の現在値を表し、Xは位置姿勢の現在値を表している。
 位置姿勢制御部114bは、位置姿勢の指令値及び位置姿勢演算部113bにより演算された位置姿勢の現在値に基づいて、位置姿勢制御の指令値を演算する。この位置姿勢制御部114bでは、偏差演算器1141bで位置姿勢の指令値と位置姿勢の現在値の間の偏差を求め、係数乗算部1142bで偏差演算器1141bによる演算結果に対してゲインを乗算することで、位置姿勢制御の指令値を得る。図15において、Xrは位置姿勢の指令値を表し、Gはゲインを表している。
 指令値合成部115bは、力制御部112bにより演算された力制御の指令値及び位置姿勢制御部114bにより演算された位置姿勢制御の指令値を合成する。この指令値合成部115bでは、加算器1151bで力制御の指令値と位置姿勢制御の指令値とを加算する。
 指令値変換部116bは、指令値合成部115bによる合成結果を、ロボット2が有する関節毎の角速度の指令値に変換する。この指令値変換部116bでは、係数乗算部1161bで上記合成結果に対してヤコビ行列の逆行列を乗算する。すなわち、指令値変換部116bは、直交座標系で表された指令値を関節座標系で表された指令値に変換する。図15において、θ(ドット)rは角速度の指令値を表している。
 関節制御部12bは、メイン制御部11bからの指令に応じ、対応する関節に設けられたモータ21を制御する。関節制御部12bは、図14に示すように、トルク取得部121b及び関節角制御部122bを備えている。
 トルク取得部121bは、対応する関節でのトルクの現在値を取得する。このトルク取得部121bにより取得されたトルクの現在値を示すデータは、メイン制御部11b(力演算部111b)に出力される。
 関節角制御部122bは、メイン制御部11bにより演算された角速度の指令値及びロボット2が有する関節毎の角度の現在値に基づいて、対応する関節に設けられたモータ21に対する指令値を演算する。この関節角制御部122bでは、速度変換部1221bで角度の現在値を角速度の現在値に変換し、減算器1223bで角速度の指令値から速度変換部1221bで得られた角速度の現在値を減算し、PI制御部1224bで減算器1223bによる減算結果に基づいてPI制御を行うことで、モータ21に対する指令値を得る。
 このように、図13~図15に示すロボット制御装置1bでは、複数の関節を連携して操作する必要があり、メイン制御部11bで、多関節の自由度(例えば6自由度)に対して位置姿勢と力を同時に制御演算した結果を合成し、当該合成結果を各軸の関節制御部12bへの信号に変換してから出力する。すなわち、このロボット制御装置1bでは、メイン制御部11bでコンプライアンス制御の主要な演算を実行する。そのため、このロボット制御装置1bでは、調整すべきパラメータを合理的に統合できる等のメリットがある。
特開2016-168650号公報
 一般に、産業用ロボット等のロボットでは、力制御によって実現が求められる対象として精密な研磨の倣い動作等があり、整定動作又は追従動作のようなダイナミクスの性能向上が常に求められている。
 一方、従来のロボット制御装置では、メイン制御部でフィードバック系を構成している。すなわち、このロボット制御装置では、ロボットから物理的にも通信的にも距離のある構成要素でフィードバック制御演算を行うことになる。よって、トルクセンサによるトルクの検出からモータへの指令値の入力までの遅延が長くなる。その結果、このロボット制御装置では、不可避的にむだ時間が入り込む余地が多くなり、安定性を維持できるハイゲイン化を抑制する要因になる。また、むだ時間自体も、リード補償等でキャンセルできる要素ではないため、応答時間への悪影響は避けられない。
 このように、従来のロボット制御装置では、力制御の性能(特に速応性)の向上が難しく、更なる改善が求められている。
 この発明は、上記のような課題を解決するためになされたもので、従来構成に対して力制御の性能を向上可能であるロボット制御装置を提供することを目的としている。
 この発明に係るロボット制御装置は、ロボットの力の指令値又は当該ロボットが有する関節毎のトルクの指令値を低周波成分及び高周波成分に分離する第1周波数分離部と、ロボットの力の現在値又は当該ロボットが有する関節毎のトルクの現在値を低周波成分及び高周波成分に分離する第2周波数分離部と、第1周波数分離部により得られた高周波成分に基づいてロボットが有する関節毎のトルクの指令値の高周波成分を演算し、第1周波数分離部により得られた低周波成分及び第2周波数分離部により得られた低周波成分に基づいて力制御の指令値を演算し、当該力制御の指令値に基づいてロボットが有する関節毎の制御指令値を演算するメイン制御部と、ロボットが有する関節毎に設けられ、第2周波数分離部により得られた高周波成分及びメイン制御部により演算されたトルクの指令値の高周波成分に基づいてトルク制御の指令値を演算し、当該トルク制御の指令値及び当該メイン制御部により演算された制御指令値に基づいて対応する関節に設けられたモータに対する指令値を演算する関節制御部とを備え、第1周波数分離部及び第2周波数分離部は、メイン制御部及び関節制御部の外部又は内部に設けられたことを特徴とする。
 この発明によれば、上記のように構成したので、従来構成に対して力制御の性能を向上可能となる。
実施の形態1に係るロボット制御装置の構成例を示す図である。 実施の形態1に係るロボット制御装置の構成例を示す図である。 図3A、図3Bは、実施の形態1における周波数分離部の構成例を示す図である。 実施の形態1に係るロボット制御装置の動作例を示すフローチャートである。 実施の形態1におけるメイン制御部の動作例を示すフローチャートである。 実施の形態1における関節制御部の動作例を示すフローチャートである。 実施の形態1に係るロボット制御装置による低周波力制御と高周波トルク制御の一例を示す図である。 実施の形態1に係るロボット制御装置の別の構成例を示す図である。 実施の形態2に係るロボット制御装置の構成例を示す図である。 実施の形態2に係るロボット制御装置の構成例を示す図である。 実施の形態3に係るロボット制御装置の構成例を示す図である。 実施の形態3における周波数分離部の構成例を示す図である。 従来のロボット制御装置を含むロボットシステムの構成例を示す図である。 従来のロボット制御装置の構成例を示す図である。 従来のロボット制御装置の構成例を示す図である。
 以下、この発明の実施の形態について図面を参照しながら詳細に説明する。
実施の形態1.
 図1,2は実施の形態1に係るロボット制御装置1の構成例を示す図である。なお、ロボット制御装置1とロボット2との関係は、図13と同様であり、その説明を省略する。
 ロボット制御装置1は、ロボット2の位置姿勢と力を同時(並列)に制御する。ロボット制御装置1は、図1,2に示すように、メイン制御部(上位コントローラ)11、及び複数の関節制御部(下位コントローラ)12を備えている。関節制御部12は、ロボット2が有する関節毎に設けられている。なお、メイン制御部11と各関節制御部12との間は通信線により接続されている。
 メイン制御部11は、各関節制御部12に指令値を出力することで、ロボット2全体を制御する。具体的には、メイン制御部11は、ロボット2の力の指令値及び位置姿勢の指令値並びにロボット2が有する関節毎の角度の現在値及びトルクの現在値の低周波成分に基づいて、当該関節毎のトルクの指令値の高周波成分及び制御指令値を演算する。図1,2では、メイン制御部11が演算する制御指令値は角速度の指令値である。メイン制御部11は、図1に示すように、周波数分離部(第1周波数分離部)111、トルク指令値変換部112、力演算部113、力制御部114、位置姿勢演算部115、位置姿勢制御部116、指令値合成部117、及び指令値変換部118を備えている。ただし、位置姿勢演算部115、位置姿勢制御部116、指令値合成部117は、力と位置姿勢の双方を制御する場合に必要であり、力だけを制御する場合は不要である。なお、メイン制御部11は、システムLSI(Large Scale Integration)等の処理回路、又はメモリ等に記憶されたプログラムを実行するCPU(Central Processing Unit)等により実現される。
 周波数分離部111は、力の指令値を低周波成分及び高周波成分に分離する。図1,2において、Frは力の指令値を表している。
 なお、周波数分離部111は、低周波域と高周波域を、例えば、トルクセンサ23によるトルクの検出からモータ21への指令値の入力までの遅延量に基づいて、設定する。例えば、周波数分離部111は、上記遅延量が5ms程度であった場合、その10倍である50ms程度を境にして低周波域と高周波域を設定する。後述する周波数分離部122についても同様である。
 トルク指令値変換部112は、周波数分離部111により得られた力の指令値の高周波成分を、ロボット2が有する関節毎のトルクの指令値の高周波成分に変換する。トルク指令値変換部112は、係数乗算部1121を有している。係数乗算部1121は、力の指令値の高周波成分に対してヤコビ行列の転置行列を乗算する。力の指令値の高周波成分は直交座標系で表されており、トルク指令値変換部112は、力の指令値の高周波成分を関節座標系で表されたトルクの指令値の高周波成分に変換する。図2において、Jはヤコビ行列を表し、τrはトルクの指令値を表している。
 力演算部113は、ロボット2が有する関節毎のトルクの現在値の低周波成分を、力の現在値の低周波成分に変換する。力演算部113は、係数乗算部1131を有している。係数乗算部1131は、トルクの現在値の低周波成分に対してヤコビ行列の転置の逆行列を乗算する。トルクの現在値の低周波成分は関節座標系で表された値であるが、力制御部114では直交座標系で表された力の指令値が必要であるため、力演算部113によって変換する。なお、ロボット2が有する関節毎のトルクの現在値の低周波成分は、周波数分離部122により得られる。
 力制御部114は、周波数分離部111により得られた力の指令値の低周波成分及び力演算部113により得られた力の現在値の低周波成分に基づいて、速度の指令値(低周波力制御の指令値)を演算する。この力制御部114は、力制御のうちの低周波域の制御(定常応答の制御)を実行することになる。力制御部114は、減算器1141及び係数乗算部1142を有している。
 減算器1141は、力の指令値の低周波成分と力の現在値の低周波成分との間の偏差を減算によって求める。
 係数乗算部1142は、減算器1141により求められた偏差に対してゲインを乗算することで、速度の指令値を得る。図2において、Gは力の偏差に対するゲインを表している。
 位置姿勢演算部115は、ロボット2が有する関節毎の角度の現在値に基づいて、ロボット2の位置姿勢の現在値を演算する。ロボット2が有する関節毎の角度は関節座標系で表されており、位置姿勢演算部115は、関節毎の角度を直交座標系で表された位置姿勢に変換する。なお、ロボット2が有する関節毎の角度の現在値は、当該関節毎に設けられたエンコーダ24により検出される。図2において、θは角度の現在値を表し、Xは位置姿勢の現在値を表している。
 位置姿勢制御部116は、位置姿勢の指令値及び位置姿勢演算部115により演算された位置姿勢の現在値に基づいて、速度の指令値(位置姿勢制御の指令値)を演算する。位置姿勢制御部116は、偏差演算器1161及び係数乗算部1162を有している。
 偏差演算器1161は、位置姿勢の指令値と位置姿勢の現在値との間の偏差を演算によって求める。
 係数乗算部1162は、偏差演算器1161による演算結果の偏差に対してゲインを乗算することで、速度の指令値を得る。図2において、Xrは位置姿勢の指令値を表し、Gはゲインを表している。
 指令値合成部117は、力制御部114により演算された速度の指令値と位置姿勢制御部116により演算された速度の指令値とを加算することで合成し、1つの速度の指令値を得る。指令値合成部117は、加算器1171を有する。加算器1171は、力制御部114により演算された速度の指令値と位置姿勢制御部116により演算された速度の指令値とを加算する。
 指令値変換部118は、指令値合成部117により得られた速度の指令値を、ロボット2が有する関節毎の角速度の指令値に変換する。指令値変換部118は、係数乗算部1181を有している。係数乗算部1181は、指令値合成部117により得られた速度の指令値に対してヤコビ行列の逆行列を乗算する。すなわち、指令値変換部118は、直交座標系で表された指令値を関節座標系で表された指令値に変換する。図2において、θ(ドット)rは角速度の指令値を表している。
 関節制御部12は、メイン制御部11からの指令に応じ、対応する関節に設けられたモータ21を制御する。具体的には、関節制御部12は、対応する関節でのトルクの現在値並びにメイン制御部11により演算されたトルクの指令値の高周波成分及び制御指令値に基づいて、対応する関節に設けられたモータ21に対する指令値を演算する。図1,2では、上記制御指令値は角速度の指令値である。関節制御部12は、図1に示すように、トルク取得部121、周波数分離部(第2周波数分離部)122、トルク制御部123及びモータ制御部124を備えている。モータ制御部124は、関節角制御部125及び指令値合成部126を有している。
 トルク取得部121は、対応する関節でのトルクの現在値を取得する。ロボット2が有する関節毎のトルクの現在値は、当該関節毎に設けられたトルクセンサ23により検出される。
 周波数分離部122は、トルク取得部121により取得されたトルクの現在値を低周波成分及び高周波成分に分離する。
 トルク制御部123は、周波数分離部122により得られたトルクの現在値の高周波成分及びメイン制御部11により演算されたトルクの指令値の高周波成分に基づいて、トルク制御の指令値を演算する。このトルク制御部123は、力制御のうちの高周波域の制御(過渡応答の制御)を実行することになる。トルク制御部123は、減算器1231及びPI制御部1232を有している。
 減算器1231は、メイン制御部11により演算されたトルクの指令値の高周波成分から、周波数分離部122により得られたトルクの現在値の高周波成分を減算する。
 PI制御部1232は、減算器1231による減算結果に基づいてPI制御を行うことで、トルク制御の指令値を得る。
 関節角制御部125は、メイン制御部11により演算された角速度の指令値に基づいて、角速度制御の指令値を演算する。関節角制御部125は、速度変換部1251及び速度制御部1252を有している。速度制御部1252は、減算器1253及びPI制御部1254を有している。
 速度変換部1251は、対応する関節での角度の現在値を角速度の現在値に変換する。
 減算器1253は、メイン制御部11により演算された角速度の指令値から、速度変換部1251により得られた角速度の現在値を減算する。
 PI制御部1254は、減算器1253による減算結果に基づいてPI制御を行うことで、角速度制御の指令値を得る。
 指令値合成部126は、トルク制御部123により演算されたトルク制御の指令値及び関節角制御部125により演算された角速度制御の指令値を合成する。図2では、指令値合成部126は、加算器1261を有する。加算器1261は、トルク制御部123により演算されたトルク制御の指令値と関節角制御部125により演算された角速度制御の指令値とを加算する。この指令値合成部126による合成結果である指令値(電流指令値)は、モータ21に出力される。
 次に、周波数分離部111の構成例について、図3を参照しながら説明する。図3では周波数分離部111の構成例を示しているが、周波数分離部122についても同様である。
 図3Aに示す周波数分離部111は、ローパスフィルタ1111及びハイパスフィルタ1112を有している。
 ローパスフィルタ1111は、外部から入力された信号の低周波成分のみを通す。
 ハイパスフィルタ1112は、外部から入力された信号の高周波成分のみを通す。
 なお、ローパスフィルタ1111とハイパスフィルタ1112は、カットオフ周波数が同一(略同一の意味を含む)であることが望ましい。
 図3Bに示す周波数分離部111は、ローパスフィルタ1113及び減算器1114を有している。
 ローパスフィルタ1113は、外部から入力された信号の低周波成分のみを通す。
 減算器1114は、外部から入力された信号からローパスフィルタ1113を通過した信号を減算する。減算器1114により得られる信号は、外部から入力された信号の高周波成分である。
 なお図3では、周波数分離部111がローパスフィルタ1113を有する場合を示した。しかしながら、これに限らず、周波数分離部111は、ローパスフィルタ1113の代わりに、重み付き移動平均等のように平滑化効果のある他の信号処理手法を用いた構成を有していてもよい。
 次に、図1,2に示す実施の形態1に係るロボット制御装置1の動作例について、図4を参照しながら説明する。
 図1,2に示す実施の形態1に係るロボット制御装置1の動作例では、図4に示すように、まず、メイン制御部11は、ロボット2の力の指令値及び位置姿勢の指令値並びにロボット2が有する関節毎の角度の現在値及びトルクの現在値の低周波成分に基づいて、当該関節毎のトルクの指令値の高周波成分及び角速度の指令値を演算する(ステップST401)。
 次いで、関節制御部12は、対応する関節でのトルクの現在値並びにメイン制御部11により演算されたトルクの指令値の高周波成分及び角速度の指令値に基づいて、対応する関節に設けられたモータ21に対する指令値を演算する(ステップST402)。
 次に、図1,2に示すメイン制御部11の動作例について、図5を参照しながら説明する。
 図1,2に示すメイン制御部11の動作例では、図5に示すように、まず、周波数分離部111は、力の指令値を低周波成分及び高周波成分に分離する(ステップST501)。
 次いで、トルク指令値変換部112は、周波数分離部111により得られた力の指令値の高周波成分を、ロボット2が有する関節毎のトルクの指令値の高周波成分に変換する(ステップST502)。図1,2では、係数乗算部1121が、力の指令値の高周波成分に対してヤコビ行列の転置行列を乗算する。なお、ヤコビ行列はロボット2の関節の角度によって変わるので、適宜更新する必要がある。
 また、力演算部113は、ロボット2が有する関節毎のトルクの現在値の低周波成分を、力の現在値の低周波成分に変換する(ステップST503)。図1,2では、係数乗算部1131が、トルクの現在値の低周波成分に対してヤコビ行列の転置の逆行列を乗算する。なお、トルク取得部121が取得するトルクの現在値は通常、重力に起因するトルク成分を含むので、トルクから力へ変換する前に、トルクの現在値の低周波成分からこの重力起因トルク成分の推定値を減算して除去すると良い。
 次いで、力制御部114は、周波数分離部111により得られた力の指令値の低周波成分及び力演算部113により得られた力の現在値の低周波成分に基づいて、速度の指令値(低周波力制御の指令値)を演算する(ステップST504)。図1,2では、減算器1141が、力の指令値の低周波成分と力の現在値の低周波成分との間の偏差を減算によって求め、係数乗算部1142が、減算器1141により求められた偏差に対してゲインを乗算することで、速度の指令値を得る。
 また、位置姿勢演算部115は、ロボット2が有する関節毎の角度の現在値に基づいて、ロボット2の位置姿勢の現在値を演算する(ステップST505)。
 次いで、位置姿勢制御部116は、位置姿勢の指令値及び位置姿勢演算部115により演算された位置姿勢の現在値に基づいて、速度の指令値(位置姿勢制御の指令値)を演算する(ステップST506)。図1,2では、偏差演算器1161が、位置姿勢の指令値と位置姿勢の現在値との間の偏差を演算し、係数乗算部1162が、偏差演算器1161による演算結果の偏差に対してゲインを乗算することで、速度の指令値を得る。なお、位置の偏差は、指令値の座標値から現在値の座標値を減算することで得られる。姿勢の偏差は、現在値の姿勢から指令値の姿勢への回転変換を求めることで得ることができる。
 次いで、指令値合成部117は、力制御部114により演算された速度の指令値と位置姿勢制御部116により演算された速度の指令値とを加算することで合成し、1つの速度の指令値を得る(ステップST507)。
 次いで、指令値変換部118は、指令値合成部117により得られた速度の指令値を、ロボット2が有する関節毎の角速度の指令値に変換する(ステップST508)。図1,2では、係数乗算部1181が、指令値合成部117により得られた速度の指令値に対してヤコビ行列の逆行列を乗算することで、関節毎の角速度の指令値を得る。
 次に、図1,2に示す関節制御部12の動作例について、図6を参照しながら説明する。
 図1,2に示す関節制御部12の動作例では、図6に示すように、まず、トルク取得部121は、対応する関節でのトルクの現在値を取得する(ステップST601)。
 次いで、周波数分離部122は、トルク取得部121により取得されたトルクの現在値を低周波成分及び高周波成分に分離する(ステップST602)。
 次いで、トルク制御部123は、周波数分離部122により得られたトルクの現在値の高周波成分及びメイン制御部11により演算されたトルクの指令値の高周波成分に基づいて、トルク制御の指令値を演算する(ステップST603)。図1,2では、減算器1231が、メイン制御部11により演算されたトルクの指令値の高周波成分から周波数分離部122により得られたトルクの現在値の高周波成分を減算し、PI制御部1232が、減算器1231による減算結果に基づいてPI制御を行うことで、トルク制御の指令値を得る。
 また、関節角制御部125は、メイン制御部11により演算された角速度の指令値に基づいて、角速度制御の指令値を演算する(ステップST604)。図1,2では、速度変換部1251が、対応する関節での角度の現在値を角速度の現在値に変換し、減算器1253が、メイン制御部11により演算された角速度の指令値から速度変換部1251により得られた角速度の現在値を減算し、PI制御部1254が、減算器1253による減算結果に基づいてPI制御を行うことで、角速度制御の指令値を得る。
 次いで、指令値合成部126は、トルク制御部123により演算されたトルク制御の指令値及び関節角制御部125により演算された角速度制御の指令値を合成する(ステップST605)。図1,2では、加算器1261が、トルク制御部123により演算されたトルク制御の指令値と関節角制御部125により演算された角速度制御の指令値とを加算する。この指令値合成部126による合成結果である指令値(電流指令値)は、モータ21に出力される。
 次に、実施の形態1に係るロボット制御装置1による力制御について説明する。
 図7は、実施の形態1に係るロボット制御装置1による低周波力制御と高周波トルク制御の一例を示す図である。図7において、太線実線矢印は力又はトルクの低周波成分の流れを示し、細線実線矢印は力又はトルクの高周波成分の流れを示している。また、太線実線矢印と細線実線矢印とが並列している箇所は、力又はトルクが周波数で分離されていない箇所を示している。また、破線矢印は位置姿勢制御のみに関連する箇所を示している。
 図7において、低周波成分に関しては、力制御部114で、力の現在値の低周波成分が力の指令値の低周波成分に一致するように制御される。力の現在値の低周波成分は、トルクの現在値が周波数分離部122で周波数分離されたものが力演算部113で力に変換されることで得られる。また、力の指令値の低周波成分は、力の指令値が周波数分離部111で周波数分離されることで得られる。そして、力制御部114で生成した指令値は、指令値合成部117、指令値変換部118、速度制御部1252及び指令値合成部126を経て、モータ21を駆動する。このようにして、実施の形態1に係るロボット制御装置1では、力の低周波成分が制御され、定常応答が制御される。
 また、図7において、高周波成分に関しては、トルク制御部123で、トルクの現在値の高周波成分がトルクの指令値の高周波成分に一致するように制御される。トルクの現在値の高周波成分は、トルクの現在値が周波数分離部122で周波数分離されることで得られる。トルクの指令値の高周波成分は、力の指令値が周波数分離部111で周波数分離されたものがトルク指令値変換部112で変換されることで得られる。トルク制御部123が生成した指令値は、指令値合成部126を経て、モータ21を駆動する。このようにして、実施の形態1に係るロボット制御装置1では、力の高周波成分が制御され、過渡応答が制御される。
 そして、実施の形態1に係るロボット制御装置1では、上記の2つの制御が指令値合成部126で合成されることで、全体として力の指令値に力の現在値が一致するように制御される。
 次に、実施の形態1に係るロボット制御装置1による効果について説明する。
 上述したように、従来のロボット制御装置1bでは、メイン制御部11bでフィードバック系を構成している。すなわち、このロボット制御装置1bでは、ロボット2から物理的にも通信的にも距離のある構成要素でフィードバック制御演算を行うことになる。よって、トルクセンサ23によるトルクの検出からモータ21への指令値の入力までの遅延が長くなる。その結果、このロボット制御装置1bでは、不可避的にむだ時間が入り込む余地が多くなり、安定性を維持できるハイゲイン化を抑制する要因になる。また、むだ時間自体も、リード補償等でキャンセルできる要素ではないため、応答時間への悪影響は避けられない。
 これに対し、実施の形態1に係るロボット制御装置1では、力制御の実行を過渡応答の制御(高周波域)と定常応答の制御(低周波域)に分割し、過渡応答の制御については、関節制御部12に近い側に配設可能なトルクセンサ23の値を制御することで実現し、下位コントローラ(図中の関節制御部12)側で制御の主要な演算を実行する。これにより、実施の形態1に係るロボット制御装置1では、むだ時間が入り込む余地を削減して速応性を高められる。すなわち、実施の形態1に係るロボット制御装置1では、安定性を維持できるコントローラのハイゲイン化に相当する調整(関節単位の1変数制御のゲイン調整)も可能になる。
 一方で、実施の形態1に係るロボット制御装置1では、定常応答の制御は従来同様に上位コントローラ(メイン制御部11)で、複数の関節を連携して制御する。これにより、実施の形態1に係るロボット制御装置1では、定常偏差のような定常的な制御特性は従来と同様になる。すなわち、関節制御部12は関節単位の制御であり、定常的な制御偏差が発生する場合がある。例えば、Z軸方向に力制御を行っている際にX軸方向の外力が外乱として加わると、Z軸方向の力の現在値と目標値との間に偏差が生じるといったことが起こる。このような外乱は関節単位の制御では抑制できないため、制御偏差が生じる。これに対し、実施の形態1に係るロボット制御装置1では、定常応答の制御をメイン制御部11で行っており、上記課題を解決できる。そして、速応性に影響するのは主に過渡応答の制御(高周波域)なので、従来技術が持っていた速応性の改善が難しいという課題も解決できる。
 なお上記では、周波数分離部111は力の指令値を周波数分離し、周波数分離部122はトルクの現在値を周波数分離する場合を示した。一方、例えばトルク指令値変換部112及び力演算部113のように、トルクと力は相互に変換が可能である。そのため、周波数分離部111は、力の指令値をトルクの指令値に変換した後に、周波数分離を行ってもよい。同様に、周波数分離部122は、トルクの現在値を力の現在値に変換した後に、周波数分離を行ってもよい。別言すれば、力とトルクの相互変換と、周波数分離部111,122による演算を入替えたとしても、周波数分離部111が力の指令値を周波数分離したり、周波数分離部122がトルクの現在値を周波数分離したりするのと同等となる。また、周波数分離部111にトルクの指令値が入力されてもよいし、周波数分離部122に力の現在値が入力されてもよい。
 また、力の指令値とトルクの現在値を別々に周波数分離する代わりに、力の指令値からトルクの現在値を差し引いた偏差を周波数分離してもよい。これは、周波数分離部111と周波数分離部122を1つに統合したものと解釈でき、同等となる。
 また上記では、周波数分離部111がメイン制御部11の内部に設けられた場合を示した。しかしながら、これに限らず、周波数分離部111がメイン制御部11の外部に設けられていてもよい。
 また上記では、周波数分離部122が関節制御部12の内部に設けられた場合を示した。しかしながら、これに限らず、周波数分離部122が関節制御部12の外部に設けられていてもよい。
 図8では、周波数分離部111及び周波数分離部122が、メイン制御部11及び関節制御部12の外部に設けられた場合を示している。
 以上のように、この実施の形態1によれば、ロボット制御装置1は、ロボット2の力の指令値又は当該ロボット2が有する関節毎のトルクの指令値を低周波成分及び高周波成分に分離する周波数分離部111と、ロボット2の力の現在値又は当該ロボット2が有する関節毎のトルクの現在値を低周波成分及び高周波成分に分離する周波数分離部122と、周波数分離部111により得られた高周波成分に基づいてロボット2が有する関節毎のトルクの指令値の高周波成分を演算し、周波数分離部111により得られた低周波成分及び周波数分離部122により得られた低周波成分に基づいて力制御の指令値を演算し、当該力制御の指令値に基づいてロボット2が有する関節毎の制御指令値を演算するメイン制御部11と、ロボット2が有する関節毎に設けられ、周波数分離部122により得られた高周波成分及びメイン制御部11により演算されたトルクの指令値の高周波成分に基づいてトルク制御の指令値を演算し、当該トルク制御の指令値及び当該メイン制御部11により演算された制御指令値に基づいて対応する関節に設けられたモータ21に対する指令値を演算する関節制御部12とを備え、周波数分離部111及び周波数分離部122は、メイン制御部11及び関節制御部12の外部又は内部に設けられた。これにより、実施の形態1に係るロボット制御装置1は、従来構成に対して力制御の性能を向上可能となる。また、実施の形態1に係るロボット制御装置1は、制御偏差を抑制可能となる。
実施の形態2.
 実施の形態1では、関節制御部12において、メイン制御部11で演算された角速度の指令値を用いて角速度制御の指令値を演算し、その後、トルク制御の指令値及び角速度制御の指令値を合成する場合を示した。しかしながら、これに限らず、関節制御部12において、トルク制御の指令値及びメイン制御部11で演算された角速度の指令値を合成した後、その合成結果を用いて角速度制御の指令値を演算してもよい。
 図9,10は実施の形態2に係るロボット制御装置1の構成例を示す図である。図9,10に示す実施の形態2に係るロボット制御装置1は、図1,2に示す実施の形態1に係るロボット制御装置1に対し、関節角制御部125及び指令値合成部126を指令値合成部127及び関節角制御部128に変更している。その他の構成は同様であり、同一の符号を付してその説明を省略する。
 指令値合成部127は、メイン制御部11により演算された角速度の指令値及びトルク制御部123により演算されたトルク制御の指令値を合成する。図10では、指令値合成部127は、加算器1271を有する。加算器1271は、メイン制御部11により演算された角速度の指令値とトルク制御部123により演算されたトルク制御の指令値とを加算する。
 関節角制御部128は、指令値合成部127による合成結果に基づいて、角速度制御の指令値を演算する。関節角制御部128は、速度変換部1281及び速度制御部1282を有している。速度制御部1282は、減算器1283及びPI制御部1284を有している。
 速度変換部1281は、対応する関節での角度の現在値を角速度の現在値に変換する。
 減算器1283は、指令値合成部127による合成結果から、速度変換部1281により得られた角速度の現在値を減算する。
 PI制御部1284は、減算器1283による減算結果に基づいてPI制御を行うことで、角速度制御の指令値を得る。
 この関節角制御部128により演算された角速度制御の指令値(電流指令値)は、対応する関節に設けられたモータ21に出力される。
 このように、実施の形態2に係るロボット制御装置1では、角速度の指令値及びトルク制御の指令値を合成し、その合成結果に基づいて角速度制御を実施する。この実施の形態2に係るロボット制御装置1についても、実施の形態1に係るロボット制御装置1と同様の効果が得られる。また、実施の形態2に係るロボット制御装置1は、従来のコンプライアンス制御に近い対応関係となる。
実施の形態3.
 図1,2に示す実施の形態1に係るロボット制御装置1では、周波数分離部122が関節制御部12に設けられた場合を示した。しかしながら、これに限らず、周波数分離部122は、メイン制御部11と関節制御部12とに分割されて設けられていてもよい。
 図11は実施の形態3に係るロボット制御装置1の構成例を示す図である。図11に示す実施の形態3に係るロボット制御装置1は、図1,2に示す実施の形態1に係るロボット制御装置1に対し、周波数分離部122をローパスフィルタ119、加算部120及び減算部129に変更している。ローパスフィルタ119、加算部120及び減算部129は、ロボット2が有する関節毎に設けられている。図11,12に示すように、ローパスフィルタ119、加算部120及び減算部129は、周波数分離部(第2周波数分離部)13を構成する。その他の構成は同様であり、同一の符号を付してその説明を省略する。なお、図12において、(低)は低周波成分を示し、(高)は高周波成分を示し、(低+高)は両方の成分、すなわち元の信号であることを示している。
 ローパスフィルタ119は、メイン制御部11に設けられ、トルク取得部121により取得されたトルクの現在値の低周波成分のみを通す。
 加算部120は、メイン制御部11に設けられ、ローパスフィルタ119を通過したトルクの現在値の低周波成分と、トルク指令値変換部112により得られたトルクの指令値の高周波成分とを加算する。
 減算部129は、関節制御部12に設けられ、加算部120による加算結果から、トルク取得部121により取得されたトルクの現在値を減算する。減算部129による出力は、トルクの指令値の高周波成分からトルクの現在値の高周波成分を減算した値となる。
 なお、実施の形態3に係るロボット制御装置1による位置姿勢の制御は、実施の形態1に係るロボット制御装置1による位置姿勢の制御と同様である。実施の形態3に係るロボット制御装置1による力制御(低周波制御)は、周波数分離部13で得られたトルクの現在値の低周波成分を力演算部113で力の現在値の低周波成分に変換したものを用いて行っており、実施の形態1に係るロボット制御装置1による力制御と実質的に同一である。一方、実施の形態3に係るロボット制御装置1によるトルク制御(高周波制御)は、実施の形態1に係るロボット制御装置1によるトルク制御とは異なる。以下では、このトルク制御に関する部分についてのみ説明を行う。
 実施の形態3に係るロボット制御装置1では、トルク取得部121により取得されたトルクの現在値は関節制御部12で分岐された後、一方はメイン制御部11へと出力される。メイン制御部11へと出力されたトルクの現在値は、ローパスフィルタ119に入力され、トルクの現在値の低周波成分が得られる。この信号は、力演算部113と加算部120に出力される。加算部120は、トルク指令値変換部112により得られたトルクの指令値の高周波成分とトルクの現在値の低周波成分を加算して、関節制御部12へと出力する。関節制御部12へと出力された上記加算値は、減算部129に入力され、トルクの現在値が減算される。その結果、メイン制御部11からのトルクの現在値の低周波成分と、トルク取得部121により取得されたトルクの現在値の低周波成分とが相殺されるため、トルクの現在値の高周波成分が残る。このトルクの現在値の高周波成分は、トルクの指令値の高周波成分から減算され、周波数分離部13からはトルクの偏差(指令値と現在値との差)の高周波成分が出力される。このトルクの偏差の高周波成分は、トルク制御部123に出力される。以降は、実施の形態1と同様である。
 この実施の形態3に係るロボット制御装置1では、関節制御部12内にフィルタ処理等を行う構成が存在しないため、トルク制御機能を有する関節制御部12であれば変更なくそのまま利用できるという利点がある。
 なお、減算部129が加算部120から得るトルクの現在値の低周波成分は、周波数分離部13に入力されたトルクの現在値から見ると2回の通信を経て得られる値であるため、遅延が存在する。よって、厳密には、低周波成分が完全に相殺されるわけではない。しかしながら、低周波成分は元々変化がゆっくりであり、遅延がローパスフィルタ119の時定数と比較して十分に小さければ遅延の影響は小さくなる。
 また図11,12では、ローパスフィルタ119を用いた場合を示している。しかしながら、これに限らず、カルマンフィルタ又はオブザーバを用いてトルクの現在値の低周波成分を推定してもよい。
 なお、本願発明はその発明の範囲内において、各実施の形態の自由な組合わせ、或いは各実施の形態の任意の構成要素の変形、若しくは各実施の形態において任意の構成要素の省略が可能である。例えば、実施の形態1-3では、メイン制御部が角速度の指令値を演算し、関節角制御部が速度制御を行う例を用いて説明したが、メイン制御部が加速度又は電流等の他の物理量の指令値を演算し、関節角制御部がそれらの物理量の制御を行うことで位置姿勢と力の制御を行うことも可能である。
 この発明に係るロボット制御装置は、従来構成に対して力制御の性能を向上可能となり、ロボットの位置姿勢と力を同時に制御可能なロボット制御装置等に用いるのに適している。
1 ロボット制御装置
2 ロボット
11 メイン制御部
12 関節制御部
13 周波数分離部(第2周波数分離部)
21 モータ
22 センサ
23 トルクセンサ
24 エンコーダ
111 周波数分離部(第1周波数分離部)
112 トルク指令値変換部
113 力演算部
114 力制御部
115 位置姿勢演算部
116 位置姿勢制御部
117 指令値合成部
118 指令値変換部
119 ローパスフィルタ
120 加算部
121 トルク取得部
122 周波数分離部(第2周波数分離部)
123 トルク制御部
124 モータ制御部
125 関節角制御部
126 指令値合成部
127 指令値合成部
128 関節角制御部
129 減算部
1111 ローパスフィルタ
1112 ハイパスフィルタ
1113 ローパスフィルタ
1114 減算器
1121 係数乗算部
1131 係数乗算部
1141 減算器
1142 係数乗算部
1161 偏差演算器
1162 係数乗算部
1171 加算器
1181 係数乗算部
1231 減算器
1232 PI制御部
1251 速度変換部
1252 速度制御部
1253 減算器
1254 PI制御部
1261 加算器
1271 加算器
1281 速度変換部
1282 速度制御部
1283 減算器
1284 PI制御部

Claims (6)

  1.  ロボットの力の指令値又は当該ロボットが有する関節毎のトルクの指令値を低周波成分及び高周波成分に分離する第1周波数分離部と、
     前記ロボットの力の現在値又は当該ロボットが有する関節毎のトルクの現在値を低周波成分及び高周波成分に分離する第2周波数分離部と、
     前記第1周波数分離部により得られた高周波成分に基づいて前記ロボットが有する関節毎のトルクの指令値の高周波成分を演算し、前記第1周波数分離部により得られた低周波成分及び前記第2周波数分離部により得られた低周波成分に基づいて力制御の指令値を演算し、当該力制御の指令値に基づいて前記ロボットが有する関節毎の制御指令値を演算するメイン制御部と、
     前記ロボットが有する関節毎に設けられ、前記第2周波数分離部により得られた高周波成分及び前記メイン制御部により演算されたトルクの指令値の高周波成分に基づいてトルク制御の指令値を演算し、当該トルク制御の指令値及び当該メイン制御部により演算された制御指令値に基づいて対応する関節に設けられたモータに対する指令値を演算する関節制御部とを備え、
     前記第1周波数分離部及び前記第2周波数分離部は、前記メイン制御部及び前記関節制御部の外部又は内部に設けられた
     ことを特徴とするロボット制御装置。
  2.  前記関節制御部は、
     トルク制御の指令値及び前記メイン制御部により演算された関節毎の制御指令値を合成することで、前記モータに対する指令値を得る指令値合成部を備えた
     ことを特徴とする請求項1記載のロボット制御装置。
  3.  前記メイン制御部は、前記制御指令値として、前記力制御の指令値に基づいて前記ロボットが有する関節毎の角速度の指令値を演算し、
     前記関節制御部は、
     前記メイン制御部により演算された関節毎の角速度の指令値に基づいて、角速度制御の指令値を演算する関節角制御部と、
     トルク制御の指令値及び前記関節角制御部により演算された角速度制御の指令値を合成することで、前記モータに対する指令値を得る指令値合成部とを備えた
     ことを特徴とする請求項1記載のロボット制御装置。
  4.  前記メイン制御部は、前記制御指令値として、前記力制御の指令値に基づいて前記ロボットが有する関節毎の角速度の指令値を演算し、
     前記関節制御部は、
     トルク制御の指令値及び前記メイン制御部により演算された関節毎の角速度の指令値を合成する指令値合成部と、
     前記指令値合成部による合成結果に基づいて角速度制御の指令値を演算することで、前記モータに対する指令値を得る関節角制御部とを備えた
     ことを特徴とする請求項1記載のロボット制御装置。
  5.  前記第2周波数分離部は、
     トルクの現在値から低周波成分を得るローパスフィルタと、
     前記ローパスフィルタにより得られた低周波成分と、前記メイン制御部により演算されたトルクの指令値の高周波成分とを加算する加算部と、
     前記加算部により得られた成分からトルクの現在値を減算することで高周波成分を得る減算部とを備え、
     前記ローパスフィルタ及び前記加算部は前記メイン制御部に設けられ、
     前記減算部は前記関節制御部に設けられた
     ことを特徴とする請求項1から請求項4のうちの何れか1項記載のロボット制御装置。
  6.  第1周波数分離部と、第2周波数分離部と、メイン制御部と、ロボットが有する関節毎に設けられた関節制御部とを備え、前記第1周波数分離部及び前記第2周波数分離部は、前記メイン制御部及び前記関節制御部の外部又は内部に設けられたロボット制御装置によるロボット制御方法であって、
     前記第1周波数分離部は、前記ロボットの力の指令値又は当該ロボットが有する関節毎のトルクの指令値を低周波成分及び高周波成分に分離し、
     前記第2周波数分離部は、前記ロボットの力の現在値又は当該ロボットが有する関節毎のトルクの現在値を低周波成分及び高周波成分に分離し、
     前記メイン制御部は、前記第1周波数分離部により得られた高周波成分に基づいて前記ロボットが有する関節毎のトルクの指令値の高周波成分を演算し、前記第1周波数分離部により得られた低周波成分及び前記第2周波数分離部により得られた低周波成分に基づいて力制御の指令値を演算し、当該力制御の指令値に基づいて前記ロボットが有する関節毎の制御指令値を演算し、
     前記関節制御部は、前記第2周波数分離部により得られた高周波成分及び前記メイン制御部により演算されたトルクの指令値の高周波成分に基づいてトルク制御の指令値を演算し、当該トルク制御の指令値及び当該メイン制御部により演算された制御指令値に基づいて対応する関節に設けられたモータに対する指令値を演算する
     ことを特徴とするロボット制御方法。
PCT/JP2020/022026 2019-06-17 2020-06-03 ロボット制御装置及びロボット制御方法 WO2020255724A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202080042517.0A CN114007820A (zh) 2019-06-17 2020-06-03 机器人控制装置及机器人控制方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019112098A JP7273627B2 (ja) 2019-06-17 2019-06-17 ロボット制御装置及びロボット制御方法
JP2019-112098 2019-06-17

Publications (1)

Publication Number Publication Date
WO2020255724A1 true WO2020255724A1 (ja) 2020-12-24

Family

ID=73836781

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/022026 WO2020255724A1 (ja) 2019-06-17 2020-06-03 ロボット制御装置及びロボット制御方法

Country Status (3)

Country Link
JP (1) JP7273627B2 (ja)
CN (1) CN114007820A (ja)
WO (1) WO2020255724A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117921684B (zh) * 2024-03-22 2024-06-14 北京壹点灵动科技有限公司 机械臂的控制方法、装置、存储介质及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02310609A (ja) * 1989-05-25 1990-12-26 Toyota Central Res & Dev Lab Inc マニピユレータの位置と力の協調制御装置
JP2016168650A (ja) * 2015-03-13 2016-09-23 キヤノン株式会社 ロボット装置、ロボット制御方法、プログラム及び記録媒体
JP2018043300A (ja) * 2016-09-12 2018-03-22 日立Geニュークリア・エナジー株式会社 作業ロボットの遠隔操作システム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3883544B2 (ja) * 2004-02-27 2007-02-21 株式会社東芝 ロボット制御装置およびロボットの制御方法
JP6255901B2 (ja) * 2013-10-30 2018-01-10 セイコーエプソン株式会社 ロボット制御装置、ロボットおよびロボットシステム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02310609A (ja) * 1989-05-25 1990-12-26 Toyota Central Res & Dev Lab Inc マニピユレータの位置と力の協調制御装置
JP2016168650A (ja) * 2015-03-13 2016-09-23 キヤノン株式会社 ロボット装置、ロボット制御方法、プログラム及び記録媒体
JP2018043300A (ja) * 2016-09-12 2018-03-22 日立Geニュークリア・エナジー株式会社 作業ロボットの遠隔操作システム

Also Published As

Publication number Publication date
JP2020203340A (ja) 2020-12-24
JP7273627B2 (ja) 2023-05-15
CN114007820A (zh) 2022-02-01

Similar Documents

Publication Publication Date Title
US8396594B2 (en) Robot, control device for robot, and control method of robot
JPH02310609A (ja) マニピユレータの位置と力の協調制御装置
JP5916583B2 (ja) 多関節ロボットのウィービング制御装置
WO2020255724A1 (ja) ロボット制御装置及びロボット制御方法
KR20220128011A (ko) 유연관절 로봇의 제어시스템
JPH10309684A (ja) マニピュレータのコンプライアンス制御方式
JPH10128688A (ja) ロボットの非干渉化制御方法
JP6410971B2 (ja) サーボ制御装置
JP5962842B2 (ja) 空間安定装置、空間安定方法、及び空間安定プログラム
WO2020184203A1 (ja) ロボット制御装置及びロボット制御方法
JP6845103B2 (ja) 制御システム、制御方法、及び制御プログラム
JP6237039B2 (ja) ロボット制御装置およびロボット制御方法
WO1994017461A1 (en) Apparatus for controlling weaving of robot
CN113927592A (zh) 一种基于自适应降阶滑模算法的机械臂力位混合控制方法
US11199822B2 (en) Control device
JP6189186B2 (ja) 水中航走体及びその制御装置並びに制御方法
JPH11231940A (ja) ロボットの制御装置
JP5457894B2 (ja) フルクローズド位置制御装置
Huynh et al. Dynamic Hybrid Filter for Vision‐Based Pose Estimation of a Hexa Parallel Robot
JP2022079273A (ja) ロボット制御装置及びロボット制御方法
JPH0760667A (ja) ロボットのウィービング制御装置
JP2021109259A (ja) ロボット制御装置及びロボット制御方法
TW202013877A (zh) 同動機構的伺服驅動器控制系統
JPH117303A (ja) サーボ系の駆動制御装置
JPS61251915A (ja) 移動体制御方式

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: 20826088

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20826088

Country of ref document: EP

Kind code of ref document: A1