1. Field of the Invention The present invention relates to a robot controller for controlling a multi-joint robot (hereinafter, referred to as “a robot”), and in particular, a robot controller having a function for protecting each component of the robot and a control method of the robot.
2. Description of the Related Art
As a function for protecting a robot from overload, a collision detecting function is known. For example, Japanese Unexamined Patent Publication No. 11-15511 discloses a technique for estimating a disturbance applied to a motor for driving each axis of a robot and judging that a collision occurs if an estimated value is larger than a predetermined threshold.
Japanese Unexamined Patent Publication No. 2005-186183 discloses a method for judging a malfunction of an industrial robot. In the method, a torque command value for activating a servomotor, a differential value of an actual position of the robot, and a total feedback value based on a known disturbance torque are calculated, and then a malfunction of the robot is judged by calculating a malfunction detection threshold based on the feedback value and an estimated speed of the robot.
In the prior art, a function for detecting collision or a disturbance is intended to detect torque applied to a motor or a front end of a robot arm. However, even when such a function is used to detect a collision or the like and stop the motor, each component of the robot such as a reducer or a cable may not be sufficiently protected. In other words, even when torque applied to the motor or the front end of the robot arm is smaller than the threshold, a large load may be locally applied to a component of the reducer. In such a case, an abnormality cannot be effectively detected by a method of the prior art, whereby the component may be damaged.
In the prior art, even when collision does not occur (i.e., a robot is normally operated), it is not assured that torque applied to each component does not exceed a range within which the torque cannot damage the component.
Accordingly, an object of the present invention is to provide a robot controller and a robot control method, by which each element or component constituting a robot is protected.
According to one aspect of the present invention, there is provided a robot controller for controlling a robot having a robot arm driven by a motor, the robot controller comprising: an estimating part estimating a load torque applied to an element to be protected positioned between the robot arm and the motor driving the robot arm, based on a speed and a torque command of the motor; a detecting part detecting an abnormality by comparing a value of the estimated load torque to a predetermined threshold; and a processing part executing a process for protecting the element to be protected when the abnormality is detected.
The estimating part may estimates the load torque applied to the element to be protected, by using the inertia of the element to be protected and the inertia of the motor and a dynamic friction coefficient of the element to be protected.
A preferred example of the estimating part is a disturbance estimation observer.
The robot controller may further comprise an adjusting part obtaining or estimating the ambient temperature or the temperature of a certain portion of the robot, and adjusting the threshold based on the ambient temperature or the temperature of the certain portion of the robot.
The processing part may stop the motion of the robot when the abnormality is detected. Alternatively, the processing part may decelerate the motion of the robot when the abnormality is detected. Otherwise, the processing part may move the robot in a direction for a certain period of time such that the load torque of each axis of the robot decreases.
As a preferred example, the element to be protected includes at least one of a speed reducer, a gear and a cable used in the robot.
According to another aspect of the present invention, there is provided a method for controlling a robot having a robot arm driven by a motor, the method comprising the steps of: estimating a load torque applied to an element to be protected positioned between the robot arm and the motor driving the robot arm, based on a speed and a torque command of the motor; detecting an abnormality by comparing a value of the estimated load torque to a predetermined threshold; and executing a process for protecting the element to be protected when the abnormality is detected.
The above and other objects, features and advantages of the present invention will be made more apparent by the following description of the preferred embodiments thereof, with reference to the accompanying drawings, wherein:
A system program, for supporting the basic function of robot controller 10 and a robot (not shown) to be controlled by the robot controller, is stored in the ROM of memory 2. The motion program of the robot taught according to the application and relevant set data are stored in the non-volatile memory of memory 2. The RAM of memory 2 is used for a storage area to temporarily store various data processed by main CPU 1.
Servo control unit 5 has a plurality of servo controllers 5a1 to 5an, where n is the summation of the number of axes of the robot and the number of movable axes of a tool attached to a wrist of the robot. Servo control unit 5 also has a processor (not shown), a ROM and a RAM, etc., so as to execute loop control of the position and the speed of servomotors M1 to Mn for driving axes of the robot, as well as current loop control. In the embodiment, servo control unit 5 constitute a digital servo controller capable executing loop control of the position, the speed and the current by using software. An output of servo control unit 5 is used to drive and control servomotors M1 to Mn via servo amplifiers 5b1 to 5bn. A position/speed detector (not shown) so attached to each servomotor and the position and the speed of each servomotor detected by the detector is fed back to each servo controller. A sensor provided to the robot and an actuator for external units, etc., are connected to I/O interface 6.
The present invention is intended to provide a function, for protecting a component or element arranged between a robot arm (or link) and a motor for driving the robot arm, to the robot controller as described above.
First, in step S1, an output θ of a rotary encoder (not shown) attached to servomotor 14 is read and a motor speed V (θ−dot) is obtained by calculating the difference between current θ and another θ in a previous speed loop. Then, a processor of the servo controller of each link of robot arm 16 executes a normal speed loop control in order to calculate a torque command Tc of motor 14 (step S2). In other words, by executing a speed loop control such as a proportional-integral control, based on a move command from main CPU 1 and motor speed V, torque command Tc may be calculated.
In the next step S3, a load torque Tr applied to reducer 12 is calculated by using obtained torque command Tc and motor speed V. Concretely, by using an estimator 20 as shown in
Tr=Tc−(Js+A) V (1)
Due to equation (1), load torque Tr, which is considered to be applied to reducer 12, may be calculated. As another means for estimating the load torque, a disturbance estimation observer as described below, a simulation model and a finite element method may be used.
In the next step S4, the calculated load torque Tr in each speed loop is compared with a threshold L, which is previously determined as an acceptable value for each axis. If (Tr>L) is true in at least one of the axes of the robot, the robot controller judges that an error or abnormality has occurred in the robot, and then generates or outputs an alarm or warning (step S5). As the threshold L, a constant previously adjusted for each robot or each element may be used. As another method for determining the threshold L, the threshold may be timely set or updated by means of an input means such as a personal computer (not shown) connected to the external I/O interface. In addition, when the threshold is updated, by measuring or estimating the ambient temperature or the temperature of a component of the robot such as a motor, the threshold may be modified based on the result. Generally, the viscosity of grease increases with decreasing the temperature, whereby the disturbance is increased accordingly. Therefore, when the temperature is relatively low, the threshold L should be increased in order to avoid a misdetection. In addition, a parameter, which may affect the value L such as the ambient temperature, may be automatically measured, and then the value L may be automatically updated or optimized by using a personal computer or the like.
When the alarm or warning is generated, the robot is controlled to perform the motion for protecting the object to be protected (step S6). For example, the robot may be immediately stopped by setting the speed command of each axis to zero. Alternatively, the motion of the robot may be gradually decelerated and stopped by multiplying the speed command by a predetermined value which is larger than zero and smaller than one. Otherwise, the robot may be moved in a direction for a certain period of time, preferably at the maximum output torque of each axis, such that the load torque of each axis decreases, and then the robot may be stopped. Still otherwise, it is possible not to automatically perform the protecting motion but merely to indicate the alarm or warning. In the last case, the operator manually carries out a necessary protecting operation.
In equation (2), an input is a torque command (u=Tc) and an output is a motor speed (y=V). Further, the state variables are the disturbance of the speed and the acceleration of the motor (x1=V, x2=Tr/J), and differential values of x1 and x2 are represented by characters x1−dot and x2−dot, respectively. In addition, it is assumed that the disturbance of the acceleration is not changed with time (x2−dot is equal to zero).
When estimated values of x1 and x2 are represented by characters z1 and z2, respectively, and differential values of z1 and z2 are represented by characters z1−dot and z2−dot, respectively, the model of the observer according to equation (2) is represented by following equation (3).
Due to equation (3), the disturbance of the acceleration z2 estimated by the observer may be calculated. Therefore, the estimated load torque Tr applied to the reducer is calculated by following equation (4).
Tr=J·z
2 (4)
In the case of
In this case, a load torque Tr applied to cable 58 at second fixture 62 may be obtained by following equation (5). For simplification, all links other than rear link 54 are assumed to be stopped.
Tr=Tc−K·V/s−(Js+A) V (5)
In equation (5), a character “Tc” is a load torque of a servomotor (not shown) driving rear link 54, and a character “V” is the speed of the servomotor. A character “J” is inertia which is equal to the summation of inertias of the servomotor, rear link 54, second arm 56 and cable 58. Also, characters “A” and “s” are a dynamic friction coefficient between rear link 54 and second arm 56 and a Laplace operator, respectively. In addition, a spring constant “K” in a twisting direction of cable 58 is also considered in equation (5).
As described above, even when there are many kinds of objects to be protected, an estimated load torque for each case may be properly obtained by modifying values J and A corresponding to the kind of the object in step S3, and optionally considering another factor such as a spring constant or a dumper constant, etc.
In Japanese Unexamined Patent Publication No. 11-15511 or Japanese Unexamined Patent Publication No. 2005-186183 as described above, it is not disclosed that each element of a robot is protected by estimating a force or torque other than a force applied to the end of a robot arm. Due to the present invention, torque applied to an object to be protected may be estimated based on the speed and the torque of a motor, whereby the object may be assuredly protected.
In each embodiment as explained above, the torque applied to the object is estimated. However, since torque may be easily converted to a force, the invention may be utilized if the above estimated torque Tr is replaced with an estimated force applied to the object.
According to the robot controller or the robot control method of the invention, a load torque applied to an object to be protected may be estimated based on the speed and a torque command of a motor. Therefore, it is assured that a force applied to each element of a robot is within a predetermined range, whereby each element is properly protected.
The load torque may be estimated by means of a simple estimator which uses inertia and a dynamic friction coefficient of the object to be protected. In order to obtain the load torque without time delay, a disturbance estimation observer may be used.
By adjusting a threshold using the ambient temperature or the temperature of a certain portion of the robot, the abnormality may be detected more precisely.
If the abnormality is detected, the robot may be immediately stopped, decelerated or moved to a safe position, whereby the object may be assuredly protected.
While the invention has been described with reference to specific embodiments chosen for the purpose of illustration, it should be apparent that numerous modifications could be made thereto, by one skilled in the art, without departing from the basic concept and scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2008-029355 | Feb 2008 | JP | national |
The present application claims priority from Japanese Patent Application No. 2008-29355, filed on Feb. 8, 2008, the entire content of which is fully incorporated herein by reference.