Method For Controlling An Industrial Robot By Touch
20180104817 · 2018-04-19
Inventors
Cpc classification
B25J9/1633
PERFORMING OPERATIONS; TRANSPORTING
B25J9/1656
PERFORMING OPERATIONS; TRANSPORTING
G05B2219/41387
PHYSICS
B25J9/1664
PERFORMING OPERATIONS; TRANSPORTING
G05B2219/36418
PHYSICS
International classification
Abstract
A robot and method for controlling an industrial robot, which has a first robot arm, a second robot arm, a joint defining a kinematic pair between the first and second robot arms, an actuator for generating relative movement between the first and second robot arms, and a robot controller for controlling the movements of the actuator. The method includes the steps of: determining a presence of a first torque indication at the actuator to be interpreted as a first command to the robot controller; repeatedly obtaining an external torque value (.sub.ext) to obtain an external torque behaviour; comparing the external torque behaviour with the first torque indication; and executing a robot function corresponding to the first command upon detecting that the external torque behaviour corresponds to the first torque indication. The obtained external torque behaviour depends on a reference torque value (.sub.ref) obtained from a dynamic model of the robot
Claims
1. A method for controlling an industrial robot, the robot comprising a first robot arm, a second robot arm, a joint defining a kinematic pair between the first and second robot arms, an actuator for generating relative movement between the first and second robot arm, and a robot controller for controlling the movements of the actuator, the method comprising the steps of: determining a presence of a first torque indication at the actuator to be interpreted as a first command to the robot controller; repeatedly obtaining an external torque value (_ext) to thereby obtain an external torque behaviour, the obtained external torque behaviour depending on a reference torque value (_ref) obtained from a dynamic model of the robot; comparing the external torque behaviour with the first torque indication; and executing, on the condition that no second command overruling the first command is provided to the robot controller, a robot function corresponding to the first command upon detecting that the external torque behaviour corresponds to the first torque indication; characterized by determining a presence of a second torque indication at the actuator to be interpreted as a second command to the robot controller; comparing the external torque behaviour with the second torque indication; and executing a robot function corresponding to the second command upon detecting that the external torque behaviour corresponds to the second torque indication, wherein the second command overrules the first command.
2. The method according to claim 1, wherein the method further comprises the step of exerting a force according to the first force indication on the actuator.
3. The method according to claim 1, wherein the method further comprises the step of filtering the external torque behaviour.
4. The method according claim 1, wherein the first command is a command to continue or to stop a work cycle of the robot.
5. The method according to claim 1, wherein the first torque indication defines a minimum magnitude of the external torque behaviour.
6. The method according to claim 5, wherein the first torque indication defines a minimum duration above the minimum magnitude of the external torque behaviour.
7. The method according to claim 1, wherein the joint defines a revolute pair between the first and second robot arms.
8. The method according to claim 1, wherein the actuator is a servo motor.
9. The method according to claim 1, wherein the execution of the robot function corresponding to the first command is carried out after a predetermined delay after detecting that the external torque behaviour corresponds to the first torque indication.
10. An industrial robot comprising a first robot arm, a second robot arm, a joint defining a kinematic pair between the first and second robot arms, an actuator for generating relative movement between the first and second robot arms, and a robot controller for controlling the movements of the actuator, the robot controller being configured to execute a method comprising the steps of: determining a presence of a first torque indication at the actuator to be interpreted as a first command to the robot controller; repeatedly obtaining an external torque value (_ext) to thereby obtain an external torque behaviour, the obtained external torque behaviour depending on a reference torque value (_ext) obtained from a dynamic model of the robot; comparing the external torque behaviour with the first torque indication; and executing, on the condition that no second command overruling the first command is provided to the robot controller, a robot function corresponding to the first command upon detecting that the external torque behaviour corresponds to the first torque indication; characterized by determining a presence of a second torque indication at the actuator to be interpreted as a second command to the robot controller; comparing the external torque behaviour with the second torque indication; and executing a robot function corresponding to the second command upon detecting that the external torque behaviour corresponds to the second torque indication, wherein the second command overrules the first command.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0019] The invention will be explained in greater detail with reference to the accompanying drawings, wherein
[0020]
[0021]
DETAILED DESCRIPTION
[0022] Referring to
[0023] The robot controller 60 furthermore comprises a dynamic model 80 of the robot 10, which is a mathematical model comprising relevant factors affecting static and dynamic properties at the servo motor 50. A dynamic model 80 for a joint 40 may be expressed as
=M(){umlaut over ()}+C(, {dot over ()})+D{dot over ()}+.sub.g()+.sub.s()+.sub.f({dot over ()}),(1)
[0024] where is torque at a joint 40, is an angular joint position of the joint 40, M() is an inertia vector, C(, {dot over ()}) relates to speed dependent terms (e.g. Coriolis and centrifugal), D is a damping vector, .sub.g() is a gravity-induced torque, .sub.s() is a nonlinear stiffness, and .sub.f({dot over ()}) is torque caused by static and dynamic friction. If the servo motor 50 is connected to the joint 40 via a gearbox the gear ratio and the dynamics of the gearbox need to be taken into account when defining the dynamic model 80. It is considered that a person skilled in the art in the technical field of the present patent application is capable of providing a dynamic model 80 of a robot 10. Reference is made to U.S. Pat. No. 6,218,801 B1 to illustrate the level of skill of a person skilled in the art.
[0025] The dynamic model 80 of
[0026] At a second summing 130 point the external torque value .sub.ext is added to the reference torque value .sub.ref, and the resulting corrected reference torque value .sub.ref.sub._.sub.corr is given as an input to generate a corresponding motor current and ultimately a motor torque .sub.m at the servo motor 50. The torque constant K.sub. corresponds to a total amplification of both the motor drive 90 and the servo motor 50.
[0027] The external torque value .sub.ext depends not only on external forces but also on errors in the calculated reference torque value .sub.ref in relation to real torques present at the joint 40. However, when the dynamic model 80 is appropriately defined, the errors will be relatively constant and small such that the external torque value .sub.ext can be considered to principally reflect torques caused by external forces on the robot 10. By repeatedly obtaining the external torque value .sub.ext an external torque behaviour 140, i.e. the external torque value .sub.ext overtime, can be obtained and observed. The obtained external torque behaviour 140 can be filtered appropriately to remove or decrease the effect of the aforementioned errors, or to make the obtained external torque behaviour 140 otherwise more suitable for the purposes of the present method.
[0028]
[0029] External torques can be turned into commands to the robot controller 60 by determining that a presence of a certain torque indication at the servo motor 50 is to be interpreted as a corresponding command to the robot controller 60. For example, a presence of a torque indication wherein the external torque value .sub.ext remains above a threshold value 150 for at least 0.5 seconds (
[0030] A plurality of different torque indications at the servo motor 50 can be determined to be interpreted as a corresponding plurality of different commands to the robot controller 60. The same torque indication can also be determined to be interpreted as different commands depending on the status of the robot 10. This is the situation in the example above where a presence of one and the same torque indication is determined to be interpreted as a command to the robot controller 60 to continue a work cycle if the robot 10 is at standstill, and to stop a work cycle if the robot 10 is moving. It can furthermore be determined that a command corresponding to the latest torque indication overrules any previous commands. An execution of a robot function corresponding to a command can thereby be interrupted in case a later torque indication corresponding to another command is detected. An execution of a robot function corresponding to a command can furthermore be delayed such that an operator has time overrule a command even before the execution of the corresponding robot function is started.
[0031] The invention is not limited to the embodiments shown above, but the person skilled in the art may modify them in a plurality of ways within the scope of the invention as defined by the claims.