Technical Field
[0001] The present invention relates to a collision detecting method capable of quickly
securely detecting a collision between a driven body driven by means of a servomotor
and an obstacle by using an observer.
Background Art
[0002] During the operation of a robot, machine tool, etc., a machine operating section,
such as a robot arm and a machine table, or a workpiece mounted on the table sometimes
may run against an obstacle, e.g., a foreign matter intruded in an operating region
of a driven body. In a machine which uses a servomotor as a drive source, in such
a case, the servomotor continues to produce a great output torque to move the driven
body to a command position even after the driven body, having run against the obstacle,
is stopped from moving. In some cases, therefore, machine components including the
servomotor may be damaged, or a secondary accident may be caused. Conventionally,
in order to avoid such an awkward situation, occurrence of a collision is detected
by various methods, and the rotation of the motor is stopped when a collision occurs.
[0003] As is generally known, a collision between the driven body and the obstacle may be
detected by using a touch sensor mounted on the outer surface of the driven body,
for example. Mounting this sensor, however, entails an increase in cost of the machine,
and a collision between the driven body and the obstacle in any other position than
the operating region of the sensor cannot be detected. In the machine whose driven
body is driven by means of the servomotor, moreover, it is a known method to detect
occurrence of a collision when a predetermined value is exceeded by a servomotor driving
current which increases when the driven body and the obstacle run against each other.
It takes a lot of time, however, for the servomotor driving current to actually attain
the predetermined value after the occurrence of the collision, so that a detection
delay is caused, and the resulting damage is substantial. It is also common knowledge
that an alarm may be given after discriminating occurrence of a collision when an
unreasonable value exceeding an allowable value is reached by the difference (positional
deviation) between the command position and the actual position of the driven body.
However, some of the machine components may be damaged before the allowable value
is exceeded by the positional deviation after the occurrence of the collision.
[0004] Accordingly, a method for quickly detecting occurrence of a collision has been proposed
in which the occurrence of the collision is discriminated when a threshold value is
exceeded by a differential value of a speed deviation or a differential value of a
torque command value (see Japanese Patent Application No. 63-32866). If a collision
is caused while a servomotor whose speed command itself assumes a small value is rotating
at low speed, however, the speed deviation, which depends on the speed command and
the actual speed, increases relatively slowly, so that the differential value of the
speed deviation and the differential value of the torque command corresponding thereto
are not very large values. In order to detect the occurrence of a collision quickly,
therefore, the threshold value should be set at a small value. In this case, the occurrence
of a collision is liable to be wrongly discriminated in a normal rotating speed range
although no collision is caused.
Disclosure of the Invention
[0005] The object of the present invention is to provide a collision detecting method capable
of quickly securely detecting a collision between a driven body driven by means of
a servomotor and an obstacle by using an observer, thereby preventing machine components
from being damaged by the collision.
[0006] In order to achieve the above object, according to the present invention, there is
provided a collision detecting method for use in a machine in which a driven body
is driven by means of a servomotor which in turn is controlled by means of a servo
system. This collision detecting method comprises a process for estimating the magnitude
of a disturbance acting on the servo system by means of an observer, and a process
for discriminating a collision of the driven body with an obstacle when a preset threshold
value is exceeded by the magnitude of the disturbance thus estimated.
[0007] According to the present invention, as described above, the collision of the driven
body with the obstacle is discriminated when the preset threshold value is exceeded
by the magnitude of the disturbance estimated by means of the observer, so that occurrence
of a collision can be quickly securely detected even during low-speed operation of
the servomotor, and components of the machine can be prevented from being damaged
by the collision.
Brief Description of the Drawings
[0008]
Fig. 1 is a block diagram showing an observer and its peripheral elements for embodying
a collision detecting method according to one embodiment of the present invention;
Fig. 2 is a block diagram showing a servo system for use with the observer of Fig.
1;
Fig. 3 is a block diagram showing that part of the servo system of Fig. 2 which is
regarded as a subject for the arrangement of the observer; and
Fig. 4 is a flow chart showing processes executed by means of a digital servo circuit.
Best Mode of Carrying Out the Invention
[0009] A machine (not shown) to which a collision detecting method according to one embodiment
of the present invention is applied comprises one or more servomotors for driving
a driven body. A servo system for controlling its corresponding one of the servomotors,
as exemplarily illustrated in Fig. 2, comprises a first block 10 for generating a
speed command by multiplying the difference (positional deviation)
E between a position command 6r delivered from a numerical control device or the like
and an actual position 0 by a proportional gain Kp, and a second block 12 for determining
a motor driving current (torque command) I by effecting proportional-plus-integral
control using an integral constant K1 and a proportional constant K2 on the basis
of the difference (speed deviation) between the speed command and an actual speed
6 . In other words, the servo system includes a position loop for proportional control
and a speed loop which serves as a minor loop of the position loop and for the proportional-plus-integral
control. Further, the servo system is arranged to supply the driving current I to
servomotors represented by third and fourth blocks 14 and 16, thereby rotating the
motors at a speed 6. A fifth block 18 represents a pulse coder or the like for detecting
the actual motor rotating speed 6. The actual motor rotating speed 5is detected on
the basis of the output of the pulse coder, for example. In Fig. 2, symbols Kt and
J designate the torque constant and inertia of the servomotor, respectively, and T
and TL designate the output torque of the servomotor and a disturbance torque, respectively.
[0010] In order to effect the collision detecting method of the present embodiment, an apparatus
is employed which is composed of an observer for estimating the disturbance torque
TL and means for stopping the drive of the servomotor when a threshold value is exceeded
by the estimated disturbance torque. Preferably, as mentioned in detail later, the
collision detecting apparatus is composed of a digital servo circuit which is arranged
to achieve the respective functions of the position loop and the speed loop of Fig.
2, the observer, etc., on software processing basis.
[0011] The following is a description of the collision detecting apparatus.
[0012] Fig. 3 shows that part (model) of the servo system of Fig. 2 which is regarded as
a subject for the arrangement of the observer. The model shown in Fig. 3 comprises
a first block 14 corresponding to the third block 14 of Fig. 2, and second and third
blocks 16a and 16b corresponding to the fourth block 16 of Fig. 2. If the disturbance
torque TL does not change with the passage of time (TL = 0), a state equation given
by equation (1) holds for the model shown in Fig. 3.
[0013] 
Here 6 represents the motor acceleration, and 6 and TL represent the motor speed and
disturbance torque, respectively, as state variables. Further, I represents the torque
command as an input, and Kt and J represent the torque constant and inertia of the
motor, respectively. Symbol TL represents the changing rate of the disturbance torque.
[0014] In light of equation (1), the observer for estimating the disturbance torque TL is
constructed in the manner shown in Fig. 1. The observer 50 of Fig. 1 comprises first
to fourth blocks 51 to 54 whose transfer functions are Kt/J, K3, K4/S, and 1/S, respectively.
In the observer 50, the sum of the output of the first block 51 which receives the
torque command I, the output of the second block 52, and an output x of the third
block 53 is supplied to the fourth block 54. Also, a deviation between the actual
speed 6 and an estimated speed v delivered from the fourth block 54 is supplied to
each of the second and third blocks 52 and 53.
[0015] As seen from the block diagram shown in Fig. 1, the actual motor speed 6 and the
estimated motor speed v are given by equations (2) and (3), respectively.


