Method and means for handling an object
10300602 · 2019-05-28
Assignee
Inventors
Cpc classification
G05B2219/39398
PHYSICS
Y10S901/41
GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
International classification
Abstract
A method for handling an object comprises the steps: a) connecting the object (1) with a manipulator (5) and with an input tool (7) by means of which a direction ({right arrow over (d)}) within an internal coordinate system (K) relating to the input tool (7) can be entered, d) initiating a test movement of the manipulator (5) on the basis of a direction ({right arrow over (r)}) known in the external coordinate system (K); e) determining the direction ({right arrow over (r)}) of a movement of the input tool (7) in the internal coordinate system (K) resulting from the test movement of the manipulator (5); f) determining a coordinate transformation (T) which transforms the direction of the resulting movement ({right arrow over (r)}) in the internal coordinate system into the known direction ({right arrow over (r)}) in the external coordinate system; g) detecting an internal direction ({right arrow over (d)}) within the internal coordinate system (K) entered by a user using the input tool (7); h) applying the coordinate transformation (T) to the detected internal direction ({right arrow over (d)}) in order to obtain an external direction ({right arrow over (d)}); and i) controlling a movement of the manipulator (5) on the basis of the external direction ({right arrow over (d)}).
Claims
1. A method for handling an object comprising the steps of: a) mechanically connecting the object which is to be handled (1) with a manipulator (5), b) mechanically connecting the object which is to be handled (1) with an input tool (7) by means of which a direction ({right arrow over (d)}) within an internal coordinate system (K) relating to the input tool (7) is entered in any desired orientation in which the relation between the internal coordinate system (K) and an external coordinate system (K) is unknown; c) initiating (S3) a test movement of the manipulator (5) by a control unit (6) on the basis of a direction ({right arrow over (r)}) known in the external coordinate system (K); d) determining (S5), in the internal coordinate system (K), the direction ({right arrow over (r)}) of a movement of the input tool (7) resulting from the test movement of the manipulator (5); e) determining (S6; S13), on the basis of the known direction ({right arrow over (r)}) of the test movement and the direction of the resulting movement ({right arrow over (r)}), a coordinate transformation (T) which transforms the direction of the resulting movement ({right arrow over (r)}) in the internal coordinate system (K) into the known direction ({right arrow over (r)}) in the external coordinate system (K); f) detecting (S7), within the internal coordinate system (K), an internal direction ({right arrow over (d)}) entered by a user using the input tool (7); g) applying (S8) the coordinate transformation (T) to the detected internal direction ({right arrow over (d)}) in order to obtain an external direction ({right arrow over (d)}); and h) controlling (S9) a movement of the manipulator (5) on the basis of the external direction ({right arrow over (d)}).
2. The method according to claim 1, in which the coordinate transformation (T) is updated when the movement of the manipulator (5) initiated in step h) comprises a rotation.
3. The method according to claim 1, in which the test movement is a rotation, and wherein the known direction ({right arrow over (r)}) is a direction of an axis of the rotation.
4. The method according to claim 1, in which the known direction ({right arrow over (r)}) is a horizontal direction.
5. The method according to claim 1, characterised in that a direction of a force or of a torque acting between a head (9) and a base (8) of the input tool (7) or, if the head is configured to be moved relative to the base out of a neutral position, the direction of a movement of the head is detected as the entered internal direction ({right arrow over (d)}).
6. The method according to claim 1, in which the following steps are carried out between step a) and step b): a) detecting (S7) an internal direction ({right arrow over (d)}) entered by the user using the input tool; a) applying (S8) a predetermined coordinate transformation (T.sub.n) to the internal direction ({right arrow over (d)}) in order to obtain the known direction ({right arrow over (d)}).
7. The method according to claim 6, in which the predetermined coordinate transformation (T.sub.n) is a coordinate transformation determined during an earlier iteration of the method.
8. The method according to claim 1, in which a fault is detected when a movement of the input tool (7) is detected which is not caused through a movement of the manipulator (5) or no movement of the input tool (7) is detected in response to a movement of the manipulator (5).
9. An object handling system, comprising: an object which is to be handled (1), wherein said object to be handled is mechanically connected with a manipulator (5) and to an input tool (7) by means of which a direction ({right arrow over (d)}) within an internal coordinate system (K) relating to the input tool (7) is entered in any desired orientation in which the relation between the internal coordinate system (K) and an external coordinate system (K) is unknown; and wherein said object handling system is configured for carrying out the method comprising the steps of: a) initiating (S3) a test movement of the manipulator (5) by a control unit (6) on the basis of a direction ({right arrow over (r)}) known in the external coordinate system (K); b) determining (S5), in the internal coordinate system (K), the direction ({right arrow over (r)}) of a movement of the input tool (7) resulting from the test movement of the manipulator (5); c) determining (S6; S13), on the basis of the known direction ({right arrow over (r)}) of the test movement and the direction of the resulting movement ({right arrow over (r)}), a coordinate transformation (T) which transforms the direction of the resulting movement ({right arrow over (r)}) in the internal coordinate system (K) into the known direction ({right arrow over (r)}) in the external coordinate system (K); d) detecting (S7), within the internal coordinate system (K), an internal direction ({right arrow over (d)}) entered by a user using the input tool (7); e) applying (S8) the coordinate transformation (T) to the detected internal direction ({right arrow over (d)}) in order to obtain an external direction ({right arrow over (d)}); and f) controlling (S9) a movement of the manipulator (5) on the basis of the external direction ({right arrow over (d)}).
10. The object handling system according to claim 9, further including an orientation sensor (16), wherein the orientation sensor (16) is an acceleration sensor, and wherein a detection result ({right arrow over (g)}.sub.o,{right arrow over (g)}.sub.1,{right arrow over (g)}.sub.2) of the acceleration sensor quantitatively specifies at least the direction of an acceleration acting on the input tool in relation to an internal coordinate system (x, y, z) of the input tool (7).
11. The object handling system according to claim 9, characterised in that the input tool (7) and the control unit (6) are equipped with wireless interfaces (16, 17) for mutual communication.
12. The object handling system according to claim 9, characterised in that the manipulator is an end effector (5) of a robot arm (2) with articulated members (4).
13. The object handling system according to claim 9, further including an input tool, and wherein the input tool includes a switch (19) which responds to the presence of a foreign body in a region of the environment surrounding the input tool.
14. The object handling system according to claim 13, wherein the switch (19) is arranged on the base (8) of the input tool (7) and the region of the surrounding environment is located on a side (10) of the base (8) facing away from the head (9).
15. The object handling system according to claim 13, characterised in that the switch (19) is configured for switching the object handling system between an idle state in which detection results of the orientation sensor (16) and/or of the input sensor (12) are not output and an active state in which the detection results are output.
16. A computer program product with program code which enables a computer to control an object handling system to which an object which is to be handled (1) is mechanically connected with a manipulator (5) and to which the object which is to be handled (1) is mechanically connected with an input tool (7) by means of which a direction ({right arrow over (d)}) within an internal coordinate system (K) relating to the input tool (7) is entered in any desired orientation in which the relation between the internal coordinate system (K) and an external coordinate system (K) is unknown, said computer program product with program code enables said computer to control said object handling system to carry out a method comprising the steps of: a) initiating (S3) a test movement of the manipulator (5) by a control unit (6) on the basis of a direction ({right arrow over (r)}) known in the external coordinate system (K); b) determining (S5), in the internal coordinate system (K), the direction ({right arrow over (r)}) of a movement of the input tool (7) resulting from the test movement of the manipulator (5); c) determining (S6; S13), on the basis of the known direction ({right arrow over (r)}) of the test movement and the direction of the resulting movement ({right arrow over (r)}), a coordinate transformation (T) which transforms the direction of the resulting movement ({right arrow over (r)}) in the internal coordinate system (K) into the known direction ({right arrow over (r)}) in the external coordinate system (K); d) detecting (S7), within the internal coordinate system (K), an internal direction ({right arrow over (d)}) entered by a user using the input tool (7); e) applying (S8) the coordinate transformation (T) to the detected internal direction ({right arrow over (d)}) in order to obtain an external direction ({right arrow over (d)}); and f) controlling (S9) a movement of the manipulator (5) on the basis of the external direction ({right arrow over (d)}).
17. The object handling system according to claim 9, characterised in that the input tool (7) comprises a base (8) for attachment to the object (1) and a head (9) designed to be manipulated by the user and that the head (9) and the base (8) are physically connected via an input sensor (12) which is set up to detect at least one vectorial control parameter ({right arrow over (d)}) applied to the head (9) by the user in relation to an internal coordinate system of the input tool.
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) An input tool 7 is temporarily attached to the object 1. The input tool 7 comprises a base 8, in this case of flat cylindrical form, one end face of which faces the object 1 and is attached to this and the other end face of which carries a head 9 which is manipulated by a user. The head 9 is in this case also of flat cylindrical form, and of somewhat smaller diameter than the base 8.
(9)
(10) Depending on the nature of the object 1 which is to be handled, other means for temporary attachment can be practical. If for example the objects which are to be handled are wooden shipping crates, instead of the strips of adhesive tape 11 the end face 10 could also carry a plurality of spikes which bore into the wooden surface and provide support for the input tool 7 if it is pressed against the crate by a user. If the objects which are to be handled are containers or general objects made of ferromagnetic material, possible means for temporary attachment also include permanent magnets or electromagnets. If the objects which are to be handled are pallet cages, hooks can also be attached to the end face 10 in order to suspend the input tool from a wire on the wall of the pallet cage. Further variants are conceivable.
(11) The head 9 of the control unit 6 shown in
(12) The control parameter detected by the sensor 12 can in particular be a force or a torque. Intuitively, a tensile or pressing force which the user applies to the head 9 will be oriented in the direction in which he wishes to translate the object 1, or a torque applied by him is oriented in the direction of the axis around which he wishes to rotate the object 1. Depending on the construction type, the sensor 12 can be sensitive to force, to torque or to both. It preferably possesses three sensor components 14 for each sensed control parameter, each designed to detect one of three mutually orthogonal components of the relevant control parameter. These sensor components 14 can for example be optoelectronic sensors (PSDs), piezo elements or strain gauges arranged on a rod 13 connecting the head 9 with the base 8. The three spatial directions for which the three sensor components 14 are sensitive expediently form the axes of an internal coordinate system x, y, z relative to the control unit 6 so that the trio of measured values supplied by the three sensor components 14 can be interpreted as a vector of the control parameter in a Cartesian representation relative to the internal coordinate system x, y, z. For the sake of simplicity it can be assumed that the axis x of this internal coordinate system runs in the longitudinal direction of the rod 13, the axis y transversely thereto in the sectional plane in
(13) The base 8 also contains an acceleration sensor 15 for measuring a vectorial acceleration. Like the sensor 12, the acceleration sensor 15 can also comprise three sensor components which are in each case sensitive to accelerations in three orthogonal spatial directions, whereby, expediently, these spatial directions should also be the axial directions of the internal coordinate system x, y, z.
(14) A radio interface 16 is connected with the sensors 12, 15 in order to transmit their detection results to a complementary radio interface 17 of the control unit 6. A replaceable battery or an accumulator 18 mounted in the base 8 serves to supply the radio interface 16 and the sensors 12, 15 with operating energy.
(15) In the embodiment shown in
(16) Other types of switch 19 can be provided in order to detect the attachment of the input tool 7 on the object 1; for example a capacitive proximity switch, which detects the approach to an object 1 on the basis of a change in the dielectric constant in its vicinity. If the object 1 is ferromagnetic and the means for temporary attachment of the input tool 7 comprise a permanent magnet, then the switch 19 can also be formed by a coil surrounding the permanent magnet which reacts to a change in the magnetic flux as the permanent magnet approaches the object 1.
(17)
(18) The input tool 7 reacts to its attachment to the object 1 through transmission to the control unit 6 of the three components of the gravitational acceleration vector, relating to the internal coordinate system, detected by the acceleration sensor 15; these are received by the control unit 6 in step S2 and stored as vector {right arrow over (g)}.sub.o.
(19) In step S3, the control unit 6 actuates the robot arm 2 in order to rotate the object 1 around an axis in a test movement. The direction of this axis is known to the control unit 6 and can be stated in the external coordinate system as vector {right arrow over (r)} parallel to the axis (whereby no distinction is made in the following between the vector and the axis specified by said vector, and the symbol {right arrow over (r)} is used for both.
(20) The method is particularly simple if the axis {right arrow over (r)} is chosen to be horizontal. In order to simplify the notation it can then be further assumed that the test movement is a rotation around the x-axis of the external coordinate system K, i.e. that r is a vector in x-direction.
(21) This rotation results in a change in the direction of the gravitational acceleration within the internal coordinate system of the input tool 7; in S4 the changed gravitational acceleration vector is again received by the control unit 6 and stored as the vector {right arrow over (g)}.sub.1. The direction of the axis of rotation is stated in the internal coordinate system through
{right arrow over (r)}={right arrow over (g)}.sub.o{right arrow over (g)}.sub.1
and is calculated in step S5.
(22) The vectors {right arrow over (g)}.sub.o and {right arrow over (g)}.sub.1 span a plane within the internal coordinate system in which all of the gravitational acceleration vectors occurring during the course of the rotation lie and to which the cross product {right arrow over (r)}={right arrow over (g)}.sub.o{right arrow over (g)}.sub.1 stands perpendicular. If the axis {right arrow over (r)} is not horizontal, then instead the gravitational acceleration vectors define a cone around the axis of rotation, and the cross products of gravitational acceleration vectors measured at different times have different directions which do not correspond with the direction of the axis, so that in this case the above formula does not apply. Since gravitational acceleration vectors {right arrow over (g)}.sub.o, {right arrow over (g)}.sub.0.5 and {right arrow over (g)}.sub.1 measured at the beginning, during and at the end of the rotation all have the same amount, their differences are however perpendicular to the axis of rotation, so that in this case the direction of the axis of rotation within the internal coordinate system can be obtained through
(23)
(24) Thus, at the end of the rotation the normalised acceleration vector {right arrow over (g)}.sub.1 within the internal coordinate system K corresponds to the z-unit vector in the external coordinate system K, {right arrow over (r)} corresponds to the x-unit vector and {right arrow over (g)}.sub.1{right arrow over (r)} corresponds to the y-unit vector.
(25) In the next step S6, the control unit 6 determines the coordinate transformation (rotation matrix) T.sub.1 which transforms the internal coordinate system K into the external coordinate system K. The rotation matrix consists of the components of the unit vectors of K, i.e. if the vectors have the following components in Cartesian representation within the internal coordinate system K
(26)
then the rotation matrix for the coordinate transformation is obtained through
(27)
(28) The control unit 6 is now in a position to correctly process inputs entered by the user on the head 9 such as applying a pulling or pushing force or a torque. For this purpose it receives, in the step S7, the vectorial control parameter {right arrow over (d)} detected by the sensor 12 within the internal coordinate system, in step S8 calculates from this, through application of the coordinate transformation T, a corresponding input {right arrow over (d)}=T.sub.1{right arrow over (d)} within the external coordinate system and then in step S9 actuates a movement in the corresponding direction {right arrow over (d)}.
(29) If the control parameter {right arrow over (d)} entered by the user is a force, then in step S9 the control unit 6 initiates a translation of the object 1 in the direction of the transformed force {right arrow over (d)}. If the control parameter {right arrow over (d)} is a torque, then it initiates a rotation of the object 1 around an axis oriented in the direction {right arrow over (d)}. If the sensor 12 is designed to register force and torque simultaneously, the movement of the object 1 initiated by the control unit 6 can also be a superposition of translation in the direction of the force and rotation around the axis specified by the direction of the torque.
(30) If the movement of the object 1 initiated in step S9 is a pure translation, it has no effect on the coordinate transformation T.sub.1. If the movement initiated in step S9 is a rotation, then during the course of the movement the coordinate transformation T is also updated through multiplication by the coordinate transformation R representative of the rotation:
T.sub.n+1=RT.sub.n,
in order to ensure that at any time a control parameter {right arrow over (d)} detected in the internal coordinate system is transformed correctly into the external coordinate system and can be taken into account in the further control of the movement.
(31)
(32) During the acceleration phase, the acceleration acting on the sensor 15 is measured again and, in step S4, stored as {right arrow over (g)}.sub.1 in the control unit 6. The direction of the acceleration in the internal coordinate system {right arrow over (a)} is calculated in step S5 as the difference between {right arrow over (g)}.sub.1 and {right arrow over (g)}.sub.o.
(33) If, towards the end of the test movement, the object 1 is subjected to an acceleration {right arrow over (a)} opposite to the direction of the test movement, the then resulting overall acceleration detected by the acceleration sensor 15 can if desired also be measured and stored as {right arrow over (g)}.sub.2 in order subsequently to calculate the direction of the acceleration in the internal coordinate system {right arrow over (a)} from the difference {right arrow over (g)}.sub.1{right arrow over (g)}.sub.2.
(34) With the vectors {right arrow over (g)}.sub.0 and {right arrow over (a)}, the z- and x-unit vectors of the external coordinate system K in the representation of the internal coordinate system are known. The y-unit vector is derived as {right arrow over (g)}.sub.1{right arrow over (r)}. The determination of the coordinate transformation T, which transforms the coordinate system K into the external coordinate system, takes place in the same way as in the method represented in
(35) The updating of the coordinate transformation T necessary in the case of a rotation of the object 1 can, if numerous rotations are carried out in succession on the object 1, lead to errors, with the consequence that the direction in which the object 1 is moved by the control unit 6 or the axis around which it is rotated no longer corresponds exactly with the direction of the force applied by the user to the input tool 7 or the direction of the applied torque.
(36) In order to avoid such deviations, in the method according to
(37) Errors in the transformation T which only affect the x- and y-components of the transformation result, i.e. a deviation between a purely horizontally oriented vector of the control parameter {right arrow over (d)} and the movement direction {right arrow over (d)} derived from this by the control unit 6, remain unnoticed in the step S10 described above.
(38) Such deviations can be detected and remedied with the method according to
(39) In the case that the movement is a translation in the direction {right arrow over (d)}, as described with reference to step S5 of
(40) If it is established in step S12 that these directions correspond with sufficient accuracy, the method returns directly to step S7 in order to process a further input by the user; in the event of a significant deviation, the coordinate transformation T is corrected in step S13. Such a correction can involve rejecting the previously used transformation T and, based on the direction {right arrow over (d)} known in the external coordinate system and the resulting acceleration {right arrow over (a)} in the internal coordinate system measured in step S11, determining an updated coordinate transformation T*.sub.n+1, for which
(41)
applies; however, a weighted total of T.sub.n and T*.sub.n+1 can for example also be used as the updated transformation T*.sub.n+1. In order to allow T*.sub.n+1 to be determined unequivocally, analogously to the procedure described above with reference to step S6, a current measured value for the gravitational acceleration {right arrow over (g)}.sub.o in the internal coordinate system K should be available; this can for example be measured in a step S8 immediately before the beginning of the movement of the object in step S9.
(42) In a corresponding manner, if the movement in the direction {right arrow over (d)} is a rotation, following completion of the rotation the gravitational acceleration vector {right arrow over (g)} is measured again (S14), a resulting orientation of the axis of rotation {right arrow over (r)} in the internal coordinate system is calculated (S15) and the correspondence of its direction to the direction of the input {right arrow over (d)} entered on the input tool 7 is checked (S16) in order to make a correction in step S17 in the event of an excessive deviation.
(43) Optionally, if a significant deviation is determined in step S12 or S16 it can be checked whether an error is present which cannot be remedied through a correction of the coordinate transformation. Such an error occurs, for example, if the input tool 7 has fallen off or been removed from the object 1, if the communication between the input tool 7 and the control unit 6 was interrupted or the input tool 7 has failed. In response to such a detected error the procedure would be discontinued and an error status signal displayed to the user.
(44) It can be checked whether the input tool 7 is attached to the object 1 through a comparison between the acceleration detected by the sensor 15 and the acceleration value for actuation of the end effector 5 resulting from the control command from the control unit 6. For this purpose the control unit 6 determines the deviation between the measured acceleration, corrected to take into account gravitational acceleration, and the acceleration calculated from the control command. If the deviation exceeds a particular threshold value, it can be concluded from this that the input tool 7 is no longer firmly connected with the object 1.
(45) If the input tool 7 was removed from the object 1 or if the input tool 7 has fallen off the object 1, it will no longer move along with the object in the event of a movement of the object 1. Consequently, the sensor 15 of the input tool 7 will not detect any acceleration caused through a movement of the object 1. In other words the values detected by the sensor 15, corrected to take into account gravitational acceleration, assume the value zero and maintain this value, even if the end effector 5 or the object 1 is moved. If the control unit 6 receives from the input tool 7 a measured value, corrected to take into account gravitational acceleration, of zero, and if the end effector 5 or the object 1 is moved at the same time, the control unit 6 can interpret this as an error.
(46) The communication between the input tool 7 and the control unit 6 can be monitored continuously in that the input tool 7 transmits a continuous test signal to the control unit 6. If no test signal is received by the control unit 6, this can be recognised as an interruption in the communication.
(47) A failure of the input tool 7 caused by a defective sensor 15 can be recognised by checking the acceleration signal resulting from the gravitational acceleration g. If the amount of the acceleration vector g or g deviates from approx. 9.81 (m/s.sup.2), or if the direction of the acceleration vector g detected in the internal coordinate system (while the robot is stationary) differs from a direction which is to be expected on the basis of the gravitational field, then this can be interpreted as a failure of the input tool 7. The test routine can be carried out by the control unit 6.
REFERENCE NUMBERS
(48) 1. object 2. robot arm 3. base 4. member 5. end effector 6. control unit 7. input tool 8. base 9. head 10. end face 11. strips of adhesive tape 12. sensor 13. rod 14. sensor component 15. sensor 16. radio interface 17. radio interface 18. accumulator 19. switch 20. button