WO2017063887A1 - Synchronisierung mehrerer roboter - Google Patents

Synchronisierung mehrerer roboter Download PDF

Info

Publication number
WO2017063887A1
WO2017063887A1 PCT/EP2016/073119 EP2016073119W WO2017063887A1 WO 2017063887 A1 WO2017063887 A1 WO 2017063887A1 EP 2016073119 W EP2016073119 W EP 2016073119W WO 2017063887 A1 WO2017063887 A1 WO 2017063887A1
Authority
WO
WIPO (PCT)
Prior art keywords
robot
robots
path
time
parameters
Prior art date
Application number
PCT/EP2016/073119
Other languages
English (en)
French (fr)
Inventor
Bernhard Schierz
Wolfgang Stöcher
Gerald Umgeher
Original Assignee
ATENSOR Engineering and Technology Systems GmbH
Convergent Information Technologies Gmbh
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from DE102015116522.8A external-priority patent/DE102015116522B3/de
Application filed by ATENSOR Engineering and Technology Systems GmbH, Convergent Information Technologies Gmbh filed Critical ATENSOR Engineering and Technology Systems GmbH
Priority to CN201680066264.4A priority Critical patent/CN108472808B/zh
Priority to US15/767,949 priority patent/US11305429B2/en
Publication of WO2017063887A1 publication Critical patent/WO2017063887A1/de

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1669Programme controls characterised by programming, planning systems for manipulators characterised by special application, e.g. multi-arm co-operation, assembly, grasping
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1674Programme controls characterised by safety, monitoring, diagnostic
    • B25J9/1676Avoiding collision or forbidden zones
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/0084Programme-controlled manipulators comprising a plurality of manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1682Dual arm manipulator; Coordination of several manipulators
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39082Collision, real time collision avoidance
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39083Robot interference, between two robot arms
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39097Estimate own stop, brake time, then verify if in safe distance
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39135For multiple manipulators operating at same time, avoid collision