[0016] From equation (2), we obtain
[0017] 
Substituting equation (4) into equation (3), we obtain
[0018] 
Rearranging equation (5), we obtain
[0019] 
[0020] From equation (6), we obtain equation (7) which is indicative of the deviation (6
- v) between the actual speed and the estimated speed. Further, the output x of the
third block 53 of the observer 50 is given by equation (8).


[0021] If the respective transfer functions K3 and K4 of the second and third blocks 52
and 53 of the observer 50 are selected so that poles are stable, the output x of the
third block 53 of the observer 50 is substantially equal to a value obtained by dividing
the disturbance torque TL by the inertia J.

[0022] The collision detecting apparatus comprises a multiplier 61 and a comparator 62 which
cooperates with the multiplier to constitute part of the motor stopping means, besides
the observer 50 constructed as aforesaid. In the multiplier 61, the output x of the
third block 53 of the observer 50 is multiplied by the product of the inertia J and
a conversion constant A for matching a unit system, whereby an estimated disturbance
torque y (
T TL) is obtained. In the comparator 62, moreover, the estimated disturbance torque
y is compared with a threshold value Ts for collision detection discrimination. The
comparator 62 is arranged to discriminate occurrence of a collision and deliver an
alarm when it detects the estimated disturbance torque y equal to or greater than
the threshold value Ts. The motor stopping means is arranged to stop the drive of
the motor in response to the alarm, as mentioned later.
[0023] The threshold value Ts is set at a value smaller than the minimum value of motor
output torques which correspond individually to the respective breaking limits of
the various components of the machine, so that an alarm is given before any of the
machine components is damaged when the driven body of the machine runs against an
obstacle even if the servomotor rotates at low speed. Also, the threshold value Ts
is set at a value greater than the maximum value of motor output torques corresponding
individually to a static frictional force produced in the machine, a reaction force
produced by a spring system of the machine, and a gravity term which varies in dependence
on the operating conditions of the machine. Accordingly, no alarm can be given as
long as the machine is normally operated so that the motor output torques vary within
a normal range.
[0024] Referring now to Fig. 4, an explanation will be given as to the operation of the
digital servo circuit (not shown), which has the functions of the position loop and
the speed loop of the servo system of Fig. 2, the function of the observer 50, and
the function of the motor stopping means which includes the multiplier 61 and the
comparator 62.
[0025] A processor contained in the digital servo circuit cyclically executes the processes
shown in Fig. 4. More specifically, in each processing cycle, the processor executes
position loop processing in accordance with the position command 6r delivered from
the numerical control device and the actual position 0 detected by means of the pulse
coder, to thereby calculate the speed command (Step 100). Then, the processor determines
whether or not a flag F is at the value "1" which is indicative of occurrence of a
collision (Step 101). Here, the flag F is initially set at the value "0" which is
indicative of nonoccurrence of a collision, so that the decision in Step 101 is negative.
In this case, the processor executes software processing to fulfill the function of
the observer 50. More specifically, the processor calculates the estimated speed v
for the preceding processing cycle, that is, the speed obtained when the disturbance
torque TL is not applied, in accordance with equation (3) and by using the known parameter
values Kt, J, K3, and K4, the actual speed 6 detected in the preceding processing
cycle, and the torque command I calculated by speed loop processing in the preceding
processing cycle. Subsequently, the processor obtains an error (6 - v) between the
actual speed for the preceding processing cycle and the estimated speed, and calculates
a value corresponding to the third block output x of the observer 50 by using this
calculation error and according to equation (8). In order to fulfill the function
of the multiplier 61, moreover, the processor multiplies the calculated value x by
a value J'A to obtain the estimated disturbance torque y (Step 102). Then, the processor
determines whether or not the estimated disturbance torque y is equal to or greater
than the threshold value Ts (Step 103). If the driven body normally moves without
being hindered by an obstacle, that is, if the servomotor normally follows up the
torque command I, the error (6- v) between the actual speed and the estimated speed
is small, and the estimated disturbance torque y takes a small value. If the driven
body runs against an obstacle, on the other hand, the speed error (6 - v) and hence
the estimated disturbance torque y take substantial values which indicate occurrence
of a collision.
[0026] If it is concluded that the estimated disturbance torque y is smaller than the threshold
value Ts, the processor executes the speed loop processing in accordance with the
speed command and the actual speed 6, to thereby calculate a current command (torque
command) I (Step 106), and delivers the calculated command I to the current loop (Step
107). Thereupon, the processes of Fig. 4 for the present processing cycle end. As
described above, the threshold value Ts is set at the value greater than the frictional
force produced in the machine or the like. As long as the estimated disturbance torque
y varies within the normal range, therefore, occurrence of a collision cannot be wrongly
discriminated if there is no occurrence of a collision.
[0027] If it is concluded in Step 103 that the estimated disturbance torque y is equal to
or greater than the threshold value Ts, on the other hand, the processor, discriminating
occurrence of a collision, gives an alarm, and sets the flag F at the value "1" which
is indicative of the occurrence of the collision (Step 104). Then, after resetting
each of the value of the speed command calculated in Step 100 and a value in an integrator
(not shown) of the speed loop at "0" (Step 105), the processor successively executes
Step 106 for the current command calculation and Step 107 for the current command
delivery. In each processing cycle on and after the collision detection, the decision
in Step 101, which directly follows Step 100 for the speed command calculation, is
positive, and Steps 105 to 107 are executed in succession. As a consequence, if occurrence
of a collision is discriminated, the drive of the servomotor is quickly stopped before
any of the various components of the machine is damaged. If an excessive load is applied
to the servomotor, even though there is no occurrence of a collision, the drive of
the motor is stopped in the same manner as in case of occurrence of a collision.
[0028] The present invention is not limited to the embodiment described above, and various
modifications may be effected therein. For instance, although the present invention
is effected by means of the digital servo circuit in the above-described embodiment,
servo circuits of any other types may be used instead.