Moving Along A Predetermined Path With A Robot
20180178383 ยท 2018-06-28
Assignee
Inventors
- Stefan Burkhart (Dillingen, DE)
- Andreas Hagenauer (Friedberg, DE)
- Manfred Huettenhofer (Meitingen, DE)
- Robert Schreittmiller (Statzling, DE)
Cpc classification
G05B2219/39433
PHYSICS
B25J9/1664
PERFORMING OPERATIONS; TRANSPORTING
B25J9/1666
PERFORMING OPERATIONS; TRANSPORTING
G05B2219/40521
PHYSICS
Y10S901/49
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
B25J9/1669
PERFORMING OPERATIONS; TRANSPORTING
G05B2219/40371
PHYSICS
International classification
Abstract
A method for moving along a predetermined path with a robot in an at least a partially automated manner includes determining a deployment position on a current path section of the predetermined path for which a distance parameter satisfies a predetermined condition, and moving to the deployment position with the robot. In one aspect, the robot may be moved to the deployment position if a deployment condition is satisfied. The distance parameter may be determined on the basis of a distance of a current position of the robot relative to the current path section. The predetermined condition may be that the distance parameter has a value that is less than or equal to the values of the distance parameter of all positions in a partial area of the current path section, which is in particular complementary to the deployment position.
Claims
1-13. (canceled)
14. A method for moving along a predetermined path with a robot in an at least a partially automated manner, the method comprising: determining a deployment position on a current path section of the predetermined path for which a distance parameter satisfies a predetermined condition, wherein the distance parameter is defined on the basis of the distance of a current position of the robot relative to the current path section; and moving into the deployment position with the robot.
15. The method of claim 14, wherein at least one of: the distance parameter satisfies the condition when the value of the distance parameter is less than or equal to the values of the distance parameters of all positions in a partial area of the current path section; or moving into the deployment position comprises moving the robot if a deployment condition is satisfied.
16. The method of claim 15, wherein the partial area of the current path section is complementary to the deployment position.
17. The method of to claim 14, wherein the deployment condition comprises a deviation of the current position of the robot from the current path section.
18. The method of claim 14, wherein the deployment condition comprises a deviation of a stored return position of the robot from the current path section.
19. The method of claim 18, wherein the deployment condition comprises a deviation of a return position that is stored upon an interruption of the movement along the predetermined path.
20. The method of claim 14, further comprising: predetermining the current path section by modifying a stored path section of the predetermined path.
21. The method of claim 20, wherein the stored path section is modified by substitution of the stored path section.
22. The method of claim 14, further comprising; predetermining the current path section by jumping to a stored path section of the predetermined path.
23. The method of claim 14, further comprising: moving to the deployment position on a linear path in a work space or a joint coordinate space.
24. The method of claim 14, further comprising: moving the robot on the current path section from the deployment position to an end position of the current path section.
25. A method for at least partially automated synchronized movement along a predetermined path group with at least two robots, the method comprising: moving a first robot along a predetermined first path of the path group according to the method of claim 14; and moving a second robot along least one second predetermined path of the path group in synchronization with the movement of the first robot.
26. The method of claim 25, further comprising: synchronizing a second deployment position of the second robot on the second predetermined path with the deployment position of the first robot; and moving the second robot into the second deployment position.
27. The method of claim 26, wherein moving the second robot into the second deployment position comprises moving the second robot on the second path or on a linear path in a work space or a joint coordinate space.
28. A system for at least partially automated movement along a predetermined path with a robot, the system comprising: means for determining a deployment position on a current path section of the predetermined path for which a distance parameter satisfies a predetermined condition, wherein the distance parameter is defined on the basis of a distance of a current position of the robot relative to the current path section; and means for moving into the deployment position with the robot, in particular insofar as a deployment condition is satisfied.
29. The system of claim 28, wherein at least one of: the distance parameter satisfies the condition when the value of the distance parameter is less than or equal to the values of the distance parameters of all positions in a partial area of the current path section; or moving into the deployment position comprises moving the robot if a deployment condition is satisfied.
30. The system of claim 29, wherein the partial area of the current path section is complementary to the deployment position.
31. A system for at least partially automated synchronized movement along a predetermined path group with at least two robots, the system comprising: a system according to claim 28 for movement of a first one of the robots along a predetermined first path of the path group; and means for synchronized movement of a second one of the robots along at least one second predetermined path of the path group.
32. A robot assembly comprising at least one robot and a system according to claim 28.
33. A computer program product for moving along a predetermined path with a robot in an at least a partially automated manner, the computer program product having program code stored on a non-transitory computer-readable medium, the program code configured, when run on a robot controller, to cause the robot controller to: determine a deployment position on a current path section of the predetermined path for which a distance parameter that is defined on the basis of the distance of a current position of the robot relative to the current path section satisfies a predetermined condition; and move the robot into the deployment position.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0051] Other advantages and features arise from the subclaims and the exemplary embodiment examples. For this purpose, the following partly schematic figures show:
[0052]
[0053]
DETAILED DESCRIPTION
[0054]
[0055] By way of example, the robot setup comprises a first robot 10 having a controller 11 and a further robot 20 with a controller 21, which together form a system for implementing a method for the synchronized movement along the path group by the two robots 10, 20 according to an exemplary embodiment n of the present invention.
[0056] By way of example, the robots 10, 20 features six axes of motion (rotation), whose positions are described by the joint coordinates q.sub.1 , . . . , q.sub.1,6 or q.sub.2,1 , . . . , p.sub.2,6. These joint coordinates or the three-dimensional position and orientation of a TCP indicated by a dot-dash line in
[0057] A path for the first robot 10 is predefined or rather stored in its controller 11, whereby the path comprises successive path sections Y.sub.1,1 , . . . , Y.sub.1,3. Each of these path sections is predefined particularly by a corresponding command set of a control program stored in the controller 11, and has an end position or target position x.sub.1,e1, x.sub.1,e2 or x.sub.1,e3.
[0058] Analogously, a path for the further robot 20 is predefined or rather stored in its controller 21, whereby the path comprises successive path sections Y.sub.2,1 , . . . , Y.sub.2,3. Analogously, each of these path sections is predefined by a corresponding command set of a control program stored in the controller 21, and has an end position or target position x.sub.2,e1,x.sub.2,e2 or x.sub.2,e3.
[0059] The predefined paths {Y.sub.1,1 , . . . , Y.sub.1,3}, {Y.sub.2,1 , . . . , Y.sub.2,3}. are traversed synchronized in such a way that the robots 10, 20 simultaneously reach the end positions of the respective path sections. In other words, in the example exemplary embodiment, the end positions are generically selected as synchronized/synchronization positions.
[0060] By way of example, the movement along the path sections was interrupted and the saved path section Y.sub.2,1, just traversed by robot 10, was modified to a new path section Y.sub.2,1; which is indicated by dashed lines in
[0061] The current path section Y.sub.a2 of the second robot 20 is the (unchanged) saved path section Y.sub.2,2.
[0062] Due to this modification, the current position X.sub.a1 of the first robot 10 is no longer on this current path section Y.sub.a1.
[0063] An analogous situation could result from an operator commanding a jump of the set pointer in the control program of the first robot 10 or by manually controlling the first robot 10 to move to another position.
[0064] With reference to
[0065] In a first step S10, it is determined whether an interruption of the movement of the path group has occurred or not. If there is no interruption (S10: N), the system or method repeats step S10.
[0066] If there is an interruption (S10: Y), the system or method proceeds to step S20.
[0067] In this step it checks whether a current position x.sub.a of the respective robot is still on the current path section Y.sub.a or not, by determining whether there is a deviation of the current position of the robot from the current path section, and checks whether this deviation is below a first limit value.
[0068] As explained above with reference to
[0069] In this step it checks whether, when the interruption of the movement of the path group occurred, a stored return position x.sub.n, which in the exemplary embodiment example due to the modification of the path section respectively corresponds to the current position x.sub.a, is still on the current path section Y.sub.a or not, by determining whether there is a deviation of the saved return position of the robot from the current path section, and checks whether it is less than a second limit value.
[0070] As explained above with reference to
[0071] In this step, the system or the method determines for the first robot 10 a deployment position x.sub.n on the current path section Y.sub.a1 of the predetermined path for which the distance parameter d, which is determined on the basis of a distance of the current position x.sub.ai of the first robot 10 to the current path section Y.sub.a1, is minimal and thus smaller than the partial area x.sub.n of the current path section Y.sub.a1\x.sub.n that is complementary to the deployment position Y.sub.a1.
[0072] In the exemplary embodiment example, the distance parameter d, which in an exemplary embodiment is weighted by component, is the vector quantity d from the current position x.sub.ai to the current path section Y.sub.a1, which is perpendicular to the current path section Y.sub.a1, as indicated in
[0073] It should again be noted that the position x respectively describes the position and orientation of the TCP in six dimensions, so that for example the position can be in the joint angle space or axis space. Accordingly, d can be calculated particularly with d={square root over ((d.sub.1.sup.2+d.sub.2.sup.2+d.sub.3.sup.2+d.sub.4.sup.2+.sub.5.sup.2+d.sub.6.sup.2))} whereby d.sub.1 , . . . , d.sub.6 represent the components of the vector d in the joint angle space or axis space.
[0074] In the same manner, position x can, again purely by example, also encompass the three position coordinates, x, y, z, and the skew-symmetric part of the transformation matrix between the TPC and an environment-fixed base coordinate system, which describes the orientation of the TPC. Accordingly, the vector d can also be represented in the work space.
[0075] The deployment position x.sub.n can particularly also be found, or rather defined, by means of a hyperspherewhere appropriate, deformed by weighting factors or scaled in coordinate directionsaround the current position in a common space, in which the path is predetermined or in which it is transformed, and in which the current position is known or has been determined, which is continuously enlarged until it contacts the path for the first time, whereby the contact point is then the deployment position x.sub.n.
[0076] This is followed by a step S80, in which a first robot 10 moves along a linear path in the work space or joint coordinate space and moves into the deployment position x.sub.n, as soon as it, or rather the robot setup, receives a corresponding start command.
[0077] In a step S40, the first robot 10 is then driven from the deployment position to the end position x.sub.1,e2 of the current path section Y.sub.a1 on the current path section Y.sub.a1.
[0078] On the other hand, if the test in step S50 indicates that the return position x.sub.r, which was stored at the interruption of the movement along the path group, is still lying on the respective path section Y.sub.a (S50: Y) because the deviation of the stored return position of the current path section is less than the second limit value, for example, because the first robot 10 was only manually moved along the unaltered path section Y.sub.1, 2 from its stored return position x.sub.r to its current position x.sub.a, then, in a step S60, this return position x.sub.r is moved into by the robot along a linear path in the work space or joint coordinate space.
[0079] In step S40, the robot is then moved from the return position x.sub.r to the end position x.sub.e of the current path section on the current path section.
[0080] If the test in step S20 shows that the current position x.sub.a is still on the current path section Y.sub.a (S20: Y), then the system or the method continues with step S30.
[0081] As explained above with reference to
[0082] In step S30, the system or method checks whether a deployment position x.sub.n has been determined for another robot of the robot setup.
[0083] As explained above, this is the case with respect to the other robot 20, because the deployment position x.sub.n has been determined for the first robot 10.
[0084] Accordingly (S30: N), the system or method continues with step S90.
[0085] In this step, for the second robot 20 it determines a further deployment position x.sub.s for the further robot 20 on the further path {Y.sub.2,1, . . . Y.sub.2,3}, this further deployment position being synchronized to the deployment position x.sub.n of the first robot. This deployment position is determined such that the first robot 10, starting from its deployment position x.sub.n on its path {Y.sub.1,1,Y.sub.1,2,Y.sub.2,3} and the second robot 20, starting from its other deployment position x.sub.s, move along the further path {Y.sub.2,1 , . . . Y.sub.2,3}, and reach the respective next synchronization points x.sub.1,e2,x.sub.2,e2, at the same time.
[0086] Subsequently, in a step S100, the further robot on its further path {Y.sub.2,1, . . . Y.sub.2,3} moves into this further deployment position x.sub.s, as indicated in
[0087] From there, in a next step S40, the next end position is moved into, whereby in the example exemplary embodiment the end position and the synchronization position coincide for a more compact representation.
[0088] If in step S30 the system or the method detects that no deployment position x.sub.en has been determined for any other robots of the robot arrangement (S30: N), then the next position is moved into directly in step S40.
[0089] Although the preceding description explains exemplary embodiments, it should be noted that a large number of variations are possible.
[0090] Thus, the method was explained by example for two synchronized robot 10, 20.
[0091] If it is now performed for a single robot, for example, the first robot 10, then steps S30, S90 and S100 can be eliminated, or rather the next end position can be moved into directly if it is determined that the current position is still on the current path section (S20: Y).
[0092] In addition, or alternatively, step S50 can also be eliminated, i.e. if there is a deviation between the current position of the current path section, then a deployment position can be determined and moved intowhere applicable, only after a (further) start command has been received.
[0093] It should also be noted that the exemplary embodiments are mere examples only, and in no way at all do they limit the scope of protection, the applications and the structure. Rather, the specialist will find in the preceding description a guide for establishing at least one exemplary embodiment, whereby various changes, particularly with respect to the function and arrangement of the described components may be made without departing from the scope of protection as derived from the claims and these equivalent feature combinations.
[0094] 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
[0095] 10 (first) robot [0096] 11 Controller (system) [0097] 20 further robot [0098] 21 Controller (system) [0099] q.sub.ij Joint coordinates (i=1, 2; j=1 , . . . , 3) [0100] x.sub.a(1), [0101] x.sub.a2 current position [0102] x.sub.i,ej End position/Synchronization position (i=1, 2; j=1 , . . . , 3) [0103] Y.sub.ij Path section (i=1, 2; j=1 , . . . , 3) [0104] x.sub.n Deployment position [0105] x.sub.s synchronized further deployment position [0106] Y.sub.a(1), [0107] Y.sub.a2 current path section