Definitions

  • the present description relates generally to the field of industrial robots, in particular the control of several cooperating industrial robots.
  • robotic manufacturing e.g. In the automotive industry, often several industrial robots work simultaneously in a robot cell. For example, several robots simultaneously machine a workpiece, attach other components to it, or perform measurement or inspection tasks on the workpiece.
  • the working areas of the individual robots may overlap, which is why the robots can not be controlled independently of each other.
  • the subtasks to be performed by the individual robots may depend on each other. This means that a robot may have to wait until another robot has completed a specific subtask to continue its activity. Consequently, the robot controllers can not control the movements of the individual robots independently of each other, but the movements of the individual robots must be coordinated.
  • the actual execution of the planned movement sequences may lead to unplanned (or unpredictable) deviations from this ideal state. men.
  • the residence times of the individual robots at certain locations may deviate from the previously planned residence times. Such deviations can have different causes.
  • the robot simulation may deviate from reality due to inaccurate model assumptions (eg inaccurate acceleration limits of the robot axes).
  • the duration of the measurement may vary (eg due to varying (because of the color of the workpiece dependent) exposure times during optical inspection). With manual intervention by operators, the movement of a single robot can be delayed or stopped.
  • the work of robots in a cell is not purely time-controlled, but partly also controlled by events (eg the completion of a surface treatment with subsequent result testing), which can not be planned exactly in advance.
  • An object of the present invention is to provide a method for controlling a plurality of robots, which makes it possible to synchronize the movements of the robots within certain limits and to avoid collisions.
  • a method for synchronizing the motion sequences of at least two robots whose working areas overlap in time and space.
  • the method has the following During 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 a predetermined robot path of the respective robot.
  • the path parameter represents the current position of the respective robot.
  • an advance limit is calculated for each robot based on the orbital parameters determined for the other robots. Based on the respective calculated advance time limit, the path speed of each robot can be adapted.
  • a system is described with at least two robots, each controlled by a robot controller.
  • the robot controllers are designed to regularly determine a path parameter representing the current position of the respective robot during the operation of the robot for the respective robot. This determination of the path parameter is based on a current position of the respective robot and a predetermined robot path of the respective robot.
  • the robot controllers are furthermore designed to calculate an advance limit for the respective robot based on the path parameters (path parameters) determined for the respective other robot (s). Based on the preprocessing limit calculated for the respective robot, a path velocity of the robot can be adapted.
  • FIG. 1 shows a robot cell with several robots.
  • FIG. 2 illustrates a schematic sketch of the concept of the lead time of a robot with respect to another robot.
  • FIG. 3 illustrates a flowchart of an example of the method according to the invention.
  • FIG. 4 illustrates a possible example of the calculation of the path parameter of a robot path, which represents the current position, on the basis of a flowchart.
  • Figure 1 shows an example of a robot cell with a plurality of cooperating robots, where "cooperating" to mean that the robots arranged in the robot cell perform their activities so that the working areas of the robot overlap temporally and spatially and that they are their web speeds
  • three industrial robots 11, 12, and 13 are used, which perform different operations on the workpiece 14 (here a body of an automobile) include (eg, grinding, polishing, painting), handling components as well as their incorporation into or attachment to the workpiece, making measurements, etc.
  • the use of industrial robots is very common, however, the present invention not limited to the finished automobiles, but can be used in any other areas where multiple robots cooperate in some way to accomplish one or more tasks.
  • a robot path can be represented mathematically as a mapping Bi of a time interval [0, T], in which a robot Ri passes through the web, to a configuration position Bi (t) in the configuration space lL ni , ie
  • the vector representing the configuration position Bi (t) usually contains the joint angles and thus clearly defines the position of the robot Ri.
  • the time t in the interval [0, T] is a path parameter which uniquely identifies a certain configuration position Bi (t) in the configuration space lL ni (axis configuration of the robot Ri).
  • this path parameter is also referred to as "simulation time.”
  • simulation time includes an association with the physical quantity "time,” it does not say when a certain configuration position Bi actually occurs during the execution of a robot program Consequently, the simulation time is to be understood as an abstract path parameter representing a configuration position Bi and not as time in the classical sense.
  • the volume (or the envelope surface of the robot) claimed by the robot Ri for a configuration position (axis configuration) can be regarded as a map Pi of the configuration position Bi (t) in the configuration space lL ni in the three-dimensional space IL 3 ,
  • Si is a subset of the three-dimensional space IL 3 (Si he IL 3 ) and the volume occupied by the robot Ri for a given axis configuration (a l 5 ..., a n ) denotes (M 3 ) the power set of IL 3 ).
  • a so-called 3D collision check can be carried out by evaluating the condition according to 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 collide.
  • an "off-line” collision check using a robot simulation alone is not sufficient because "on-line", that is, while the robots are executing their motions, the timing of influences that are unpredictable in the simulation, is desirable or even desirable It is also necessary to carry out a collision check during the runtime of the robots, ie to precalculate collisions so that countermeasures (eg braking, emergency stop, etc.) can be taken in good time performed, which is relatively expensive (in terms of computing power). During the lifetime of the robots, a continuous SD collision check would require large amounts of 3D data to map the objects involved and massive computational power, and there is a need for alternative approaches.
  • a lead time At can be defined as the time interval between the actual (measurable or robot control known) configuration position Bj (to + At) of the robot R, and its previously planned and validated in the simulation target position Bj (to).
  • the maximum lead time Vij (t) is therefore the lead time At, which the robot Rj is allowed to lead the robot Rj at the most without any Collision occurs.
  • the maximum lead time Vij (t) can be used as a map
  • the maximum lead time Vij (t) can be "offline" (using simulation in a virtual robot cell) for each robot pair Ri, Rj and each (simulated) time are determined and stored. During the running time of the robots, the robot controls only require the maximum advance times Vij (t) previously determined with the help of the simulator in a sufficiently precise time resolution, so that the maximum possible movement between the calculated times can not cause a violation of the provided safety distances. A complex SD collision check can be omitted. For times within an interval between two consecutive calculated times, the minimum of the two calculated maximum lead times can be assumed.
  • Fig. 2 is a schematic sketch for illustrating the above rather mathematically described concept of the lead time.
  • the dashed lines represent the robot paths Bi and Bj of the robots Ri and Rj, respectively.
  • the robot Ri is at its planned (desired) position Bi () in an area (collision zone) in which the paths of the two Robots cross (or at least come so close that a collision is possible).
  • the robot Rj should be at the position Bj (tj) at the time tj. If the robot Rj (for whatever reason) leads the robot Ri, he gets closer to the robot Ri, the greater the lead time Atj is.
  • the maximum lead time vy (ti) is the lead time that the robot Rj - at time ti - may advance in relation to the robot Ri, so that just no collision occurs.
  • the maximum lead times can be calculated beforehand using a robot simulator. In the simulation, it is checked how far a robot Rj can be displaced along its specified path - at a simulated time tj - without a collision occurring. The collision check is carried out "offline", for example by means of a 3D collision check
  • the maximum lead time is calculated for different times in a specific time grid and for each robot pair Ri, Rj (fej).
  • the calculated by means of simulation maximum lead times Vij (t) are variable and depend on the path parameter t (simulation time) from. Therefore, for a given robot Rj at a time to (for a lane parameter to) the maximum lead time may be very large (eg infinity), but at a later time ti (for a lane parameter ti) it may be relatively small (eg close to zero) ). So while a At the same time, if there is no problem at the time to, this precedence At can be too high at time ti and cause a collision.
  • the robot controller must thus take into account the maximum advance times Vij (t) "anticipatory.”
  • the lead time At may not become arbitrarily large at time to (the condition At ⁇ Vij (to) is necessary but not sufficient), but must
  • the aforementioned "anticipatory" taking into account of the maximum advance times Vij (t) can, for example, be achieved by setting the maximum advance times Vij (t) in This transformation can take place in different ways (eg taking into account the maximum possible decelerations)
  • a simple and safe way is that to each Time t (in simulation time) from the maximum advance times Vij (t) in the time interval vall [t, 7] (ie from the current time to the end of the planned sequence of movements) the lowest maximum lead time is used.
  • the predictive maximum advance time Wij (t) can be calculated as follows:
  • Wij [0, T] - »[0, T], t H> mm ⁇ vij (t + u) + u ⁇ u E [0, T- t] ⁇ .
  • the robot controller for the robot Rj In order to synchronize a plurality of robots of a robot cell, taking into account the calculated predictive maximum lead times W ⁇ (t), so that collisions are avoided, the robot controller for the robot Rj must have all the predictive maximum lead times W ⁇ (t) (for all fej) available .
  • each robot Rj belonging robot controller can be determined based on the determined in advance by simulation predictive maximum Vorauseil adopted WSS (t) and the current simulation time (t) (orbital parameters) of the other robot Ri (fej), the own current Vorauseilzeitlimit t v j (t) determine.
  • the current advance time limit t v j (t) for the robot Rj is the minimum of the predictive maximum advance times wji (ti) with respect to the other robots Ri (for all fej), that is:
  • the path speed can be adjusted depending on the current advance time limit t v j (t).
  • the robot controller of the respective robot Rj determine a current braking time tßj.
  • This braking time tej usually dependent on the current web speeds and the maximum braking decelerations of the robot axes of the robot Rj.
  • the braking time is tej smaller than the current Vorauseilzeitlimit t v j (t), ie as long as the inequality
  • the path velocity of the robot Rj can be increased (up to a definable maximum value).
  • the robot tries to get ahead as much as possible, which "pulls" the rest of the robots, and as soon as the actual braking time tej becomes greater than the leading time limit t v j (t), the orbit speed of the robot Rj must be reduced at least to such a degree the inequality 7 is fulfilled again.
  • a path parameter tj is determined regularly (periodically or from time to time) for each robot Rj based on its current position Bj (FIG. 3, step 301).
  • the proviso maximum t v , / t) is the minimum of the predictive maximum advance times wji (ti) in relation to the other robots Ri (ij).
  • its path velocity is adjusted based on the calculated advance interval t v j (t) ( Figure 3, step 303). For example, the orbit speed (if necessary to zero) can be reduced if an estimated braking time (depending on the current web speed) is not less than the advance time t v , j (t) for the respective robot.
  • Vorausillimits t v j (t) of the individual robot Rj first the maximum lead times vji (t) and the predictive maximum lead times Wji (t) are determined as described above. Accordingly, for each ordered robot pair Rj, Ri, a maximum advance time vji (t) is calculated by means of simulation of the predefined (parameterized) robot paths and for a sequence of path parameter values. This is the time that the first robot Rj of the robot pair is allowed to lead the second robot Ri of the robot pair without causing a collision (compare equation 4). The mentioned sequence of path parameter values results from discretization of the interval [0, T] in which the respective robot path Bj (t) is defined.
  • the maximum advance time vji (t) for a given orbit parameter t (simulation time) alone is not sufficient because the maximum advance time vji (t) is not a constant value and can change. Therefore, for each ordered robotic pair Rj, Ri and a particular orbital parameter to (the above-mentioned sequence of lane parameters), a so-called predictive maximum latency Wij (to) is calculated based on the maximum latency Vij (to) for the particular lane parameter to and the subsequent lane parameters (t> to) the sequence of orbital parameters (see Equation 5).
  • the information on the maximum lead times allow each robot to strive for the highest speed of its own without colliding with other robots. A speed control is not necessary. Overall, the synchronization of multiple robots is greatly simplified.
  • the associated path parameter (here: simulation time) can be determined in the robot program from a measured robot position qj of a robot Ri.
  • the time 7 # is the start time of the jth segment Sij of the path Bi (t) of the robot Ri.
  • the time Ti (j + i) is the end time of the jth segment Sij and at the same time the start time of the (j + l ) -th segment Si (j + i).
  • the desired movement sequences are transmitted to the robot Ri by the robot controller by means of motion sets.
  • the jth movement set for the robot Ri is given by
  • MOV i j ⁇ B i ⁇ T ij ), B i ⁇ T iü + 1) ) ⁇ (10)
  • the current configuration position qi (for example vector of the joint angle, also axis configuration) of the robot Ri can be measured at short intervals.
  • the simulation time can now be determined by means of a simple interpolation between the start and end point of the motion block MOVij and the measured configuration position qi.
  • Bi () ⁇ qi applies.
  • the control of a robot Ri sequentially executes motion sets MOVij, each by a start point ⁇ ( ⁇ ) and an end point Bi (Ti (j + i)) including the associated time parameters 7 # and Ti (j + i) ( Simulation time of the start and the end position Bi (Tij) and Bi (Ti (j + i)) of the j-th segment of the movement sequence of the robot Ri) are given (Fig. 4, step 401).
  • the robot thus moves from the start position to the end position of the respective segment of the designated robot path.
  • the end position of a segment j is the starting position of the subsequent segment j + 1.
  • the current (configuration) position qi of the robot Ri is continuously measured (FIG. 4, step 402) and is therefore known to the robot controller.
  • the orbit parameter representing the current position qi (ie, the searched simulation time) of the specified Motion sequence Bi (t) can be determined by interpolation between starting point ⁇ ( ⁇ ) and an end point Bi (Ti (j + i)) of the current motion block MOVij, so that the following applies: qi

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Manipulator (AREA)
  • Numerical Control (AREA)

Abstract

