Robust intuitive operating method by touching a manipulator

10635074 · 2020-04-28

Assignee

Inventors

Cpc classification

International classification

Abstract

A method for controlling a manipulator includes releasing the manipulator in reaction to a release request by an operator, wherein the recognition of the release request involves monitoring the variation over time of a measured value that is characteristic of a state of the manipulator. Increased robustness of the recognition of the release request results.

Claims

1. A method for controlling a manipulator, comprising: detecting a release request based on a force exerted by an operator on the manipulator; and releasing the manipulator in response to detecting the release request; wherein detecting the release request comprises tracking at least one measurement value that characterizes the state of the manipulator; and wherein releasing the manipulator comprises releasing the manipulator with increased rigidity in response to a determination that a dynamic model of the manipulator is invalid.

2. The method of claim 1, wherein the manipulator is an articulated arm robot.

3. The method of claim 1, wherein the at least one measurement value that characterizes the state of the manipulator comprises at least one of a torque of the manipulator or a position of the manipulator.

4. The method of claim 3, wherein detecting the release request comprises detecting when a difference between a measured torque and reference torque exceeds the magnitude of a specified error limit; wherein the reference torque is calculated as an average of previously measured torque values, or by a snapshot reading.

5. The method of claim 3, wherein detecting the release request comprises detecting when a difference between a measured position and a reference position exceeds the magnitude of a specified error limit; wherein the reference position is calculated as an average of previously measured positions, or wherein the reference position is formed by a snapshot reading.

6. The method of claim 1, further comprising: detecting a lock request when the operator holds the manipulator in a position for a specified timespan; and locking the position of the manipulator in response to detecting the lock request.

7. A method for controlling a manipulator, comprising: detecting a release request based on a force exerted by an operator on the manipulator; and in response to detecting the release request, moving the manipulator a predetermined amount and subsequently locking the position of the manipulator.

8. The method of claim 7, wherein the manipulator is an articulated arm robot.

9. The method of claim 7, wherein moving the manipulator comprises a joint-specific or Cartesian adjustment of a target position of the manipulator.

10. The method of claim 9, further comprising automated selection of the Cartesian adjustment of the target position of the manipulator in response to detecting that the operator has touched the manipulator at an end effector.

11. The method of claim 10, wherein detecting that the operator has touched the manipulator at an end effector comprises evaluating a Jacobi matrix.

12. The method of claim 11, wherein evaluating a Jacobi matrix comprises defining a null space.

13. The method of claim 7, wherein a motion sensitivity of the manipulator is adjustable by means of an amplification parameter.

14. A robot system, comprising: a manipulator; and a control device configured to execute a method for controlling a manipulator in accordance with claim 1.

15. The robot system of claim 14, wherein the manipulator is an articulated arm robot.

Description

BRIEF DESCRIPTION OF THE DRAWINGS

(1) The following is a detailed description of the present invention based on the enclosed figures.

(2) FIG. 1 is a schematic depiction of a torque curve of an axis of an articulated arm robot;

(3) FIG. 2 is a schematic depiction of an exemplary sequence of a method for controlling a manipulator, and

(4) FIG. 3 is a schematic depiction of a robot system arranged to execute an inventive method.

DETAILED DESCRIPTION

(5) Inventively, the above method detects the user request in a particularly robust manner by relying on the measurement value time series in place of the model error (difference between a modeled torque and a measured torque).

(6) User Request Detection

(7) A straight-forward implementation for detecting the user release request is based on comparing a measured torque with a modeled torque for an internal dynamic model of the manipulator. Such a dynamic model is typically defined by determining the dynamic equations of the manipulator based on the weight and geometric dimensions of the manipulator's components, for instance using the Lagrange formalism or the Newton-Fuller algorithm. The dynamic model can be used to model what torque would be required to suitably move the manipulator or what torque would for instance be required to hold a manipulator in a specified pose against the effects of gravity.

