METHOD FOR CONTROLLING A ROBOT
20190381658 · 2019-12-19
Inventors
Cpc classification
G05B2219/39081
PHYSICS
B25J9/1664
PERFORMING OPERATIONS; TRANSPORTING
International classification
Abstract
A system and method are provided for controlling a robot for automatic positioning of a tool in a predetermined target pose. A six dimensional pose of a robot flange corresponding to the target pose is determined. An expanded kinematics of the robot is created by augmenting it with a virtual joint arranged in the tool. The virtual joint makes possible a restriction-free virtual rotation about a predetermined axis of the tool. From the six dimensional pose of the robot flange and the expanded kinematics, a path is determined by an automatic path planning module, in accordance with which the six dimensional pose of the robot flange may be moved to from an initial pose of the robot. Conflicts with a maximum physical scope of movement of the robot occurring during this process are resolved by a rotation of the virtual joint.
Claims
1. A method for controlling a robot for automatic positioning of a tool in a target pose, the robot including a movable robot arm that includes a robot flange on an end side, on which the tool is held, the method comprising: specifying three dimensional space coordinates of a reference point of the tool, of an axis of the tool, and of an orientation of the axis as part of the target pose for the tool; determining a six dimensional pose of the robot flange corresponding to the target pose of the tool; augmenting a predetermined kinematics of the robot with a virtual joint arranged in the tool that provides a virtual restriction-free rotation about the predetermined axis of the tool; providing the six dimensional pose of the robot flange and the expanded kinematics to an automatic path planning module; and determining, by the automatic path planning module, a path in accordance with which the six dimensional pose of the robot flange may be moved to from the current initial pose of the robot; wherein any conflicts occurring during the move with a maximum physical scope of movement of the robot are resolved automatically by a rotation of the virtual joint.
2. The method of claim 1, further comprising: transferring the path determined automatically to a control device of the robot; and activating the robot automatically the control device in accordance with the path determined, so that the robot flange arrives at the pose determined and the tool arrives at the predetermined target pose.
3. The method of claim 1, wherein that current values of joint variables of real joints of the robot in the initial pose are determined automatically, a first set of joint variables is provided as part of the expanded kinematics, and a second set of joint variables is determined by the automatic path planning module as part of the path, wherein the first set refers to the virtual joint and the second set to target values of the respective joint variables corresponding to the predetermined target pose.
4. The method of claim 1, wherein determining the path further comprises using a center point of the tool as the position of the virtual joint.
5. The method of claim 1, wherein a tip of the tool facing away from the robot flange is used as the reference point of the tool.
6. The method of claim 1, wherein determining the path further comprises using a virtual connecting element that connects the virtual joint to the reference point or to a tip of the tool facing away from the robot flange.
7. The method of claim 1, wherein the reference point of the tool is the position of the virtual joint.
8. The method of claim 1, further comprising: transferring an ancillary condition is transferred to the automatic path planning module that is complied with automatically by the automatic path planning module when the path is determined by at least one virtual rotation of the virtual joint provided no conflict with a physical limitation of the robot occurs.
9. The method of claim 8, wherein the ancillary condition is a property of a pose of the robot arm when the tool reaches the target pose.
10. A non-transitory computer implemented storage medium that stores machine-readable instructions executable by at least one processor to control a robot for automatic positioning of a tool in a target pose, the robot including a movable robot arm that includes a robot flange on an end side, on which the tool is held, the machine-readable instructions comprising: specifying three dimensional space coordinates of a reference point of the tool, of an axis of the tool, and of an orientation of the axis as part of the target pose for the tool; determining a six dimensional pose of a robot flange corresponding to the target pose of the tool; augmenting a predetermined kinematics of the robot with a virtual joint arranged in the tool that provides a virtual restriction-free rotation about the predetermined axis of the tool; and determining a path in accordance with which the six dimensional pose of the robot flange may be moved to from the current initial pose of the robot; wherein any conflicts occurring during the move with a maximum physical scope of movement of the robot are resolved automatically by a rotation of the virtual joint.
11. A robot comprising: a movable robot arm comprising a robot flange for holding a tool on an end side; and a control device comprising an interface for receiving specifications, a data memory and a processor device connected to the data memory and to the interface for executing the program code stored in the data memory comprising instructions to: specify three dimensional space coordinates of a reference point of the tool, of an axis of the tool, and of an orientation of the axis as part of the target pose for the tool; determine a six dimensional pose of a robot flange corresponding to the target pose of the tool; augment a predetermined kinematics of the robot with a virtual joint arranged in the tool that provides a virtual restriction-free rotation about the predetermined axis of the tool; and determine a path in accordance with which the six dimensional pose of the robot flange may be moved to from the current initial pose of the robot; wherein any conflicts occurring during the move with a maximum physical scope of movement of the robot are resolved automatically by a rotation of the virtual joint.
Description
BRIEF DESCRIPTION OF THE FIGURES
[0023]
[0024]
DETAILED DESCRIPTION
[0025]
[0026] An optical marker 9 attached to the tool 7 is depicted. The marker 9 may be detected by a detection device, for example by a camera, in order to determine or to trace a current orientation of the marker 9 and thus of the tool 7 in each case from any perspective. Furthermore, a control device 10 connected to the robot 1 is depicted schematically. The control device 10 may be part of the robot 1. The control device 10 includes a user interface 11, via which user inputs or specifications may be received. The control device 10 includes a data processing unit not shown, that processes inputs or specifications received via the user interface 11 and may create a corresponding control signal for the robot 1 and may activate the robot 1 in accordance with the control signal.
[0027] For orientation or illustration a few Cartesian coordinate systems are depicted here, that may be taken into account or used in the control of the robot 1 or when determining or creating the control signal for the robot 1. In the present example the coordinate systems are a basic coordinate system 12, of which the origin is arranged on the robot foot 2. The basic coordinate system 12 is rotationally and positionally fixed relative to the robot foot 2. Depicted on the robot flange 5 is a flange coordinate system 13, that specifies a pose of the robot flange 5 or in which a pose of the robot flange 5 may be expressed without further coordinate transformations. Depicted at a tip of the tool 7 facing away from the robot flange 5 is a tool coordinate system 14. An origin of the tool coordinate system 14 coincides with the tip of the tool 7 and a z-axis z.sub.r of the tool coordinate system 14 coincides with the axis of symmetry 8 of the tool 7. Through the or on the basis of the orientations of the x- and y-axes x.sub.r or y.sub.r of the tool coordinate system 14 a rotation or angular setting of the tool 7 about the axis of symmetry 8, i.e. about the z-axis z.sub.r of the tool coordinate system 14, may be specified or described. Also indicated is a target pose 16 for the tool 7 by corresponding orientations of the x- and y, axes of the tool coordinate system 14, here designated as x.sub.v or y.sub.v respectively.
[0028] The ultimate aim is to control or move the robot 1 so that the tool 7 will be positioned in accordance with the target pose 16. To this end a pose for the robot flange 5 corresponding to the target pose 16 for the tool 7 is found. The robot 1 may be positioned automatically so that the tool 7 arrives at or is transferred to the target pose 16. When the target pose 16 is reached, a needle may be guided for example through the tool 7 along the axis of symmetry 8, to reach a specific target point from a specific direction. Although the rotation or angular setting of the tool 7 about the axis of symmetry 8 is ultimately of no significance, the corresponding pose of the robot flange 5 must however be determined completely, i.e. in six dimensions. Finding such a six dimensional pose for the robot flange 5 on the basis of a predetermined 5D pose for the tool 7 is however an open problem with potentially a plurality of possible solutions, that may be problematic in respect of computation speed for example.
[0029]
[0030] The method begins in a method step S1. Here the robot 1 or the control device 10 may be activated. The coordinate systems 12, 13, 14 may be predetermined or defined. Furthermore, a kinematics model of the robot 1 may be provided. The control device 10 may determine a current pose, i.e. a respective initial pose, of the robot 10, for example by interrogating current joint settings or joint variables of the joints Q of the robot 1.
[0031] In a method step S2 the target pose 16 is predetermined, by 3D space coordinates of a reference point 15 of the tool 7in the present case of the tip of the tool 7 facing away from the robot flange 5and an orientation of the axis of symmetry 8, i.e. of the z-axis zr of the tool coordinate system 14, may be predetermined or defined.
[0032] In a method step S3 an expanded kinematics of the robot 1 is created, by a predetermined kinematics of the robot 1 being augmented by a virtual joint 17 and a virtual connecting element 18. The predetermined kinematics describes a behavior of the real joints 4 of the robot 1. The virtual joint 17 on the other hand does not exist on the real robot 1. The virtual joint 17 makes possible virtually, i.e. in a corresponding model, a restriction-free rotation about the axis of symmetry 8. The virtual connecting element 18 connects the virtual joint 17 to the reference point 15, i.e. to the tip of the tool 7.
[0033] In a method step S4 a six dimensional pose for the robot flange 5 corresponding to the predetermined target pose 16 is determined.
[0034] The predetermined target pose 16 and the corresponding six dimensional pose for the robot flange 5 are provided to an automatic path planning module of the control device 10.
[0035] In a method step S5 a predetermined ancillary condition for a pose of the robot 1, that the robot 1 assumes is predetermined for the automatic path planning module when it has positioned the tool 7 in the predetermined target pose 16.
[0036] In a method step S6, taking into account the ancillary condition, the expanded kinematics and the six dimensional pose for the robot flange, a path is determined by the automatic path planning module, in accordance with which the six dimensional pose of the robot flange 5 determined may be moved to or set from the initial pose of the robot 1. Let q=(q.sub.1, q.sub.2, . . . , q.sub.n).sup.n be a vector, that specifies the joint variables of the real joint 4 of the robot 1. In the present example the robot 1 is to be a lightweight robot with seven joints 4, so that n=7 applies. Let
.sup.n+1 further be a vector, that specifies or represents the joint coordinates of the expanded kinematics. The virtual joint 17 is thus introduced or expanded by q.sub.v
. By application methods known per se in the area of robot control, the automatic path planning module may generate a path (q*, q.sub.v*)
.sup.n+1, through which the robot 1 is moved with expanded kinematics so that the z-axis z.sub.r of the tool coordinate system 14, i.e. the axis of symmetry 8, and the position of the reference point 15 corresponds to the predetermined target pose 16. In accordance with the virtual, i.e. expanded kinematics, the virtual connecting element 18 may be rotated or will be rotated in any given manner, e.g. without limitations or physical restrictions, about the z-axis z.sub.r. The automatic path planning module insures however that the portion q* of the path determined or generated for the real robot is able to be executed, i.e. does not lead to conflicts with physical limitations, for example a maximum scope of movement, of the real robot 1.
[0037] When the portion q* has been determined, as part of the determination of the path in a method step S7, a virtual rotation 20 of the virtual connecting element 18 about the virtual joint 17 or about the z-axis z.sub.r respectively, indicated here by a corresponding arrow, is carried out, until an orientation of the x- and y-axes x.sub.r, y.sub.r of the tool coordinate system 14 corresponds to the orientations of the predetermined orientations x.sub.v, y.sub.v, so that the tool coordinate system 14 has thus reached the target pose 16. Through the concluding rotation 20 the predetermined target pose 16 is thus reached and even occurs if this could not be reached by the real robot 1, since for example an adjustment scope of the virtual rotation 20 cannot be realized through a limited maximum physical scope of movement of the robot 1. Through the virtual rotation 20 the predetermined target pose 16 may thus still be reached by utilizing the free adjustability of the virtual joint 17.
[0038] In a method step S8 a control signal corresponding to the path (q*, q.sub.v*) determined is created by the control device 18 and output to the robot 1, so that the robot flange is moved into the six dimensional pose and thus the tool 7 is moved into the predetermined target pose 16. The virtual rotation 20 does not actually have to be carried out for real, since as a result of the at least functional rotational symmetry of the tool 7 in relation to the predetermined axis of symmetry 8, the target pose 16 of the tool will be effectively, i.e. functionally, reached or set independently of the tool 7 rotation 20 or angular setting in relation to the axis of symmetry 8. The method may be applied in a similar way for tools or other objects, that also do not have to be rotationally symmetrical. It may be sufficient for a respective axis to be predetermined or defined. Rotation about the predetermined axis will then be deemed or treated as irrelevant or insignificant or random, i.e. freely selectable or settable. The object is thus achieved of positioning the tool 7 effectively in the predetermined target pose 16. Since the virtual rotation 20 is not carried for real on the tool, the marker 9 will also not be rotated as well. This provides the marker 9 to remain with a higher probability in a field of vision of a corresponding detection device, i.e. to be tracked more reliably. Likewise, the tool 7 may be held for example rotatable about the predetermined axis 8 by the robot 1, for example, on the robot flange 5 or on the tool holder 6. The tool may then be moved manually for example by a user or operator after the positioning of the tool 7 in the predetermined target pose 16 into a desired rotational or rotational position. The method may be employed, if for the respective user or operator a rotation or rotational position of the tool 7 about a specific axis is not significant, i.e. freely selectable or random and thus is not subject to any restrictions.
[0039] Provided the tool 7 may be positioned by the robot 1 in the predetermined target pose 16 at all in any manner, a real implementable or executable solution for a corresponding control of the robot 1 is thus found. The last element q.sub.v* of the path defined compensates where necessary for rotations about the z-axis z.sub.r physically not able to be carried out by the real robot 1, so that the path planning module may determine the portion q* corresponding to the real robot 1 with greater flexibility and reliability, so that the real robot 1 has to carry out rotations about the z-axis z.sub.r actually able to be carried out physically, in order to position the tool 7 in the predetermined target pose 16 free from collisions and conflicts.
[0040] It is to be understood that the elements and features recited in the appended claims may be combined in different ways to produce new claims that likewise fall within the scope of the present invention. Thus, whereas the dependent claims appended below depend from only a single independent or dependent claim, it is to be understood that these dependent claims may, alternatively, be made to depend in the alternative from any preceding or following claim, whether independent or dependent, and that such new combinations are to be understood as forming a part of the present specification.
[0041] While the present invention has been described above by reference to various embodiments, it may be understood that many changes and modifications may be made to the described embodiments. It is therefore intended that the foregoing description be regarded as illustrative rather than limiting, and that it be understood that all equivalents and/or combinations of embodiments are intended to be included in this description.