The present invention relates to a programming means and a method for programming synchronized movements of robots.
In particular, for process reasons it may be desirable or necessary that two or more robots take up pre-set positions at the same time, for example, to handle together a workpiece, in particular to process it, or to pass it to each other.
In this context,
Based on this section-wise, forward-moving approach, the so far known programming means for programming synchronized movements necessarily provides for a strictly 1:1 bijective assignment of positions of the robots: every given position of a movement of a robot must be associated with a position of the movement of the other robot.
If, for instance, a further position is to be specified between two synchronized positions of a robot, such as to avoid collision, one must therefore also accordingly program for the other robot an actually unnecessary—dummy—position and synchronize it with the latter. This is not only complicated and error-prone, but it also unnecessarily restricts the flexibility of the other robot, such as the possibility to vary its movement for optimization.
The technical task of the present invention is to improve the programming of synchronized robot movements.
Programming means in the context of the present invention can be configured by hardware and/or by software. It may in particular comprise, or in particular be, a program or a program module, a computer that is adapted for executing such a program, and/or a volatile or non-volatile storage medium, in particular a disc, on which such a program is stored. The programming means may in particular be formed by a corresponding lexicon or a corresponding lexicon or syntax of available commands or input options.
The said programming means allows to specify a movement of a robot axis arrangement and a movement of one or more additional robot axis arrangements.
In the present case, under a robot axis we understand in particular a joint axis of a robot, in particular an axis of rotation and a Cartesian axis and a movement axis in the working space of a robot. A (further) robot axis arrangement according to the present invention can comprise one or a plurality of robot axes of one or more robots. In a development, a (further) robot axis arrangement comprises one or more front axes of a robot, a (further) robot axis arrangement comprises one or more rear axes of this robot, in each case based on the kinematic chain formed by the robot basis. Thus, in a further development, a (further) robot axis arrangement can comprise one or more hand axis (rear axis) of a robot, in particular its fourth, fifth and/or sixth axis, a (further) robot axis arrangement can comprise its Cartesian or position axes, in particular its first, second and/or third axis (front axis). In particular, in an embodiment, a robot axis arrangement that represents an orientation of a TCP can be synchronized with a robot axis arrangement that represents a position of the TCP. Additionally or alternatively, a (further) robot axis arrangement can comprise one or more additional axes of a robot, in particular a seventh or further axes. According to an embodiment of the present invention, according to the shown example of application, a (further) robot axis arrangement can be a robot, a (further) robot axis arrangement can be another robot [sic]. In particular, more than two robot axis arrangements, in particular robots, can be synchronized.
Under programming a movement we understand in particular creating, modifying, saving, compiling, transferring to a controller, and/or executing a command sequence upon the execution of which the robot axis arrangements take up successively prescribed positions. In an embodiment, the movements of two or more robot axis arrangements can be provided by one or a plurality of controllers. For example, two robots can be respectively controlled by separate controllers, wherein the synchronization can be implemented by appropriate programming of the movements and communication of the controllers.
In an embodiment of the present invention, it is provided to synchronize by the programming means a pair of positions of the movement of the robot axis arrangement and a pair of positions of the movement of at least one other robot axis arrangement. In the present case, under a pair of positions we understand in particular two positions of movement of a (further) robot axis arrangement. In addition, other positions can be synchronized with each other, wherein in the movement two successive positions can form a pair of positions in accordance with the present invention, between which the movements of the two robot axis arrangements in the sense of the present invention are synchronized.
According to the invention, it is so provided in the method and the programming means are so designed as to selectively specify at least one other position between one of these pairs of positions while maintaining the synchronization, which additional position is not synchronized with another position between the pair of positions. It can, in particular, be provided that there does not exist another corresponding position at all between the thus synchronized pair of positions. Similarly, it can be provided in particular that there is at least one more corresponding position between the thus synchronized pair of positions, or at least is available, which however is not or need not be synchronized with the other position, which can selectively be programmed between the one pair of positions. In other words, the invented solution provides to cancel the former strictly bijective 1:1 assignment of positions in synchronized movements and to permit unrestricted assignment of synchronized positions.
In comparison to the previously known internal practice, the movement of the robot axis arrangement, in which according to the invention no more synchronized position is pre-determined, can thereby be advantageously improved, in particular can be flexibly optimized.
The invention may be implemented in various ways. So, for example, according to an embodiment the previous method can be further developed in that there is provided the option to optionally specify further not synchronized positions between the synchronous pairs of positions, and then, or after such programming, to the previous path or movement planning is executed completely from scratch.
In contrast, in an alternative, at least a movement, in particular all movements of the robot axis arrangements to be synchronized with each other can be programmed onward globally, i.e., not as previously in sections. This can be carried out in particular on the basis of spline functions, especially cubic splines or hermit splines. Although these are defined in sections, they define by their transition conditions the movement as a whole and globally. Accordingly, other global programming by other, also insofar globally defined functions or relations, such as polynomials, are conceivable, although—compared to spline functions—these tend to lead to a swinging.
If one or more movements are globally predefined, with the programming of other not synchronized positions between the synchronous pairs of positions, the movement planning advantageously need not be run from the beginning.
A globally specified movement can be or become specified between a start position and an end position, between which optionally one or more pairs of positions synchronous with positions of other movements and one or more synchronous positions can be specified. Here, a pair of positions, which is synchronized with a pair of positions of a movement of at least one other robot axis arrangement, corresponds to this start position and the end position, i.e., these robot axis arrangements begin and end their movements together. Similarly, a pair of positions, which is synchronized with a movement of at least a pair of positions of another robot axis arrangement, can be disposed between the starting position and the end position, i.e., the robot axis arrangements execute their movements only partially synchronously with each other.
In an embodiment, it is provided to selectively modify, in particular to cancel the synchronization between the pairs of positions of the movements of two or more robot axis arrangements. Additionally or alternatively, it can be provided in an embodiment to synchronize the positions of the movements of two or more robot axis arrangements, in particular the positions, which are arranged between a pair of positions, which is synchronized with at least one pair of positions a movement of another robot axis arrangement. In particular, therefore, as stated above, while maintaining a synchronization of an (outer) pair of positions of a movement of a robot axis arrangement and an (outer) pair of positions of at least one other robot axis arrangement, there can be selectively specified one or more positions between one of these pairs of positions, of which one or more positions can be synchronized with another position between the hereby synchronized pairs of positions. In other words, between two or more (outer) pairs of positions that are synchronized with each other, there can be specified one or more positions for one or more movements and selectively various of these positions can be synchronized or also not be synchronized with positions of the movements of other robot axis arrangements. This maximizes the flexibility of the programming of movements and advantageously allows their further optimization.
In an embodiment, the positions of movements of two or more robot axis arrangements can be synchronized with each other, where no exact stop is specified. In particular by a shift from progressing in sections to a global programming allows synchronizing any positions of these movements with each other, which further increases the flexibility.
Other advantages and features will become apparent from the dependent claims and the embodiments. This is shown, partially in schematic form as follows:
These start and end positions together form synchronized outer pairs of positions. By an inventive programming means or by a method according to the invention, on these spline functions there can be optionally specified further positions, for example, the positions (as depicted in
WITH $Sync_id[ ]=Mj
with the identical identification Mj in all movements sequences of commands, while other positions q1_2, q2_2 and q2_4 can be specified—while maintaining this synchronization—either between these pairs of positions (q1_0, q2_0, q3_0; 20 q1_1, q2_1, q3_1), (q1_1, q2_1, q3_1; q1_3, q2_3, q3_2) and (q1_3, q2_3, q3_2; q1_4, q2_5, q3_3), in particular between the outer pairs of positions (q1_0, q2_0, q3_0; q1_4, q2_5, q3_3) that are not synchronized with another position between another movement.
One can see that, for example, by the optional programming of unsynchronized positions q1_2, q2_2 and q2_4, the movements of the robot axes q1, q2 can be changed without requiring, as was the case previously, any synchronous dummy positions to be specified in the movement especially of the robot axis q3. Without such dummy positions, whose programming is complex and error-prone, the movement of the robot axis q3 can be particularly flexibly—and thus better—optimized.
By way of example, let us explain an implementation: the first three movements can be specified, for example, using the path parameters sj, on which the spline functions are defined:
qj=q(sj)
Then these path parameters sj can be so determined that the preset positions to be synchronized are present at the same time:
sj(t) so that qj(sj(Ti))=qk_i for (i, k)={1, 2, 3};
In this way, optionally other positions can be specified by the global programming of movements based on spline functions. If these are to be synchronized, this can be achieved by additional conditions stated above, without the need to be partially synchronized from the beginning onward and thereby specifying dummy positions. Similarly, existing synchronizations can be cancelled. In particular, while maintaining the external synchronization optionally further positions can be specified between the outer pairs of positions, which are not synchronized with other positions of a movement of another robot axis.
It is evident that, in addition, no holds need to be specified for the positions to be synchronized—rather, in the synchronization times Ti . . . a non-zero path velocity d(sj)/dt can be available, in particular be specified.
Number | Date | Country | Kind |
---|---|---|---|
10 2012 012 184 | Jun 2012 | DE | national |
Number | Name | Date | Kind |
---|---|---|---|
4663726 | Chand et al. | May 1987 | A |
4772831 | Casler, Jr. | Sep 1988 | A |
4773025 | Penkar | Sep 1988 | A |
4794540 | Gutman | Dec 1988 | A |
5140236 | Kawamura et al. | Aug 1992 | A |
5254923 | Kanitani | Oct 1993 | A |
20040199290 | Stoddard et al. | Oct 2004 | A1 |
20100008754 | Hartmann | Jan 2010 | A1 |
Number | Date | Country |
---|---|---|
1140119 | Jan 1997 | CN |
1382564 | Dec 2002 | CN |
1406781 | Apr 2003 | CN |
0 417 337 | Mar 1991 | EP |
8900306 | Jan 1989 | WO |
Entry |
---|
Sujan et al., “Visually Guided Cooperative Robot Actions Based on Information Quality”, 2005, Spring Science + Business Media, Inc., Autonomous Robots 19, pp. 89-110. |
German Patent Office; Search Report in German Patent Application No. 10 2012 012 184.9 dated Feb. 26, 2013; 8 pages. |
ABB Robotics; Publication Entitled “Anwendungshandbuch MultiMove” dated 2011; 112 pages. |
ABB Robotics; Publication Entitled “Bedienanleitun RobotStudio” dated Oct. 2011; 554 pages. |
Chinese Patent Office; Search Report/Examination Report in Chinese Patent Application No. 201310041373.9 dated Jul. 27, 2015; 20 pages. |
European Patent Office; Search Report in related European Patent Application No. 13003132.1 dated Dec. 12, 2017; 8 pages. |
Christina Brelin; Publication entitled Team-mates, ABB Multimove Functionality Heralds A New Era in Robot Applications dated Jan. 2005; 4 pages. |
Number | Date | Country | |
---|---|---|---|
20130345867 A1 | Dec 2013 | US |