Im Folgenden wird ein Verfahren zum Synchronisieren der Bewegungsabläufe von mindestens zwei Robotern beschrieben. Gemäß einem Beispiel der Erfindung weist das Verfahren folgendes auf: Während des Betriebs einer Roboterzelle mit mindestens zwei Robotern wird für jeden der mindestens zwei Roboter regelmäßig ein Bahnparameter berechnet basierend auf einer aktuellen Position des jeweiligen Roboters und einer vorab festgelegten Roboterbahn des jeweiligen Roboters. Der Bahnparameter repräsentiert dabei die aktuelle Position des jeweiligen Roboters. Anschließend wird für jeden Roboter ein Vorauseillimit berechnet basierend auf den für die jeweils anderen Roboter ermittelten Bahnparametern. Basierend auf dem jeweils berechneten Vorauseillimit kann für jeden Roboter dessen Bahngeschwindigkeit angepasst werden.

Description

SYNCHRONISIERUNG MEHRERER ROBOTER
TECHNISCHES GEBIET
[0001] Die vorliegende Beschreibung betrifft allgemein das Gebiet der Industrieroboter, insbesondere die Steuerung von mehreren kooperierenden Industrierobotern.
HINTERGRUND
[0002] Bei der robotergestützten Fertigung, z.B. in der Automobilindustrie, arbeiten häufig mehrere Industrieroboter gleichzeitig in einer Roboterzelle. Beispielsweise bearbeiten mehrere Roboter gleichzeitig ein Werkstück, befestigen daran andere Bauteile oder führen an dem Werkstück Mess- oder Prüfaufgaben durch. Dabei können sich die Arbeitsbereiche der einzelnen Roboter überlappen, weshalb die Roboter nicht unabhängig voneinander gesteuert werden können. Des Weiteren können die von den einzelnen Robotern zu erledigenden Teilaufgaben voneinander abhängen. Das heißt, dass ein Roboter mit der Fortsetzung seiner Tätigkeit unter Umständen warten muss, bis ein anderer Roboter eine bestimmte Teilaufgabe erledigt hat. Folglich können die Robotersteuerungen die Bewegungen der einzelnen Roboter nicht unabhängig voneinander steuern, sondern die Bewegungsabläufe der einzelnen Roboter müssen koordiniert werden.
[0003] Die Bewegungsabläufe (motion sequences) von Robotern können heutzutage entweder online eingelernt („Teach-In"- Verfahren bzw.„Playback"- Verfahren) oder offline mit Hilfe von Software-Tools zur Bahnplanung vorab detailliert geplant werden. In beiden Fällen entstehen Roboterprogramme, die die Bewegung eines Roboters (Pfade und Geschwindigkeiten) exakt steuern. Des Weiteren existieren Software-Tools zur Simulation der programmierten Bewegungsabläufe (Robotersimulator). Diese Robotersimulatoren sind in der Lage, die geplanten Bewegungsabläufe mehrerer Roboter in einer„virtuellen Roboterzelle" zu simulieren. Mit Hilfe der Simulation kann geprüft werden, ob der geplante Bewegungsablauf kollisionsfrei durchgeführt werden kann.
[0004] Bei der erwähnten Simulation wird üblicherweise von einem Idealzustand ausgegangen. Bei der tatsächlichen Ausführung der geplanten Bewegungsabläufe kann es jedoch zu nicht geplanten (oder nicht planbaren) Abweichungen von diesem Idealzustand kom- men. Beispielsweise können die Verweilzeiten der einzelnen Roboter an bestimmten Stellen (z.B. bei der Durchführung einer Messung an dem Werkstück) von den vorab geplanten Verweilzeiten abweichen. Solche Abweichungen können unterschiedlichste Ursachen haben. Beispielsweise kann die Robotersimulation aufgrund ungenauer Modellannahmen (z.B. ungenaue Beschleunigungslimits der Roboterachsen) von der Realität abweichen. Bei der Durchführung von Messungen kann die Dauer der Messung variieren (z.B. aufgrund variierender (weil von der Farbe des Werkstücks abhängiger) Belichtungszeiten bei optischer Inspektion). Bei manuellem Eingriff durch Bedienpersonen kann die Bewegung eines einzelnen Roboters verzögert oder gestoppt werden. Des Weiteren können durch Un- genauigkeiten in der Positionierung des Werkstücks Anpassungen der Bewegungsbahnen notwendig werden, die auch Einfluss auf das Timing der Bewegungsabläufe haben. Ganz allgemein ist die Arbeit der Roboter in einer Zelle nicht rein zeitgesteuert, sondern teilweise auch gesteuert durch Ereignisse (z.B. die Fertigstellung einer Oberflächenbearbeitung mit anschließender Ergebnisprüfung), welche nicht exakt vorab geplant werden können.
[0005] Aufgrund der oben erwähnten Abweichungen von der Simulation ist in der Praxis immer ein Sicherheitsmechanismus nötig, mit dessen Hilfe Kollisionen zweier Roboter verhindert werden können. Eine (im Hinblick auf die nötige Rechenleistung) sehr aufwändige Option besteht darin, während des Betriebs der Roboter (online) mit einem Simulator die tatsächlichen Bewegungen der Roboter zu extrapolieren und, basierend auf dem der Simulation zugrunde liegenden 3D-Modell eine Kollisionsprüfung durchzuführen. Eine Aufgabe der vorliegenden Erfindung besteht darin, ein Verfahren zur Steuerung mehrerer Roboter zur Verfügung zu stellen, das es ermöglicht, die Bewegungsabläufe der Roboter innerhalb gewisser Grenzen zu synchronisieren und Kollisionen zu vermeiden.
ZUSAMMENFASSUNG
[0006] Die genannte Aufgabe wird durch das Verfahren gemäß Anspruch 1 sowie durch das System gemäß Anspruch 7 gelöst. Unterschiedliche Ausführungsbeispiele und Weiterentwicklungen sind Gegenstand der abhängigen Ansprüche.
[0007] Im Folgenden wird ein Verfahren zum Synchronisieren der Bewegungsabläufe von mindestens zwei Robotern beschrieben, deren Arbeitsbereiche sich zeitlich und räumlich überschneiden. Gemäß einem Beispiel der Erfindung weist das Verfahren folgendes auf: Während des Betriebs einer Roboterzelle mit mindestens zwei Robotern wird für jeden der mindestens zwei Roboter regelmäßig ein Bahnparameter berechnet basierend auf einer aktuellen Position des jeweiligen Roboters und einer vorab festgelegten Roboterbahn des jeweiligen Roboters. Der Bahnparameter repräsentiert dabei die aktuelle Position des jeweiligen Roboters. Anschließend wird für jeden Roboter ein Vorauseillimit berechnet basierend auf den für die jeweils anderen Roboter ermittelten Bahnparametern. Basierend auf dem jeweils berechneten Vorauseillimit kann für jeden Roboter dessen Bahngeschwindigkeit angepasst werden.
[0008] Des Weiteren wird ein System mit mindestens zwei Roboter beschrieben, die jeweils von einer Robotersteuerung gesteuert werden. Gemäß einem Beispiel der Erfindung sind die Robotersteuerungen dazu ausgebildet, während des Betriebs der Roboter für den jeweiligen Roboter regelmäßig einen die aktuelle Position des jeweiligen Roboters repräsentierenden Bahnparameter zu ermitteln. Diese Ermittlung des Bahnparameters erfolgt basierend auf einer aktuellen Position des jeweiligen Roboters und einer vorab festgelegten Roboterbahn des jeweiligen Roboters. Die Robotersteuerungen sind des Weiteren dazu ausgebildet, für den jeweiligen Roboter ein Vorauseillimit basierend auf den (dem) für die (den) jeweils anderen Roboter ermittelten Bahnparametern (Bahnparameter) zu berechnen. Basierend auf dem für den jeweiligen Roboter berechneten Vorauseillimit kann eine Bahngeschwindigkeit des Roboters angepasst werden.
KURZE BESCHREIBUNG DER ABBILDUNGEN
[0009] Die Erfindung wird nachfolgend anhand von den in den Abbildungen dargestellten Beispielen näher erläutert. Die Darstellungen sind nicht zwangsläufig maß Stabs getreu und die Erfindung beschränkt sich nicht nur auf die dargestellten Aspekte. Vielmehr wird Wert darauf gelegt, die der Erfindung zugrunde liegenden Prinzipien darzustellen. In den Abbildungen zeigt:
[0010] Figur 1 zeigt eine Roboterzelle mit mehreren Robotern.
[0011] Figur 2 illustriert anhand einer schematischen Skizze das Konzept der Vorauseilzeit eines Roboters in Bezug auf einen anderen Roboter. [0012] Figur 3 illustriert anhand eines Flussdiagramms ein Beispiel des erfindungsgemäßen Verfahrens.
[0013] Figur 4 illustriert anhand eines Flussdiagramms ein mögliches Beispiel der Berechnung des Bahnparameters einer Roboterbahn, welcher die aktuelle Position repräsentiert.
DETAILLIERTE BESCHREIBUNG
[0014] Figur 1 zeigt ein Beispiel einer Roboterzelle mit mehreren kooperierenden Robotern, wobei„kooperierend" hier bedeuten soll, dass die in der Roboterzelle angeordneten Roboter ihre Tätigkeiten so ausüben, dass sich die Arbeitsbereiche der Roboter zeitlich und räumlich überschneiden und dass sie ihre Bahngeschwindigkeiten während des Ablaufs anpassen, um Kollisionen zu vermeiden. Im vorliegenden Beispiel sind in einer Roboterzelle 1 drei Industrieroboter 11, 12 und 13 im Einsatz, welche unterschiedliche Tätigkeiten an dem Werkstück 14 (hier eine Karosserie eines Automobils) durchführen. Diese Tätigkeiten können eine mechanische Bearbeitung umfassen (z.B. Schleifen, Polieren, Lackieren), das Handhaben von Komponenten sowie deren Einbau in oder deren Anbau an das Werkstück, das Durchführen von Messungen, etc. In der Massenfertigung von Automobilen ist der Einsatz von Industrierobotern sehr verbreitet, jedoch ist die vorliegende Erfindung nicht beschränkt auf die Fertigung von Automobilen, sondern kann in beliebigen anderen Bereichen eingesetzt werden, in denen mehrere Roboter in irgendeiner Weise kooperieren, um eine oder mehrere Aufgaben zu bewerkstelligen.
[0015] Wie eingangs erwähnt steht am Anfang eines von Robotern zu verrichtenden Arbeitsvorganges (Prozess) die Programmierung der Bewegungsabläufe (Festlegung der Roboterbahn und Bahngeschwindigkeit online oder offline) der einzelnen Roboter und der jeweiligen Arbeits schritte. Diese programmierten Bahnen können anschließend mit Hilfe eines Robotersimulators (virtuelle Roboterzelle) validiert werden. Dabei wird insbesondere geprüft, ob und unter welchen Umständen Kollisionen oder andere Probleme auftreten können. Nach erfolgreicher Simulation (Validierung) der Bewegungsabläufe, können diese automatisiert in Roboterprogramme umgesetzt werden, die von den Steuerungen der einzelnen Roboter ausgeführt werden. [0016] Eine Roboterbahn kann mathematisch als Abbildung Bi eines Zeitintervalls [0, T], in welchem ein Roboter Ri die Bahn durchläuft, auf eine Konfigurationsposition Bi(t) im Konfigurationsraum lLni dargestellt werden, d.h.
Bf. [0, T] -> Rni, t H» für i = 1, ... , k, (1)
Figure imgf000007_0001
wobei die Anzahl der Roboter in der betrachteten Roboterzelle bezeichnet und m die Anzahl der Freiheitsgrate des i-ten Roboters R;. Der die Konfigurationsposition Bi(t) repräsentierende Vektor enthält üblicherweise die Gelenkwinkel und definiert damit die Position des Roboters Ri eindeutig. In dem Beispiel aus Fig. 1 wäre k =3 und ηι=η2=η3=6 im Falle von Standard- Industrierobotern mit sechs Freiheitsgraden. Die Zeit t im Intervall [0, T] ist ein Bahnparameter, der eine bestimmte Konfigurationsposition Bi(t) im Konfigurationsraum lLni (Achskonfiguration des Roboters Ri) eindeutig identifiziert. Bei der Simulation einer Roboterbahn Bi wird dieser Bahnparameter auch als„Simulationszeit" bezeichnet. Der Begriff„Simulationszeit" beinhaltet zwar eine Assoziation mit der physikalischen Größe„Zeit", sagt jedoch nichts darüber aus, wann während der Ausführung eines Roboterprogramms eine bestimmte Konfigurationsposition Bi tatsächlich erreicht wird. Folglich ist die Simulationszeit als abstrakter, eine Konfigurationsposition Bi repräsentierender Bahnparameter zu verstehen und nicht als Zeit im klassischen Sinn.
[0017] Um eine Kollision zu vermeiden, werden im Rahmen einer Kollisionsprüfung die von den Robotern Ri : (i=l, ..., k) beanspruchten Volumina im dreidimensionalen Raum R3 betrachtet. Das von dem Roboter Ri für eine Konfigurationsposition (Achskonfiguration) beanspruchte Volumen (bzw. die Hüllfläche des Roboters) kann als Abbildung Pi der Konfigurationsposition Bi(t) im Konfigurationsraum lLni in den dreidimensionalen Raum IL3 betrachtet werden,
Pf. Rnt -> -> S für i = 1, ... , k, (2)
Figure imgf000007_0002
wobei Si eine Teilmenge des dreidimensionalen Raums IL3 ist (Si er IL3) und das von dem Roboter Ri für eine gegebene Achskonfiguration (al 5 ..., an ) beanspruchte Volumen bezeichnet ( (M3)bezeichnet die Potenzmenge von IL3). Zwei Konfigurationspositionen Bi(t) und Bj(t) sind kollisionsfrei, wenn die Schnittmenge der zugehörigen Volumina Pi(Bi(t)) und Pj(Bj(t)) leer ist, d.h. Pi (Bi (t ) Π Pj (ß, (t)) = {}, für i j. (3)
Eine sogenannte 3D-Kollisionsprüfung kann dadurch erfolgen, indem die Bedingung gemäß Gleichung 3 für zwei Konfigurationspositionen Bi(t) und Bj(t) zweier Roboter Ri und Rj ausgewertet wird. Ist die Schnittmenge nicht leer, kollidieren die Roboter.
[0018] Wie oben erwähnt ist eine Kollisionsprüfung„offline" mit Hilfe einer Robotersimulation alleine nicht ausreichend, weil "online", d.h. während die Roboter ihre Bewegungsabläufe ausführen, das Zeitverhalten von in der Simulation nicht vorhersehbaren Einflüssen abhängt. Es ist daher wünschenswert oder sogar notwendig, auch während der Laufzeit der Roboter eine Kollisionsprüfung durchzuführen, d.h. Kollisionen vorherzube- rechnen, damit rechtzeitig Gegenmaßnahmen (z.B. Bremsen, Nothalt, etc.) getroffen werden können. Bei der Simulation/Validierung der geplanten Roboterbahnen wird„offline" eine 3D-Kollisionsprüfung durchgeführt, was vergleichsweise aufwändig ist (im Hinblick auf Rechenleistung). Während der Laufzeit der Roboter würde eine kontinuierliche SD- Kollisionsprüfung große Mengen an 3D-Daten zur Abbildung der involvierten Objekte und massiv Rechenleistung benötigen, und es besteht daher Bedarf an alternativen Ansätzen.
[0019] Mit Hilfe des hier beschriebenen Verfahrens ist es möglich,„online" eine Kollisionsprüfung auf einfache Weise durchzuführen. Es wird dabei für jedes Roboterpaar Rj, Rj zu jedem Zeitpunkt t nur ein einziger Parameter benötigt, der als maximale Vorauseilzeit bezeichnet wird, welche mit Hilfe einer Simulation der Roboterbahnen in einer virtuellen Roboterzelle ermittelt werden kann. Unter der Annahme, dass der Roboter Ri zu einem beliebigen Zeitpunkt t (wobei t e [0, 7]) sich (im Konfigurationsraum ]Rni) an seiner zuvor geplanten Sollposition Bi(to) befindet, kann eine Vorauseilzeit At definiert werden als jener zeitliche Abstand zwischen der tatsächlichen (messbaren bzw. der Robotersteuerung bekannten) Konfigurationsposition Bj(to+At) des Roboters R, und dessen zuvor geplanten und in der Simulation validierten Sollposition Bj(to). Die maximale Vorauseilzeit Vij(t) ist also jene Vorauseilzeit At, die der Roboter Rj dem Roboter Rj höchstens vorauseilen darf, ohne dass eine Kollision auftritt. Mathematisch kann die maximale Vorauseilzeit Vij(t) als Abbildung
Vi . [0, T] -> [0, T], t » max {At | Ρ44 (ί)) n Pj (ß, (t + At)) = {}}, (4) definiert werden. Die maximale Vorauseilzeit Vij(t) kann„offline" (mittels Simulation in einer virtuellen Roboterzelle) für jedes Roboterpaar Ri, Rj und jedem (simulierten) Zeitpunkt ermittelt und gespeichert werden. Während der Laufzeit der Roboter werden von den Robotersteuerungen nur mehr die mit Hilfe des Simulators vorab ermittelten maximalen Vorauseilzeiten Vij(t) in hinreichend genauer zeitlicher Auflösung benötigt, sodass die maximal mögliche Bewegung zwischen den berechneten Zeitpunkten keine Verletzung der vorgesehenen Sicherheitsabstände verursachen kann. Eine aufwändige SD- Kollisionsprüfung kann entfallen. Für Zeitpunkte innerhalb eines Intervalls zwischen zwei aufeinanderfolgenden berechneten Zeitpunkten kann das Minimum der beiden berechneten maximalen Vorauseilzeiten angenommen werden.
[0020] Fig. 2 ist eine schematische Skizze zur Illustration des oben eher mathematisch beschriebenen Konzepts der Vorauseilzeit. Die gestrichelten Linien repräsentieren die Roboterbahnen Bi und Bj der Roboter Ri bzw. Rj. Zu einem Zeitpunkt ti befindet sich der Roboter Ri an seiner geplanten (Soll-) Position Bi( ) in einem Bereich (Kollisionszone), in dem sich die Bahnen der beiden Roboter kreuzen (oder sich zumindest so nahe kommen, dass eine Kollision möglich ist). Gemäß der simulierten Roboterbahn soll sich der Roboter Rj zur Zeit tj an der Position Bj(tj) befinden. Sofern der Roboter Rj (aus welchen Gründen auch immer) dem Roboter Ri vorauseilt, kommt er dem Roboter Ri näher, je größer die Vorauseilzeit Atj ist. Die maximale Vorauseilzeit vy(ti) ist jene Vorauseilzeit, die der Roboter Rj - zum Zeitpunkt ti - in Bezug auf den Roboter Ri vorauseilen darf, sodass gerade noch keine Kollision auftritt. Die maximalen Vorauseilzeiten können vorab mit Hilfe eines Robotersimulators berechnet werden. Dabei wird in der Simulation geprüft, wie weit ein Roboter Rj zu einem simulierten Zeitpunkt tj entlang seiner festgelegten Bahn - zeitlich - verschoben werden kann, ohne dass eine Kollision auftritt. Die Kollisionsprüfung erfolgt dabei„offline" z.B. mittels einer 3D-Kollisionsprüfung. Die Berechnung der maximalen Vorauseilzeit erfolgt für verschiede Zeitpunkte in einem bestimmten Zeitraster und für jedes Roboterpaar Ri, Rj (fej).
[0021] Die mittels Simulation ermittelten maximalen Vorauseilzeiten Vij(t) sind variabel und hängen von dem Bahnparameter t (Simulationszeit) ab. Deshalb kann es vorkommen, dass für einen bestimmten Roboter Rj zu einem Zeitpunkt to (für einen Bahnparameter to) die maximale Vorauseilzeit sehr groß (z.B. unendlich) ist, zu einem späteren Zeitpunkt ti (für einen Bahnparameter ti) jedoch relativ klein (z.B. nahe null). Während also ein ver- gleichsweise weites Vorauseilen At zum Zeitpunkt to unproblematisch ist, kann dieses Vorauseilen At zum Zeitpunkt ti schon zu hoch sein und eine Kollision verursachen. Die Robotersteuerung muss die maximalen Vorauseilzeiten Vij(t) also„vorausschauend" berücksichtigen. Im erwähnten Beispiel darf also auch zum Zeitpunkt to die Vorauseilzeit At nicht beliebig groß werden (die Bedingung At<Vij(to) ist notwendig aber nicht hinreichend), sondern muss so gering gehaltenwerden, dass ein Einhalten der maximalen Vorauseilzeit Vij(ti) zum späteren Zeitpunkt ti überhaupt möglich ist. Das erwähnte„vorausschauende" Berücksichtigen der maximalen Vorauseilzeiten Vij(t) kann beispielsweise dadurch erreicht werden, dass die maximalen Vorauseilzeiten Vij(t) in„vorausschauende maximale Vorauseilzeiten" Wij(t) transformiert werden. Diese Transformation kann auf unterschiedliche Weise erfolgen (z.B. unter Berücksichtigung der maximal möglichen Bremsbeschleunigungen). Eine einfache und sichere Möglichkeit (im Sinne einer Worst-Case-Betrachtung) besteht darin, dass zu jedem Zeitpunkt t (in Simulationszeit) aus den maximalen Vorauseilzeiten Vij(t) im Zeitintervall [t, 7] (d.h. vom aktuellen Zeitpunkt bis zum Ende des geplanten Bewegungsablaufs) die geringste maximale Vorauseilzeit herangezogen wird. In diesem Fall kann die vorausschauende maximale Vorauseilzeit Wij(t) wie folgt berechnet werden:
Wij : [0, T] -» [0, T], t H> mm{vij (t + u) + u \ u E [0, T— t] }. (5) Das heißt, wenn für ein Roboterpaar R Rj zum Zeitpunkt t=0 die maximale Vorauseilzeit Vß(0) des Roboters Rj unendlich groß ist, und für einen Zeitpunkt t=ls die maximale Vorauseilzeit Vß(l) nur mehr 0,3s beträgt, dann ist zum Zeitpunkt to die vorausschauende maximale Vorauseilzeit Wß(0) eben nicht unendlich sondern maximal 1,3s. Die vorausschauende maximale Vorauseilzeit Wij(to) zu einem Zeitpunkt to berücksichtigt also auch die maximalen Vorauseilzeiten Vij(to) für spätere Zeitpunkte t>to (und t< T).
[0022] Um mehrere Roboter einer Roboterzelle unter Berücksichtigung der berechneten vorausschauenden maximalen Vorauseilzeiten Wß(t) zu synchronisieren, sodass Kollisionen vermieden werden, müssen der Robotersteuerung für den Roboter Rj sämtliche vorausschauenden maximalen Vorauseilzeiten Wß(t) (für alle fej) zur Verfügung stehen. Während der Laufzeit tauschen die Robotersteuerungen der einzelnen Roboter Ri : (i=l, ..., k) ihre „Fortschritte" beim Durchlaufen ihrer Roboterbahn, d.h. ihre tatsächlichen Positionen (im Konfigurationsraum), indirekt dadurch aus, dass die Bahnparameter ausgetauscht werden, welche jeweils Positionen auf den zuvor festgelegten Roboterbahnen bezeichnen. Für jeden Roboter Rj kann die zugehörige Robotersteuerung basierend auf den vorab mittels Simulation ermittelten vorausschauenden maximalen Vorauseilzeiten Wß(t) und den aktuellen Simulationszeiten (t) (Bahnparametern) der anderen Roboter Ri (fej), das eigene aktuelle Vorauseilzeitlimit tvj(t) ermitteln. Das aktuelle Vorauseilzeitlimit tvj(t) für den Roboter Rj ist das Minimum der vorausschauenden maximalen Vorauseilzeiten wji(ti) in Bezug auf die anderen Roboter Ri (für alle fej), das heißt:
[0, T] -» [0, T], t H> min{wy (ti(t)) | für alle (6)
[0023] Für jeden Roboter Rj =l, ..., k) kann die Bahngeschwindigkeit abhängig von dem aktuellen Vorauseilzeitlimit tvj(t) angepasst werden. Dazu kann beispielsweise - zu jedem Zeitpunkt t - die Robotersteuerung des jeweiligen Roboters Rj eine aktuelle Bremszeit tßj ermitteln. Diese Bremszeit tej ist in der Regel abhängig von den aktuellen Bahngeschwindigkeiten und den maximalen Bremsverzögerungen der Roboterachsen des Roboters Rj. Solange für den jeweiligen Roboter Rj die Bremszeit tej kleiner ist als das aktuelle Vorauseilzeitlimit tvj(t), d.h. solange die Ungleichung
Figure imgf000011_0001
erfüllt ist, kann die Bahngeschwindigkeit des Roboters Rj erhöht werden (bis zu einem definierbaren Maximalwert). In diesem Falle versucht der Roboter so weit wie möglich vorauszueilen, wodurch die übrigen Roboter„nachgezogen" werden. Sobald die aktuelle Bremszeit tej größer dem Vorauseilzeitlimit tvj(t) wird, muss die Bahngeschwindigkeit des Roboters Rj mindestens so weit reduziert werden, dass die Ungleichung 7 wieder erfüllt ist.
[0024] Das oben beschriebene Verfahren wird in der Folge kurz unter Bezugnahme auf das Flussdiagramm zusammengefasst. Während des Betriebs einer Roboterzelle mit mindestens zwei Robotern wird für jeden Roboter Rj basierend auf dessen aktueller Position Bj regelmäßig (periodisch oder von Zeit zu Zeit) ein Bahnparameter tj ermittelt (Fig. 3, Schritt 301). Wie oben erläutert, entspricht der Bahnparameter der oben erwähnten Simulationszeit tj eines bestimmten Roboters Rj, d.h. jenem hypothetischen Zeitpunkt tx, zu dem die Position Bj(tx) auf der festgelegten Roboterbahn gleich bzw. möglichst nahe der aktuellen Position qj des Roboters Rj ist. Die Robotersteuerungen der einzelnen Roboter tauschen die ermittelten Bahnparameter/Simulationszeiten tj aus, sodass jede Robotersteuerung die aktuellen Bahnparameter/Simulationszeiten aller Roboter kennt. Basierend auf den ermittel- ten Bahnparametern/Simulationszeiten der jeweils anderen Roboter Ri kann anschließend für jeden Roboter Rj ein Vorauseillimit tvj(t) berechnet werden (Fig. 3, Schritt 302). Gemäß Gleichung 6 ist für einen Roboter Rj das Vorauseillimit tv,/t) das Minimum der vorausschauenden maximalen Vorauseilzeiten wji(ti) in Relation zu den anderen Robotern Ri (i^j). Schließlich wird für jeden Roboter Rj dessen Bahngeschwindigkeit angepasst basierend auf dem berechneten Vorauseillimit tvj(t) (Fig. 3, Schritt 303). Beispielsweise kann die Bahngeschwindigkeit (wenn nötig bis auf null) reduziert werden, falls eine (von der aktuellen Bahngeschwindigkeit abhängige geschätzte Bremszeit) nicht kleiner ist als das Vorauseillimit tv,j(t) für den jeweiligen Roboter.
[0025] Für die Berechnung der Vorauseillimits tvj(t) der einzelnen Roboter Rj werden zunächst die maximalen Vorauseilzeiten vji(t) und die vorausschauenden maximalen Vorauseilzeiten Wji(t) wie oben beschrieben ermittelt. Demnach wird für jedes geordnete Roboterpaar Rj, Ri - mittels Simulation der vorab festgelegten (parametrisierten) Roboterbahnen und für eine Folge von Bahnparameterwerten - eine maximale Vorauseilzeit vji(t) berechnet. Diese ist jene Zeit, die der erste Roboter Rj des Roboterpaar dem zweiten Roboter Ri des Roboterpaar vorauseilen darf, ohne eine Kollision zu verursachen (vgl. Gleichung 4). Die erwähnte Folge von Bahnparameterwerten entsteht durch Diskretisierung des Intervalls [0, T], in dem die jeweilige Roboterbahn Bj(t) definiert ist. Die maximale Vorauseilzeit vji(t) für einen bestimmten Bahnparameter t (Simulationszeit) allein ist nicht ausreichend, da die maximale Vorauseilzeit vji(t) kein konstanter Wert ist und sich ändern kann. Daher wird für jedes geordnete Roboterpaar Rj, Ri und einem bestimmten Bahnparameter to (der oben erwähnten Folge von Bahnparametern) eine sogenannte vorausschauende maximale Vorauseilzeit Wij(to) berechnet basierend auf der maximalen Vorauseilzeit Vij(to) für den bestimmten Bahnparameter to und den nachfolgenden Bahnparametern (t>to) der Folge von Bahnparametern (siehe Gleichung 5). Die Informationen über die maximalen Vorauseilzeiten erlauben jedem Roboter, von sich aus die höchste Geschwindigkeit anzustreben, ohne mit anderen Robotern zu kollidieren. Ein Regler für die Geschwindigkeit ist nicht notwendig. Insgesamt wird die Synchronisation mehrerer Roboter stark vereinfacht.
[0026] In der Folge wird anhand eines Beispiels beschrieben, wie aus einer gemessenen Roboterposition qj eines Roboters Ri der zugehörige Bahnparameter (hier: Simulationszeit) im Roboterprogramm ermittelt werden kann. Um Daten- und Rechenaufwand der Robotersteuerung klein zu halten, wird für die Ansteuerung des Roboters Ri die zugehörige Roboterbahn Bi(t) in mehrere Segmente Sij zerlegt (Segment Sij ist das j-te von si Segmenten der Bahn Bi(t) des Roboters Ri, j=l, .. . , Si):
Sij - [Tij, ίυ+ 1)] -> Rni, t H» Bi t), wobei Ti0 = 0 und Ti(si+1) = T. (9)
Die Zeit 7# ist die Startzeit des j-ten Segments Sij der Bahn Bi(t) des Roboters Ri. Die Zeit Ti(j+i) ist die Endzeit des j-ten Segments Sij und gleichzeitig auch die Startzeit des (j+l)-ten Segments Si(j+i). Die gewünschten Bewegungsabläufe werden dem Roboter Ri von der Robotersteuerung mittels Bewegungs Sätzen (motion sets) übermittelt .Der j-te Bewegungssatz für den Roboter Ri ist gegeben durch
MOVij = {Bi {Tij), Bi {Tiü+ 1))} (10)
Während der Ausführung des durch einen Bewegungssatz MOVij definierten Bewegungsablaufes, kann in kurzen Zeitabständen die aktuelle Konfigurationsposition qi (z.B. Vektor der Gelenkwinkel, auch Achskonfiguration) des Roboters Ri gemessen werden. Die Simulationszeit kann nun mittels einer einfachen Interpolation zwischen Start- und Endpunkt des Bewegungssatzes MOVij und der gemessenen Konfigurationsposition qi ermittelt werden. Für die Simulationszeit gilt Bi( ) ~ qi.
[0027] Die oben beschriebene Vorgehensweise ist in dem Flussdiagram gemäß Fig. 4 zusammengefasst. In dem dargestellten Beispiel arbeitet die Steuerung eines Roboters Ri sequentiell Bewegungssätze MOVij ab, die jeweils durch einen Startpunkt Βϊ(Τ ) und einen Endpunkt Bi(Ti(j+i)) inklusive der zugehörigen Zeitparameter 7# und Ti(j+i) (Simulationszeit der Start- und der Endposition Bi(Tij) und Bi(Ti(j+i)) des j-ten Segments des Bewegungsablaufs des Roboters Ri) gegeben sind (Fig. 4, Schritt 401). Der Roboter bewegt sich folglich von der Startposition zur Endposition des jeweiligen Segments der festgelegten Roboterbahn. Die Endposition eines Segments j ist die Startposition des darauffolgenden Segments j+l . Die aktuelle (Konfigurations-) Position qi des Roboters Ri wird laufend gemessen (Fig. 4, Schritt 402) und ist der Robotersteuerung daher bekannt. Der die aktuelle Position qi repräsentierende Bahnparameter (d.h. die gesuchte Simulationszeit ) des festgelegten Bewegungsablaufs Bi(t) kann durch Interpolation zwischen Startpunkt Βί(Τ ) und einen Endpunkt Bi(Ti(j+i)) des aktuellen Bewegungssatzes MOVij ermittelt werden, sodass gilt: qi
= Bi(n).

