1. Field of the Invention
The present invention relates to an interference prevention control device for preventing interference between robots when simultaneously operating a plurality of robots in a manner in which their operating regions partially overlap.
2. Description of the Related Art
When using a plurality of robots for joint work, if the operating regions of the robots overlap, it is necessary to prevent interference between the robots. As disclosed in JP-60-99591-A, as a method of checking for this interference between robots, a technique is known of expressing each link of a robot arm by a line segment, simulating robot operation, finding the distance between closest parts of two line segments, and judging that there is a possibility of corresponding robot arms interfering with each other when that distance becomes smaller than a predetermined distance D.
The interference check method described in JP-60-99591-A simulates robot operation off line so as to check for interference and does not check for interference when actually driving robots. Along with the improvement in the capacity of current computers, performing similar calculations dynamically in real time has now become feasible. In this case, even if judging there is a possibility of interference immediately before that interference, it would be meaningless if the speed could not be reduced and interference ended up occurring anyway. Therefore, it is necessary to set a predetermined distance D of the above interference check to a value larger by the distance required for deceleration in advance and judge the possibility of interference earlier.
Further, if the robot arms would pass each other at a high speed, even if judging the smallest distance between two line segments by a distance D predetermined with the distance required for deceleration in mind, while in practice the arms would not interfere with each other, they would end up being liable to be judged as interfering.
Accordingly, an object of the present invention is to provide a robot interference prevention control device which checks for interference in the state of the robots being actually operated so as to prevent occurrence of interference and eliminates mistaken judgment of interference.
According to the present invention, there is provided a robot interference prevention control device which detects during operation the proximity among a plurality of robots placed in a state where operating regions thereof overlap and stops said robots before interference, which robot interference prevention control device includes a stop position calculating means for reading in advance a teaching program being executed by each robot covered and calculating a scheduled stop position in the case of executing a stop command for each robot after at least one predetermined interpolation period from the current time for each interpolation period; an interference judging means for judging the existence of the interference between robots at each calculated scheduled stop position; and a deceleration commanding means for commanding the robot to start deceleration when the interference judging means judges that there would be interference.
Preferably, the stop position calculating means reads in advance the teaching program being executed by each robot covered, expresses the position and orientation of each robot as a function of a time t, and uses the function to calculate a scheduled stop position in the case of executing a stop command for each robot after at least one predetermined interpolation period from the current time for each interpolation period.
In particular, preferably the stop position calculating means calculates a scheduled stop position from the value of the function at a time after the elapse of the time required for stopping from the time after at least one predetermined interpolation period from the current time. For example, the position and orientation of the robot may be expressed by a linear sum of the function of the time t.
The robot interference prevention control device preferably further includes a means for outputting the results of judgment of the interference judging means to the outside as a signal.
Preferably, shape and position data of peripherals at which interference is liable to occur is set in advance, and the interference judging means further judges interference between the robots and the peripherals.
The robot interference prevention control device according to the present invention judges the existence of interference based on a scheduled position at which a robot would reach when outputting a stop command and, when judging that there would be interference, outputs a stop command at least one interpolation period before the position where the existence of interference is judged, so can reliably prevent interference and also will not mistakenly judge there would be interference in a case where interference would not occur. Even when robots pass each other at a high speed or when moving apart and where, in the prior art, interference would be judged, correct judgment becomes possible. Due to this, while guaranteeing that the robot would not interfere with each other, it becomes possible to use robots in a closer state than with the conventional interference prevention method.
Thee above and other objects, features and the advantages of the present invention will be described below in more detail based on the preferred embodiments of the present invention with reference to the accompanying drawings, wherein:
Several embodiments of the present invention will be described below with reference to the drawings.
First, the principle of operation of the present invention will be described. The present invention is intended for preventing interference among robots etc. when using a plurality of robots to perform joint work. A robot interference prevention control device according to the present invention, as shown in
For explanation, here, as shown in
In this way, according to the present invention, the teaching program is read in advance and a function X(s) expressing the trajectory of the robot is obtained in advance. In general, as methods for obtaining a smooth curve passing close to the given string of teaching points P0,P1,P2, . . . PN−1, Bezier curve interpolation, spline interpolation, nonuniform rational B spline (NURBS) interpolation, and other methods are known. In one embodiment of the present invention, a fourth order (third degree) B-Spline is used to obtain a function X(t) expressing the position and orientation at a time t from a string of teaching points P0,P1,P2, . . . PN−1 sequentially supplied by the operating program being executed.
If a string of N number of points P0,P1,P2, . . . PN−1 and a knot vector T=[t0,t1,t2, . . . tN+3] are given, the fourth order B-Spline curve is defined as shown in equation (1) by the linear sum of the function Nj,4(t) (j=0, 1, . . . N−1) of the time t.
where Nj,M(t) is an Mth order B-Spline basis function which is generated from De Boor Cox recurrence formulas of equations (2-1) and (2-2).
When M≧2
where, 0/0=0.
When M=1
If tj≦t<tj+j,
The knot vector T=[t0,t1,t2, . . . tN+3] is any monotonously increasing numerical sequence comprised of N+M number of numbers. Even if the given string of teaching points P0,P1,P2, . . . PN−1 is the same, it is known that the shape of the curve will differ depending on the definition of the knot vector. Here, however, for simplification, the elements ti of the knot vector are defined as in equation (3). The curve X(t) of equation (1) is defined in t3≦t<tN excluding the three knots from the starting point side and the end point side, that is, the range of 0≦t<N−3. “t” is made an integer value at a knot, but is made a real value at other points.
ti=i−3 (i=0,1,2,3, . . . N, N+1, N+2, N+3) . . . (3)
As will be understood from equations (2-1) and (2-2) or
In general, to obtain a function effective in a certain interval ta≦t<tb, it is sufficient to find the smallest knot interval including this and obtain the sum for just the terms required for defining the curve of that range.
By reading in advance the teaching program, obtaining by equation (4) the function X(t) expressing a smooth curve passing close to the four teaching points based on the four teaching points, and performing curvilinear integration shown in the following equation (5) on the function X(t) along the curve, a function s(t) of the trajectory of the robot expressed as a function of the position s on the curve (amount of movement) is obtained
The physical meaning of the function s(t) is the movement distance along the curve until the time t, so conversely if the distance s is given, the corresponding time t can be uniquely found. If expressing the function of the time t at the distance s as t(s), the relationship between s and X as a combined function of the functions X(t) and t(s), that is, the function X(s), is obtained as the following equation (6).
X(s)≡X(t(s)) (6)
Further, since the position of the robot on the curve at the time t is expressed by s(t) and the position and orientation when the position on the curve is s is expressed by X(s), the position and orientation of the robot at the time t can be obtained by calculation as X(s(t)).
Next, the procedure for calculating the scheduled stop position in the case of decelerating and stopping a robot along a path from a certain time t0 will be described. Assume that the robot is operating at the time t0 at a position s(t0) and a linear speed s′(t0). A graph of the derived function s′(t) of s(t) at this time is shown in
The result of multiplying the speed s′(t) with the deceleration function u(t) is shown in
In this way, it is possible to obtain by calculation the scheduled position at which a robot will stop when starting deceleration from the time t0 and its orientation X(s(t0)+L_stop) at that position. Here, the function u(t) of
By this method, when the deceleration start time t0 is t+n·Δt (in this case, t means the time at the current point of time and t+n·Δt means the time after n number of interpolation periods from the current point of time), the position and orientation at the scheduled stop are obtained by calculation of X(s(t+n·Δt)+L_stop). Here, n is a constant of 1 or more. Further, Δt is a unit interpolation processing time (unit interpolation period).
Further, in the calculation of the stop position, it is also possible to deem as the stop position the position X(s(t+n·Δt+T_stop)) obtained as a value of the function at the time t+n·Δt+T_stop after the elapse of the time T_stop required for stopping from predetermined time t+n·Δt after at least one interpolation period.
In the above way, at the time t, the scheduled stop position when issuing a deceleration stop command at the time of interpolation processing (t+n·Δt) after n number of interpolation periods from this time t is determined at the point of time of the current time t for all robots covered by interference check. Further, it is judged whether or not interference would occur based on the scheduled stop positions of the robots.
For the interference check, the known interference check method described in JP-60-99591-A is used.
When it is judged that there would be no interference, an operation command to move each robot to the interpolated position at the current time t is output, while when it is judged that there would be interference, a deceleration stop command is output from the current interpolation period to stop the robots and prevent the occurrence of interference.
In the embodiment shown in
First, the robots (robot mechanical parts) for which an interference check is required is set in the robot control device 1, and data relating to the positions and shapes of the peripherals covered by the interference check is input and set in the robot control device 1. Further, the braking time T_stop is set in the robot control device 1. When starting the robot operation, the processor of the robot control device 1 executes the interference check and interference prevention control processing shown in
The time t is set to “0” (step S1), the time t is set as the start time ta of the range for obtaining the B-spline curve from the string of teaching points, and “t+n·Δt+T_stop” is set as the end time tb of that range (step S2). Note that “n” is an integer number of 1 or more and designates the number of interpolation periods for checking whether or not interference would occur after n number of interpolation periods from the current point of time, It is determined in advance. The “n” may be set before the start of operation.
Next, the largest knot tA at the B-spline below the starting point ta of the range and the smallest knot tB above the end point tb of the range are determined. Note that when there is no knot below the starting point ta of the range, tA=t3. Further, when there is no knot above the end point tb of the range, the tN of the biggest knot is made tB (step S3).
The counter K for counting the robots (robot mechanical parts) set for coverage by the check is set to “1” (step S4), and the teaching data Pj between the knots tA to tB is read out from the programs being run by the robot indicated by the value of the counter K (step S5). Note that the knots tA and tB, as shown in equation (3), are integer values. The values correspond to the subscripts A and B of tA and tB, so the values of the knots are expressed by the subscripts A and B. Therefore, the teaching points Pj read out from the program become PA−3,PA−2, . . . PB−1.
Next, from the following equation (7) corresponding to equation (4), the curve X(t) in the interval tA≦t<tB is obtained (step S6).
The obtained curve X(t) is linearly integrated by equation (5) to obtain the position s(t) on the curve. This position s(t) on the curve is the movement distance along the curve until the time t, so conversely if the distance s is given, the corresponding time t is uniquely determined. Therefore, the inverse function t(s) is obtained from the position function s(t) (step S7).
From the thus obtained function X(t) of the curve and function t(s), a function X(s)=X(t(s)) expressing the position and orientation of the robot having the position (movement distance) s as a variable is obtained (step S8). Further, the position of the robot on the curve at the time t is the s(t) obtained at step S7. When the position on the curve is s, the robot position and orientation are expressed by the function X(s), so the robot position and orientation at the time t are obtained as X(s(t)) (step S9).
The derived function of the function s(t) obtained at step 57, that is, the linear speed s′(t), is obtained, the function u(t−t0) is obtained designating the time after the preset n number of interpolation periods from the current time t as t0 (t0=current time t+n·Δt), and the derived function s′(t) is multiplied by the function u(t−t0) to obtain the linear speed vt0′ (t) expressing the speed after deceleration based on the following equation (8) (step S10).
vt0′(t)=s(t)×u(t−t0) (8)
This linear speed vt0′ (t) is integrated from the deceleration start time t0 to the braking time T_stop to obtain the braking distance L_stop (step S11).
The scheduled stop position X(s(t0)+L_stop)=X(s(t+n·Δt)+L_stop) when starting deceleration for stopping at the time t0=t+n·Δt after n number of interpolation periods from the current interpolation processing time (time t) is calculated and stored from the L_stop obtained at step S11, the s(t) obtained at step S7, and the function X(s) obtained at step S8 (step S12).
Next, the value of the counter K is incremented by exactly 1 (step S13), and it is judged whether or not the value of the counter K has exceeded the number of robots set for coverage under the check (step $14). If not exceeding it, the procedure returns to step S5, where the processing of the above step S5 on is executed for the next robot indicated by the same number as the value of the counter K, so that the scheduled stop position X(s(t+n·Δt)+L_stop) when starting deceleration for stopping at the time t0=t+n·Δt after n number of interpolation periods from the current interpolation processing time (time t) is then obtained.
Next, when the scheduled stop position X (s(t+n·Δt)+L_stop) of the robot under check is determined, the interference between robots is checked and the interference with peripherals etc. is checked (step S15). This interference check, as explained above, is performed by an already known method, so its explanation will be omitted.
When this interference check judges that there will be no interference (step S16), an operation command to move the robot to the interpolated position X(s(t)) at the time t obtained at step S9 for each robot is output to each robot (step S17). Further, it is judged whether or not the time t has reached the final time tN (step S18). If it has not reached it, the time t is incremented by exactly the unit interpolation period Δt (step S19), then the procedure returns to step S2 where the processing of the above step S2 on is performed. After this, in so far as the occurrence of interference is not predicted, the above processing is repeated until the time t reaches the final time tN. When it reaches the final time tN, this interference prevention processing is ended.
On the other hand, when it is judged at step S16 that there would be interference, the current time t is set as the initial value for the tt showing the time at the time of deceleration (step S20), and the function vt′ (tt) expressing the speed obtained designating the deceleration start time as t and the time variable as tt from the function vt0′ (t) expressing the speed at the time of the deceleration operation obtained at step S11 is integrated so as to obtain the amount of movement vt(tt) (step S21). Next, based on the function X(s) obtained at step S8, the robot position and orientation X(vt(tt)) are obtained assuming s=vt(tt) and an operation command is output to the robot so as to bring the robot into the obtained position and orientation (step $22).
Further, it is judged whether or not the value of the time tt has reached the value of the deceleration start time t plus the braking time T_stop (step S23). If not reaching it, the time tt is incremented by the unit interpolation period Δt (step S24). Then, the procedure returns to step S22, where the above processing is repeated until the value of the time tt reaches the value of the deceleration start time t plus the braking time T_stop and the robot stops.
In this way, when it is predicted that interference will occur after a predetermined n number of interpolation periods from the current time, it is possible to prevent the occurrence of interference by starting deceleration from the current point of time.
Note that in the above embodiment, at step S12, the scheduled stop position was determined from s and the position of the braking distance L_stop (amount of movement), but it is also possible to determine the scheduled stop position simply from the time, That is, at step S12, it is also possible to calculate the scheduled stop position X(s(t0+T_stop))=X(s(t+n·Δt+T_stop)).
Further, in addition to the above interference prevention control processing, it is also possible to perform the signal output processing such as shown in
In the above embodiment, a single robot control device 1 of the system having the configuration shown in
Further, in the case of the system shown in
While the present invention has been described with reference to specific embodiments chosen for purpose of illustration, it should be apparent that numerous modifications could be made thereto by those skilled in the art without departing from the basic concept and scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2004-255881 | Sep 2004 | JP | national |