This application is a § 371 National Phase of PCT/EP2016/073119, filed Sep. 28, 2016, the entirety of which is incorporated by reference and which claims priority to German Patent Application No. 10 2015 116 522.8, filed Oct. 13, 2015 and German Patent Application No. 10 2015 117 419.7, filed Oct. 13, 2015.
The present description relates, in general, to the field of industrial robots, and in particular to the controlling of numerous cooperating industrial robots.
In robot supported manufacturing, e.g. in the automobile industry, numerous industrial robots often work together simultaneously in a robot cell. For example, numerous robots machine a work piece simultaneously, attach other elements to it or carry out measurement or testing tasks on the work piece. While doing so, the operating areas of the individual robots may overlap, and for this reason the robots cannot be controlled independently of each other. Furthermore, there may be subordinate tasks to be carried out by the robots that depend on each other. This means that a robot may possibly have to wait to continue its operation until another robot has completed a certain subordinate task. Consequently, the robot controller cannot control the movements of the individual robots independently of each other, but instead the motion sequences of the individual robots must be coordinated.
Today, the motion sequences of robots can be either acquired online (“Teach-In” method or “Playback” method) or planned offline in detail and in advance with the aid of software tools for path planning. In both cases, robot programs are created that precisely control the movements of a robot (path and speed). In addition to this, there are software tools for simulating the programmed motion sequences (robot simulator). These robot simulators are capable of simulating the planned motion sequences of numerous robots in a “virtual robot cell”. With the aid of the simulation it can be tested whether the planned motion sequence can be carried out without collisions.
The mentioned simulation is generally carried out based on a premise of ideal conditions. When the motion sequences are actually executed, however, unplanned (or unforeseeable) deviations from these ideal conditions may occur. For example, the dwell times of the individual robots spent at certain positions, (e.g. when carrying out a measurement on the work piece), may deviate from the dwell times that were planned in advance. Such deviations may be the result of a variety of causes. For example, the robot simulation may deviate from real operations due to inaccurate model assumptions (e.g. inaccurate acceleration limits for the robot axes). The actual duration of measurements may vary when they are carried out (e.g. due to varying (in dependency of the color of the work piece) exposure times during optical inspections). A manual intervention on the part of service personnel may halt or delay a particular robot's movement. Furthermore, the inexact positioning of the work piece may make adaptations of the motion paths necessary, which also affects the timing of the motion sequences. In the broadest sense, the operations of the robots in a cell are not solely time-controlled, but are also partially controlled by events, (e.g. the completion of a surface machining including the subsequent inspection of the results), that cannot be precisely planned in advance.
Due to the above-mentioned deviations from simulations, in practice a safety mechanism is always needed in order to prevent two robots from colliding. One costly (with regard to the required computing capacity) option consists in extrapolating, during the operation of the robot (online), the actual movements of the robots using a simulator and conducting a collision test based on the 3D model, on which the simulation is based. One object of the present application is to provide a method for controlling numerous robots that allows for the synchronization of the robots' motion sequences within given limits while preventing collisions.
The mentioned objective is achieved by the method as disclosed herein, as well as by the disclosed system 7. Various embodiments and further developments are also disclosed.
In the following, a method for the synchronization of the motion sequences of at least two robots will be described, the areas of operation of which temporally and spatially overlap. In accordance with embodiment, the method comprises the following: During the operation of a robot cell having at least two robots, a path parameter is regularly calculated for each of the at least two robots based on a current position of the respective robot and on a previously defined path of the respective robot. The path parameter thereby represents the current position of the respective robot. Subsequently, a run-ahead limit is calculated for every robot based on the path parameters determined for the respective other robots. Based on the respective calculated run-ahead limits, the path speed of each robot can be adjusted.
Further, a system having at least two robots will be described, each of which is controlled by a robot controller. In accordance with one embodiment, the robot controllers are configured to regularly determine, during the operation of the robots, a path parameter for the respective robot that is representative of the current position of the respective robot. This determination of the path parameter is carried out based on a current position of each robot and a previously defined path of each robot. The robot controllers are further configured to calculate, based on the path parameter(s) determined for (each of) the other robot(s), a run-ahead limit for the respective robot. Based on the run-ahead limit calculated for each respective robot, a path speed of the robot can be adjusted.
In the following, the application will be described in greater detail by means of the examples shown in the figures. The representations are not necessarily true to scale and the application is not limited to the aspects shown. Instead, emphasis is placed on illustrating the underlying principles of the application. The figures show:
As mentioned further above, a work operation (process) that is to be carried out by robots is preceded by the programming of the motion sequences (defining, online or offline, the robot path and the path speed) of the individual robots and of each operational step. These programmed paths can be subsequently validated with the aid of a robot simulator (virtual robot cell). Thereby, it is particularly tested whether and under what circumstances collisions or other problems might arise. After the motion sequences are successfully tested (validation), they can be automatically converted into robot programs that are then implemented by the controllers of the individual robots.
A robot path can be represented mathematically as mapping (function Bi) a time interval [0, T], during which a robot Ri traverses the path, to a configuration position Bi(t) in a configuration space n
wherein k designates the number of robots in considered the robot cell and ni is the number of degrees of freedom of the i-th robot Ri. The vector representing the configuration position Bi(t) usually contains the joint angles a1, . . . , an
In order to prevent a collision, the volumes occupied by the robots Ri (i=1, . . . , k) in three-dimensional space 3 is considered during a collision test. The volume occupied by the robot Ri in a configuration position (axle configuration) (or the enveloping surface of the robot), can be regarded as a mapping (function Pi) of the configuration position Bi(t) in the configuration space n
wherein Si is a subset of the three dimensional space 3 (Si⊂3) and designates the volume occupied by the robot Ri in a given axle configuration (a1, . . . , an
Pi(Bi(t))∩Pj(Bj(t))={ }, for i≠j. (3)
A so-called 3D collision test can then be carried out by evaluating the condition in accordance with Equation 3 for two configuration positions Bi(t) and Bj(t) of two robots Ri and Rj. If the intersection is not empty, the robots will collide.
As mentioned above, a collision test conducted “offline” with the aid of a robot simulation alone is insufficient, because “online”, i.e. while the robots are carrying out their motion sequences, the time behavior is dependent on influences that could not be foreseen in the simulation. It is therefore desirable, or even necessary, to also conduct a collision test during operation of the robots, i.e. to calculate collisions in advance in order that counter measures (e.g. braking, emergency stop, etc.) may be taken in advance. During the simulation/validation of the planned robot path a 3D collision test is conducted “offline”, which is relatively costly (with regard to computing capacity). Conducting continuous 3D collision testing throughout the run-time of the robot would require large quantities of 3D data for representing the involved objects as well as massive computing capacities. There is therefore a need for alternative approaches.
With the aid of the method described here, it is possible to carry out a collision test “online” in an easy manner. When doing so, for each pair of robots Ri, Rj at every point in time t, only a single parameter is required, which is designated as maximum run-ahead time and which can be determined with the aid of a simulation of the robot paths in a virtual robot cell. Assuming that the robot Ri, at any given point in time t (wherein t∈[0, T]), is at its previously planned target position Bi(t0) (in the configuration space n
νij:[0,T]→[0,T],tmax{Δt|Pi(Bi(t))∩Pj(Bj(t+Δt))={ }}. (4)
The maximum run-ahead time νij(t) can be determined “offline” (by means of simulation in a virtual robot cell) and saved for every pair of robots Ri, Rj and every (simulated) point in time. All that is now needed by the robot controllers during the run time of the robots are the maximum run-ahead times νij(t) that were determined in advance by means of the simulator in a sufficiently precise temporal resolution in order that the maximum possible movement between the calculated points in time be incapable of causing an infringement of the specified safety distances. A costly 3D collision test can thus be avoided. For points in time within an interval between two consecutive calculated time points, the minimum of the two calculated maximum run-ahead times can be assumed.
The maximum run-ahead times νij(t) determined by means of the simulation are variable and depend on the path parameter t (simulation time). It can therefore happen that the maximum run-ahead time for a specific robot Rj, at a point in time to (for a path parameter to) is very large (e.g. infinite), while, at a later point in time ti (for a path parameter ti), it can be relatively small (e.g. nearly zero). Thus, although a relatively long run-ahead Δt may be, at the point in time t0, unproblematic, the same run-ahead time Δt may be too large at the point in time ti and may result in a collision. Hence, the robot controller must “anticipatorily” take into account the maximum run-ahead times νij(t). In the present example, therefore, the run-ahead time Δt at the point in time to may not be of just any desired duration (the condition Δt<νij(t0) is necessary, but not sufficient), but instead must be kept short enough to ensure that staying within the maximum run-ahead time νij(t1) at a later point in time t1 is still possible. This “anticipatory” consideration of the maximum run-ahead times νij(t) can, for example, be achieved by transforming the maximum run-ahead times νij(t) into “anticipatory maximum run-ahead times” wij(t). This transformation can be carried out in various ways (e.g. while taking into account the maximum possible braking accelerations). One simple and safe option (with regard to a worst case scenario) consists in using, at every point in time t (in the simulation time), the shortest maximum run-ahead time from among the maximum run-ahead times νij(t) in each time interval [t, T] (i.e. from the current point in time to the end of the planned motion sequence). In this case the anticipatory maximum run-ahead time wij(t) can be calculated using the following equation:
wij:[0,T]→[0,T],tmin{νij(t+u)+u|u∈[0,T−t]}. (5)
This means that, if, for a pair of robots Ri, Rj at time point t=0, the maximum run-ahead time νij(0) of the robot Rj is infinitely long and the maximum run-ahead time νij(1) for a point in time t=1 s is only 0.3 s, then the anticipatory maximum run-ahead time wji(0) at the point in time t0 is not, in fact, infinite, but rather maximum 1.3 s. Thus, the anticipatory maximum run-ahead time wij(t0) at a point in time t0 also takes into account the maximum run-ahead times νij(t0) for later points in time t>t0 (and t<T).
In order to synchronize numerous robots of a robot cell while taking into account the calculated anticipatory maximum run-ahead times wji(t) and thus prevent collisions, all anticipatory run-ahead times wji(t) (for all i≠j) for the robot Rj must be available to the robot controller. During run time, the robot controllers of the individual robots Ri (i=1, . . . , k) indirectly exchange information about their “progress” while moving along their robot paths, i.e. about their current positions (in the configuration space) by exchanging the path parameters that designate their respective positions on the previously determined robot path. For each robot Rj, the corresponding robot controller can calculate its own current run-ahead time limit tν,j(t) based on the anticipatory maximum run-ahead times wji(t) calculated in advance by means of simulation and on the current simulation times ti(t) (path parameters) of the other robots Ri (i≠j). The current run-ahead time limit tν,j(t) for the robot Rj is the minimum of the anticipatory maximum run-ahead times wji(t) with regard to the other robots Ri (for all i≠j), meaning:
tν,j:[0,T]→[0,T],tmin{wij(ti(t))|für alle i≠j}. (6)
For every robot Rj (j=1, . . . , k), the path speed can be adapted in dependence of the current run-ahead time limit tν,j(t). For this purpose, the robot controller of the respective robot Rj can determine—at every point in time t—a current braking time tB,j. As a rule, this braking time tB,j is dependent on the current path speeds and the maximum braking delays of the robot axes of the robot Rj. As long as the braking time tB,j for the respective robot Rj is shorter than the current run-ahead time limit tν,j(t), i.e. as long as the inequality
tB,j(t)<tν,j(t) (7)
is fulfilled, the path speed of the robot Rj may be increased (up to a definable maximum value). In this case the robot tries to run ahead as far as possible, causing the other robots to “catch up”. As soon as the current braking time tB,j becomes longer than the run-ahead time limit tν,j(t), the path speed of the robot must be reduced until Inequality 7 is once again fulfilled.
In the following, the method described above will now be summarized with reference to the flow chart. During operation of a robot cell having at least two robots, a path parameter tj is regularly (periodically or from time to time) determined for each robot Rj based on its current position Bj(
In order to calculate the run-ahead limits tν,j(t) of the individual robots Rj, first of all the maximum run-ahead times νji(t) and the anticipatory maximum run-ahead times wji(t) are determined, as described above. Accordingly, for every ordered pair of robots Rj, Ri a maximum run-ahead time νji(t) is calculated—by means of simulation of the (parameterized) robot paths specified in advance and for a series of path parameter values. This is the time by which the first robot Rj of a pair of robots may run ahead of the second robot Ri of the robot pair without causing a collision (cf. Equation 4). The mentioned series of path parameter values is created by means of discretization of the interval [0, T] in which the respective robot path Bj(t) is defined. The maximum run-ahead time νji(t) for a given path parameter t (simulation time) alone is not enough as the maximum run-ahead time νji(t) is not a constant value and may change. For this reason, a so-called anticipatory maximum run-ahead time wij(t0) is calculated for every ordered pair of robots Rj, Ri and for a given path parameter t0 (the above mentioned series of path parameters) based on the maximum run-ahead time νij(t0) for the given path parameter t0 and the following path parameter (t>t0) in the series of path parameters (see Equation 5). The information on the maximum run-ahead times allows every robot to strive on its own to reach the highest speed it can without colliding with the other robots. A regulator for the speed is not needed. Thus, the synchronization of numerous robots is greatly simplified.
In the following an example will be used to describe how the corresponding path parameter (here: simulation time) can be determined in the robot program based on a detected robot position qj of a robot Ri. In order to keep the data volume and the computing effort for the robot controller small, to control the robot Ri, the corresponding robot path Bi(t) is divided up into numerous segments Sij (segment Sij is the j-th of si segments of the path Bi(t) of the robot Ri, j=, . . . , si):
Sij:[Tij,Ti(j+1)]→ni,tBi(t), wherein Ti0=0 and Ti(si+1)=T. (9)
The time Tij is the starting time of the j-th segment of the path Bi(t) of the robot Ri. The time Ti(j+1) is the ending time of the j-th segment Sij and is likewise the starting time of the (j+1)-th segment Si(j+1). The desired motion sequences are communicated by the robot controller to the robot Ri by means of motion sets. The j-th motion set for the robot Ri is given by
MOVij={Bi(Tij),Bi(Ti(j+1))} (10)
While carrying out the motion sequence defined by a motion set MOVij, the current configuration position qi (e.g. vector of the joint angle and also the axis configuration) of the robot Ri can be measured in short time intervals. The simulation time ti can now be determined by means of a simple interpolation between the starting point and the end point of the motion set MOVij and the measured configuration position qi. For the simulation time ti, it holds true that Bi(ti)≈qi.
The procedure described above is summarized in the flow chart in accordance with
Number | Date | Country | Kind |
---|---|---|---|
10 2015 116 522.8 | Oct 2015 | DE | national |
10 2015 117 419.7 | Oct 2015 | DE | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/EP2016/073119 | 9/28/2016 | WO | 00 |
Publishing Document | Publishing Date | Country | Kind |
---|---|---|---|
WO2017/063887 | 4/20/2017 | WO | A |
Number | Name | Date | Kind |
---|---|---|---|
6365221 | Morton | Apr 2002 | B1 |
10131053 | Sampedro | Nov 2018 | B1 |
20040068348 | Jager | Apr 2004 | A1 |
20110066282 | Bosscher | Mar 2011 | A1 |
20120215351 | McGee | Aug 2012 | A1 |
20150336269 | Linnell | Nov 2015 | A1 |
Entry |
---|
Patent Cooperation Treaty, “International Search Report,” and English translation of international search, issued in International Patent Application No. PCT/EP2016/073119, dated Sep. 28, 2016, document of 7 pages. |
Bosscher et al., “Real-time collision avoidance algorithm for robotic manipulators”, Technologies for Practical Robot Applications, IEEE International Conference on, Piscataway, NJ, USA, ISBN 978-1-4244-4991-0, Nov. 11, 2009, pp. 113-122. |
Number | Date | Country | |
---|---|---|---|
20180311821 A1 | Nov 2018 | US |