Claims

PATENTANSPRÜCHE
1. Verfahren zum Synchronisieren der Bewegungsabläufe von mindestens zwei Robotern, deren Arbeitsbereiche sich zeitlich und räumlich überschneiden; das Verfahren weist auf: während der Bewegung der Roboter:
regelmäßiges Ermitteln eines Bahnparameters (tj) für jeden Roboter {Rj) der mindestens zwei Roboter, basierend auf einer aktuellen Position {qj) des jeweiligen Roboters {Rj) und einer vorab festgelegten Roboterbahn {Bj) des jeweiligen Roboters {Rj), der Bahnparameter {tj) repräsentiert die aktuelle Position {Bj(tjj) des jeweiligen Roboters;
für jeden Roboter {Rj):
Berechnen eines Vorauseillimits {tvj(t)) basierend auf den für die jeweils anderen Roboter ermittelten Bahnparametern {tj);
für jeden Roboter {Rj):
Anpassen einer Bahngeschwindigkeit des Roboters {Rj) basierend auf dem jeweils berechneten Vorauseillimit {tvj(t)).
2. Verfahren gemäß Anspruch 1, das weiter aufweist;
Bereitstellen der festgelegten Roboterbahnen {Bj(t)) in parametrischer Darstellung für jeden der mindestens zwei Roboter, wobei für jeden Roboter der Bahnparameter eine Roboterposition {Bj) auf der festgelegten Roboterbahn {Bj(tj) bezeichnet.
3. Verfahren gemäß Anspruch 1 oder 2, das weiter aufweist:
für jedes geordnete Roboterpaar {Rj, Rj) der mindestens zwei Roboter: Berechnen - mittels Simulation der vorab festgelegten Roboterbahnen und für unterschiedliche Bahnparameterwerte - einer maximalen Vorauseilzeit {vji(t)), welche jene Zeit ist, die der erste Roboter {Rj) des Roboterpaars dem zweiten Roboter {Rj) des Roboterpaars vorauseilen darf, ohne eine Kollision zu verursachen.
4. Verfahren gemäß Anspruch 3, das weiter aufweist:
für jedes geordnete Roboterpaar {Rj, Rj) der mindestens zwei Roboter und einem bestimmten Bahnparameter {to): Berechnen einer vorausschauenden maximalen Vo- rauseilzeit (wij(to)) basierend auf der maximalen Vorauseilzeit (ν ο)) für den bestimmten Bahnparameter (to) und nachfolgende Bahnparameter (t>to).
5. Verfahren gemäß Anspruch 4, wobei für jeden Roboter (Rj) das Vorauseillimit (tv,j(t)) basierend auf den vorausschauenden maximalen Vorauseilzeiten (wij(ti)) für die ermittelten Bahnparameter (ti) der jeweils anderen Roboter (Ri, i?f) ermittelt wird.
6. Verfahren gemäß einem der Ansprüche 1 bis 5, bei dem das Ermitteln des Bahnparameters (tj) eines Roboters (Rj) mittels Interpolation zwischen zwei Positionen (Bi(Tij), Bi(Ti(j+i))), die ein Segment der vorab festgelegten Roboterbahn des jeweiligen Roboters (Rj) definieren, erfolgt.
7. System umfassend mindestens zwei Roboter, die jeweils von einer Robotersteuerung gesteuert werden; die Robotersteuerungen sind dazu ausgebildet während des Betriebs der Roboter:
für den jeweiligen Roboter regelmäßig einen die aktuelle Position (Bj(tj)) des jeweiligen Roboters (Rj) repräsentierenden Bahnparameter (tj) zu ermitteln, basierend auf einer aktuellen Position (qj) des jeweiligen Roboters (Rj) und einer vorab festgelegten Roboterbahn (Bj) des jeweiligen Roboters (Rj);
für den jeweiligen Roboter ein Vorauseillimit (tvj(t)) basierend auf den für die jeweils anderen Roboter ermittelten Bahnparametern (ti) zu berechnen; und
basierend auf dem für den jeweiligen Roboter (Rj) berechneten Vorauseillimit (tvj(t)) eine Bahngeschwindigkeit des Roboters (Rj) anzupassen.
8. System gemäß Anspruch 7, das weiter aufweist:
einen Robotersimulator, der dazu ausgebildet ist - mittels Simulation vorab festgelegter Roboterbahnen - für jedes geordnete Roboterpaar (Rj, Ri) der mindestens zwei Roboter für unterschiedliche Bahnparameterwerte eine maximale Vorauseilzeit (vji(t)) zu ermitteln, welche jene Zeit ist, die der erste Roboter (Rj) des Roboterpaars dem zweiten Roboter (Ri) des Roboterpaars vorauseilen darf, ohne eine Kollision zu verursachen.
9. System gemäß Anspruch 8, bei dem der Robotersimulator weiter dazu ausgebildet ist, für jedes geordnete Roboterpaar (Rj, Ri) der mindestens zwei Roboter und einen bestimm- ten Bahnparameter (to) eine vorausschauende maximale Vorauseilzeit (wij(to)) zu berechnen basierend auf der maximalen Vorauseilzeit (vi to)) für den bestimmten Bahnparameter (to) und nachfolgende Bahnparameter (t>to).
10. System gemäß einem der Ansprüche 7 bis 9, bei dem die Robotersteuerungen dazu ausgebildet sind,
den die aktuelle Position des jeweiligen Roboters (Rj) repräsentierenden Bahnparameter (tj) mittels Interpolation zwischen zwei Positionen (Bi(Tij), Bi(Ti(j+i))) und zwei zugehörigen Parameterwerten, die ein Segment der vorab festgelegten Roboterbahn des jeweiligen Roboters (Rj) definieren, zu ermitteln.
PCT/EP2016/073119 2015-10-13 2016-09-28 Synchronisierung mehrerer roboter WO2017063887A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201680066264.4A CN108472808B (zh) 2015-10-13 2016-09-28 多个机器人的同步
US15/767,949 US11305429B2 (en) 2015-10-13 2016-09-28 Synchronization of multiple robots

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
DE102015117419.7 2015-10-13
DE102015116522.8A DE102015116522B3 (de) 2015-10-13 2015-10-13 Synchronisierung mehrerer Roboter
DE102015117419 2015-10-13
DE102015116522.8 2015-10-13