(8) Pursuant to the above straight-forward implementation, the user release request is detected when the magnitude of the difference (external torque T.sub.ext) from a modeled torque T.sub.mdl and a measured torque T.sub.msr
T.sub.ext=T.sub.msrT.sub.mdl
exceeds an error limit:
|T.sub.ext|>(1).

(9) However, this method can potentially identify a model error as a user request. Such model errors necessarily occur in practice since the dynamic model is by nature never able to accurately reflect the real world, without limitation also because the exact mass distribution of a manipulator is difficult to determine and for instance also because installing a tool on the manipulator significantly influences the model, depending on the weight of the tool. In practice, the variance between the dynamic model and reality have been shown to easily be 5-10%.

(10) This will be discussed in detail based on FIG. 1. FIG. 1 is schematic and an exemplary representation of the torque curve over time as measured on an axis (e.g. axis 3) of a manipulator, in particular an articulated arm robot. The torque is preferably recorded with strain gauges arranged on the drive shaft of the axis. Stated in a simplified manner, when at rest, a constant torque acts on the drive shaft of the axis, the constant torque generated by gravity acting on the members of the manipulator and/or the articulated arm robot that can be moved by the axis. For a given state (pose) of the manipulator, T.sub.mdl represents the modeled torque (e.g. 30 Nm in this case) in the form a straight line. In order to prevent the manipulator from sagging downward due to gravity, the controller must apply an (opposing) torque of 30 Nm on the actuator of the affected axis. However, the measured torque T.sub.msr is never fully constant, but instead fluctuates in practice, e.g. due to vibrations, the installation orientation of the manipulator, the applied load, or other environmental influences, but in particular due an unavoidable inherent noise of the installed sensors and/or control equipment, etc. This is represented by the jittery curve of T.sub.msr in FIG. 1. However, by specifying an error limit , these minor fluctuations about the modeled (idealized) torque T.sub.mdl are rendered unproblematic. However, without the error limit, the manipulator and/or articulated arm robot and/or its controller would already interpret these minor fluctuations of T.sub.mdl, for example due to vibrations of the manipulator, as a user request and move the manipulator in the direction specified by the external force. A larger fluctuation occurs at Point 200 in the depicted example. This fluctuation can for instance be generated by a forklift passing by in close proximity to the manipulator base or by an operator bumping into the manipulator. Such a shock can generate a torque spike that lies outside the error limit, causing the manipulator to erroneously detect the torque spike at Point 200 as a user request.

(11) In order to prevent this, the measurement value time series of T.sub.msr is inventively tracked, in particular continuously. The measurement value time series is in this case preferably tracked on a manipulator that is locked in position (a locked state). Barring a comparatively minor residual noise, T.sub.msr then retains the same value when the manipulator is at rest. However, the value of T.sub.msr changes greatly when the operator exerts a force on the manipulator to manually move the manipulator. This is illustrated as an example at Point 210 in FIG. 1. In the locked state, a variable reference value Tref is therefore formed based on the time series of the measurement value Tref; the reference value assumes the role of the modeled torque midi. Tref is preferably continuously tracked by an average value filter, for instance by always incorporating the last 10 or 15 measurements into the average value calculation:

(12) ref = .Math. i msr , i , eingefroren nsamples

(13) The user request detection is now formed analogously to (1):
.sub.ext,ref=.sub.msr.sub.ref
|.sub.ext,ref|>(2)

(14) The reference value is therefore not fixed but is instead adjusted to a certain degree to the actually measured torque time series. By suitably adjusting the average value calculation, steps can be taken to prevent that e.g. the spike at Point 200 is interpreted as a user request. The significantly larger force exerted at Point 210which is applied intentionally by the useris however accurately detected as a user request, and the controller of the manipulator then moves the manipulator in the direction specified by the operator. As can be seen, the user request is therefore detected independently of the (uncertain) dynamic model, but is instead detected based on the variance of an actually measured value from an averaged measurement value time series. The inventive time-series-based detection of the release request provides without limitation the following advantages: 1) a smaller error limit can be selected since the model error is no longer erroneously identified as a user request (touch), e.g. the manipulator becomes more sensitive; 2) the manipulator can only be released by human toucheven when jammed; e.g. the operator can intuitively unjam the manipulator in a controlled manner.

