The present invention relates to robot control.
Robots are controlled by either position control or force control. Position control refers to controlling a robot to a target position based on a position command value. Force control includes position-based force control, that is, admittance control, and torque-based force control. Position-based force control refers to computing a position command value that models after a workpiece based on a value of a force sensor provided at a tip portion of the robot, and controlling the robot based on the position command value. In position-based force control, position control is utilized as a minor loop. Therefore, responsiveness of position-based force control is deteriorated compared to the responsiveness of position control. In general, response frequency of position control is restricted by natural frequency of a robot. Especially, during contact, it is difficult to improve the responsiveness due to the problem of stability. In torque-based force control, a torque command value that models after a workpiece is computed, and the robot is controlled based on the torque command value. Torque-based force control enables to enhance the responsiveness without being restricted by the natural frequency of the robot. Torque-based force control has higher responsiveness than position-based force control, so the range of application can be widened, for example, in assembling operation and the like.
Publication of Japanese Patent No. 5845311 discloses performing flexible control of a robot as force control of the robot. Publication of Japanese Patent No. 5845311 discloses a user having a plurality of parameter sets related to flexible control stored in a storage unit. Further, publication of Japanese Patent No. 5845311 discloses an operation status monitor portion configured to determine an operation status of the robot based on an output from an encoder, a force sensor, or a time measurement portion for measuring time. Further, publication of Japanese Patent No. 5845311 discloses that when a switching condition for switching the parameter set is satisfied while the robot is executing flexible control using a certain parameter set, the robot executes flexible control by switching the parameter set to a different parameter set.
The processing that instructs to switch the operation of the robot according to a robot program has a high arithmetic operation load, since there is a need to interpret the robot program. Meanwhile, in order to perform torque-based force control in a stable manner, there is a need to perform a feedback control process based on the torque sensor value and the encoder value by a fast control cycle. According to the conventional method, however, feedback control is performed while executing the processing of the robot program having a high arithmetic operation load, so that there were limitations in increasing the speed of the control cycle of feedback control according to the torque-based force control.
According to a first aspect of the present invention, a robot control apparatus includes an instruction portion configured to instruct an operation of a robot in accordance with a robot program, and a control portion configured to perform feedback control of the operation of the robot in accordance with an instruction from the instruction portion, based on a torque sensor value of the robot and an encoder value of the robot. The instruction portion is configured to transmit a switching condition to the control portion configured to perform feedback control in accordance with the robot program. In a state where a status of the robot matches the switching condition, the control portion transmits information indicating that the status of the robot has matched the switching condition to the instruction portion, the instruction portion transmits an operation command corresponding to the information to the control portion, and the control portion switches the operation of the robot in accordance with the operation command.
According to a second aspect of the present invention, a robot control method is configured to control a robot by an instruction portion configured to instruct an operation of a robot in accordance with a robot program, and a control portion configured to perform feedback control of the operation of the robot in accordance with an instruction from the instruction portion, based on a torque sensor value of the robot and an encoder value of the robot. The robot control method includes transmitting, by the instruction portion, a switching condition to the control portion configured to perform feedback control in accordance with the robot program, transmitting, by the control portion, information indicating that a status of the robot has matched the switching condition to the instruction portion in a state where the status of the robot matched the switching condition, transmitting, by the instruction portion, an operation command corresponding to the information to the control portion, and switching, by the control portion, the operation of the robot in accordance with the operation command.
Further features of the present invention will become apparent from the following description of exemplary embodiments with reference to the attached drawings.
Now, embodiments for carrying out the present invention will be described in detail with reference to the drawings.
The robot 200 includes a vertical articulated robot arm 251, and a robot hand 252 serving as an example of an end effector attached to a leading end of the robot arm 251. Hereafter, we will describe a case where the end effector is the robot hand 252, but the present invention is not restricted to robot hands, and it can be other tools such as a driver. A base end of the robot arm 251 is fixed to a base 150. The robot hand 252 is configured to hold objects such as components and tools.
The robot 200, that is, the robot arm 251, includes a plurality of joints, for example, six joints J1 through J6. The robot arm 251 includes a plurality of, such as six, servomotors 201 through 206 that respectively drive each of the joints J1 through J6 to rotate around each of the joint shafts A1 through A6. The robot arm 251 is configured such that a plurality of links 2100 through 2106 are connected rotatably at each of the joints J1 through J6. The robot arm 251 can move a tip of hand of the robot 200 to an arbitrary three-directional posture at an arbitrary three-dimensional position as long as it is within a movable range.
The position and the posture of the tip of hand of the robot 200 is expressed by a coordinate system To, with the base end of the robot arm 251, that is, the base 150, as reference. A coordinate system Te is set to the tip of hand of the robot 200. In the first embodiment, the tip of hand of the robot 200 refers to the robot hand 252 if the robot hand 252 is not holding an object. If the robot hand 252 is holding an object, the tip of hand of the robot 200 refers to the robot hand 252 and the object that the robot hand 252 is holding. In other words, regardless of whether the robot hand 252 is in a state holding an object or in a state not holding an object, the tip of hand refers to a portion ahead if the end of the robot arm 251 toward the distal end of the robot 200.
The respective servomotors 201 through 206 include motors 211 through 216 serving as electric motors for respectively driving the joints J1 through J6, and sensor units 221 through 226 respectively connected to the motors 211 through 216. The respective sensor units 221 through 226 have an encoder serving as a position sensor configured to generate a signal corresponding to the position, that is, angle, of each joint J1 through J6. The respective sensor units 221 through 226 have torque sensors that generate signals corresponding to the torque of respective joints J1 through J6. The respective servomotors 201 through 206 have reduction gears not shown, and are connected either directly or through a transmission mechanism such as a belt or a bearing not shown to the links driven by the respective joints J1 through J6.
A servo controller 230 configured to control operation of motors 211 through 216 of the respective servomotors 201 through 206 is arranged inside the robot arm 251. Based on respective torque command values corresponding to respective joints J1 though J6 being received, the servo controller 230 supplies current to the respective motors 211 through 216 such that the torque of the respective joints J1 through J6 follow the torque command value, and controlling the drive of the respective motors 211 through 216. In the first embodiment, the servo controller 230 is arranged inside the robot arm 251, but it can also be arranged on the outer side of the robot arm 251, such as within a housing of the robot control apparatus 300.
Further, the robot arm 251 of the robot 200 includes a plurality of brakes 231 through 236 that respectively apply braking force to the respective joints J1 through J6. The brakes 231 through 236 are, for example, disk brakes. By activating the respective brakes 231 through 236, the respective joints J1 through J6 can be fixed such that the joints J1 through J6 do not move.
Next, we will describe the robot control apparatus 300.
The CPU 301 includes a plurality of cores 301A and 301B according to the first embodiment, and each core 301A and 301B can perform arithmetic operation independently. The ROM 302 stores a basic program. The RAM 303 is a storage device that temporarily stores various data, such as the result of arithmetic operation processing performed by the CPU 301. The HDD 304 is a storage device that stores the result of arithmetic operation processing performed by the CPU 301, or various data acquired from the exterior, and also stores a program 330 for having the CPU 301 execute the arithmetic operation processing described later. The CPU 301 executes the respective steps of the robot control method based on the program 330 stored in the HDD 304. The disk drive 305 can read the various data and programs stored in a disk 331.
The teaching pendant 400 is connected to the interface 306. The CPU 301 receives input of teaching data from the teaching pendant 400 through the interface 306 and the bus 311.
The servo controller 230 is connected to the interface 309. The CPU 301 acquires signals from respective sensor units 221 through 226 through the servo controller 230, the interface 309 and the bus 311. Further, the CPU 301 outputs command value data of the respective joints at predetermined time intervals through the bus 311 and the interface 309 to the servo controller 230.
A monitor 321 is connected to the interface 307, and various images are displayed on the monitor 321 under the control of the CPU 301. The interface 308 is configured to allow connection of an external storage device 322 serving as a storage such as a rewritable nonvolatile memory or an external HDD.
An external apparatus 323 is connected to the interface 310. The CPU 301 performs input/output of data with the external apparatus 323 through the interface 310 and the bus 311. The external apparatus 323 can be, for example, an apparatus for turning an LED on and off, or a PLC (Programmable Logic Control Portion).
In the first embodiment, a case is described where the computer-readable storage medium is the HDD 304 and the program 330 is stored in the HDD 304, but the present invention is not restricted thereto. The program 330 can be stored in any storage medium, as long as it is a computer-readable storage medium. For example, the ROM 302, the disk 331, the external storage device 322 and the like illustrated in
The respective sensor units 221 through 226 include encoders 551 through 556 and torque sensors 541 through 546. The encoders 551 through 556 are rotary encoders, and the respective encoders output angular values θ1 through θ6, which are measured values corresponding to rotation angles of the motors 211 through 216, as signals. The respective torque sensors 541 through 546 output torque values τ1 through τ6, which are measured values corresponding to torques of the respective joints J1 through J6, as signals.
Based on the operation of an operator, the teaching pendant 400 sets a force target value Fref, which is a target value of force acting on a tip of hand of the robot 200, to the robot control apparatus 300, that is, stores the force target value Fref in the external storage device 322. Further, the teaching pendant 400 sets a position target value Pref, which is a target value of position and posture of the tip of hand of the robot 200, to the robot control apparatus 300, that is, stores the position target value Pref, in the external storage device 322. A plurality of force target values Fref and position target values Pref exist in accordance with the assembly process. Further, a robot program 506 described in robot language and a robot model 519 such as a three-dimensional CAD data of the robot 200 are stored in the external storage device 322. The robot program 506 specifies the operations of the robot 200 and the external apparatus 323. The operator creates the robot program in accordance with the assembly process using a text editor or a dedicated IDE (Integrated Development Environment). The robot program 506 can be used in association with the force target value Fref and the position target value Pref. The force target value Fref, the position target value Pref, the robot program 506 and the robot model 519 are described as being stored in the external storage device 322, but they can also be stored in the internal storage device.
The instruction portion 501 is configured to output an instruction regarding operation of the robot 200 in accordance with the robot program 506 to the control portion 510, and since the instruction portion 501 interprets the robot program 506, the arithmetic operation load thereof will be higher than the control portion 510.
In accordance with the instruction of the instruction portion 501, the control portion 510 controls the operation of the robot 200 selectively based on either a force control serving as a first control or a position control serving as a second control. In the first embodiment, the force control is a torque-based force control. According to the torque-based force control, the operation of the robot 200 is subjected to feedback control based on torque values τ1 through τ6 of the torque sensors 541 through 546 of the robot 200 and the angular values θ1 through θ6 of the encoders 551 through 556 of the robot 200. According to the position control, the operation of the robot 200 is subjected to feedback control based on angular values θ1 through θ6 of the encoders 551 through 556 of the robot 200.
In the torque-based force control, the control portion 510 acquires torque command values τMFref1 through τMFref6 of the respective joints as feedback command values, and outputs the respective torque command values τMFref1 through τMFref6 to the respective motor controllers 531 through 536. The control portion 510 executes torque-based force control at predetermined control cycles. Further, according to the position control, the control portion 510 acquires angular command values qref1 through qref6 of the respective joints as feedback command values, and outputs the respective angular command values qref1 through qref6 to the respective motor controllers 531 through 536.
Now, a case where the command values received by the respective motor controllers 531 through 536 are the torque command values through τMFref6 will be described. The respective motor controllers 531 through 536 control respective currents Cur1 through Cur6 supplied to the respective motors 211 through 216 such that deviations between the respective torque values τ1 through τ6 and the respective torque command values τMFref1 through τMFref6 become small.
Now, a case where the command values received by the respective motor controllers 531 through 536 are the angular command values qref1 through qref6 will be described. The respective motor controllers 531 through 536 convert the respective angular command values qref1 through qref6 to angular command values θref1 through θref6 of the respective motors 211 through 216. Then, the respective motor controllers 531 through 536 control respective currents Cur1 through Cur6 supplied to the respective motors 211 through 216 such that the deviations between the respective angular values θ1 through θ6 and the respective angular command values θref1 through θref6 become small. Further, the respective motor controllers 531 through 536 can also convert the respective angular values θ1 through θ6 to respective angular values q1 through q6. In this case, the respective motor controllers 531 through 536 control the respective currents Cur1 through Cur6 supplied to the respective motors 211 through 216 such that deviations between the respective angular values q1 through q6 and the angular command values qref1 through qref6 become small.
Now, torque-based force control of the robot 200 will be described in detail.
The control portion 510 computes torque command values τMFref1 through τMFref6 corresponding to the respective motors 211 through 216 such that the hand tip force F, which is the measured value of force acting on the tip of hand, follows the force target value Fref, that is, the deviation of force between the hand tip force F and the force target value Fref, becomes small (S2).
The respective motor controllers 531 through 536 perform energization control to energize currents Cur1 through Cur6 to the respective motors 211 through 216 such that the respective torque command values τMFref1 through τMFref6 are realized, based on angular values τ1 through τ6 of the respective encoders 551 through 556 (S3). The respective motors 211 through 216 generate torque by being energized (S4).
The respective encoders 551 through 556 output signals indicating the respective angular values θ1 through θ6 to the control portion 510. The respective torque sensors 541 through 546 output signals indicating the respective torque values τ1 through τ6 to the control portion 510. Thereby, the angular values θ1 through θ6 of the respective encoders 551 through 556 and the torque values τ1 through τ6 of the respective torque sensors 541 through 546 are subjected to feedback to the control portion 510, and the control portion 510 acquires the angular values τ1 through τ6 and the torque values τ1 through τ6 (S5).
The control portion 510 computes angular values q1 through q6 of the respective joints J1 through J6 based on the robot model 519 and the angular values τ1 through τ6. Further, the control portion 510 computes a position P of the tip of hand of the robot 200 based on the robot model 519 and the angular values q1 through q6 of the respective joints J1 through J6. The control portion 510 computes a hand tip force F applied on the tip of hand of the robot 200 based on the robot model 519, the angular values q1 through q6 and the torque values τ1 through τ6 (S6). The control portion 510 determines whether drive has been completed or not (S7), and if it is not completed (S7: No), steps S2 through S7 are repeated. By driving the motors 211 through 216 in accordance with the above-described flowchart, it becomes possible to control the hand tip force F of the robot 200 to the force target value Fref. The torque-based force control is not restricted to the order of the flowchart illustrated in
Next, position control of the robot 200 will be described.
The control portion 510 computes angular command values qref1 through qref6 a by converting the position target value Pref into angular command values qref1 through qref6 of the respective joints J1 through J6 based on the robot model 519 (S12).
Respective motor controllers 531 through 536 perform energization control to energize currents Cur1 through Cur6 to the respective motors 211 through 216, so that the respective angular values q1 through q6 follow the respective angular command values qref1 through qref6 (S13). Angular values θ1 through θ6 of the motors 211 through 216 can be used instead of the angular values q1 through q6 as signals indicating the angles of the joints J1 through J6. The respective motors 211 through 216 generate torque by being energized (S14).
The respective encoders 551 through 556 output signals indicating the respective angular values θ1 through θ6 to the control portion 510. According thereto, the angular values θ1 through θ6 of the respective encoders 551 through 556 are subjected to feedback to the control portion 510, and the control portion 510 acquires the angular values θ1 through θ6 (S15). The control portion 510 obtains the angular values q1 through q6 of the respective joints J1 through J6 based on the robot model 519 and angular values θ1 through θ6.
The control portion 510 determines whether drive has been completed or not, that is, whether the position P of the tip of hand has reaches near the position target value Pref (S16), and if the drive is not complete (S16: No), steps S12 through S16 are repeated. By driving the motors 211 through 216 in accordance with the above-described flowchart, it becomes possible to control the position P of the tip of hand of the robot 200 to the position target value Pref.
The torque-based force control of steps S1 through S7 and the position control of steps S11 through S16 are switched by the instruction portion 501 in accordance with the robot program 506, and either one of the controls is selected according to the operation.
Hereafter, a case where the control portion 510 performs feedback control of the torque-based force control based on the instruction of the instruction portion 501 will be described.
Now, the operation of the instruction portion 501 and the control portion 510 will be described in detail.
The time measurement portion 512 measures the elapsed time t from a point of time when torque-based force control has been started. The measurement portion 513 reads the robot model 519 from the external storage device 322. The position measurement portion 515 computes position P that indicates the measured value of the position and posture of the tip of hand of the robot 200 based on the angular values θ1 through θ6 acquired from the encoders 551 through 556, and the robot model 519. Further, upon receiving the respective angular values θ1 through θ6, the position measurement portion 515 computes angular values q1 through q6, which are measured values of angles of the respective joints J1 through J6, based on a reduction ratio of a reduction gear not shown and the like specified by the robot model 519. The force measurement portion 514 acquires the hand tip force F, which is a measured value of the force acting on the tip of hand of the robot 200, based on angular values θ1 through θ6 acquired from the encoders 551 through 556, the torque values τ1 through τ6 acquired from the torque sensors 541 through 546, and the robot model 519.
The switching portion 502 reads the robot program 506, the force target value Fref and the position target value Pref, performs interpretation processing thereof, and in accordance with the switching information received from the monitoring portion 511, the switching portion 502 generates an operation instruction of the robot 200 or the external apparatus 323. If the generated operation instruction is a torque-based force control of the robot 200, the switching portion 502 transmits an operation instruction to the force command generation portion 503. If the generated operation instruction is a position control of the robot 200, the switching portion 502 transmits an operation instruction to the position command generation portion 504. If the generated operation instruction is an operation of the external apparatus 323, the switching portion 502 transmits an operation instruction to the external command generation portion 505.
Based on the operation instruction received from the switching portion 502, the force command generation portion 503 transmits the switching condition and a force command as the operation command to the control portion 510. There are 13 kinds of switching conditions according to the first embodiment, as listed below. The force command generation portion 503 transmits the following switching condition to the monitoring portion 511 in accordance with a statement of the robot program 506.
The switching conditions have been listed as an example, but the present invention is not restricted thereto.
The monitoring portion 511 determines whether the measured value acquired from the time measurement portion 512 and the measurement portion 513 matches the received switching conditions described above. That is, the monitoring portion 511 monitors the measured value described later during torque-based force control, and if the measured value matches the switching condition received from the force command generation portion 503, the monitoring portion 511 transmits a switching information indicating that the measured value has matched the switching condition to the switching portion 502. First-order differential and second-order differential by time described later are performed by the monitoring portion 511.
In the first embodiment, a force command serving as an operation command output by the force command generation portion 503 is a parameter in accordance with the torque-based force control. According to the first embodiment, there are seven kinds of parameters, which are listed below.
Here, (⋅) represents the first-order differential of time, and (⋅ ⋅) represents the second-order differential of time. The examples of parameters have been listed above, but the parameters are not restricted to those listed above. Further, not all the parameters are necessary. In the above-listed parameters, the stiffness coefficient Kref, the viscosity coefficient Dref and the inertia matrix Λref are coefficients of arithmetic operation expression expressed in the following expressions (1) and (2) used for the feedback control of the torque-based force control.
Upon receiving the parameters in accordance with force control transmitted from the force command generation portion 503, the parameter setting portion 516 performs coordinate transformation, and sets the value to the force control portion 517. The force control portion 517 receives input of the robot model 519, the force target value Fref, the position target value Pref, the speed target value Pref (⋅), the acceleration target value Pref (⋅ ⋅), the stiffness coefficient Kref, the viscosity coefficient Dref, and the inertia matrix Λref. Further, the force control portion 517 receives input of the torque values τ1 through τ6, the angular values q1 through q6, the position P and the force F as measured values. Thereafter, the force control portion 517 computes torque command values τMFref1 through τMFref6 corresponding to the respective joints J1 through J6 using these target values and measured values. Now, the deviation between the hand tip force F and the force target value Fref is referred to as a force deviation. The deviation between the position P and the position target value Pref of the tip of hand is referred to as a positional deviation. The deviation between the speed P (⋅) and speed target value Pref (⋅) of the tip of hand is referred to as a speed deviation. The deviation between the acceleration value P (⋅ ⋅) and acceleration target value Pref (⋅ ⋅) of the tip of hand is referred to as an acceleration deviation. The force control portion 517 computes the torque command values τMFref1 through τMFref6 so that the force deviation, the positional deviation, the speed deviation and the acceleration deviation become small.
Specifically, the force control portion 517 performs calculation using expressions (1) and (2) based on the following variables.
[Expression 1]
τMFref=g(q)+J(q)T(Λ(P){umlaut over (P)}ref+μ(P,{dot over (P)}){dot over (P)}) −J(q)TΛPΛref−1(Kref(P−Pref)+Dref({dot over (P)}−{dot over (P)}ref)+Fref) +J(q)T(ΛPΛref−1−I)F
[Expression 2]
μ(P,{dot over (P)})=J(q)−T(c(q,{dot over (q)})−M(q)J(q)−1{dot over (J)}(q))J(q)31 1
Expressions (1) and (2) are mere examples of torque-based force control, and the present invention is not restricted to those expressions.
The force control portion 517 output the respective computed torque command values τMFref1 through τMFref6 to the respective motor controllers 531 through 536. Here, speed P (⋅) is obtained by differentiating position P by time, and acceleration P (⋅ ⋅) is obtained by differentiating speed P (⋅). Therefore, in the first embodiment, the force control portion 517 obtains the speed P (⋅) of the tip of hand and the acceleration P (⋅ ⋅) of the tip of hand from the position P of the tip of hand obtained as a result of measurement by the position measurement portion 515. It is also possible to have the position measurement portion 515 perform arithmetic operation to output the speed P (⋅) of the tip of hand and the acceleration P (⋅ ⋅) of the tip of hand.
Based on the operation instruction received from the switching portion 502, the position command generation portion 504 transmits the position target value Pref as operation command to the position control portion 518. Based on the operation instruction received from the switching portion 502, the external command generation portion 505 forms data into a format corresponding to the external apparatus 323, and transmits a command to the external apparatus 323.
The position control portion 518 computes the angular command values qref1 through qref6 of the respective joints J1 through J6 by performing inverse kinematics computation based on the position target value Pref of the tip of hand, and outputs the respective angular command values qref1 through qref6 to the respective motor controllers 531 through 536.
Now, the operations of the instruction portion 501 and the control portion 510 will be described with reference to specific examples.
Next, based on the statement on line 03, the switching portion 502 of the instruction portion 501 transmits an operation instruction to the force command generation portion 503 to start moving the tip of hand of the robot 200 from the position Prefstart1 to a downward direction of
The parameter set 1 is a parameter group set by the operator to perform torque-based force control, and the values are described on line 15. The parameter set 1 includes a force target value Fref1, a position target value Pref1, a speed target value Pref1 (⋅), an acceleration target value Pref1 (⋅ ⋅), a stiffness coefficient Kref1, a viscosity coefficient Dref1, and an inertia matrix Λref1. Switching conditions A, B and C constitute a switching condition group for switching the operation of the robot 200, and individual switching conditions are described on lines 18 through 20. Specifically, on line 18, a condition stating that translational z component of the hand tip force F exceeds threshold Th_f_z1 is described as switching condition A. On line 19, a condition stating that position Pz of the translational z component of the tip of hand is smaller than threshold Th_pos_z1 is described as switching condition B. On line 20, a condition that elapsed time from point of time when torque-based force control has been started exceeds a threshold (10 [s]) is described as switching condition C. It is also possible to have a plurality of conditions written as one switching condition, such as {(Fz>Th_f_z1) and (elapsed time >10)}, or {(Fz>Th_f_z1) or (elapsed time >10)}.
As described, the instruction portion 501 transmits the parameter set 1 to the control portion 510 in accordance with the robot program 506, and the control portion 510 performs feedback control of the operation of the robot 200 by torque-based force control using the parameter set 1.
When causing the control portion 510 to start torque-based force control, the instruction portion 501 transits a plurality of switching conditions A, B and C to the control portion 510. If the status of the robot 200 matches the switching condition A during torque-based force control, the monitoring portion 511 of the control portion 510 transmits the switching information indicating that the switching condition A has been matched to the instruction portion 501. Further, if the status of the robot 200 matches the switching condition B during torque-based force control, the monitoring portion 511 transmits a switching information indicating that the switching condition B has been matched to the instruction portion 501. Further, if the status of the robot 200 matches the switching condition C during torque-based force control, the monitoring portion 511 transmits a switching information indicating that the switching condition C has been matched to the instruction portion 501.
That is, the monitoring portion 511 monitors, as the status of the robot 200, the elapsed time t from the time measurement portion 512, the hand tip force F and the torque values τ1 through τ6 from the force measurement portion 514, the position P of the tip of hand from the position measurement portion 515, and the angular values q1 through q6. The monitoring portion 511 monitors these measured values, and if any one of these switching conditions A, B and C is satisfied, it transmits the switching information corresponding to that switching condition to the instruction portion 501.
If input of switching information indicating that switching condition A has been matched is received, the switching portion 502 of the instruction portion 501 transmits the operation command corresponding to that switching information to the control portion 510. Specifically, switching condition A is a condition where the translational z component of the hand tip force F exceeds threshold Th_f_z1, and as illustrated in
If input of switching information indicating that the switching condition B has been matched is received, the switching portion 502 of the instruction portion 501 transmits an operation command corresponding to the switching information to the control portion 510. Specifically, switching condition B is a condition where the position Pz of the tip of hand of the robot 200 in translational z direction becomes smaller than the threshold Th_pos_z1, and as illustrated in
If switching information indicating that switching condition C has been matched is received, the switching portion 502 of the instruction portion 501 transmits an operation command corresponding to that switching information to the control portion 510. Specifically, switching condition C is a condition where elapsed time from the point of time when torque-based force control has been started exceeds a threshold (10 [s]). Since switching condition C is satisfied, based on the statements described in lines 10 and 11, the switching portion 502 transmits an operation instruction to move the tip of hand of the robot 200 to position Prefstart1 by position control to the position command generation portion 504. The position command generation portion 504 transmits an operation command to the control portion 510. The control portion 510 returns the tip of hand of the robot 200 by position control to the position Prefstart1 based on position control in accordance with the received operation command. That is, in accordance with the instruction of the instruction portion 501, the control portion 510 switches control from torque-based force control to position control as a switching of operation of the robot 200. As described, the switching between torque-based force control and position control can be performed more speedily by the cooperation of the instruction portion 501 and the control portion 510.
As described, according to the first embodiment, a two-part configuration composed of the instruction portion 501 that performs state transition and a control portion 510 that performs feedback control at a predetermined control cycle upon receiving an instruction from the instruction portion 501 is adopted, in accordance with the robot program 506 created by the user. Thereby, a process to perform interpretation of the robot program 506 having a high arithmetic operation load is no longer required to be performed by the control portion 510, such that the speed of control cycle of feedback control by torque-based force control can be increased. Therefore, torque-based force control of the robot 200 can be performed stably while corresponding to the switching of various operations of the robot 200. Further, according to the first embodiment, it becomes possible to increase the speed of the control cycle of feedback compared to a state where processing of the robot program and feedback control using a sensor value are performed by one process, and therefore, stability of control of the robot 200 is improved.
By having the control portion 510 perform feedback control based on the sensor information also in the instruction portion 501, the corresponding arithmetic operation load can be reduced, and excessive consumption of computer resources can be prevented.
According further to the first embodiment, the monitoring portion 511 of the control portion 510 notifies the switching information to the switching portion 502 in a state where the switching condition has been matched during torque-based force control. The switching portion 502 can switch the operation of the robot 200 flexibly by performing conditional branching based on the notified switching information. Thereby, the application range of the assembling operation using torque-based force control is expanded, and it becomes possible to handle complex assembling operations.
Next, a robot system according to the second embodiment will be described.
According to the second embodiment, a case where the parameter associated with force control is switched as the switching of operation of the robot 200. The configurations and functions of the robot system according to the second embodiment is similar to those of the first embodiment, but the contents of the robot program created by the user and the second workpiece serving as the target of assembly are different. According to the second embodiment, the position of a recess portion on a workpiece W3 on which the workpiece W1 is to be assembled is not accurately defined. Therefore, the assembling operation is performed by the following sequence. For sake of simplified description, the operation of the robot 200 will be stopped when conditions other than the normal system are satisfied.
Next, the switching portion 502 of the instruction portion 501 transmits an operation instruction to the force command generation portion 503 to start moving the tip of hand of the robot 200 from the position Prefstart2 to a downward direction in
Now, the second embodiment includes a plurality of parameter sets 1, 2 and 3 and a plurality of switching conditions A, B, C, D and E. Parameter sets 1 through 3 are described on lines 17 through 19. Parameter set 1 includes a force target value Fref2, a position target value Pref2, a speed target value Pref2 (⋅), an acceleration target value Pref2 (⋅ ⋅), a stiffness coefficient Kref2, a viscosity coefficient Dref2, and an inertia matrix Λref2. Parameter set 2 includes a force target value Fref3, a position target value Pref3, a speed target value Pref3 (⋅), an acceleration target value Pref3 (⋅ ⋅), a stiffness coefficient Kref3, a viscosity coefficient Dref3, and an inertia matrix Λref3. Parameter set 3 includes a force target value Fref4, a position target value Pref4, a speed target value Pref4 (⋅), an acceleration target value Pref4 (⋅ ⋅), a stiffness coefficient Kref4, a viscosity coefficient Dref4, and an inertia matrix Λref4.
The switching conditions A through E are described on lines 22 through 26. Switching condition A is a condition where the translational z component of the hand tip force F exceeds threshold Th_f_z3. Switching condition B is a condition where an elapsed time from the point of time when torque-based force control has been started exceeds a threshold (5 [s]). Switching condition C is a condition where the transitional z component of the hand tip force F is smaller than threshold Th_f_z4. Switching condition D is a condition where the elapsed time from the point of time when torque-based force control has been started exceeds a threshold (4 [s]). Switching condition E is a condition where the elapsed time from the point of time when torque-based force control has been started exceeds a threshold (3 [s]). Switching conditions C and D are associated with switching condition A. Further, switching condition E is associated with switching condition C. That is, switching conditions A through E are associated in a multistage tree structure.
In a state where the instruction portion 501 causes the control portion 510 to start torque-based force control based on parameter set 1, the instruction portion 501 transmits a plurality of switching conditions A and B to the control portion 510. In a state where the status of the robot 200 matches switching condition A during torque-based force control, the monitoring portion 511 of the control portion 510 transmits a switching information indicating that switching condition A has been matched to the instruction portion 501. Further, in a state where the status of the robot 200 has matched switching condition B during torque-based force control, the monitoring portion 511 transmits a switching information indicating that switching condition B has been matched to the instruction portion 501.
In a state where the switching information indicating that switching condition A has been matched is received, the switching portion 502 of the instruction portion 501 transmits an operation command corresponding to the switching information to the control portion 510. Specifically, switching condition A is a condition that the translational z component of the hand tip force F exceeds threshold Th_f_z3, and as illustrated in
Since switching condition A is satisfied, the switching portion 502 transmits an operation instruction to the force command generation portion 503 based on the statements described on lines 05 and 06, and the force command generation portion 503 transmits an operation command to the control portion 510. This operation command is a parameter set 2, and the force control portion 517 uses the new parameter set 2 to perform feedback control based on torque-based force control. That is, as illustrated in
In a state where a switching information indicating that switching condition C has been matched is received, the switching portion 502 of the instruction portion 501 transmits an operation command corresponding to the switching information to the control portion 510. Specifically, switching condition C is a condition where the transitional z component of the hand tip force F is smaller than threshold Th_f_z4, and as illustrated in
Since switching condition C is satisfied, the switching portion 502 transmits an operation instruction to the force command generation portion 503 based on statements described on lines 07 and 08, and the force command generation portion 503 transmits an operation command to the control portion 510. This operation command is a parameter set 3, and the force control portion 517 performs feedback control by torque-based force control using the new parameter set 3. That is, as illustrated in
As described, according to the second embodiment, in a state where the switching condition has been matched during torque-based force control, the control portion 510 notifies the switching information to the switching portion 502, and the switching portion 502 performs conditional branching based on the notified switching information. Based on the operation of the instruction portion 501 and the control portion 510, it becomes possible to switch the parameter associated with force control once or more than once. That is, complex switching operations in multiple stages, such as switching from initial parameter set 1 to parameter set 2 in a state where switching condition A has been matched, and switching further from parameter set 2 to parameter set 3 in a state where switching condition C has been matched, is facilitated.
Next, a robot system according to a third embodiment will be described.
The parameter storage unit 520 maintains the parameter before switching. By maintaining the parameter before switching, if switching of parameters associated with force control occurs, the parameter before switching and the parameter after switching are interpolated by an interpolation function at the parameter setting portion 516. Thus, it becomes possible to prevent sudden change of parameter. As a method for performing interpolation, for example, interpolation functions such as linear interpolation, cubic polynomial, Sigmoid function and the like can be used, but the present invention is not restricted thereto.
For simplification, a case will be described of a case where only a force target value Fref, which is one of the parameters, is subjected to interpolation.
As illustrated in
Now, a robot system according to a fourth embodiment will be described.
A delay time is described as switching condition A on line 12 of the robot program 506. Specifically, it means that determination of translational z component of the hand tip force F will not be performed during a predetermined time of 0.4 [s] after starting torque-based force control in the monitoring portion 511.
In a state where torque-based force control is performed after position control, as illustrated in
As described, according to the fourth embodiment, the monitoring portion 511 of the control portion 510 has a delay function, such that the operator can control the start time of determination of the switching condition by entering a statement in the robot program 506. Thus, the monitoring portion 511 will disregard the significant fluctuation of the hand tip force F or the hand tip position P that may occur at the start of operation of the robot 200, and the stability of control of the robot 200 can be improved.
The present invention is not restricted to the embodiments described above, and various modifications are possible within the scope of the present invention. Further, the effects described in the embodiments are mere examples of the most preferable effects caused by the present invention. The effects of the present invention are not restricted to those described in the embodiments.
The present invention can also be realized by providing a program that realizes one or more functions of the above-described embodiments via a network or a storage medium to a system or an apparatus, and having one or more processors in a computer of the system or the apparatus perform a process of reading and executing the program. The present invention can also be realized by a circuit realizing one or more functions (such as an ASIC).
According to the above-described embodiment, the CPU 301 has a plurality of cores, and the plurality of cores realize the functions of the instruction portion and the control portion, but it is also possible to realize the functions of the instruction portion and the control portion by a plurality of CPUs or a plurality of computers. Moreover, even if the functions of the instruction portion and the control portion are realized by one CPU having only one core, the present invention can be realized by configuring the system to enable a plurality of processes, that is, a plurality of application software, to be executed independently. That is, the CPU can function as the instruction portion by executing the first process and also function as the control portion by executing the second process. From the point of view of arithmetic operation load, it is more preferable to realize the functions of the instruction portion and the control portion by a plurality of cores, a plurality of CPUs or a plurality of computers than realizing the functions of the instruction portion and the control portion by one CPU having only one core.
According to the above-described embodiment, a case has been described where the robot arm is a vertical articulated robot arm, but the present invention is not restricted to this example. The robot arm can be, for example, a horizontal articulated robot arm, a parallel-linked robot arm, an orthogonal robot, and so on.
Embodiment(s) of the present invention can also be realized by a computer of a system or apparatus that reads out and executes computer executable instructions (e.g., one or more programs) recorded on a storage medium (which may also be referred to more fully as a ‘non-transitory computer-readable storage medium’) to perform the functions of one or more of the above-described embodiment(s) and/or that includes one or more circuits (e.g., application specific integrated circuit (ASIC)) for performing the functions of one or more of the above-described embodiment(s), and by a method performed by the computer of the system or apparatus by, for example, reading out and executing the computer executable instructions from the storage medium to perform the functions of one or more of the above-described embodiment(s) and/or controlling the one or more circuits to perform the functions of one or more of the above-described embodiment(s). The computer may comprise one or more processors (e.g., central processing unit (CPU), micro processing unit (MPU)) and may include a network of separate computers or separate processors to read out and execute the computer executable instructions. The computer executable instructions may be provided to the computer, for example, from a network or the storage medium. The storage medium may include, for example, one or more of a hard disk, a random-access memory (RAM), a read only memory (ROM), a storage of distributed computing systems, an optical disk (such as a compact disc (CD), digital versatile disc (DVD), or Blu-ray Disc (BD)™), a flash memory device, a memory card, and the like.
While the present invention has been described with reference to exemplary embodiments, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. The scope of the following claims is to be accorded the broadest interpretation so as to encompass all such modifications and equivalent structures and functions.
This application claims the benefit of Japanese Patent Application No. 2017-008955, filed Jan. 20, 2017, which is hereby incorporated by reference wherein in its entirety.
Number | Date | Country | Kind |
---|---|---|---|
2017-008955 | Jan 2017 | JP | national |