Publications (1)

Publication Number Publication Date
WO2017063887A1 true WO2017063887A1 (de) 2017-04-20

Family

ID=57044951

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2016/073119 WO2017063887A1 (de) 2015-10-13 2016-09-28 Synchronisierung mehrerer roboter

Country Status (3)

Country Link
US (1) US11305429B2 (de)
CN (1) CN108472808B (de)
WO (1) WO2017063887A1 (de)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9915937B2 (en) * 2014-05-21 2018-03-13 X Development Llc Systems and methods for time-based parallel robotic operation
EP3483684A3 (de) * 2017-10-25 2019-09-04 Omron Corporation Steuerungssystem
CN114473323A (zh) * 2022-02-21 2022-05-13 哈尔滨工业大学(深圳) 一种多机械臂力位耦合协同控制方法和焊接方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3715965A1 (de) * 2019-03-27 2020-09-30 Siemens Aktiengesellschaft Verfahren zum virtuellen testen einer anlagensteuerung sowie simulationsvorrichtung

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040068348A1 (en) * 2001-04-05 2004-04-08 Siemens Aktiengesellschaft Robot intelligence in natural environments
US20110066282A1 (en) * 2009-09-15 2011-03-17 Harris Corporation, Corporation Of The State Of Delaware Robotic apparatus implementing collision avoidance scheme and associated methods
US20120215351A1 (en) * 2008-05-21 2012-08-23 Mcgee H Dean Method and system for automatically preventing deadlock in multi-robot systems

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6365221B1 (en) * 1999-11-23 2002-04-02 Visions East, Inc. Computer controlled method and apparatus for fairing and painting of marine vessel surfaces
US6678582B2 (en) * 2002-05-30 2004-01-13 Kuka Roboter Gmbh Method and control device for avoiding collisions between cooperating robots
EP1901151B1 (de) * 2006-09-14 2010-02-24 Abb Research Ltd. Verfahren und Vorrichtung zur Vermeidung von Kollisionen zwischen einem Industrieroboter und einem Objekt
DE102010052253B4 (de) * 2010-11-23 2019-03-21 Kuka Deutschland Gmbh Verfahren und Steuermittel zur Steuerung einer Roboteranordnung
DE102012103830B4 (de) * 2011-05-05 2022-05-25 Fanuc Robotics America Corp. Verfahren und computerlesbare Medien zur automatischen Verbindung von gegenseitiger Blockierung in Mehrfachrobotersytemen
US9555545B2 (en) * 2014-05-21 2017-01-31 Bot & Dolly, Llc Systems and methods for time-based parallel robotic operation
US10131053B1 (en) * 2016-09-14 2018-11-20 X Development Llc Real time robot collision avoidance

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040068348A1 (en) * 2001-04-05 2004-04-08 Siemens Aktiengesellschaft Robot intelligence in natural environments
US20120215351A1 (en) * 2008-05-21 2012-08-23 Mcgee H Dean Method and system for automatically preventing deadlock in multi-robot systems
US20110066282A1 (en) * 2009-09-15 2011-03-17 Harris Corporation, Corporation Of The State Of Delaware Robotic apparatus implementing collision avoidance scheme and associated methods

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
PAUL BOSSCHER ET AL: "Real-time collision avoidance algorithm for robotic manipulators", TECHNOLOGIES FOR PRACTICAL ROBOT APPLICATIONS, 2009. TEPRA 2009. IEEE INTERNATIONAL CONFERENCE ON, IEEE, PISCATAWAY, NJ, USA, 9 November 2009 (2009-11-09), pages 113 - 122, XP031570405, ISBN: 978-1-4244-4991-0 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9915937B2 (en) * 2014-05-21 2018-03-13 X Development Llc Systems and methods for time-based parallel robotic operation
EP3483684A3 (de) * 2017-10-25 2019-09-04 Omron Corporation Steuerungssystem
CN114473323A (zh) * 2022-02-21 2022-05-13 哈尔滨工业大学(深圳) 一种多机械臂力位耦合协同控制方法和焊接方法
CN114473323B (zh) * 2022-02-21 2023-04-28 哈尔滨工业大学(深圳) 一种多机械臂力位耦合协同控制方法和焊接方法

