ROBOT CONTROLLER
20200101604 ยท 2020-04-02
Inventors
Cpc classification
B25J9/1633
PERFORMING OPERATIONS; TRANSPORTING
G05B2219/40344
PHYSICS
B25J9/1676
PERFORMING OPERATIONS; TRANSPORTING
G05B19/423
PHYSICS
G05B2219/40365
PHYSICS
International classification
Abstract
A method for controlling a robot includes detecting current positions of joints of the robot and actuating the joints using drives of the robot based on the detected current joint positions such that at least one drive supports a manual guidance-induced movement of the joint actuated by the drive if a distance between the detected or target joint position and a specified first boundary has a first value. The drive supports the manual guidance-induced movement to a lesser degree if the distance has a second value which is lower than the first value. Additionally, the manual guidance-induced movement is oriented towards the first boundary.
Claims
1-12. (canceled)
13. A method for controlling a robot having a plurality of joints actuated by respective drives, comprising: detecting current positions of the joints of the robot; and actuating the joints using the drives of the robot based on the detected current joint positions, such that: at least one drive assists a movement of its associated joint, induced by a manual guidance applied to the robot by a user, to a first extent when a spacing between the detected joint position or a target joint position of the associated joint and a specified first limit of the associated joint has a first value, and the at least one drive assists the movement of the associated joint to a second extent, less than the first extent, when the spacing has a second value that is less than the first value, and the movement induced by the manual guidance is directed toward the first limit.
14. The method of claim 13, further comprising: actuating the joints using the drives of the robot based on the detected current joint positions such that: the at least one drive assists the movement of its associated joint, induced by the manual guidance, to a third extent when a spacing between the detected joint position or target joint position thereof and a specified second limit has a third value, and the at least one drive assists the movement of the associated joint to fourth extent, less than the third extent, if the spacing has a fourth value that is less than the third value, and the movement induced by the manual guidance is directed toward the second limit.
15. The method of claim 14, wherein the at least one drive at least one of: does not assist the manual guidance induced movement of the associated joint when the spacing between the detected joint position or target joint position and the first or second limit has, at most, a specified minimum magnitude; or assists the manual guidance induced movement of the associated joint when at least one of: the spacing between the detected joint position or target joint position and the first limit is smaller than the first value, but the movement induced by manual guidance is directed away from the first limit, or the spacing between the detected joint position or target joint position and the second limit is smaller than the third value, but the movement induced by manual guidance is directed away from the second limit.
16. The method of claim 14, wherein the assistance by the drive of the manual guidance induced movement of the associated joint is reduced, at least in a specified range of the spacing between the detected joint position or target joint position and the first or second limit, when the movement induced by the manual guidance is directed toward the first or second limit.
17. The method of claim 16, wherein the assistance by the drive is at least one of evenly reduced or linearly reduced.
18. The method of claim 13, wherein the drive actuates the joint in order to assist the manual guidance induced movement of the joint based on a current change in a target joint position which depends on a difference between the detected current joint position of the joint and a current target joint position.
19. The method of claim 18, wherein the current change in a target joint position depends proportionally on the difference between the detected current joint position and the current target joint position.
20. The method of claim 19, wherein a proportionality factor of the dependency of the current change in a target joint position depends on at least one of: a difference from the direction of the movement induced by the manual guidance; or on the spacing between the detected joint position or target joint position and at least one of the first or second limit.
21. The method of claim 20, wherein the proportionality factor depends linearly, at least in regions, on the spacing between the detected joint position or target joint position and at least one of the first or second limit.
22. The method of claim 13, further comprising: actuating the joints using the drives of the robot based on the detected current joint positions such that a minimum spacing between a specified fixed point and a reference fixed to the robot is minimized; whereby, in the process, the at least one drive in addition actuates the joint, as far as possible, for assisting the manual guidance induced movement.
23. The method of claim 22, wherein the reference fixed to the robot is a robot-guided shank.
24. The method of claim 22, further comprising: actuating the joints using the drives based on a current change in a target joint position which depends on a minimum spacing between the reference fixed to the robot and the specified fixed point.
25. The method of claim 24, wherein the minimum spacing is cartesian and transformed in the joint space.
26. The method of claim 24, further comprising: projecting a current change in a target joint position of the drive that assists the manual guidance induced movement of the joint into a null space of the minimization of the minimum spacing between the specified fixed point and the reference fixed to the robot.
27. A system for controlling a robot having a plurality of joints actuated by respective drives, the system comprising: means for detecting current positions of joints of the robot; and means for actuating the joints using the drives of the robot based on the detected current joint positions, such that: at least one drive assists a movement of its associated joint, induced by a manual guidance applied to the robot by a user, to a first extent when a spacing between the detected joint position or a target joint position of the associated joint and a specified first limit of the associated joint has a first value, and the at least one drive assists the movement of the associated joint to a second extent, less than the first extent, when the spacing has a second value that is less than the first value, and the movement induced by the manual guidance is directed toward the first limit.
28. An assembly comprising a robot and the system according to claim 27 for controlling the robot.
29. A computer program product usable with a robot having a plurality of joints actuated by respective drives, the computer program product comprising a program code stored on non-transitory computer-readable medium, the program code, when executed by a computer, causing the computer to: detect current positions of the joints of the robot; and actuate the joints using the drives of the robot based on the detected current joint positions, such that: at least one drive assists a movement of its associated joint, induced by a manual guidance applied to the robot by a user, to a first extent when a spacing between the detected joint position or a target joint position of the associated joint and a specified first limit of the associated joint has a first value, and the at least one drive assists the movement of the associated joint to a second extent, less than the first extent, when the spacing has a second value that is less than the first value, and the movement induced by the manual guidance is directed toward the first limit.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0041] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate exemplary embodiments of the invention and, together with a general description of the invention given above, and the detailed description given below, serve to explain the principles of the invention.
[0042]
[0043]
[0044]
DETAILED DESCRIPTION
[0045]
[0046] The robot 10 comprises seven joints comprising joint position sensors and drives 11-17, and a robot-guided shank 18, which shank the robot is to guide through a fixed point T. The spacing between the shank 18 and the fixed point T is shown in a highly exaggerated manner, for purposes of clarity.
[0047] By way of example, a current joint position q.sub.j detected by the corresponding joint position sensor, and a first upper limit q.sub.jM>0 and second lower limit q.sub.jm<0, specified by means of software, are indicated for one of the joints.
[0048] In a step S100 (cf.
[0049] In a step S200, the spacings from the joint-specific first upper limits and second lower limits are determined herefrom or from (current or most recently commanded) target joint positions q.sub.Cmd(i)=[q.sub.1, . . . , q.sub.j , , , ].sup.T, for the individual joints, for example according to the above equation (3). Proportionality factors are determined herefrom, for example according to the above equation (2). By way of example, in this respect
[0050] In a step S300, the controller 2 determines the point C on the robot-guided shank 18 that is (located) closest to the fixed point T, the (task) vector X.sub.CT that is made up of the (two-dimensional) spacing from C according to T, and a target delta for the redundancy parameter, in particular the elbow angle, and which, in one embodiment, is zero, and the Moore-Penrose pseudoinverse J.sup.+, (task) Jacobian matrix J, and the operator N of the null space projection (cf. equation (4) above).
[0051] From this, in a step S400 the controller 2 calculates current target joint position changes or new target joint positions, for example according to the above equation (5) or (5).
[0052] In step S500, said controller actuates the drives of the joints 11-17 in accordance with said new target joint positions.
[0053] Finally, said controller performs step S100 again, said target joint positions determined in step S400 now being used as current target joint positions of the new control phase or cycle.
[0054] In a variant, in particular step S300 can be omitted. Then, in step S400 the controller 2 calculates the current target joint position changes or new target joint positions, for example according to the above equation (1) or (1).
[0055] It can be seen that, if a joint j approaches for example the first upper limit thereof, the corresponding proportionality factor k.sub.j reduces linearly from k.sub.sat to 0 at d.sub.j=0, after falling below the spacing d.sub.thresh (cf. equations (2) and (3), and
[0056] Insofar as the guidance of the shank 18 through the fixed point T should or must be considered the primary object, said spacing-dependent reduction of the assistance of the manual guidance is also taken into account, in differential form, as a secondary object, as far as this is possible taking account of the primary object.
[0057] As a result of said differential impedance, optionally while resolving the redundancy with respect to the primary object, it is possible to achieve stable manual guidance of the robot, and in the process to prevent blocking in software-based end stops, in an embodiment having a slower clock frequency and/or, in particular in the case of mechanical compliance in the joints, even without force detection in the joints.
[0058] Although embodiments given by way of example have been explained in the preceding description, it is noted that a plurality of modifications are possible. It should furthermore be noted that the embodiments given by way of example are merely examples which are not intended to restrict the scope of protection, the applications and the structure in any way. Instead, the above description provided guidance for a person skilled in the art to implement at least one embodiment given by way of example, it being possible for various amendments to be made, in particular in view of the function and arrangement of the described components, without departing from the scope of protection as emerges from the claims and the combinations of features equivalent thereto.
[0059] 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.
LIST OF REFERENCE SIGNS
[0060] 2 controller [0061] 10 robot (arm) [0062] 11-17 joint comprising joint position sensor and drive [0063] 18 shank [0064] C point on the shank closest to the fixed point [0065] T fixed point [0066] X.sub.ct (task) vector at a spacing from C according to T