(15) Alternatively, a single snapshot reading can also be generated; this reading is recorded when the manipulator is at rest (e.g. the velocity and acceleration of the manipulator are ZERO) and is used as the reference value T.sub.ref.

(16) Analogous to the torque-based approach described above, the user request can also be detected on the basis of position values. The modeled torque values and the measured torque values are then replaced by modeled positions and measured positions, analogous to the application. For instance, the reference would be determined on the basis of a series of previously measured positions, which are averaged for this purpose. A simple differential of a measured actual position q.sub.msr and a modeled target position q.sub.mdl:
q.sub.delta_ext=q.sub.msrq.sub.mdl,
is then replaced by a reference position q.sub.ref, which is in turn determined analogously to the reference torque as an average of previously measured positions:

(17) q ref = .Math. i q msr , i , eingefroren nsamples

(18) Unlike the modeled position, the reference position is therefore not fixed but is instead variable. The user request detection can in this case be calculated analogously to (2) as:
q.sub.delta_ext,ref=q.sub.msrq.sub.ref
|q.sub.delta_ext,ref|>

(19) The Freeze user request is preferably detected by placing the system at rest, e.g. when the user holds the manipulator in position for a brief timespan (e.g. 0.5 seconds):
|q|< for a timespan

(20) Jog Mode

(21) In particular for a system as described above that detects the states Locked and Released, it can be desirable to move the system in small, incremental steps. The basic principle in this case is as follows:

(22) 1. In the locked state, the system is controlled rigidly (position-controlled or rigid impedance control). The algorithm in this case specifies the target position q.sub.mdl, freeze.

(23) 2. If small deviations are detected
|T.sub.ext,ref|> or |q.sub.delta_ext,ref|>, whereby if > is true, the target position q.sub.mdl, freeze is adjusted accordingly.

(24) Joint-Specific Adjustment of the Target Position q.sub.mdl, freeze

(25) Shifting the position is accomplished by moving by a defined distance, for example:
q.sub.mdl,freeze*=q.sub.mdl,freeze+a*q.sub.delta_ext(position-based)
q.sub.mdl,freeze*=q.sub.mdl,freeze+b*T.sub.ext(torque-based)

(26) The amplification parameters a and b are preferably employed for adjusting the sensitivity of the manipulator to the user.

(27) Cartesian Adjustment of the Target Position

(28) The user request can also be interpreted as a cartesian input, provided the user touched the manipulator on the end effector:
x=a*J*q.sub.delta_ext(position-based calculation of a cartesian shift)
x=b*(J.sup.T).sup.1*T.sub.ext(torque-based calculation of a cartesian shift)

(29) The cartesian increment x can only be converted back into joint coordinates with an arbitrary inverse-kinematic approach (for instance an analytical inverse kinematic procedure):
q.sub.mdl,freeze*=q.sub.mdl,freeze+J.sup.1(torque-based)

(30) Automatic Selection of the Joint-Specific or Cartesian Mode

(31) The dynamics of a manipulator arm and/or a manipulator are typically determined by means of a Jacobi matrix. The Jacobi matrix of a manipulator arm generally describes the mapping of joint velocities into linear velocities of the TCP (Tool Center Point; the reference point located at a suitable location of the tool) and the change of the end effector orientation over time in relation to a reference coordinate system. It is important to note that the Jacobi matrix is non-square in the case of many conventional manipulators and is therefore preferably calculated using a pseudo-inverse. The pseudo-inverse can in turn be used to obtain a consistency condition for automatically differentiating between the cartesian and joint-specific mode.

