Detailed Description
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
Embodiment mode 1
Fig. 1 and 2 are diagrams showing a configuration example of a robot controller 1 according to embodiment 1. The relationship between the robot controller 1 and the robot 2 is the same as that in fig. 13, and the description thereof is omitted.
The robot controller 1 controls the position, orientation, and force of the robot 2 at the same time (in parallel). As shown in fig. 1 and 2, 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 outputs command values to the respective joint control units 12 to control the entire robot 2. Specifically, the main control unit 11 calculates a high-frequency component of the command value of the torque for each joint and a control command value based on the command value of the force and the command value of the position and orientation of the robot 2 and the low-frequency component of the current value of the angle and the current value of the torque for each joint included in the robot 2. In fig. 1 and 2, the control command value calculated by the main control unit 11 is a command value of angular velocity. As shown in fig. 1, 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 and orientation calculation unit 115, a position and orientation control unit 116, a command value synthesis unit 117, and a command value conversion unit 118. However, the position and orientation calculation unit 115, the position and orientation control unit 116, and the command value synthesis unit 117 are necessary for both the control force and the position and orientation, and are unnecessary for only the control 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. In fig. 1 and 2, Fr represents a force command value.
The frequency separation unit 111 sets a low frequency range and a high frequency range, for example, based on the delay amount of the input of the command value to the motor 21 detected from the torque of the torque sensor 23. For example, when the delay amount is about 5ms, the frequency separator 111 sets the low frequency range and the high frequency range at a boundary of about 50ms, which is 10 times the delay amount. The same applies to the frequency separating section 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 includes a coefficient multiplication unit 1121. The coefficient multiplication unit 1121 multiplies the high-frequency component of the command value of force by a transposed matrix of the jacobian matrix. The high-frequency component of the force command value is represented by an orthogonal coordinate system, and the torque command value conversion unit 112 converts the high-frequency component of the force command value into the high-frequency component of the command value of the torque represented by the joint coordinate system. In fig. 2, J denotes a jacobian matrix, and τ r denotes a torque command value.
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 includes a coefficient multiplication unit 1131. The coefficient multiplication unit 1131 multiplies the low-frequency component of the current value of the torque by the inverted matrix of the transpose of the jacobian matrix. The low-frequency component of the current value of the torque is a value expressed in the joint coordinate system, but the force control unit 114 requires a force command value expressed in the orthogonal coordinate system, and therefore the force calculation unit 113 performs conversion. The frequency separation unit 122 obtains a low-frequency component of the current value of the torque of each joint of the robot 2.
The force control unit 114 calculates a command value of speed (command value for low-frequency force control) from the low-frequency component of the command value of force obtained by the frequency separation unit 111 and the low-frequency component of the current value of force obtained by the force calculation unit 113. The force control unit 114 executes control in a low frequency region (control of stable response) in force control. The force control unit 114 includes a subtractor 1141 and a coefficient multiplier 1142.
The subtractor 1141 finds a 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 multiplies the deviation obtained by the subtractor 1141 by a gain to obtain a command value of the velocity. In FIG. 2, GFRepresenting the gain with respect to the deviation of the force.
The position and orientation calculation unit 115 calculates the current value of the position and orientation of the robot 2 from 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 a joint coordinate system, and the position and orientation calculation unit 115 converts the angle of each joint into a position and orientation represented by an orthogonal coordinate system. Further, the current value of the angle of each joint that the robot 2 has is detected by the encoder 24 provided to 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 and orientation control unit 116 calculates a speed command value (command value for position and orientation control) based on the command value for position and orientation and the current value for position and orientation calculated by the position and orientation calculation unit 115. The position and orientation control unit 116 includes a deviation calculator 1161 and a coefficient multiplication unit 1162.
The deviation calculator 1161 calculates a deviation between the command value of the position and orientation and the current value of the position and orientation.
The coefficient multiplication unit 1162 multiplies the deviation of the calculation result of the deviation calculation unit 1161 by a gain to obtain a speed command value. In FIG. 2, Xr represents a command value for position and orientation, GZThe gain is indicated.
The command value synthesizing unit 117 adds the command value of the speed calculated by the force control unit 114 and the command value of the speed calculated by the position and orientation control unit 116 to synthesize them, thereby obtaining a command value of one speed. The command value synthesizing unit 117 includes 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 and orientation control unit 116.
The command value conversion unit 118 converts the command value of the velocity obtained by the command value synthesis unit 117 into a command value of an angular velocity for each joint of the robot 2. The command value conversion unit 118 includes 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 expressed by the orthogonal coordinate system into the command value expressed by the joint coordinate system. In fig. 2, θ (Dot) r represents a command value of the angular velocity.
The joint control unit 12 controls the motor 21 provided in the corresponding joint in accordance with a command from the main control unit 11. Specifically, the joint control unit 12 calculates a command value for the motor 21 provided in the corresponding joint based on the current value of the torque at the corresponding joint and the high-frequency component of the command value of the torque calculated by the main control unit 11 and the control command value. In fig. 1 and 2, the control command value is a command value of an 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 includes 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 of each joint of the robot 2 is detected by a 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.
Torque control unit 123 calculates a command value for torque control based on the high-frequency component of the current value of torque obtained by frequency separator 122 and the high-frequency component of the command value of torque calculated by main control unit 11. The torque control unit 123 executes control in a high frequency region (transient response control) in force control. The torque control unit 123 includes 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 separator 122 from the high-frequency component of the command value of the torque calculated by the main controller 11.
The PI control unit 1232 performs PI control based on the subtraction result of the subtractor 1231, thereby obtaining a command value for torque control.
The joint angle control unit 125 calculates a command value for angular velocity control based on the command value for angular velocity calculated by the main control unit 11. The joint angle control unit 125 includes a velocity conversion unit 1251 and a velocity control unit 1252. The speed control unit 1252 includes a subtractor 1253 and a PI control unit 1254.
The velocity converter 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 velocity converter 1251 from the command value of the angular velocity calculated by the main controller 11.
The PI control unit 1254 performs PI control based on the subtraction result of the subtractor 1253 to obtain an angular velocity control command value.
The command value synthesizer 126 synthesizes the command value for the torque control calculated by the torque controller 123 and the command value for the angular velocity control calculated by the joint angle controller 125. In fig. 2, the command value synthesizing unit 126 includes an adder 1261. The adder 1261 adds the command value for torque control calculated by the torque control unit 123 to the command value for angular velocity control calculated by the joint angle control unit 125. The command value (current command value) as a result of the combination by the command value combining unit 126 is output to the motor 21.
Next, a configuration example of the frequency separating unit 111 will be described with reference to fig. 3. Fig. 3 shows an example of the configuration of the frequency separator 111, but the same applies to the frequency separator 122.
Frequency separating section 111 shown in fig. 3A has low-pass filter 1111 and high-pass filter 1112.
The low pass filter 1111 passes only a low frequency component of a signal input from the outside.
The high-pass filter 1112 passes only a high-frequency component of a signal input from the outside.
Further, it is preferable that the cutoff frequencies of the low-pass filter 1111 and the high-pass filter 1112 are the same (including substantially the same meaning).
The frequency separating section 111 shown in fig. 3B has a low-pass filter 1113 and a subtractor 1114.
The low-pass filter 1113 passes only low-frequency components of a signal input from the outside.
The subtractor 1114 subtracts the signal having passed through the low-pass filter 1113 from the externally input signal. The signal obtained by the subtractor 1114 is a high-frequency component of the signal inputted from the outside.
In fig. 3, the frequency separating section 111 has a low-pass filter 1113. However, the frequency separator 111 is not limited to this, and may be configured to use another signal processing method having a smoothing effect such as weighted moving averaging instead of the low-pass filter 1113.
Next, an operation example of the robot controller 1 according to embodiment 1 shown in fig. 1 and 2 will be described with reference to fig. 4.
In the operation example of the robot control device 1 according to embodiment 1 shown in fig. 1 and 2, as shown in fig. 4, first, the main control unit 11 calculates a high frequency component of a command value of torque per joint and a command value of angular velocity from a command value of force and a command value of position and orientation of the robot 2 and a low frequency component of a current value of angle and a current value of torque per joint of the robot 2 (step ST 401).
Next, the joint control unit 12 calculates a command value for the motor 21 provided in the corresponding joint based on the current value of the torque at the corresponding joint and the command values of the high frequency component and the angular velocity of the command value of the torque calculated by the main control unit 11 (step ST 402).
Next, an operation example of the main control unit 11 shown in fig. 1 and 2 will be described with reference to fig. 5.
In the operation example of the main control unit 11 shown in fig. 1 and 2, as shown in fig. 5, first, the frequency separating unit 111 separates the command value of the force into a low-frequency component and a high-frequency component (step ST 501).
Next, 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 ST 502). In fig. 1 and 2, the coefficient multiplication unit 1121 multiplies the high-frequency component of the force command value by a transposed matrix of the jacobian matrix. The jacobian matrix changes according to the angle of the joint of the robot 2, and therefore needs to be updated appropriately.
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 ST 503). In fig. 1 and 2, the coefficient multiplication unit 1131 multiplies the low-frequency component of the current value of the torque by the inverted 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 due to gravity, the estimated value of the torque component due to gravity may be subtracted from the low-frequency component of the current value of the torque before the torque is converted into a force.
Next, the force control unit 114 calculates a command value for speed (command value for low-frequency force control) from the low-frequency component of the command value for force obtained by the frequency separation unit 111 and the low-frequency component of the current value for force obtained by the force calculation unit 113 (step ST 504). In fig. 1 and 2, a subtractor 1141 calculates a deviation between a low-frequency component of a command value of the force and a low-frequency component of a current value of the force by subtraction, and a coefficient multiplication unit 1142 multiplies the deviation calculated by the subtractor 1141 by a gain to obtain a command value of the velocity.
The position and orientation calculation unit 115 calculates the current value of the position and orientation of the robot 2 from the current value of the angle of each joint of the robot 2 (step ST 505).
Next, the position and orientation control unit 116 calculates a speed command value (position and orientation control command value) based on the position and orientation command value and the current position and orientation value calculated by the position and orientation calculation unit 115 (step ST 506). In fig. 1 and 2, a deviation calculator 1161 calculates a deviation between a command value of a position and orientation and a current value of the position and orientation, and a coefficient multiplication unit 1162 multiplies the deviation of the calculation result of the deviation calculator 1161 by a gain to obtain a command value of a velocity. Further, 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 deviation of the posture can be obtained by obtaining a rotational transformation from the posture of the current value to the posture of the command value.
Next, the command value synthesizing unit 117 adds the command value of the speed calculated by the force control unit 114 and the command value of the speed calculated by the position and orientation control unit 116 to synthesize them, thereby obtaining a command value of one speed (step ST 507).
Next, the command value conversion unit 118 converts the command value of the velocity obtained by the command value synthesis unit 117 into a command value of an angular velocity for each joint of the robot 2 (step ST 508). In fig. 1 and 2, 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 to obtain a command value of the angular velocity for each joint.
Next, an operation example of the joint control unit 12 shown in fig. 1 and 2 will be described with reference to fig. 6.
In the operation example of the joint control unit 12 shown in fig. 1 and 2, as shown in fig. 6, the torque acquisition unit 121 first acquires the current value of the torque at the corresponding joint (step ST 601).
Next, the frequency separator 122 separates the current value of the torque acquired by the torque acquirer 121 into a low-frequency component and a high-frequency component (step ST 602).
Next, the torque control unit 123 calculates a command value for 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 (step ST 603). In fig. 1 and 2, the subtractor 1231 subtracts the high-frequency component of the current value of the torque obtained by the frequency separator 122 from the high-frequency component of the command value of the torque calculated by the main controller 11, and the PI controller 1232 performs PI control based on the subtraction result of the subtractor 1231, thereby obtaining the command value of the torque control.
The joint angle control unit 125 calculates a command value for angular velocity control based on the command value for angular velocity calculated by the main control unit 11 (step ST 604). In fig. 1 and 2, a velocity converter 1251 converts the current value of the angle at the corresponding joint into the current value of the angular velocity, a subtractor 1253 subtracts the current value of the angular velocity obtained by the velocity converter 1251 from the command value of the angular velocity calculated by the main controller 11, and a PI controller 1254 performs PI control based on the subtraction result of the subtractor 1253, thereby obtaining the command value for angular velocity control.
Next, the command value synthesizing unit 126 synthesizes the command value for the torque control calculated by the torque control unit 123 and the command value for the angular velocity control calculated by the joint angle control unit 125 (step ST 605). In fig. 1 and 2, the adder 1261 adds the command value for torque control calculated by the torque control unit 123 to the command value for angular velocity control calculated by the joint angle control unit 125. The command value (current command value) as a result of the combination by the command value combining unit 126 is output to the motor 21.
Next, force control by the robot controller 1 according to embodiment 1 will be described.
Fig. 7 is a diagram showing an example of low-frequency force control and high-frequency torque control of the robot control device 1 according to embodiment 1. In fig. 7, thick solid line arrows indicate the flow of low-frequency components of the force or torque, and thin solid line arrows indicate the flow of high-frequency components of the force or torque. In addition, the part where the thick solid line arrow and the thin solid line arrow are lined up indicates a part where the force or the torque is not separated in frequency. In addition, the broken line arrows indicate parts associated with only position and orientation control.
In fig. 7, the force control unit 114 performs control so that the low-frequency component of the current value of the force matches 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 converting the value obtained by frequency-separating the current value of the torque in the frequency separation unit 122 into the force in the force calculation unit 113. The frequency separation unit 111 frequency-separates the low-frequency component of the force command value. Then, the command value generated by the force control unit 114 passes through the command value synthesizing unit 117, the command value converting unit 118, the speed control unit 1252, and the command value synthesizing unit 126, and drives the motor 21. As described above, in the robot control device 1 according to embodiment 1, the low frequency component of the force is controlled, and the stable response is controlled.
In fig. 7, the torque control unit 123 performs control so that the high-frequency component of the current value of the torque matches the high-frequency component of the command value of the torque with respect to the high-frequency component. The high-frequency component of the current value of the torque is obtained by frequency-separating the current value of the torque by the frequency separation section 122. The high-frequency component of the command value of the torque is obtained by converting the value obtained by frequency-separating the command value of the force in the frequency separation unit 111 into a value obtained by converting the command value of the force in the torque command value conversion unit 112. The command value generated by the torque control unit 123 passes through the command value synthesizing unit 126 and drives the motor 21. As described above, in the robot control device 1 according to embodiment 1, the high frequency component of the force is controlled, and the transient response is controlled.
Then, in the robot control device 1 according to embodiment 1, the command value synthesizing unit 126 synthesizes the two controls, and performs the control as a whole so that the current value of the force coincides with the command value of the force.
Next, the effects of the robot controller 1 according to embodiment 1 will be described.
As described above, in the conventional robot control device 1b, the main control unit 11b constitutes a feedback system. That is, in the robot controller 1b, feedback control calculation is performed on components that are physically and communicatively distant from the robot 2. Therefore, the delay in detecting the input of the command value to the motor 21 from the torque of the torque sensor 23 becomes long. As a result, the robot control device 1b inevitably has a large number of wasted time points, which is a factor of suppressing an increase in gain that can maintain stability. Further, since the wasted time itself is not an element that can be eliminated by the lead compensation or the like, it is impossible to avoid a bad influence on the response time.
In contrast, in the robot control device 1 according to embodiment 1, the execution of the force control is divided into the control of the transient response (high frequency range) and the control of the steady response (low frequency range), the control of the transient response is realized by controlling the value of the torque sensor 23 that can be disposed on the side close to the joint control unit 12, and the main calculation of the control is executed on the side of the lower controller (the joint control unit 12 in the figure). Thus, in the robot control device 1 according to embodiment 1, the time-consuming space can be reduced, and the quick response can be improved. That is, in the robot control device 1 according to embodiment 1, adjustment (gain adjustment of one variable control in joint units) corresponding to an increase in gain of a controller capable of maintaining stability can be performed.
On the other hand, in the robot control device 1 according to embodiment 1, the control of the steady response is the same as in the conventional art, and the plurality of joints are cooperatively controlled by the upper controller (main control unit 11). Thus, in the robot control device 1 according to embodiment 1, the stable control characteristics such as the stable deviation are the same as those of the conventional art. That is, the joint control unit 12 controls the joint unit, and a stable control deviation may occur. For example, when force control is performed in the Z-axis direction, if an external force in the X-axis direction is applied as a disturbance, a deviation occurs between the current value and the target value of the force in the Z-axis direction. Such interference cannot be suppressed in the control of the joint unit, and therefore, a control deviation occurs. In contrast, in the robot control device 1 according to embodiment 1, the above-described problem can be solved by the main control unit 11 performing control of stable response. Further, since the control of the transient response (high frequency range) mainly affects the quick response, it is possible to solve the problem that the conventional technique has difficulty in improving the quick response.
In the above description, the frequency separation unit 111 frequency-separates the command value of the force, and the frequency separation unit 122 frequency-separates the current value of the torque. On the other hand, the torque and the force can be converted into each other, for example, as in the torque command value conversion unit 112 and the force calculation unit 113. Therefore, the frequency separation unit 111 may convert the command value of the force into the command value of the torque and then perform the frequency separation. Similarly, the frequency separation unit 122 may perform frequency separation after converting the current value of the torque into the current value of the force. In other words, even if the interconversion between the exchange force and the torque and the calculation by the frequency separation units 111 and 122 are performed, the frequency separation unit 111 frequency-separates the command value of the force or the frequency separation unit 122 frequency-separates the current value of the torque. Further, a command value of torque may be input to the frequency separation unit 111, or a current value of force may be input to the frequency separation unit 122.
Instead of frequency-separating the command value of force and the current value of torque, frequency-separating the deviation obtained by subtracting the current value of torque from the command value of force may be performed. This can be interpreted as the case where the frequency separation section 111 and the frequency separation section 122 are combined into one, and the same.
In the above description, the frequency separation unit 111 is provided inside the main control unit 11. However, the present invention is not limited to this, and the frequency separation unit 111 may be provided outside the main control unit 11.
In the above description, the frequency separating unit 122 is provided inside the joint control unit 12. However, the frequency separating unit 122 is not limited to this, and may be provided outside the joint control unit 12.
Fig. 8 shows a case where the frequency separating unit 111 and the frequency separating unit 122 are provided outside the main control unit 11 and the joint control unit 12.
As described above, according to embodiment 1, the robot controller 1 includes: a frequency separation unit 111 that separates a command value of a force of the robot 2 or a command value of a torque of each joint of the robot 2 into a low-frequency component and a high-frequency component; a frequency separation unit 122 that separates a current value of the force of the robot 2 or a current value of the torque of each joint of the robot 2 into a low-frequency component and a high-frequency component; a main control unit 11 that calculates a high-frequency component of a command value of torque for each joint of the robot 2 based on the high-frequency component obtained by the frequency separation unit 111, calculates a command value of force control 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, and calculates a control command value for each joint of the robot 2 based on the command value of force control; and a joint control unit 12 provided for each joint of the robot 2, for calculating a command value for torque control based on the high-frequency component obtained by the frequency separation unit 122 and the high-frequency component of the command value for torque calculated by the main control unit 11, and for calculating a command value for the motor 21 provided for the corresponding joint based on the command value for torque control and the control command value calculated by the main control unit 11, wherein the frequency separation unit 111 and the frequency separation unit 122 are provided outside or inside the main control unit 11 and the joint control unit 12. Thus, the robot controller 1 according to embodiment 1 can improve the performance of force control over the conventional configuration. In addition, the robot controller 1 according to embodiment 1 can suppress control deviation.
Embodiment mode 2
In embodiment 1, the case is shown where the joint control unit 12 calculates a command value for angular velocity control using a command value for angular velocity calculated by the main control unit 11, and then combines the command value for torque control and the command value for angular velocity control. However, the present invention is not limited to this, and the joint control unit 12 may be configured to combine a command value for torque control and a command value for angular velocity calculated by the main control unit 11, and then calculate a command value for angular velocity control using the result of the combination.
Fig. 9 and 10 are diagrams showing a configuration example of the robot controller 1 according to embodiment 2. In contrast to the robot control device 1 according to embodiment 1 shown in fig. 1 and 2, the robot control device 1 according to embodiment 2 shown in fig. 9 and 10 has the joint angle control unit 125 and the command value synthesizing unit 126 changed to the command value synthesizing unit 127 and the joint angle control unit 128. The other structures are the same, and the same reference numerals are given thereto, and the description thereof is omitted.
The command value synthesizer 127 synthesizes the command value of the angular velocity calculated by the main controller 11 and the command value of the torque control calculated by the torque controller 123. In fig. 10, the command value synthesizing unit 127 includes 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 a command value for angular velocity control based on the result of the synthesis by the command value synthesis unit 127. The joint angle control unit 128 includes a velocity conversion unit 1281 and a velocity control unit 1282. The speed control unit 1282 includes a subtractor 1283 and a PI control unit 1284.
The velocity converter 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 velocity converter 1281 from the result of the synthesis by the command value synthesizer 127.
The PI control unit 1284 performs PI control based on the subtraction result of the subtractor 1283 to obtain an angular velocity control command value.
The command value (current command value) for angular velocity control calculated by the joint angle control unit 128 is output to the motor 21 provided in the corresponding joint.
As described above, in the robot control device 1 according to embodiment 2, 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 result of the combination. The same effects as those of the robot control device 1 according to embodiment 1 can be obtained with respect to the robot control device 1 according to embodiment 2. The robot controller 1 according to embodiment 2 corresponds to a relationship close to conventional compliance control.
Embodiment 3
In the robot control device 1 according to embodiment 1 shown in fig. 1 and 2, the frequency separating unit 122 is provided in the joint control unit 12. However, the frequency separating unit 122 is not limited to this, and may be provided separately to the main control unit 11 and the joint control unit 12.
Fig. 11 is a diagram showing a configuration example of the robot controller 1 according to embodiment 3. In contrast to the robot control device 1 according to embodiment 1 shown in fig. 1 and 2, the robot control device 1 according to embodiment 3 shown in fig. 11 has the frequency separating unit 122 changed to the low-pass filter 119, the adding unit 120, and the subtracting unit 129. The low-pass filter 119, the adding unit 120, and the subtracting unit 129 are provided for each joint of the robot 2. As shown in fig. 11 and 12, the low-pass filter 119, the adding unit 120, and the subtracting unit 129 constitute a frequency separating unit (second frequency separating unit) 13. The other structures are the same, and the same reference numerals are given thereto, and the description thereof is omitted. In fig. 12, low represents a low-frequency component, high represents a high-frequency component, and low + high represents both components, i.e., the original signals.
The low-pass filter 119 is provided in the main control unit 11, and passes only a low-frequency component of the current value of the torque acquired by the torque acquisition unit 121.
The adder 120 is provided in the main controller 11, and adds the low-frequency component of the present value of the torque 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 converter 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 of the addition unit 120. The output of the subtraction unit 129 is a value obtained by subtracting the high-frequency component of the current value of the torque from the high-frequency component of the command value of the torque.
The control of the position and orientation of the robot controller 1 according to embodiment 3 is the same as the control of the position and orientation of the robot controller 1 according to embodiment 1. The force control (low frequency control) of the robot control device 1 according to embodiment 3 is performed using a value obtained by converting the low frequency component of the current value of the torque obtained by the frequency separation unit 13 into the low frequency component of the current value of the force in the force calculation unit 113, and is substantially the same as the force control of the robot control device 1 according to embodiment 1. On the other hand, the torque control (high-frequency control) of the robot control device 1 according to embodiment 3 is different from the torque control of the robot control device 1 according to embodiment 1. Hereinafter, only the portions related to the torque control will be described.
In the robot control device 1 according to embodiment 3, the current value of the torque acquired by the torque acquisition unit 121 is branched by the joint control unit 12, and then one of the branched values 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 the low-frequency component of the current value of the torque is obtained. The signal is output to the force calculation unit 113 and the addition unit 120. The adder 120 adds the high frequency component of the command value of the torque obtained by the torque command value converter 112 and the low frequency component of the current value of the torque, and outputs the result to the joint controller 12. The above-described added value output to the joint control unit 12 is input to the subtraction unit 129, and the current value of the torque is subtracted. As a result, 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 remains. The high-frequency component of the current value of the torque is subtracted from the high-frequency component of the command value of the torque, and the high-frequency component of the deviation of the torque (the difference between the command value and the current value) is output from the frequency separating unit 13. The high frequency component of the torque deviation is output to the torque control unit 123. Thereafter, the same as embodiment 1 is performed.
In the robot control device 1 according to embodiment 3, since there is no configuration for performing filtering processing or the like in the joint control unit 12, there is an advantage that any joint control unit 12 having a torque control function can be used without being changed.
The low-frequency component of the current value of the torque obtained from the adder 120 by the subtractor 129 is a value obtained through two communications from the current value of the torque input to the frequency separator 13, and therefore has a delay. Therefore, strictly speaking, the low frequency components cannot be completely cancelled. However, the low-frequency component originally changes slowly, and if the delay is sufficiently small compared to the time constant of the low-pass filter 119, the influence of the delay becomes small.
Fig. 11 and 12 show a case where the low-pass filter 119 is used. However, the present invention is not limited to this, and a low-frequency component of the current value of the torque may be estimated using a kalman filter or an observer.
In the present invention, it is possible to freely combine the respective embodiments, to modify any of the components of the respective embodiments, or to omit any of the components of the respective embodiments within the scope of the present invention. For example, in embodiments 1 to 3, an example has been described in which the main control unit calculates a command value of angular velocity and the joint angle control unit performs velocity control, but the position, orientation, and force may be controlled by calculating a command value of other physical quantities such as acceleration and current by the main control unit and controlling these physical quantities by the joint angle control unit.
Industrial applicability of the invention
The robot control device according to the present invention is applicable to a robot control device and the like capable of controlling the position, orientation, and force of a robot at the same time, as compared with a conventional configuration, which can improve the performance of force control.
Description of the symbols
1 robot control device
2 robot
11 Main control part
12 joint control unit
13 frequency separation part (second frequency separation part)
21 Motor
22 sensor
23 Torque sensor
24 encoder
111 frequency separation part (first frequency separation part)
112 torque command value conversion unit
113 force calculation unit
114 force control unit
115 position and posture calculation unit
116 position and posture control unit
117 instruction value synthesizing unit
118 instruction value conversion unit
119 low-pass filter
120 addition part
121 torque acquisition unit
122 frequency separation section (second frequency separation section)
123 torque control part
124 motor control part
125 joint angle control unit
126 instruction value synthesizing unit
127 instruction value synthesizing part
128 joint angle control unit
129 subtraction part
1111 low-pass filter
1112 high pass filter
1113 Low pass Filter
1114 subtracter
1121 coefficient multiplication unit
1131 coefficient multiplying unit
1141 subtracter
1142 coefficient multiplication unit
1161 deviation arithmetic unit
1162 coefficient multiplying unit
1171 adder
1181 coefficient multiplying unit
1231 subtracter
1232PI control part
1251 speed conversion part
1252 speed control part
1253 subtracter
1254PI control part
1261 adder
1271 adder
1281 speed conversion unit
1282 speed control unit
1283 subtracter
1284PI control unit.