This invention relates to a control apparatus for controlling a motion of a robot having two or more driving parts at a command speed or lower.
In a robot control apparatus according to the related art, control in which using a position of a hand etc. of the top of a robot as a control point, its speed does not exceed a command speed or control in which a speed of a joint part at a time when passing through a singular point does not exceed a limit speed of a driving apparatus has been performed.
A key operation by an operator is inputted to the key input part 31 of the manual operation apparatus 3 and the information is outputted to the key information output part 32. As a result of this, manual motion information ΔP outputted is inputted to the locus generation part 22 of the control apparatus 2. Here, in accordance with the manual motion information ΔP, a command speed VS stored in the parameter storage part 21 is selected and based on this command speed VS, the movement amount ΔL per unit time ΔT, which is a calculation cycle of the control apparatus 2, is calculated.
ΔL=VS×ΔT
Motion locus generation is performed based on the movement amount ΔL calculated here.
P2=P1+ΔL
where P1 indicates the present position of the robot 1 and P2 indicates a motion target position of the robot 1. The motion target position P2 of the robot 1 generated here is outputted to the speed control part 23 as a motion command. In the speed control part 23, speed monitor control is performed based on the motion target position P2. Here, the actual speed Vj is calculated by using the present position P1 of the robot 1 and the motion target position P2.
Vj=|P2−P1|/ΔT
With the calculated speed Vj, a speed ratio Vratio is calculated from the command speed VS stored in the parameter storage part 21.
Vratio=VS/Vj
Here, a case of Vratio>1 indicates that a speed can be increased still and a case of Vratio<1 indicates that the present speed needs to be decreased.
By using the ratio of Vratio calculated here, the motion target position P2 is again created in the motion command part 24.
P2=P1+ΔL×Vratio
The motion target position P2 calculated here is outputted to the driving control part 25 as a motion command. By performing speed monitoring in this speed control part 23 and regeneration of the motion target position in the motion command part 24 every calculation cycle of the control apparatus 2, motions are made at a speed lower than or equal to a reference speed.
As described above, in the robot control apparatus according to the related art, a movement speed is controlled so that the hand 11 of the robot top or a joint part is used as a control point and its speed does not exceed a safe speed. Also, even during a teaching mode of the robot, since a teacher works in very close contact with the robot, it is disclosed that the movement speed is controlled so that the speed of the hand 11 or the joint part which is the control point does not exceed the safe speed in order to ensure the safety.
However, the robot generally comprises plural joints, and depending on an attitude, the hand 11 mounted in the arm top or the joint part may not move at the highest speed. These examples will be described using motion illustrations of the robot of
First, in a horizontal joint type robot shown in a motion illustration of
Further, in a horizontal joint type robot shown in a motion illustration of
Furthermore, in a vertical multi-joint type robot shown in
This invention is constructed so that a portion, other than a control point of a robot, in which a motion speed may become large, in other words, the arm end most distant from a joint part is set as a monitor point and a distance from the joint part to the monitor point and an angle is stored in a parameter storage part as monitor point information and a movement speed of the monitor point is calculated based on a rotational speed of the joint part obtained from a movement command of the control point of the robot and a target motion position is changed so that all the movement speed of each control point and the movement speed of each monitor point become a command speed or lower and as a result of that, the motion speed is changed and controlled.
It is constructed so that a distance from the joint part to both ends of an arm or an angle is stored in the parameter storage part as the monitor point information.
It is constructed so that a distance from the joint part to a transferred article or an angle and a distance to the arm end or an angle are stored in the parameter storage part as the monitor point information.
It is constructed so that a movement speed of each monitor point is calculated based on a rotational speed of each joint part and an attitude of each arm, etc. obtained from a movement command of the control point of the robot and further a combined movement speed is calculated from a coupling state of the arms and the movement speed of each monitor point and a target motion position is changed so that all the movement speed of each control point, the movement speed of each monitor point and the combined movement speed of each monitor point become a command speed or lower and as a result of that, the motion speed is changed and controlled.
In a case of using a robot control apparatus of this invention, the control point of the robot and the monitor point of the robot do not move at a speed higher than the command speed when viewed from a base of the robot, so that there is an effect that a trial run for setting the command speed, etc. becomes unnecessary.
Also, in a case that a teaching operator performs teaching operations in the vicinity of the robot, since an arm etc. do not move suddenly at a speed higher than the command speed, safety of the teaching operator can be ensured and further there is no need to set a teaching speed at low speed making allowance for safety to perform the teaching operations, so that there is an effect that the teaching operations can be performed efficiently.
Also, in a case that the robot control apparatus of this invention is adopted to a wrist shaft provided in the top of the robot and a monitor point is specified to the top of a transferred article, even though a rotational speed command of the wrist shaft is set at high speed, the top of the transferred article does not move at a specified speed higher than a motion command speed of the robot, so that there is an effect that setting of a rotational speed is also simplified.
First Embodiment
A first embodiment of this invention will be described with reference to
In
Numeral 27 is a monitor point speed control part which obtains a movement speed at a monitor point from the motion speed of the control point obtained by the control point speed control part 26 and the monitor point information stored in the parameter storage part 21. Numeral 28 is a motion command part which compares a movement speed at a control point and a movement speed at a monitor point with a command speed stored in the parameter storage part 21 and changes a motion speed of a joint so that the control point or the monitor point becomes the command speed when the movement speed at the control point or the monitor point exceeds the command speed. Numeral 25 is a driving control part which performs servo control of a driving motor (not shown) based on a command from the motion command part 28 and performs rotation control of a support 14 of the side of the robot 1 and a joint part of each arm.
Next, motions will be described based on a flowchart of FIG. 2.
When activation of the motion programs stored in the parameter storage part 21 or the movement command from the manual operation apparatus 3 is generated, in step 41, the locus generation part 22 calculates the movement amount ΔL every calculation cycle ΔT of the control apparatus 2 from the command speed VS stored in the parameter storage part 21 toward a terminal point position of the movement command.
ΔL=VS×ΔT
The locus generation part 22 performs motion locus generation based on the movement amount ΔL calculated here.
P2=P1+ΔL
Incidentally, P1 indicates the present position of the robot 1 and P2 indicates a motion target position of the robot 1 after a lapse of the time ΔT. The motion target position P2 of the robot 1 generated by the locus generation part 22 is outputted to the control point speed control part 26 as a motion command.
In step 42, the control point speed control part 26 obtains a rotational angle Δθ1 of a first arm 13 per unit time ΔT, a rotational angle Δθ2 of a second arm 12 per unit time ΔT, etc. based on the motion target position P2. Further, a movement speed at each control point such as a joint part is obtained from the obtained rotational angle. For example, a movement speed VC of a point C which is a joint part of the first arm 13 can be obtained from a length LC and the rotational angle Δθ1 of the first arm 13 by the following expression.
VC=LC×Δθ1/ΔT
Similarly, a speed VA of a point A which is a position of a hand 11 can also be obtained from a rotational angle Δθ1of the support 14, a rotational angle Δθ2 of the second arm 12, lengths LC, LA of each arm, attitudes θ1, θ2 of each arm and so on.
Next, in step 43, the monitor point speed control part 27 obtains a movement speed at each monitor point from the movement speed of each control point obtained in the control point speed control part 26 and information on each monitor point stored in the parameter storage part 21. For example, a movement speed of a monitor point E of the first arm 13 can be obtained from a distance LE from a rotation center point O of the support 14 to the point E and the rotational angle Δθ1 of the support 14 by the following expression.
VE=LE×Δθ1/ΔT
Similarly, a movement speed of a monitor point G of the second arm 12 can be obtained by combining a movement speed of the point C by rotation of the first arm 13 and a movement speed of the point G by rotation of the second arm 12 about the point C with respect to the first arm 13.
In step 44, the motion command part 28 compares a speed of the control point and a speed of the monitor point obtained in the control point speed control part 26 and the monitor point speed control part 27 with a command speed VS. When there is the speed exceeding the command speed VS, the maximum speed is selected and the process proceeds to step 45 and when all are lower than or equal to the command speed VS, the process proceeds to step 46. Incidentally, here, description is made assuming that the movement speed VE of the monitor point E in
In step 45, the motion command part 28 obtains a speed ratio Vratio in a manner similar to the method according to the related art by the following expression.
Vratio=VS/VE
By using the ratio of Vratio calculated here, the motion target position P2 is again created based on the following expression.
P2=P1+ΔL×Vratio
In step 46, the motion command part 28 outputs the calculated motion target position P2 to the driving control part 25 as a motion command.
In steps 47 and 48, the driving control part 25 outputs a driving command of a driving motor of the robot 1 until reaching the target position P2.
In step 49, a CPU of the control apparatus 2 decides whether movement is performed to the terminal point position of the movement command or not, and if it is decided that the movement is not completed, the process returns to step 41 and setting of the next target position P2 is made. Also, if it is decided that the movement is completed, this processing is ended and a wait is performed until next movement command is issued.
Second Embodiment
In a case of performing getting-out or storage of a pallet of the glass substrate 16 and transfer to a processing apparatus, when a command rotational speed ω1 of the wrist shaft specified by a program is commanded to rotate about the point O, depending on a value of the rotational speed ω1, a movement speed of the corner of the glass substrate 16 may exceed a movement command speed VS of a robot specified previously.
In such a case, a monitor point H is specified with respect to the wrist shaft which is a control point and, for example, a distance LH from the point O to the corner of the glass substrate is stored in a parameter storage part 21 and when there is an excessive rotational speed command ω1, the rotational speed command ω1 is changed and commanded in a manner similar to the first embodiment.
On the change, first, a speed VO of the corner is calculated by the following expression.
VO=LH×ω1
The speed VO of the corner is compared with the movement command speed VS of a control point and a speed ratio Vratio is calculated.
Vratio=VS/VO
Here, in a case of Vratio<1, the rotational speed command ω1 is again changed based on the following expression and is commanded to a driving control part 25.
ω1=ω1×Vratio
By the above processing, a movement speed VH of the point H of the corner of the glass substrate 16 is changed and controlled within the command speed VS of the control point or the arm, etc.
Incidentally, in the above description, the case that the command rotational speed ω1 of the wrist shaft is specified has been shown, but when the command rotational speed ω1 of the wrist shaft is obtained from the movement command speed VS of the robot and monitor point information and is commanded to the driving control part 25, there is no need to previously specify the command rotational speed ω1 of the wrist shaft, so that input of a program or a parameter becomes unnecessary.
Third Embodiment
Incidentally, the control apparatus block diagram of FIG. 1 and the motion flowchart of
The drawing will be described below.
In
A line segment LE is a distance from the point C of a joint part to a point E which is the longest position of the right side of the second arm 12 and θE is an angle of the point E viewed from the point C of the joint part and is indicated by an angle formed with a shaft 12a of the second arm 12. Also, a line segment LH is similarly a distance from the point C to a point H which is the longest position of the left side of the second arm and θH is an angle of the point H viewed from the point C of the joint part and is indicated by an angle formed with the shaft 12a of the second arm 12. These distances and angles are inputted from a key input part 31 as monitor point information and are stored in a parameter storage part 21. Incidentally, when a distance to the longest portion of a transferred article is inputted as LH while the transferred article being mounted in a portion of the hand 11, monitoring can be performed with respect to a speed of the top of the transferred article. Also, in place of the distances and angles which are the monitor point information, a distance HCE from the point C of the joint part shown in
Next, motions in a case where a movement command is issued from a program with respect to a control point of the point A and as a result of that, both rotation movements of the first arm 13 and the second arm 12 are generated will be described.
When a movement command of the hand 11 from a program is issued in a locus generation part 22, a control apparatus 2 determines the movement amount ΔL of the hand 11 in a calculation cycle ΔT from a command speed VS (step 41). A control point speed control part 26 determines a movement command at each control point such as a rotational angle Δθ1 of the point O of a joint part which is a motion angle of the first arm 13 and a rotational angle Δθ2 of the point C which is a motion angle of the second arm 12, etc. based on the movement amount ΔL (step 42).
Then, in a monitor point speed control part 27, a movement speed of each monitor point is obtained based on the movement command of the rotational angle of each joint determined in step 42 (step 43).
For example, a speed VEO of a monitor point E associated with rotation of the point O of a joint part is obtained by the following expression.
VEO=LOE×Δθ1/ΔT
Then, a speed VEC of the monitor point E associated with rotation of the point C of a joint part is obtained by the following expression.
VEC=LE×Δθ2/ΔT
Here, the speeds VEO, VEC generated with the movement of each joint can be combined to obtain a speed VE of the monitor point E.
Similarly, a speed VHO of a monitor point H associated with rotation of the point O of a joint part is obtained by the following expression.
VHO=LOH×Δθ1/ΔT
Then, a speed VHC of the monitor point H associated with rotation of the point C of a joint part is obtained by the following expression.
VHC=LH×Δθ1/ΔT
Here, vectors having the speeds VHO, VHC generated with the movement of each joint and directions are combined, whereby a combined speed VH of the monitor point E can be obtained.
In addition, all the movement speeds of the specified monitor points are calculated and the speeds are compared in combination with the movement speeds of all the control points obtained by the control point speed control part 26. In a motion command part 28, when there is a control point or a monitor point having the maximum speed exceeding the command speed VS, a motion position is changed so that the maximum speed becomes the command speed VS and as a result of that, the movement speed is changed.
Industrial Applicability
As described above, a robot control apparatus according to this invention can change and control a movement speed of each region of a robot to a command speed or lower, so that it is suitable for safe teaching work of the robot.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/JP01/01304 | 2/22/2001 | WO | 00 | 10/22/2002 |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO02/066210 | 8/29/2002 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
5838562 | Gudat et al. | Nov 1998 | A |
5956250 | Gudat et al. | Sep 1999 | A |
6092004 | Harima | Jul 2000 | A |
6356806 | Grob et al. | Mar 2002 | B1 |
6472838 | Shikazono et al. | Oct 2002 | B1 |
Number | Date | Country |
---|---|---|
62232006 | Oct 1987 | JP |
09034528 | Feb 1997 | JP |
DWPI 1998-067622 | Nov 1997 | JP |
11-104981 | Apr 1999 | JP |
369463 | Sep 1999 | TW |
090105377 | Aug 2001 | TW |
Number | Date | Country | |
---|---|---|---|
20040054437 A1 | Mar 2004 | US |