Also Published As

Publication number Publication date
CN108472808B (zh) 2022-05-17
US20180311821A1 (en) 2018-11-01
US11305429B2 (en) 2022-04-19
CN108472808A (zh) 2018-08-31

Similar Documents

Publication Publication Date Title
DE102015116522B3 (de) Synchronisierung mehrerer Roboter
DE102009048252B4 (de) In eine numerisch gesteuerte Maschine eingebaute Kollisionsverhinderungsvorrichtung
DE102010017763B4 (de) Gerät zum Anzeigen des Werkzeugwegs für Werkzeugmaschinen
DE102011082800B4 (de) System und Verfahren zur automatisierten Erstellung von Roboterprogrammen
WO2017063887A1 (de) Synchronisierung mehrerer roboter
DE102017002603A1 (de) Robotersystem, das Roboter umfassend mehrere mechanische Einheiten steuert, mechanische Einheiten und Robotersteuervorrichtung
DE102009004285A1 (de) Verfahren und Vorrichtung zur Optimierung, Überwachung oder Analyse eines Prozesses
EP1906281A1 (de) Verfahren und System zur Auslegung und Überprüfung von Sicherheitsbereichen eines Roboters
EP1901149A2 (de) Vorrichtung und Verfahren zur Simulation eines Ablaufs zur Bearbeitung eines Werkstücks an einer Werkzeugmaschine
DE102011108282A1 (de) Numerische Steuerung für eine Mehrachsenmaschine zum Bearbeiten einer geneigten Bearbeitungsebene
DE102017009822A1 (de) Maschinenlernvorrichtung und Bearbeitungszeitvorhersagevorrichtung
DE102010031248A1 (de) Verfahren zum Vermessen eines Roboterarms eines Industrieroboters
EP2650741B1 (de) Werkzeugmaschine
DE102018203078B3 (de) Verfahren zum automatischen Erzeugen einer Bewegungstrajektorie und zugehöriges Computerprogrammprodukt
DE102014118001A1 (de) Verfahren zur Bewegungssimulation eines Manipulators
DE69211206T2 (de) Methode und Vorrichtung zur Erzeugung von Bahnbeschleunigungs- und Verzögerungsmustern für die Robotersteuerung
DE102016012227A1 (de) Verfahren zur automatischen Lagekorrektur eines Roboterarms
EP1152212B1 (de) Weitgehend selbsttätige Kalibrierung eines Betätigungsarmes eines Roboters
DE112017004424T5 (de) Befehlswerterzeugungsvorrichtung
DE102008013400B4 (de) Verfahren zur Ermittlung von Verriegelungsbereichen wenigstens eines im Raum bewegbaren ersten Objekts
DE102021210873A1 (de) Roboter-synchronisations-dichtmittelabgabesystem
EP3438773B1 (de) Bearbeitung von werkstücken mit modellgestützter fehlerkompensation
EP4056331A1 (de) Sicherer betrieb einer mehrachskinematik
DE102020114201A1 (de) Programmierverfahren für eine Beschichtungsanlage und entsprechende Beschichtungsanlage
EP2628574A1 (de) Verfahren zur Simulation einer Bearbeitungsmaschine

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16774927

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 15767949

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16774927

Country of ref document: EP

Kind code of ref document: A1