Robot control
10579045 · 2020-03-03
Assignee
Inventors
Cpc classification
B25J9/1656
PERFORMING OPERATIONS; TRANSPORTING
G05B2219/37396
PHYSICS
G05B19/409
PHYSICS
International classification
Abstract
A manual robot control by which a reference point of the robot is moved continually in space or positioned on an adjacent snap point depending on the control input.
Claims
1. A method for controlling a robot arm (1) utilizing a manually operable user activated robot arm motion director (13) coupled to a robot arm motion controller (19), said robot arm motion controller (19) responsive to said manually operable user activated robot arm motion director (13), for monitoring a position of said user activated robot arm motion director (13) and responsive to said monitored position of said manually operable user activated robot arm motion director (13), for controlling the movement of said robot arm (1), said method comprising the steps of: a) defining, in said robot arm motion controller (19), a working space (14) comprising a predetermined physical range of said robot arm (1); b) defining, in said robot arm motion controller (19), at least one snap point (17) within said working space (14) of said robot arm (1), said at least one snap point (17) comprising at least one predefined point within said working space (14) which can be reached by a reference point (31) on the robot arm (1); c) detecting the magnitude (|d|) of a manual actuation of said manually operable user activated robot arm motion director (13) (S1) by said robot arm motion controller (19), and wherein a vectorial value (d) is measured and the measured vectorial value of the vector is taken as the detected magnitude (|d|) of the actuation, wherein the vectorial value (d) is one of a deflection of the user activated robot arm motion director (13, 13) from an idle position or of a force exerted on the user activated robot arm motion director (13, 13); and d) if the detected magnitude (|d|) of the manual actuation (d) of said manually operable user activated robot arm motion director (13) lies below a switchover threshold (Th2) (S3), said robot arm motion controller (19) is configured for determining a snap point (17) which is adjacent a current location point of the reference point (31) on the robot arm and for then moving the reference point on the robot arm (31) to a snap point (17) adjacent said current location point (S5), and wherein the movement of the reference point on the robot arm (31) is halted at least temporarily on reaching the adjacent snap point (17) by said robot arm motion controller (19), or alternatively e) if the detected magnitude (|d|) of the actuation lies above the switchover threshold (Th2), said robot arm motion controller (19) is configured for continuously moving the reference point (31) (S6-S8).
2. The method according to claim 1, wherein steps d) and e) are only carried out if the detected magnitude (|d|) of the actuation lies above a reaction threshold (Th1).
3. The method according to claim 1, wherein in steps d) and e), the reference point on the robot arm (31) is moved in a spatial direction assigned to a direction of the vectorial value (d).
4. The method according to claim 1, in which in step e), the reference point on the robot arm (31) is moved more quickly the greater the detected magnitude (|d|) of the actuation.
5. The method according to claim 1, characterized in that if an actuation ends and the reference point on the robot arm (31) is not located at a snap point (17), the reference point on the robot arm (31) is moved to an adjacent snap point (17).
6. The method according to claim 5, wherein the end of an actuation is detected if the magnitude (|d|) of the actuation falls below the switchover threshold (Th2).
7. The method according to claim 2, wherein the end of an actuation is detected by said robot arm motion controller (19) if the magnitude (|d|) of the actuation falls below the reaction threshold (Th1).
8. The method according to claim 1, wherein in step b), said robot arm motion controller (19) defines points of a periodic lattice (26) as said snap points (17).
9. The method according to claim 1, wherein in at least one part of the working space (14), a periodic lattice of cells (K.sub.(x,y,z)) is defined by said robot arm controller (19), and wherein each of said periodic lattice of cells (K.sub.(x,y,z)) contains an identical arrangement of one or more snap points (17), advantageously at the corners of each said periodic lattice of cells (K.sub.(x,y,z)).
10. The method according to claim 1, wherein the robot (1) is configured to carry out at least one activity at a location point, and a location point at which the activity has been carried out is defined as a snap point (17).
11. The method according to claim 1, in which the movements of the reference point on the robot arm (31) are recorded by said robot arm motion controller (19).
12. The method according to claim 1, characterized in that said robot arm motion controller (19) seeks an adjacent snap point (17) in a spatial region (28, 28) centered around a current reference point (31) location point (24, 24).
13. The method according to claim 1, characterized in that said robot arm motion controller (19) seeks an adjacent snap point in a spatial region (23, 27) on a margin of which the current reference point (31) location point (24, (0,0,0)) is located.
14. The method according to claim 13, characterized in that the spatial region (27) extends beyond the current location point (24, (0,0,0)) in the direction of an immediately preceding movement of said reference point (31).
15. The method according to claim 12, characterized in that the movement of the reference point on the robot arm (31) to the adjacent snap point does not take place if the spatial region (28) does not contain a snap point.
16. The method of claim 1 further including providing a computer program product which includes instructions which, when run on a computer provided as part of said robot control arm motion controller (19), enables said computer to carry out the method.
Description
(1) Further features and advantages of the invention are explained in the following description of exemplary embodiments with reference to the enclosed figures, in which:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10) In order to detect user inputs, a control unit 19 of the robot 1 is connected with a manually operable input device.
(11) Stored in the control unit 19 is a description of a working space 14 in which the robot 1 can move. This working space 14 can correspond to the physical range of the robot 1; however, spatial regions which lie within the physical range can also be excluded from the working space 14, for example in view of safety considerations. Typically, the robot 1 is permitted to penetrate into the working space 14, but not to leave it.
(12) According to the invention, the robot 1 can be positioned exactly at predefined points, referred to in the following as snap points. Any location points of the robot 1 within the working space 14 can be selected as snap points and defined in the control unit 19.
(13) However, according to an advantageous embodiment of the invention, the working space 14 is divided into numerous cells of identical form, in this case of cuboid form, in particular cubes K.sub.(x,y,z), and the corners of each of these cells are defined as snap points. A lattice 26 resulting from this division is shown in
(14) Generally, the position of a cell K.sub.(x,y,z) can be stated by means of its indices x, y, z, each index x, y, z corresponding to the position in the relevant direction x, y, z of the coordinate system. Accordingly, the cell lying directly on the coordinate origin is designated K.sub.(1,1,1) since, starting from the coordinate origin, it stands in first place in relation to the three directions x, y and z. Likewise, K.sub.(2,4,4) designates the cell which, starting out from the coordinate origin, is positioned in second place in the x-direction, in fourth place in the y-direction and in fourth place in the z-direction.
(15) In terms of applications within the wafer and semiconductor industry it can be practical to choose a fraction of an inch (25.4 mm) as the length of the edges of the cells.
(16) It can be practical to define snap points in a part of the working space 14 only. In particular, parts of the working space 14 which do not contain any targets which are to be approached exactly by the robot 1 can remain free of snap points. Thus,
(17) A working method of the control unit 19 is explained in the following with reference to
(18) In step S2 the control unit 19 compares the amount |d| specified by the signal with a reaction threshold Th1. If this threshold is not reached, the processing ends; if it is exceeded, then in step S3 the amount is compared with a switchover threshold Th2.
(19) If the magnitude of the actuation lies above the reaction threshold Th1, but below the switchover threshold Th2, in step S4 the control unit 19 determines a snap point which is adjacent the current location point of the reference point 31. If such a snap point exists, the control unit 19 moves the reference point 31 to this snap point in step S5.
(20) Whether an adjacent snap point is always found in step S4 depends on which definition of an adjacent snap point is applied.
(21) In step S4, the snap point which, of all the snap points, is the shortest distance from the current location point can be selected as the adjacent snap point. Such a snap point always exists; consequently, one can always be found in step S4.
(22) The selection can also be limited to snap points within a partial region of the working space, for example a cone 23, the apex of which is the current location point 24 of the reference point 31 and which opens in the direction of the detected vector d. This case is illustrated in
(23) In order to position the reference point 31 on the selected adjacent snap point, the control 19 generates corresponding control signals. These signals are sent to the corresponding articulated joints 5, 6, 7 and/or 10, so that the arm elements 2, 3 and/or the instrument 8 with its end effector 9 are set into a movement which results in the desired positioning of the reference point 31.
(24) By selecting a sufficiently large aperture angle it can be ensured that, irrespective of the direction of the vector d, an edge of the cube always lies within the cone; then, in step S4 an adjacent snap point is always selected which can be reached by moving along an edge of the cube; for example, in the case of the cone intersecting the plane x=1 on the ellipse E3, the snap point (1,0,0).
(25) If the snap points are not arranged regularly, in particular not on a periodic lattice, the method described above can under certain circumstances lead to an adjacent snap point being determined in a cell of the lattice 26 which is distant from the location point, and a slight actuation of the control element 13 or 13 results in an extensive movement of the robot 1. This can be prevented if the partial region of the working space examined in step S4 is finite in all three spatial directions.
(26) The case can arise in which the sphere 27 does not contain any snap point, for example if the lattice of snap points is only defined in a part of the working space and the vector d points towards a part of the working space 14 which is free of snap points. In this case the method returns from step S4 directly back to S1, the robot remains unmoved. If the user nonetheless wishes to bring about a movement of the robot, he will intuitively actuate the control element 13 or 13 with greater force, so that on repeating the step S3 an exceeding of the switchover threshold Th2 is finally detected. A step S6, to which the method then branches off, will be described more precisely below.
(27) After the reference point 31 has been moved to the selected snap point in step S5, the method returns to the starting point S1. If the input continues, for example because the user holds the control element 13, 13 in a constant deflection until the robot has travelled a desired distance, the steps described above are repeated periodically.
(28) It can be the case that the robot stops briefly after each step S5. This makes it possible for a user to recognise the individual movement steps and if necessary count these off. The control element 13 which can be moved together with the robot 1 is particularly suitable for controlling such a stepwise movement: if the user taps it in a desired direction of movement, the robot moves a step towards an adjacent snap point in this direction; as a result, the control element 13 also moves away from the user's hand, and the actuation ends through the movement of the robot, as long as the user does not move his hand along with the control element 13.
(29) If, on the other hand, an exceeding of the switchover threshold is detected in step S3, then in step S6 the control unit 19 initiates a continuous movement of the reference point 31 in the direction designated by the direction of the vector d detected in step S1. For this purpose, the control 19 again generates corresponding signals which are sent to the corresponding articulated joints 5, 6, 7 and/or 10, so that the arm elements 2, 3 and/or the instrument 8 with its end effector 9 are set in corresponding motion.
(30) During the course of this movement, the input is detected again in step S7. In step S8, the amount of the detected vector d is once again compared with the switchover threshold Th2 (or, alternatively, with the reaction threshold Th1). If it is exceeded, then the target of the movement has clearly not yet been reached, and the method returns to step S6 in order to continue the movement according to the updated vector d. If the threshold is not reached, it is to be assumed that the robot has reached, or at least virtually reached, the target desired by the user. In this case the movement of the robot can be terminated immediately; advantageously, the comparison is followed by a step S9 involving the selection of a snap point adjacent the location point which has been reached and by the step S5, so that the robot comes to rest at a snap point.
(31) According to a further development, in step S6 the speed of the robot 1 can be controlled on the basis of the value of d. The speed can be specified in the control unit 19 as a function of |d|. However, the position into which the control element is brought by the user can, in particular in the case of the input device 12, also correspond to a point in the working space to which the control unit 19 attempts to steer the robot 1. In such a case, the speed of the robot can be independent of |d|; however, it can also be influenced indirectly by |d|, for example via a PID controller.
(32) The step S9 can be identical to the step S4 described above, involving selection of snap points according to the procedure shown in
(33) In an equivalent manner, as also shown in
(34) According to a further development of the invention, a movement of the robot in the direction indicated through the actuation d can also take place in the case of an actuation |d| below the reaction threshold Th1. This movement is significantly less than the nearest snap point in the direction indicated by the actuation d, but it makes it possible for the user to recognise in which direction the robot would move if they increased the actuation d beyond the reaction threshold Th1, allowing them to correct the direction of the actuation if necessary. If the user discontinues the actuation without exceeding the reaction threshold Th1, then the robot also returns to the starting point.
(35) According to a preferred further development of the method, points passed through during the course of a movement of the robot are recorded. These points can for example be the adjacent snap points determined in step S4 or S9; if a continuous movement is carried out according to the steps S6-S8, points passed through during the course of this movement should also be recorded, in particular those in which a pronounced change in the vector d is detected in step S8. This means that, after the movement of the robot has been carried out once based on the input of the user on the control element 13 or 13, the control unit 19 can reproduce this movement later at any time without the assistance of the user.
(36) In a further development of the invention, the snap points or snap spaces can be made tangible for the user in that the user is provided with a haptic feedback. This feedback can for example be generated with the aid of an input device 12, 12 with a force feedback function. Such input devices are equipped to cause the manual control element 13 (for example the handle of a joystick) to vibrate. The vibration of the control element 13 thus serves to provide signals to the user. If for example a snap space 25 has been reached, then the force feedback function is activated and causes the control element 13 to vibrate.
(37) In addition to the haptic feedback, in an additional further development of the invention the user can also be provided with optical and/or acoustic feedback if the robot 1 has reached a snap point 17. For example, when setting up robots and multiple-axis machines an acoustic support on passing beyond safety zones can indicate to the user the urgency of the snap points. The same applies to forms of visual feedback. For example, the input device can be equipped with a coloured LED which lights up in different colours when different snap points are reached. In this case a red signal light indicates a different urgency than the colour blue or green.
(38) Providing different forms of the haptic, acoustic or optical feedback in different parts of the working space 14, for example a storage area, a safety area or a boundary area, can make it easier for the user to recognise in which of these areas the robot 1 is currently located.
(39) With the method illustrated in
(40) In a first variant of this intermediary mode of movement, while moving continuously in the direction corresponding to the vector d, as described above with reference to steps S6-S8, the robot 1 moves more slowly in the vicinity of a snap point, for example in one of the snap spaces 25 shown in
(41) In a second variant of the intermediary mode of movement the robot 1 automatically performs a continuing movement when it reaches a snap space 25.
(42) Different paths of the reference point 31 are possible within the snap space 25. The path drawn as a continuous line runs radially between the margin of the snap space 25 and the snap point 17. Examples of alternative paths are drawn in as dotted lines. These different forms of movement within a snap space can also be specific for different areas of the working space 14, so that the user can recognise from them in which of the areas the robot is located.
(43) For example, all snap points 17 which are located on the margin of the working area 14 trigger a peak-like path (see
(44) Accordingly, the paths with different forms, for example a wave-like path (see
REFERENCE NUMBERS
(45) 1 robot 2 arm element 3 arm element 4 base element 5 articulated joint 6 articulated joint 7 articulated joint 8 instrument 9 end effector 10 articulated joint 11 instrument axis 12 input device 12 input device 13 control element 13 control element 14 working space 15 longitudinal axis 16 location point 17 snap point 18 distance 19 control 22 arrow 23 cone 24 location point 25 snap space 26 lattice 27 sphere 28 sphere