(32) Any pseudo-inverse splits the solution into two spaces: the Range Space and the Null Space (N()). In order to determine whether a touchand therefore the user requestoccurred on the end effector, the calculated deviation T.sub.ext or q.sub.delta_ext must be located in the relevant null space of the Jacobi matrix. The following criterion can then be defined:

(33) If one of the relevant relationships
|N(J)*q.sub.delta_ext|<(position)
or
|N(J.sup.T)*T.sub.ext|<(torque)
is true, the cartesian method is used. The joint-specific method is used otherwise since the calculated and/or measured deviation T.sub.ext or q.sub.delta_ext is inconsistent with the cartesian world. N(J), respectively N(J.sup.T), depict the relevant null space of the (inverse) matrix.

(34) Alternative Implementation without Determining the Null Space

(35) If the direction was estimated based on the pseudo-inverse,
F=(J.sup.T).sup.1*T.sub.ext,
a comparable validation can be facilitated by a simple forward calculation:
T*=J.sup.T*F

(36) The newly calculated vector T* should not materially differ from T.sub.ext.

(37) The following criterion can then be formulated:
|T*T.sub.ext|<

(38) Control Operating Modes

(39) As discussed initially, the aforementioned gravity-compensation-based algorithms can be implemented in the form of an impedance control as well as a position control. The impedance control inventively results in an improved sensitivity since the joint rigidity is set to ZERO in Released mode, thus giving the user very soft and highly sensitive control over the manipulator.

(40) The method described herein nevertheless also works for position-controlled manipulators when the target position q.sub.mdl is set to the instantly measured position q.sub.msr in released mode:
q.sub.mdl=q.sub.msr

(41) In this case, the internal position control loop of the manipulator is essentially cut open; since the touch inputs a position differential, the manipulator is required to move. The performance of the overall system then depends on the intrinsic capabilities (e.g. friction) of the manipulator and the position control laws. By appropriately amplifying the observed error q.sub.delta_ext, it is possible to further improve handling (the feeling). However, this can mildly destabilize the overall system, which requires additional control-technology measures. The internal position control of the manipulator is therefore preferably made soft. This is also of particular interest for manipulators that do not provide a torque control.

(42) FIG. 2 shows an illustration and example of an inventive process sequence for controlling a manipulator, preferably an industrial robot. It goes without saying that the method described herein is not limited to industrial robots or articulated arm robots, but is equally suited for any type of manipulator. The manipulator is locked in Step 5. A user release requestas described aboveis detected in Step 10, resulting in a local motion release of the manipulator in response to the detected user request. However, in the depicted example, the release can be issued by two methods:

(43) If the model is recognized as valid in step 10, the manipulator is released in response to the user request (Step 20). The manipulator's controller then moves the manipulator according to the direction specified by the operator and/or user by sending control signals to the various actuators of the manipulator.

(44) However, if the model is recognized as invalid in Step 10, the manipulator is released rigidly in Step 30, e.g. the manipulator moves very slowly. This mode is particularly advantageous for a crash recovery, for instance when the manipulator is brought into a jammed state by other software. Such a jam can be relatively easily corrected by a gravity compensation. If a user Freeze request is detected in Step 35, the manipulator returns to the locked state (Step 5).

(45) FIG. 3 shows a schematic illustration of a robot system 300 that comprises a manipulator 301, in particular an articulated arm robot 301 that can be grabbed and manually guided by its flange and/or end effector 302. The system 300 also features a control device 303. The latter is in this case arranged to execute the aforementioned methods for controlling the manipulator 301.

(46) While the present invention has been illustrated by a description of various embodiments, and while these embodiments have been described in considerable detail, it is not intended to restrict or in any way limit the scope of the appended claims to such detail. The various features shown and described herein may be used alone or in any combination. Additional advantages and modifications will readily appear to those skilled in the art. The invention in its broader aspects is therefore not limited to the specific details, representative apparatus and method, and illustrative example shown and described. Accordingly, departures may be made from such details without departing from the spirit and scope of the general inventive concept.