DE102012103830A1 - Method for preventing deadlock of a pair of robots in multi-robot system, involves avoiding deadlock condition during execution of programs by automatically determining and executing deadlock-free motion statement - Google Patents

Method for preventing deadlock of a pair of robots in multi-robot system, involves avoiding deadlock condition during execution of programs by automatically determining and executing deadlock-free motion statement Download PDF

Info

Publication number
DE102012103830A1
DE102012103830A1 DE102012103830A DE102012103830A DE102012103830A1 DE 102012103830 A1 DE102012103830 A1 DE 102012103830A1 DE 102012103830 A DE102012103830 A DE 102012103830A DE 102012103830 A DE102012103830 A DE 102012103830A DE 102012103830 A1 DE102012103830 A1 DE 102012103830A1
Authority
DE
Germany
Prior art keywords
robots
programs
mutual
robot
program
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
DE102012103830A
Other languages
German (de)
Other versions
DE102012103830B4 (en
Inventor
H. Dean McGee
Tien L. Chang
Jianming Tao
Di Xiao
Ho Cheung Wong
Sai-Kai Cheng
Jason Tsai
Peter Swanson
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fanuc America Corp
Original Assignee
Fanuc Robotics America Corp
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
Application filed by Fanuc Robotics America Corp filed Critical Fanuc Robotics America Corp
Publication of DE102012103830A1 publication Critical patent/DE102012103830A1/en
Application granted granted Critical
Publication of DE102012103830B4 publication Critical patent/DE102012103830B4/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/1674Programme controls characterised by safety, monitoring, diagnostic
    • B25J9/1676Avoiding collision or forbidden zones
    • 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/40Robotics, robotics mapping to robotics vision
    • G05B2219/40442Voxel map, 3-D grid map

Abstract

The method involves identifying portions of common workspace (10) occupied by robots (6,8), during concurrent execution of programs. The interference region is identified and analyzed, and occurrence of deadlock condition of two robots is identified. The deadlock condition is avoided during execution of programs by automatically determining and executing the deadlock-free motion statement prior to execution of any motion of the robots that results in deadlock condition. An independent claim is included for computer readable media storing program for preventing deadlock of a pair of robots.

Description

QUERVERWEIS AUF ZUGEORDNETE ANMELDUNGCROSS-REFERENCE TO APPROPRIATE REGISTRATION

Diese Anmeldung ist ein Antrag auf Teilweiterbehandlung der am 21. Mai 2008 eingereichten, anhängigen US-Patentanmeldung, Serien-Nr. 12/124 430.This application is a request for partial further handling of pending US Patent Application Serial No. 21 May 2008 filed. 12/124 430.

Diese Anmeldung erhebt den Anspruch auf den Nutzen der am 5. Mai 2011 eingereichten, vorläufigen US-Patentanmeldung, Serien-Nr. 61/482 808.This application claims the benefit of US Provisional Patent Application Serial No. 5, filed May 5, 2011. 61/482 808.

GEBIET DER ERFINDUNGFIELD OF THE INVENTION

Die vorliegende Erfindung betrifft im Allgemeinen ein System zur Steuerung einer Vielzahl von Robotern und ein Verfahren, um die Vermeidung von Bewegungsstörungen für die Vielzahl von Robotern zu steuern.The present invention generally relates to a system for controlling a plurality of robots and a method for controlling the avoidance of movement disturbances for the plurality of robots.

HINTERGRUND DER ERFINDUNGBACKGROUND OF THE INVENTION

Bewegung von Gegenständen im Raum ist eine notwendige Aufgabe in einer typischen Fertigungsumgebung. Robotertechnik ist zunehmend eingesetzt worden, um die notwendige Bewegung zu bewirken. Wenn jedoch mehrere Gegenstände bewegt werden, besteht ein Potential zur störenden Beeinflussung zwischen diesen Gegenständen. Eine Störung besteht, wenn die mindestens zwei Gegenstände zur gleichen Zeit den gleichen Raum teilen, wie beispielsweise, wenn die Gegenstände in Bezug auf einen gemeinsamen Bezugsrahmen die gleichen Koordinaten besitzen.Moving objects in space is a necessary task in a typical manufacturing environment. Robotics has been increasingly used to effect the necessary movement. However, if several objects are moved, there is a potential for interfering with these objects. A disturbance exists when the at least two objects share the same space at the same time, such as when the objects have the same coordinates with respect to a common frame of reference.

Weil sich moderne Industrieroboter mit beträchtlichen Geschwindigkeiten bewegen, können Störungen zwischen Robotern einen Zusammenstoß und eine unerwünschte Beschädigung an diesen und den durch die Roboter beförderten Werkstücken zur Folge haben. Die Zusammenstösse können zu einer teuren Ausfallzeit im Fertigungsprozess führen. Folglich ist es wünschenswert, solche Zusammenstösse zu vermeiden.Because modern industrial robots move at considerable speeds, interference between robots can result in collision and unwanted damage to them and the workpieces carried by the robots. The collisions can lead to expensive downtime in the manufacturing process. Consequently, it is desirable to avoid such collisions.

Es wurden Systeme und Verfahren des Standes der Technik bei dem Versuch verwendet, störende Beeinflussungen und Zusammenstösse zu minimieren. Es gibt jedoch mehrere Mängel der Systeme und Verfahren des Standes der Technik. Es ist typisch, dass ein Werkzeugarbeitspunkt (TCP) nur in Bezug auf einen vorbestimmten Störungsbereich oder „statischen Raum” geprüft wird. Bei Mehrfachrobotern ist es schwierig, deren Zusammenstoß oder Störung direkt oder effektiv zu verhindern. Ferner ist es schwierig, einen Störungsraum bezüglich eines ruhenden Koordinatensystems für mehrere, sich bewegende Roboter zu spezifizieren. Jeder Störungsraum ist nicht nur eine Funktion der Bewegungsstrecke des Roboters, sondern auch eine Funktion der Bewegungsgeschwindigkeit. Schwierigkeiten bestehen außerdem bei dem Versuch, eine Situation gegenseitiger Blockierung zu handhaben, wenn zwei oder mehrere Roboter anfordern, sich gleichzeitig zu einem gemeinsamen Raum zu bewegen.Prior art systems and methods have been used in attempting to minimize interfering influences and collisions. However, there are several deficiencies in the systems and methods of the prior art. It is typical that a tool working point (TCP) is checked only with respect to a predetermined disturbance area or "static space". With multiple robots, it is difficult to directly or effectively prevent their collision or interference. Further, it is difficult to specify a trouble space with respect to a resting coordinate system for a plurality of moving robots. Each disturbance space is not only a function of the moving distance of the robot, but also a function of the movement speed. Difficulties also exist in attempting to handle a blockage situation when two or more robots request to move simultaneously to a common space.

Systeme des Standes der Technik versuchen außerdem zu verhindern, dass ein TCP für einen Roboter in einem festgelegten Raum bezüglich seines Weltkoordinatensystem kollidiert. Wenn sich Mehrfachroboter (mit mehreren Steuereinheiten) einen gemeinsamen Raum oder „Störungsraum” während einer Aufgabenausführung teilen, muss jede Steuereinheit warten, bis sich kein Roboter in den gemeinsamen Räumen befindet. Dann kann die Steuereinheit die Befehle zur Bewegungssteuerung ausgeben, damit sich der Roboter bewegen kann. Dieser Prozess wird auch „Warte-und-Bewege-Prozess” genannt, der im Allgemeinen die Zeit eines Arbeitszyklus erhöht. Es ist jedoch schwierig, einen Störungsraum im Vergleich zu einem festen Koordinatensystem effektiv festzulegen, weil der Störungsraum nicht nur die Funktion der Bewegungsstrecke, sondern auch der Bewegungsgeschwindigkeit des Roboters ist. Wenn mehr als ein Roboter anfordert, sich gleichzeitig zu einem gemeinsamen Raum zu bewegen, wird eine Situation gegenseitiger Blockierung erzeugt, in der sich keiner der Roboter bewegen kann, weil sie aufeinander warten.Prior art systems also attempt to prevent a TCP from colliding with a robot in a fixed space with respect to its world coordinate system. If multiple robots (with multiple controllers) share a common room or "trouble room" during a task execution, each control unit must wait until there is no robot in the common spaces. Then, the control unit can output the motion control commands for the robot to move. This process is also called a "wait-and-go process," which generally increases the time of a work cycle. However, it is difficult to effectively set a trouble space as compared with a fixed coordinate system because the trouble space is not only the function of the moving distance but also the moving speed of the robot. When more than one robot requests to move simultaneously to a common space, a situation of mutual blocking is created in which none of the robots can move because they are waiting for each other.

Bei Systemen des Standes der Technik wird auch versucht, den Roboter durch Kugeln und Zylinder zu modellieren. Diese Systeme schreiben eine künftige Örtlichkeit des Roboters während einer Bewegung in Echtzeit vor. Weil diese Systeme den von dem Roboter über die Zeit besetzten Raum nicht über die Zeit bestimmen, müssen diese Systeme während der Roboterbewegung ständig einen Vergleich durchführen. Diese Systeme vergleichen Element für Element der Modelle aller Roboter in der Bearbeitungskammer. Dieser Vergleich ist rechnerisch sehr kostspielig, und die Kosten wachsen potenziell wie die Anzahl von Robotern und Elementen zunimmt, die verwendet werden, um einen Roboter und maschinelle Ausrüstungen zu modellieren. Weil der Vergleich in Echtzeit vorgenommen wird, wenn ein unmittelbar bevorstehender Zusammenstoß detektiert wird, müssen diese Systeme normalerweise alle von dem bevorstehenden Zusammenstoß betroffenen Roboter anhalten, und es muss ein automatischer programmierter Arbeitsgang eingestellt werden. Diese Systeme werden schwieriger, wenn die Roboter auf unterschiedlichen Steuereinheiten liegen, weil sie große, zwischen Steuereinheiten in Echtzeit zu übertragende Informationsmengen erforderlich machen. Systeme des Standes der Technik versuchen auch zur Verhinderung von störender Beeinflussung, einen Eingabe-Ausgabe-Quittungsbetrieb zu nutzen. In der vorliegenden Erfindung besteht kein Bedarf an speicherprogrammierbarer Eingabe-Ausgabe-Steuerung.In prior art systems, it is also attempted to model the robot by bullets and cylinders. These systems dictate a future location of the robot during real-time motion. Because these systems do not determine the space occupied by the robot over time, these systems must constantly compare during robot movement. These systems compare element by element the models of all robots in the processing chamber. This comparison is computationally very costly and the cost potentially increases as the number of robots and elements used to model a robot and machine equipments increases. Because the comparison is made in real time when an imminent collision is detected, these systems must normally stop all robots affected by the impending collision, and an automatic programmed operation must be set. These systems become more difficult when the robots are on different control units because they require large amounts of information to be transferred between controllers in real time. Prior art systems have also attempted to prevent input disturbance from interfering with Receipt operation to use. There is no need for memory programmable input-output control in the present invention.

Ein bekanntes System und Verfahren ist in der anhängigen Internationalen Anmeldung Nr. PCT/US2007/066638 des Rechtsnachfolgers offenbart, die hier durch Bezug in ihrer Gesamtheit einbezogen ist. Das System und das Verfahren umfassen ein „dynamisches Raumprüfsystem”, bei dem die Effizienz einer Roboteroperation maximiert und ein Potenzial für störende Beeinflussung oder Zusammenstoß von mehreren Robotern minimiert wird. Durch jede Steuereinheit gesteuerte Roboter arbeiten nur auf einem benutzerdefinierten, dynamischen Raum, womit ein Zusammenstoß vermieden wird. Jedoch schützt das dynamische Raumprüfsystem einen TCP im Allgemeinen nur gegen einen benutzerdefinierten, geradlinigen Raum.One known system and method is disclosed in co-pending International Application No. PCT / US2007 / 066638 of the assignee, which is incorporated herein by reference in its entirety. The system and method include a "dynamic space inspection system" in which the efficiency of a robotic operation is maximized and a potential for interfering or colliding multiple robots is minimized. Robots controlled by each control unit only operate on a user-defined, dynamic space, thus avoiding a collision. However, the dynamic space checking system generally protects TCP only against a user-defined, straight-line space.

Von einem weiteren bekannten Verfahren zur Vermeidung von Roboterzusammenstössen wird in dem Pollack et al. erteilten US-Patent Nr. 5 150 452 berichtet. Das Verfahren umfasst das Erzeugen einer Kollisionsbildvorlage, die eine gewünschte Roboterbewegung enthält. Die Ausgangsposition des gewünschten Roboters wird von einer „Weltbildvorlage” entfernt, indem die Roboterbildvorlage und die Weltbildvorlage in einer logischen exklusiven ODER-Verknüpfung kombiniert werden und danach die Kollisionsbildvorlage und die Weltbildvorlage in einer lokalen exklusiven ODER-Verknüpfung kombiniert werden, dem sich das Kombinieren der Kollisionsbildvorlage und der Weltbildvorlage in einer logischen inklusiven ODER-Verknüpfung byteweise anschließt. Ein Zusammenstoß wird durch einen Unterschied in einer beliebigen Bit-Position der inklusiven und exklusiven ODER-Verknüpfungen angezeigt. Das Verfahren stellt eine zweidimensionale x-y-Projektion und eine eindimensionale Höhe zur Kollisionserkennung bereit, ermöglicht jedoch keine dreidimensionale Kollisionserkennung in Echtzeit.Another known method for preventing robotic collisions is described in Pollack et al. other members U.S. Patent No. 5,150,452 reported. The method includes generating a collision image template containing a desired robot motion. The home position of the desired robot is removed from a "world image template" by combining the robotic image template and the world image template in a logical exclusive OR operation, and then combining the collision image template and the world image template in a local exclusive OR operation, combining the Collision image template and the world image template in a logical inclusive OR operation byte by byte. A crash is indicated by a difference in any bit position of the inclusive and exclusive OR joins. The method provides a two-dimensional xy projection and a one-dimensional height for collision detection, but does not allow real-time three-dimensional collision detection.

Ein weiteres bekanntes Verfahren zum Erkennen eines Zusammenstoßes zwischen einem Roboter und einem oder mehreren Hindernissen, bevor er sich ereignet, wird in dem Greenspan et al. erteilten US-Patent Nr. 5 347 459 beschrieben. Der Roboter ist durch Kugeln in einem voxelierten Arbeitsbereich modelliert. Jedes Voxel innerhalb des Arbeitsbereiches ist einem Wert zugeordnet, der seinem Abstand vom nächstliegenden Hindernis entspricht. Ein Zusammenstoß wird als nahe bevorstehend bestimmt, wenn der Voxelwert im Mittelpunkt einer Kugel kleiner als der Radius einer anderen Kugel in Voxeln ist. Das Verfahren schützt jedoch lediglich einen einzelnen Roboterarm. Der Roboter wird ebenfalls nur durch Kugeln modelliert, wodurch sich ein unzureichender Schutz von entscheidenden Prozesswegen der Roboter ergibt.Another known method for detecting a collision between a robot and one or more obstacles before it occurs is described in Greenspan et al. other members U.S. Patent No. 5,347,459 described. The robot is modeled by bullets in a voxelized workspace. Each voxel within the workspace is assigned a value that corresponds to its distance from the nearest obstacle. A collision is determined to be imminent if the voxel value at the center of one sphere is less than the radius of another sphere in voxels. However, the method only protects a single robotic arm. The robot is also modeled only by bullets, which results in insufficient protection of critical process paths of the robot.

Es besteht fortgesetzter Bedarf an einem System und einem Verfahren, um die Vermeidung einer Bewegungsstörung für eine Vielzahl von Robotern zu steuern. Es ist wünschenswert, dass das System und das Verfahren eine dreidimensionale Erkennung eines Zusammenstoßes in Echtzeit, Übertragung von Roboterbewegungen auf das Robotersystem im Voraus, eine Reservierung programmierter Bahnen ohne Zusammenstoß und den Schutz von kritischen Prozesswegen zur Verfügung stellt.There is a continuing need for a system and method for controlling the prevention of motion disturbance for a plurality of robots. It is desirable that the system and method provide three-dimensional real-time collision detection, advance robotic motion transmission to the robotic system, reservation of programmed pathways without collision and protection of critical process paths.

Bedingungen von gegenseitiger Blockierung treten auf, wenn die Programme oder Aufgaben sich in einem solchen Zustand befinden, dass eine fortgesetzte, aufeinander folgende Ausführung eines beliebigen der Programme oder Aufgaben zu einer gegenseitigen Beeinflussung zwischen einem oder mehreren Robotern, die den Programmen oder Aufgaben zugeordnet sind, führen wird und dass es kein Programm oder keine Aufgabe gibt, die in der aufeinander folgenden Art und Weise ohne gegenseitige Beeinflussung fortschreiten können.Conditions of mutual blocking occur when the programs or tasks are in such a state that continued, sequential execution of any one of the programs or tasks results in interference between one or more robots associated with the programs or tasks. and that there is no program or task that can progress in a sequential manner without mutual interference.

Das Chaffee et al. erteilte US-Patent Nr. 7 114 157 beschreibt ein Verfahren zur Vermeidung von gegenseitiger Blockierung durch das Erfassen von Hilfsmitteln in einem gesetzten Ablauf. Während durch dieses Verfahren gegenseitige Blockierung vermieden werden kann, schafft es keine Fähigkeit, einen Arbeitsgang zuzulassen, wenn der von gegenseitiger Blockierung freie, gesetzte Ablauf nicht bestimmt wurde. Des Weiteren lässt es keinen Arbeitsgang zu, der frei von gegenseitiger Blockierung sein kann, wenn sich der angeforderte Ablauf außerhalb des vorgeschriebenen, von gegenseitiger Blockierung freien, Ablaufs befindet.The Chaffee et al. granted U.S. Patent No. 7,114,157 describes a method for preventing mutual blocking by detecting aids in a set process. While mutual blocking can be avoided by this method, it does not provide a capability to allow a pass if the set deadlock-free sequence has not been determined. Furthermore, it does not allow any operation that can be free of deadlock if the requested operation is outside of the prescribed, deadlock-free, flow.

Die US-Patentanmeldung, Veröffentlichungs-Nr. 2009/0326711 für Chang et al. beschreibt ein Verfahren zur Verwendung von Automatikbereichen, um eine gegenseitige Blockierung entweder automatisch oder manuell zu vermeiden. Chang schlägt ein Verfahren zur Verwendung von Prioritätswerten vor, um gegenseitige Blockierung zu verhindern. Chang schlägt kein Verfahren zur Verhinderung von gegenseitiger Blockierung vor, bei dem Prioritätswerte nicht verwendet werden.US patent application, publication no. 2009/0326711 for Chang et al. describes a method of using automatic ranges to avoid deadlock either automatically or manually. Chang proposes a method of using priority values to prevent mutual blocking. Chang does not suggest a method of preventing mutual blocking that does not use priority values.

ZUSAMMENFASSUNG DER ERFINDUNGSUMMARY OF THE INVENTION

In Übereinstimmung mit der gegenwärtigen Offenlegung ist überraschend ein System und ein Verfahren zur Steuerung einer Verhinderung von Bewegungsstörung für eine Vielzahl von Robotern herausgefunden worden, wobei System und Verfahren eine dreidimensionale Kollisionserkennung in Echtzeit, Übertragung von Roboterbewegungen zum Robotersystem im Voraus, eine Reservierung von programmierten Bahnen ohne Zusammenstoß und den Schutz von entscheidenden Prozesswegen bereitstellt, ohne den Mechanismus eines Eingabe-Ausgabe-Quittungsbetriebs zu nutzen.In accordance with the present disclosure, surprisingly, a system and method for controlling motion disorder prevention for a plurality of robots has been found, the system and method providing real-time three-dimensional collision detection, robot motion in advance to robotic system, reservation of programmed paths without collision and the protection of crucial process paths without using the mechanism of an input-output acknowledge operation.

In einer Ausführungsform gibt es ein Verfahren zur Verhinderung von gegenseitiger Blockierung eines Paares von Robotern, die einen gemeinsamen Arbeitsbereich aufweisen, bei der jeder der Roboter durch ein zugeordnetes Programm gesteuert wird, wobei, wenn die Programme gleichzeitig ausgeführt werden, jeder der Roboter zumindest einen Abschnitt des gemeinsamen Arbeitsbereichs während eines Teils der Ausführung des zugeordneten Programms besetzt, wobei das Verfahren die Schritte umfasst: während gleichzeitiger Ausführung der Programme, Kennzeichnen von Abschnitten des gemeinsamen Arbeitsbereiches, der von den Robotern eingenommen wird; Kennzeichnen zumindest eines Störungsbereiches, bei dem sich die Abschnitte des gemeinsamen Arbeitsbereiches überdecken; Analysieren des zumindest einen Störungsbereichs und Kennzeichnen, wo zumindest eine Bedingung gegenseitiger Blockierung der zwei Roboter auftreten kann; und Vermeiden der zumindest einen Bedingung gegenseitiger Blockierung während einer Ausführung der Programme durch das automatische Bestimmen und Ausführen zumindest einer Anweisung einer von gegenseitiger Blockierung freien Bewegung vor Ausführung einer beliebigen Bewegung der Roboter, was in der zumindest einen Bedingung gegenseitiger Blockierung resultiert.In one embodiment, there is a method for preventing mutual blocking of a pair of robots having a common work area in which each of the robots is controlled by an associated program, wherein if the programs are executed simultaneously, each of the robots has at least a portion of the shared work area during part of the execution of the associated program, the method comprising the steps of: while concurrently executing the programs, identifying portions of the shared work area occupied by the robots; Marking at least one fault area in which the portions of the common work area overlap; Analyzing the at least one fault area and identifying where at least one condition of mutual blockage of the two robots may occur; and avoiding the at least one condition of mutual blocking during execution of the programs by automatically determining and executing at least one instruction of mutual blocking free movement prior to performing any movement of the robots, resulting in the at least one mutual blocking condition.

In einer weiteren Ausführungsform gibt es computerlesbare Medien, die Anweisungen enthalten, die von einem Computer ausführbar sind, um ein Verfahren zur Verhinderung von gegenseitiger Blockierung eines Paars von Robotern, die einen gemeinsamen Arbeitsbereich besitzen, durchzuführen, wobei jeder der Roboter durch ein zugeordnetes Programm gesteuert wird, bei dem jeder der Roboter zumindest einen Teil des gemeinsamen Arbeitsbereiches während eines Ausführungsabschnitts des zugeordneten Programms besetzt, wenn die Programme gleichzeitig ausgeführt werden, wobei das Verfahren umfasst: während gleichzeitiger Ausführung der Programme, die Anweisungen, die Abschnitte des gemeinsamen, durch die Roboter besetzten Arbeitsbereiches kennzeichnen; die Anweisungen, die zumindest einen Störungsbereich, in dem sich die Abschnitte des gemeinsamen Arbeitsbereiches überdecken, kennzeichnen; die Anweisungen, die den zumindest einen Störungsbereich analysieren und die kennzeichnen, wo zumindest eine Bedingung von gegenseitiger Blockierung der zwei Roboter auftreten kann; und die Anweisungen, die die zumindest eine Bedingung gegenseitiger Blockierung bei einer Ausführung der Programme verhindern, indem zumindest eine Anweisung einer von gegenseitiger Blockierung freien Bewegung vor Ausführung einer beliebigen Bewegung der Roboter automatisch bestimmt und ausgeführt wird, was in der mindestens einen Bedingung gegenseitiger Blockierung resultiert.In another embodiment, there are computer readable media containing instructions executable by a computer to perform a method of preventing mutual blocking of a pair of robots having a shared workspace, each of the robots being controlled by an associated program in which each of the robots occupies at least a portion of the shared work area during an execution portion of the associated program when the programs are concurrently executed, the method comprising: while concurrently executing the programs, the instructions, the portions of the common, by the robots marked occupied work area; the instructions identifying at least one region of disturbance in which the portions of the common work area overlap; the instructions that analyze the at least one fault area and identify where at least one condition of mutual locking of the two robots may occur; and the instructions that prevent the at least one mutual blocking condition from executing the programs by automatically determining and executing at least one mutual blocking free movement instruction prior to executing any movement of the robots, resulting in the at least one mutual blocking condition ,

In einer weiteren Ausführungsform gibt es ein Verfahren zur Verhinderung von gegenseitiger Blockierung einer Vielzahl von Robotern, die einen gemeinsamen Arbeitsbereich besitzen, jeder der Roboter durch ein zugeordnetes Programm gesteuert wird, wobei, wenn die Programme gleichzeitig ausgeführt werden, jeder der Roboter zumindest einen Teil des gemeinsamen Arbeitsbereiches während eines Teils der Ausführung des zugeordneten Programms besetzt, wobei das Verfahren die Schritte umfasst: während gleichzeitiger Ausführung der Programme, Kennzeichnen von Teilen des durch die Roboter besetzten, gemeinsamen Arbeitsbereiches; Kennzeichnen von zumindest einem Störungsbereich, wobei sich die Abschnitte des gemeinsamen Arbeitsbereiches für zumindest zwei der Roboter überdecken; Analysieren des zumindest einen Störungsbereiches und Kennzeichnen, wo zumindest eine Bedingung gegenseitiger Blockierung der zumindest zwei Roboter auftreten kann; und Vermeiden der zumindest einen Bedingung von gegenseitiger Blockierung während einer Ausführung der Programme, indem zumindest eine Anweisung einer von gegenseitiger Blockierung freien Bewegung vor Ausführung einer beliebigen Bewegung der mindestens zwei Roboter automatisch bestimmt und ausgeführt wird, was in der zumindest einen Bedingung von gegenseitiger Blockierung resultiert.In another embodiment, there is a method for preventing mutual blocking of a plurality of robots having a common work area, each of the robots being controlled by an associated program, wherein, when the programs are executed simultaneously, each of the robots comprises at least a portion of the robot shared work area during a portion of the execution of the associated program, the method comprising the steps of: while simultaneously executing the programs, identifying portions of the shared work area occupied by the robots; Characterizing at least one fault area, wherein the portions of the common work area overlap for at least two of the robots; Analyzing the at least one fault area and identifying where at least one condition of mutual blockage of the at least two robots may occur; and avoiding the at least one condition of mutual blocking during execution of the programs by automatically determining and executing at least one mutual blocking free movement instruction prior to performing any movement of the at least two robots, resulting in the at least one condition of mutual blocking ,

Das erfindungsgemäße System und das Verfahren erfordern keinen vorher bekannten, von gegenseitiger Blockierung freien Ablauf. Dieses System und dieses Verfahren werden die potenziellen Bedingungen von gegenseitiger Blockierung automatisch bestimmen und eine Möglichkeit erkennen, um diese Bedingungen zu vermeiden. Dieses System und dieses Verfahren erfordern keine Prioritätswerte, um eine gegenseitige Blockierung zu verhindern. Dieses System und dieses Verfahren verhindern Störungsbedingungen und verhindern gleichzeitig die Möglichkeit, dass Bedingungen von gegenseitiger Blockierung vorhanden sind.The system and method of the present invention do not require a previously known free-from-blockage process. This system and method will automatically determine the potential conditions of deadlock and recognize a possibility to avoid these conditions. This system and method does not require priority values to prevent mutual blocking. This system and method avoids interference conditions while avoiding the possibility of conditions of mutual blockage.

BESCHREIBUNG DER ZEICHNUNGENDESCRIPTION OF THE DRAWINGS

Die oben erwähnten sowie andere Vorteile der vorliegenden Erfindung erschließen sich dem Fachmann bei Betrachtung ohne weiteres aus der folgenden ausführlichen Beschreibung einer bevorzugten Ausführungsform angesichts der begleitenden Zeichnungen, in denen:The above-mentioned as well as other advantages of the present invention will become apparent to those skilled in the art upon consideration of the following detailed description of a preferred embodiment given the accompanying drawings, in which:

1 zeigt ein beispielhaftes Robotersystem nach der vorliegenden Offenlegung, das einen ersten Roboter und einen zweiten Roboter aufweist, die in einem Arbeitsbereich in Betrieb sind; 1 shows an exemplary robotic system according to the present disclosure having a first robot and a second robot operating in a work area;

2 ist ein Prozessablaufdiagramm, das ein Verfahren zur Störungsprüfung eines Automatikbereiches gemäß der vorliegenden Offenlegung veranschaulicht; 2 FIG. 10 is a process flow diagram illustrating a method of fault checking of an automatic area according to the present disclosure; FIG.

3 zeigt ein voxeliertes Modell des jeweils ersten und zweiten Roboters, die in 1 dargestellt sind; 3 shows a voxelated model of the respective first and second robot, which in 1 are shown;

4 ist eine isometrische Darstellung des voxelierten Modells, das in 3 veranschaulicht ist; 4 is an isometric representation of the voxelated model used in 3 is illustrated;

5 zeigt eine vergrößerte Ansicht des jeweils ersten und zweiten, in 1 dargestellten Roboters mit einem voxelierten Modell, das durch voxelierte Kugeln und Zylinder gebildet wird, die jeweils über den ersten und den zweiten Roboter gelegt sind; 5 shows an enlarged view of each first and second, in 1 a robot having a voxelated model formed by voxelized balls and cylinders respectively overlaid on the first and second robots;

6 zeigt die in 5 veranschaulichten voxelierten Kugeln und voxelierten Zylinder, die aus einer Vielzahl von Voxeln gebildet sind; 6 shows the in 5 illustrated voxelated spheres and voxelated cylinders formed from a plurality of voxels;

7 zeigt eine von gegenseitiger Blockierung freie Matrix und dazugehörige Programmauflistungen gemäß der Erfindung; 7 Figure 4 shows a mutual blocking free matrix and associated program listings according to the invention;

8 zeigt eine Störungsmatrix und dazugehörige Programmauflistungen gemäß der Erfindung; 8th shows a fault matrix and associated program listings according to the invention;

9 zeigt Pfade und dazugehörige Tabellen, die mehrere Bereiche gegenseitiger Blockierung zu einem einzelnen, von gegenseitiger Blockierung freien Bereich kombinieren; 9 Figure 12 shows paths and associated tables that combine multiple areas of mutual blocking into a single, unblock-free area;

10 zeigt mehrere Ausführungsabläufe eines Roboterprogramms ohne und mit Verhinderung von gegenseitiger Blockierung gemäß der Erfindung; 10 shows several execution sequences of a robot program without and with mutual blockage prevention according to the invention;

11 ist das Ablaufdiagramm eines Ablaufs zur Vermeidung von gegenseitiger Blockierung gemäß der Erfindung; und 11 Figure 3 is the flowchart of a mutual blockage avoidance procedure according to the invention; and

12 ist ein Ablaufdiagramm zur Bestimmung von potenziellen Bereichen gegenseitiger Blockierung gemäß der Erfindung. 12 Figure 3 is a flow chart for determining potential areas of mutual blockage according to the invention.

BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMDESCRIPTION OF THE PREFERRED EMBODIMENT

Die folgende Beschreibung ist nur beispielhaft, und es ist nicht beabsichtigt, die vorliegende Offenlegung, Anmeldung oder Verwendungen zu beschränken. Es soll verständlich werden, dass durchweg in den Zeichnungen entsprechende Bezugszahlen auch gleiche oder entsprechende Teile und Merkmale angeben. Bezüglich der offen gelegten Verfahren sind die dargestellten Schritte beispielhaft und sind somit nicht zwangsläufig oder entscheidend.The following description is exemplary only and is not intended to limit the present disclosure, application, or uses. It should be understood that throughout the drawings, like reference numerals indicate like or corresponding parts and features. With regard to the disclosed methods, the illustrated steps are exemplary and thus not necessarily or decisively.

1 ist eine Prinzipskizze, die ein Robotersystem 2 zur Steuerung einer Vermeidung von Zusammenstössen zwischen mehreren Robotern darstellt. Als nicht einschränkende Beispiele kann das Robotersystem 2 entweder ein Karosserierohbau-Robotersystem, ein Wasserstrahlschneid-Robotersystem, ein Laserschweiß-Robotersystem, ein Lichtbogenschweiß-Robotersystem und ein Lackierungs-Robotersystem mit zumindest zwei Robotern sein. Andere Robotersysteme 2 mit einer Vielzahl von Robotern können je nach Bedarf ebenfalls eingesetzt werden. 1 is a schematic diagram showing a robot system 2 to control avoidance of collisions between multiple robots. As a non-limiting example, the robot system 2 either a body shell robot system, a water jet cutting robot system, a laser welding robot system, an arc welding robot system, and a paint robot system having at least two robots. Other robot systems 2 with a variety of robots can also be used as needed.

Das Robotersystem 2 umfasst einen Arbeitsbereich 4, der eine Umhüllung bildet, innerhalb der ein erster Roboter 6 und ein zweiter Roboter 8 so aufgebaut sind, dass sie in Betrieb sind. Der erste Roboter 6 und der zweite Roboter 8 sind so gestaltet, dass sie selektiv mindestens einen innerhalb des Arbeitsbereiches 4 angeordneten gemeinsamen Raum 10 besetzen. Obwohl nur ein erster Roboter 6 und ein zweiter Roboter 8 dargestellt sind, soll deutlich werden, dass das Robotersystem 2 mehr als zwei Roboter aufweisen kann, ohne vom Umfang und Geist der Offenlegung abzuweichen.The robot system 2 includes a workspace 4 which forms a cladding within which a first robot 6 and a second robot 8th are constructed so that they are in operation. The first robot 6 and the second robot 8th are designed so that they selectively at least one within the work area 4 arranged common space 10 occupy. Although only a first robot 6 and a second robot 8th should be clear that the robot system 2 have more than two robots without departing from the scope and spirit of the disclosure.

Der erste Roboter 6 kann während einer Bewegung des ersten Roboters 6 entlang einer ersten programmierten Strecke einen ersten Abschnitt 12 des gemeinsamen Raumes 10 einnehmen. Der zweite Roboter 8 kann während einer Bewegung des zweiten Roboters 8 entlang einer zweiten programmierten Strecke einen zweiten Abschnitt 14 des gemeinsamen Raumes 10 einnehmen. Die ersten und zweiten Abschnitte 12, 14 sind auch als „Automatikbereiche” oder „Autozonen” bekannt. Jede programmierte Strecke umfasst eine oder mehrere Automatikbereiche, und jeder Automatikbereich ist vorverarbeitet und wird von einer oder mehreren Bewegungsanweisungen abgeleitet. Die ersten und zweiten programmierten Strecken können durch eine oder mehrere Bewegungsanweisungen in einer Reihenfolge von Arbeitsschritten zum Beispiel mit mehreren Bewegungsanweisungen gesteuert werden. Ein geübter Handwerker soll verstehen, dass sich die ersten und zweiten Abschnitte 12, 14 überdecken können, was bei fehlendem Einsatz eines Verfahrens der Störungsvermeidung zur Steuerung der Bewegungen des ersten und zweiten Roboters 6, 8 zu der Wahrscheinlichkeit eines Roboterzusammenstoßes führt.The first robot 6 can during a movement of the first robot 6 along a first programmed route a first section 12 of the common room 10 taking. The second robot 8th can during a movement of the second robot 8th along a second programmed route a second section 14 of the common room 10 taking. The first and second sections 12 . 14 are also known as "Auto Areas" or "Auto Zones". Each programmed route includes one or more automatic ranges, and each automatic range is preprocessed and derived from one or more motion instructions. The first and second programmed routes may be controlled by one or more movement instructions in an order of operations, for example, with multiple movement instructions. A skilled craftsman should understand that the first and second sections 12 . 14 What can be covered in the absence of a method of interference prevention for controlling the movements of the first and second robot 6 . 8th leads to the probability of a robot collision.

Die ersten und zweiten Roboter 6, 8 werden durch mindestens eine Steuereinheit 16, 18 gesteuert. In der in 1 dargestellten Ausführungsform wird der erste Roboter 6 durch die erste Steuereinheit 16 und der zweite Roboter 18 durch die zweite Steuereinheit 18 gesteuert. Die zumindest eine Steuereinheit 16, 18 ist zur elektrischen Übertragung mit einer elektrischen Stromquelle (nicht gezeigt) ausgelegt. Die Steuereinheit 16, 18 kann die Reihenfolge von Anweisungen, wie beispielsweise ein in der Steuereinheit 16, 18 befindliches Computerprogramm, ausführen. Bei anderen Ausführungsformen kann die Anweisungsfolge auf einem computerlesbaren Medium oder einem in Kommunikation mit der Steuereinheit 16, 18 befindlichen Speicher zu finden sein.The first and second robots 6 . 8th be through at least one control unit 16 . 18 controlled. In the in 1 illustrated embodiment, the first robot 6 through the first control unit 16 and the second robot 18 through the second control unit 18 controlled. The at least one control unit 16 . 18 is designed for electrical transmission with an electrical power source (not shown). The control unit 16 . 18 can be the order of instructions, such as one in the control unit 16 . 18 computer program. In other embodiments, the instruction sequence may be on a computer-readable medium or in communication with the controller 16 . 18 be located memory.

Das Robotersystem 2 kann ferner andere, an sich bekannte Komponenten enthalten wie beispielsweise Netzwerkmedien (nicht dargestellt), die zur Verbindung der verschiedenen Systemkomponenten gestaltet sind, einen programmierbaren Logikbaustein (nicht dargestellt) und/oder eine in elektrischer Verbindung mit der zumindest einen Steuereinheit 16, 18 befindliche Lehrvorrichtung 20. In einer speziellen Ausführungsform kann die Lehrvorrichtung 20 einen Monitor umfassen und ist so gestaltet, um je nach Bedarf den ersten Roboter 6, den zweiten Roboter 8, den ersten Abschnitt 12 des gemeinsamen Raumes 10 und den zweiten Abschnitt 14 des gemeinsamen Raumes 10 zur Betrachtung durch eine Bedienperson des Robotersystems 2 grafisch darzustellen. Die Lehrvorrichtung 20 kann Mittel umfassen, um eine Anweisungsfolge zum Anstoßen des Roboters auszulösen.The robot system 2 may further include other components known per se, such as network media (not shown) configured to interconnect the various system components, a programmable logic device (not shown) and / or in electrical communication with the at least one controller 16 . 18 located teaching device 20 , In a specific embodiment, the teaching device 20 include a monitor and is designed to be the first robot as needed 6 , the second robot 8th , the first section 12 of the common room 10 and the second section 14 of the common room 10 for viewing by an operator of the robot system 2 graphically. The teaching device 20 may include means for initiating a sequence of instructions to impact the robot.

Eine beispielhafte Anweisungsfolge gemäß der vorliegenden Offenlegung ist in 2 dargestellt. Die Anweisungsfolge umfasst ein Störungsprüfverfahren 200 für Automatikbereiche. Das Störungsprüfverfahren 200 für Automatikbereiche umfasst zuerst einen Einleitungsschritt 202 zum Bereitstellen des zumindest einen gemeinsamen Raumes 10 innerhalb der Arbeitsbereiches 4. Dem Einleitungsschritt 202 schließt sich ein erster Bestimmungsschritt 204 und ein zweiter Bestimmungsschritt 206 an. Der erste Bestimmungsschritt 204 umfasst das Bestimmen des ersten Abschnitts 12 des gemeinsamen Raumes 10, der bei der Bewegung des ersten Roboters 6 entlang der ersten programmierten Strecke besetzt wird. Der zweite Bestimmungsschritt 206 umfasst das Bestimmen des zweiten Abschnitts 14 des gemeinsamen Raumes 10, der bei der Bewegung des zweiten Roboters 18 entlang der zweiten programmierten Strecke besetzt wird. Es soll deutlich werden, dass der erste Abschnitt 12 und der zweite Abschnitt 14 automatisch bestimmt werden können, d. h., ohne dass ein anwenderdefinierter Operationsbereich für jeden Roboter, wie es im Stand der Technik bekannt ist, notwendig wird. Der erste Abschnitt 12 und der zweite Abschnitt 14 werden anschließend in einem Vergleichsschritt 208 verglichen, um festzustellen, ob zwischen diesen eine Überdeckung 210 existiert.An exemplary set of instructions in accordance with the present disclosure is in 2 shown. The instruction sequence includes a fault checking procedure 200 for automatic areas. The fault test procedure 200 for automatic ranges includes first an introductory step 202 for providing the at least one common room 10 within the workspace 4 , The introductory step 202 closes a first determination step 204 and a second determination step 206 at. The first determination step 204 includes determining the first section 12 of the common room 10 that during the movement of the first robot 6 occupied along the first programmed route. The second determination step 206 includes determining the second portion 14 of the common room 10 who is in the movement of the second robot 18 along the second programmed route. It should be clear that the first section 12 and the second section 14 can be automatically determined, ie, without requiring a user-defined operation area for each robot, as is known in the art. The first paragraph 12 and the second section 14 are then in a comparison step 208 compared to see if there is any overlap between them 210 exist.

Als ein nicht einschränkendes Beispiel können der erste Bestimmungsschritt 204 und der zweite Bestimmungsschritt 206 während einer Anfangsoperation des Robotersystems 2 mit dem ersten Roboter 6 und dem zweiten Roboter 8 im Wesentlichen in Echtzeit geführt werden. Die Anfangsoperation kann mit dem ersten Roboter 6 und dem zweiten Roboter 18 in einem Sperrmodus geführt werden, um deren potenzielle Zusammenstösse zu vermeiden. In einem anderen Beispiel können der erste Bestimmungsschritt 204 und der zweite Bestimmungsschritt 206 geführt werden, indem Läufe der ersten und der zweiten programmierten Strecke im nicht angeschlossenen Modus durchgeführt werden, um zum Beispiel den ersten Abschnitt 12 und den zweiten Abschnitt 14 des gemeinsamen Raumes 10 zu kennzeichnen, der von den Robotern 6, 8 während des Echtzeitbetriebes eingenommen werden kann. Der erste Abschnitt 12 und der zweite Abschnitt 14, die während der ersten und zweiten Bestimmungsschritte 204, 206 gekennzeichnet werden, können des Weiteren zum Beispiel auf dem Speicher zurückgehalten und bei nachfolgenden Operationen des ersten Roboters 6 und des zweiten Roboters 18 erneut verwendet werden. Es soll verständlich werden, dass die programmierten Strecken oder Bahnen des Roboters auf diese Weise vorverarbeitet und aufbewahrt werden, um einem Zusammenstoß derselben entgegenzuwirken.As a non-limiting example, the first determining step 204 and the second determination step 206 during an initial operation of the robot system 2 with the first robot 6 and the second robot 8th essentially in real time. The initial operation can be done with the first robot 6 and the second robot 18 in a locked mode to avoid their potential collisions. In another example, the first determination step 204 and the second determination step 206 by performing runs of the first and second programmed links in unconnected mode, for example the first section 12 and the second section 14 of the common room 10 to be identified by the robots 6 . 8th during real-time operation. The first paragraph 12 and the second section 14 during the first and second determination steps 204 . 206 Further, for example, they may be retained on the memory and on subsequent operations of the first robot 6 and the second robot 18 to be used again. It should be understood that the programmed tracks or tracks of the robot are preprocessed and stored in this manner to counteract a collision thereof.

Als Reaktion auf das Vorhandensein der Überdeckung 210 werden erste und zweite Bewegungsschritte 212, 214 für den ersten Roboter 6 und den zweiten Roboter 8 ausgewählt. Wenn es zwischen dem ersten Abschnitt 12 und dem zweiten Abschnitt 14 eine Überdeckung 210 gibt, wird ein Zusammenstoß der Roboter 6, 8 als wahrscheinlich erachtet, und es wird der erste Bewegungsschritt 212 ausgewählt. Der erste Bewegungsschritt 212 umfasst das Bewegen von nur einem des ersten Roboters 6 entlang der ersten programmierten Strecke und des zweiten Roboters 8 entlang der zweiten programmierten Strecke. Falls zwischen dem ersten Abschnitt 12 und dem zweiten Abschnitt 14 keine Überdeckung 210 vorhanden ist, wird ein Zusammenstoß der Roboter 6, 8 als unwahrscheinlich erachtet, und es wird der zweite Bewegungsschritt 214 ausgewählt. Der zweite Bewegungsschritt 214 umfasst das Bewegen des ersten Roboters 6 entlang der ersten programmierten Strecke und das Bewegen des zweiten Roboters 8 entlang der zweiten programmierten Strecke.In response to the presence of the overlap 210 become first and second movement steps 212 . 214 for the first robot 6 and the second robot 8th selected. If it is between the first section 12 and the second section 14 an overlap 210 There will be a collision of the robot 6 . 8th considered probable, and it becomes the first move step 212 selected. The first movement step 212 involves moving only one of the first robot 6 along the first programmed route and the second robot 8th along the second programmed route. If between the first section 12 and the second section 14 no overlap 210 is present, will be a collision of the robot 6 . 8th considered unlikely, and it becomes the second move step 214 selected. The second movement step 214 involves moving the first robot 6 along the first programmed route and moving the second robot 8th along the second programmed route.

Die ersten und zweiten Bestimmungsschritte 204, 206 können durch jedes, an sich bekannte Mittel gehandhabt werden. In einer speziellen Ausführungsform nach der vorliegenden Offenlegung können der erste Bestimmungsschritt 204 und der zweite Bestimmungsschritt 206 den Schritt Darstellen des gemeinsamen Raumes 10, des ersten Abschnitts 12 und/oder des zweiten Abschnitts 14 mit mindestens einem Voxelmodell 300 umfassen, das zumindest ein Voxel 302 aufweist, so wie es in 3 bis 6 anschaulich gezeigt ist. Die Voxel 302 sind Volumenelemente, die einen Wert auf einem regelmäßigen Gitter in einem dreidimensionalen Raum darstellen. Der Vergleichsschritt 208 kann den Schritt Bestimmen umfassen, ob zum Beispiel zwischen einem den ersten Abschnitt 12 darstellenden, ersten Voxelmodell 300 und einem den zweiten Abschnitt 14 darstellenden, zweiten Voxelmodell 300 die Überdeckung 210 vorhanden ist. Das Voxelmodell 300 wird im Allgemeinen durch die Vielzahl von Voxeln 302 dargestellt, die einer Form von verschiedenen Bauelementen wie beispielsweise einem Unterteil, einem Arm und einem Werkzeug des ersten Roboters 6 und des zweiten Roboters 8 näher kommen.The first and second determination steps 204 . 206 can be handled by any means known in the art. In a specific embodiment according to the present disclosure, the first determination step 204 and the second determination step 206 the step representing the common space 10 , the first section 12 and / or the second section 14 with at least one voxel model 300 include, at least one voxel 302 has, as it is in 3 to 6 is shown clearly. The voxels 302 are volume elements that represent a value on a regular grid in a three-dimensional space. The comparison step 208 can the step Determining whether, for example, between a first section 12 performing, first voxel model 300 and one the second section 14 representing the second voxel model 300 the overlap 210 is available. The voxel model 300 is generally due to the multitude of voxels 302 represented a shape of various components such as a base, an arm and a tool of the first robot 6 and the second robot 8th come closer.

Mit Bezug auf 3 und 4 kann ein erläuterndes Voxelmodell 300 eine Vielzahl von Voxeln enthalten, die an Koordinaten längs einer X-Achse, einer Y-Achse und einer Z-Achse angeordnet sind. Das Voxelmodell 300 ist so gestaltet, dass es ein dreidimensionales Volumen des gemeinsamen Raumes 10 veranschaulicht, der von dem ersten Roboter 6 und/oder dem zweiten Roboter 8 eingenommen wird. Das Voxelmodell 300 kann die Form eines Datenfiles aufweisen, das erzeugt wird und zum Beispiel auf der Steuereinheit 16, 18 oder auf einem anderen computerlesbaren Medium oder Speicher abgespeichert wird. In bestimmten Ausführungsformen ist das Voxelmodell 300 dynamisch und umfasst eine Vielzahl von Voxelmodellen 300, die einem Ablauf der Roboterbewegungen zugeordnet sind. Das dynamische Voxelmodell 300 kann eingesetzt werden, um das dreidimensionale Volumen des gemeinsamen Raumes 10 zu veranschaulichen, der während der Bewegungen des ersten Roboters 6 und/oder des zweiten Roboters 8 eingenommen wird. Jeder Automatikbereich wird aus einer Anhäufung/Überlagerung vielfacher Momentaufnahmen von Voxelmodellen 300 abgeleitet, wobei jede Momentaufnahme in einem oder mehreren ITP-Intervallen aufgenommen wirdRegarding 3 and 4 can be an explanatory voxel model 300 include a plurality of voxels arranged at coordinates along an X-axis, a Y-axis, and a Z-axis. The voxel model 300 is designed so that it is a three-dimensional volume of the common space 10 illustrated by the first robot 6 and / or the second robot 8th is taken. The voxel model 300 may be in the form of a data file that is generated and, for example, on the control unit 16 . 18 or stored on another computer readable medium or memory. In certain embodiments, the voxel model is 300 dynamic and includes a variety of voxel models 300 that are associated with a sequence of robot movements. The dynamic voxel model 300 can be used to create the three-dimensional volume of the common space 10 to illustrate during the movements of the first robot 6 and / or the second robot 8th is taken. Each automatic section becomes an accumulation / overlay of multiple snapshots of voxel models 300 derived, each snapshot being taken at one or more ITP intervals

Mit Bezug jetzt auf 5 bis 6 können die Voxelmodelle 300 des ersten Roboters 6 und des zweiten Roboters 8 mindestens eine voxelierte Kugel 500 und einen voxelierten Zylinder 502 umfassen, um das von dem ersten und dem zweiten Roboter 6, 8 eingenommene dreidimensionale Volumen darzustellen. Wie hier weiter beschrieben wird, können die voxelierten Kugeln 500 und die voxelierten Zylinder 502 die verschiedenen Bauelemente wie beispielsweise ein Unterteil und einen Arm des ersten Roboters 6 und des zweiten Roboters 8 darstellen. Die voxelierten Kugeln und Zylinder 500, 502 enthalten im Allgemeinen eine Vielzahl von Voxeln 302, die relativ zueinander angeordnet sind, um den allgemeinen Formen und Begrenzungen des ersten Roboters 6 und des zweiten Roboters 8 näher zu kommen.With reference to now 5 to 6 can the voxel models 300 of the first robot 6 and the second robot 8th at least one voxelated ball 500 and a voxelated cylinder 502 include that of the first and second robots 6 . 8th represent occupied three-dimensional volume. As will be further described herein, the voxelized spheres 500 and the voxelized cylinders 502 the various components such as a base and an arm of the first robot 6 and the second robot 8th represent. The voxelated balls and cylinders 500 . 502 generally contain a multitude of voxels 302 , which are arranged relative to each other, to the general shapes and limitations of the first robot 6 and the second robot 8th to get closer.

Der gewöhnliche Fachmann soll verstehen, dass die voxelierten Kugeln 500 und Zylinder 502 durch ein beliebiges geeignetes Mittel erzeugt werden können. Zum Beispiel kann die voxelierte Kugel 500 dadurch angenähert werden, dass zuerst eine beispielhafte Kugel, die Bauelemente des Roboters 6, 8 darstellt, auf eine X-Y-Ebene projiziert wird. Es wird dann ein kleinster Zylinder „A”, der die Kugel umschließt, gekennzeichnet. Die gleiche Kugel wird dann auf eine Y-Z-Ebene projiziert und der kleinste Zylinder „B”, der die Kugel umschließt, wird gekennzeichnet. Die gleiche Kugel wird anschließend auf eine Z-X-Ebene projiziert und der kleinste Zylinder „C”, der die Kugel umschließt, wird gekennzeichnet. Die voxelierte Kugel 500 wird dann approximiert, indem die Schnittpunkte der Zylinder „A”, „B” und „C” gekennzeichnet werden.The ordinary person should understand that the voxelated balls 500 and cylinders 502 can be generated by any suitable means. For example, the voxelated ball 500 By approximating that first an exemplary sphere, the components of the robot 6 . 8th is projected onto an XY plane. It is then a smallest cylinder "A", which encloses the ball marked. The same sphere is then projected onto a YZ plane and the smallest cylinder "B" enclosing the sphere is marked. The same sphere is then projected onto a ZX plane and the smallest cylinder "C" enclosing the sphere is marked. The voxelated ball 500 is then approximated by marking the intersections of the cylinders "A", "B" and "C".

In einer anderen Ausführungsform kann die voxelierte Kugel 500 approximiert werden, indem zuerst ein kleinstes Kästchen herausgefunden wird, das eine das Bauelement des Roboters 6, 8 darstellende Kugel umschließt. Das Kästchen besitzt eine Volumenbesetzung „A”. Die Volumenbesetzung „B” des Voxels, die sich innerhalb des Kästchens „A” und außerhalb der Kugel befindet, wird anschließend gekennzeichnet. Die voxelierte Kugel 500 wird dann durch Subtraktion des Volumens „B” von dem Volumen „A” approximiert.In another embodiment, the voxelated ball 500 be approximated by first finding out a smallest box, which is the component of the robot 6 . 8th enclosing ball. The box has a volume occupation "A". The volume occupancy "B" of the voxel, which is inside the box "A" and outside the sphere, will be marked afterwards. The voxelated ball 500 is then approximated by subtracting the volume "B" from the volume "A".

Die voxelierte Kugel 500 kann alternativ dazu approximiert werden, indem ein Schnittpunkt der beispielhaften Kugel und der X-Y-Ebene gekennzeichnet wird. Der Schnittpunkt enthält den Mittelpunkt der Kugel längs der Z-Achse und bildet eine durchschnittene, kreisförmige Platte „A1”. Die kreisförmige Platte „A1” ist einer willkürlichen Höhe zugeordnet, und anschließend wird die Voxelbesetzung der durchschnittenen, kreisförmigen Platte „A1” gekennzeichnet. Weitere kreisförmige Platten „A2”, „A3” ... „A(n)” werden lokalisiert, indem der Schnittpunkt der beispielhaften Kugel und der X-Y-Ebene längs der Z-Achse verschoben wird, wobei gleichfalls deren Volumenbesetzungen gekennzeichnet werden. Die voxelierte Kugel 500 wird dann approximiert, indem jede der für die kreisförmigen Platten der beispielhaften Kugel gekennzeichneten Voxelbesetzungen integriert wird.The voxelated ball 500 may alternatively be approximated by identifying an intersection of the exemplary sphere and the XY plane. The intersection contains the center of the sphere along the Z-axis and forms a sectioned, circular plate "A1". The circular plate "A1" is assigned an arbitrary height, and then the voxel occupation of the cut-through circular plate "A1" is marked. Further circular plates "A2", "A3" ... "A (n)" are located by shifting the intersection of the exemplary sphere and the XY plane along the Z-axis, also identifying their volume occupancies. The voxelated ball 500 is then approximated by integrating each of the voxel fillings identified for the circular plates of the example sphere.

Der voxelierte Zylinder 502 kann durch Kennzeichnen der Voxelbesetzung „A” einer linken Halbkugel/ganzen Kugel, Kennzeichnen einer Voxelbesetzung „B” einer rechten Halbkugel/ganzen Kugel und Kennzeichnen einer Voxelbesetzung „C” von mehreren kreisförmigen Platten zwischen der linken Halbkugel und der rechten Halbkugel approximiert werden. Dann wird eine kreisförmige Basisplatte erzeugt, die senkrecht zu einer Basislinie liegt. Die Basislinie verbindet die zwei Halbkugeln an den Enden des Zylinders. Nachfolgende kreisförmige Ebenen können abgeleitet werden, indem die kreisförmige Basisplatte längs einer Z-Achse verschoben wird. Alternativ dazu kann eine Voxelbesetzung der Basislinie berechnet und später die Basislinie verschoben werden, um den gesamten Bereich zwischen den zwei Halbkugeln zu füllen. Der voxelierte Zylinder 502 wird später approximiert, indem jede der Voxelbesetzungen „A”, „B” und „C” integriert wird.The voxelled cylinder 502 can be approximated by marking the voxel occupation "A" of a left hemisphere / whole sphere, identifying a voxel occupation "B" of a right hemisphere / whole sphere, and identifying a voxel occupation "C" of several circular plates between the left hemisphere and the right hemisphere. Then, a circular base plate is created which is perpendicular to a baseline. The baseline connects the two hemispheres at the ends of the cylinder. Subsequent circular planes can be derived by translating the circular base plate along a Z-axis. Alternatively, a voxel population of the baseline may be calculated and later the baseline shifted to fill the entire area between the two hemispheres. The voxelled cylinder 502 is later approximated by integrating each of the voxel populations "A", "B" and "C".

Ein alternatives Verfahren zum Approximieren des voxelierten Zylinders 502 umfasst zuerst das Kennzeichnen eines kleinsten Kästchens, das einen das Roboterbauelement darstellenden, beispielhaften Zylinder umschließen kann. Das Kästchen hat eine Volumenbesetzung „A”. Dann wird eine Voxelvolumenbesetzung ”B”, die sich innerhalb des Kästchens und außerhalb des Zylinders befindet, gekennzeichnet. Der voxelierte Zylinder 502 wird später durch Subtraktion der Voxelbesetzung „B” von der Voxelvolumenbesetzung „A” approximiert. Der gewöhnliche Fachmann soll verstehen, dass je nach Bedarf andere Mittel eingesetzt werden können, die zum Approximieren der die Bauelemente des Roboters 6, 8 darstellenden, voxelierten Kugeln 500 und Zylinder 502 geeignet sind.An alternative method of approximating the voxelized cylinder 502 first includes identifying a smallest box that may enclose an exemplary cylinder representing the robot component. The box has a volume occupation "A". Then, a voxel volume occupation "B" located inside the box and outside the cylinder is marked. The voxelled cylinder 502 is later approximated by subtracting the voxel occupation "B" from the voxel volume occupation "A". It should be understood by those of ordinary skill in the art that other means may be used as appropriate to approximate the components of the robot 6 . 8th performing, voxelated balls 500 and cylinders 502 are suitable.

Voxelierung kann entsprechend auch von einer beliebigen willkürlichen CAD-Oberfläche oder Volumen, welche Roboter, Arm-Dressout und Werkzeugbestückung darstellen können, bestimmt werden.Accordingly, voxelation can also be determined from any arbitrary CAD surface or volume, which may represent robots, arm dressouts, and tooling.

Voxelierung ist ein sehr effizientes Verfahren zum Darstellen des von einem Roboterbewegungssegment eingenommenen Raumes. Der Voxelierungsvorgang weist eine ganze Menge Befehlsverarbeitungszeit auf, um den voxelierten Raum zu erzeugen, jedoch ist die Laufzeitkomponente sehr effizient. Sobald ein Raum voxeliert ist, ist die maximale Speicheranforderung eines voxelierten Raumes fixiert, ungeachtet dessen, wie komplex oder wie sehr der gemeinsame Raum während der Bewegungsstrecke durch den Roboter besetzt ist. Die Laufzeitprüfung für Störung zwischen voxelierten Räumen ist sehr effizient. Obwohl die bevorzugte Ausführungsform dafür sorgt, dass Automatikbereiche mit Störungsprüfung durch voxelierte Bereiche darzustellen sind, kann jedes Verfahren der Volumen- oder Oberflächendarstellung des Raumes, der während einer Bewegungsstrecke von einem Roboter besetzt ist, verwendet werden.Voxelization is a very efficient method of representing the space occupied by a robot motion segment. The voxelization process has a good deal of instruction processing time to produce the voxelated space, but the runtime component is very efficient. Once a space is voxulated, the maximum storage requirement of a voxelated space is fixed, no matter how complex or how much the common space is occupied by the robot during the travel distance. The runtime test for interference between voxelated spaces is very efficient. Although the preferred embodiment provides for displaying automatic areas with perturbation inspection through voxelled areas, any method of volume or surface representation of the space occupied by a robot during a travel distance may be used.

In weiteren Ausführungsformen wird Kollision während einer programmierten Bewegung, einer durch Tippbetrieb ausgelösten Bewegung oder einer durch andere Mittel ausgelösten Bewegung vermieden. Sie schützen einen beweglichen Roboter auch davor, dass er mit einem stationären Roboter oder mit anderen feststehenden Gegenständen oder anderen festgelegten Bereichen in der Bearbeitungskammer zusammenstößt. Für eine programmierte Bewegung kann der Voxelierungsvorgang oder ein anderer Modellierungsvorgang zur Störungsprüfung von Automatikbereichen rechnerunabhängig arbeitend oder während eines Testlaufs stattfinden und die voxelierten Daten zur späteren Wiederauffindung effizient gespeichert werden. Dieser Vorgang kann auch in Echtzeit auftreten, wenn eine neue Bewegungsstrecke wie von einem neuen Programm, Tippbetrieb des Roboters oder von einer durch andere Mittel ausgelösten Bewegung bestimmt ist. Für diese Fälle kann der Ablauf von Anweisungen durch Verwendung einer Lehrvorrichtung oder durch die anderen Mittel, die die Bewegung auslösen, festgelegt werden. Es wird nicht zugelassen, dass die tatsächliche Bewegung beginnt, bis der Vorgang abgeschlossen ist und es keine Störung mit diesem Störungsprüfungs-Automatikbereich und anderen besetzten Störungsprüfungs-Automatikbereichen gibt.In other embodiments, collision is avoided during a programmed movement, a jogged motion, or other movement initiated motion. They also protect a moving robot from colliding with a stationary robot or with other stationary objects or other fixed areas in the processing chamber. For programmed motion, the voxelization process or other modeling process for fault checking of automatic regions may be computer-independent or during a test run, and the voxelated data may be efficiently stored for later retrieval. This process can also occur in real time when a new moving distance is determined, such as from a new program, robot jogging, or other means-triggered movement. For these cases, the flow of instructions may be determined by using a teaching device or by the other means that initiate the movement. It is not allowed that the actual movement starts until the process is completed and there is no interference with this Fault Check Automatic Area and other occupied Fault Check Automatic areas.

In weiteren Ausführungsformen kann der erste Abschnitt 12 und/oder der zweite Abschnitt 14 des gemeinsamen Raumes 10 einen Werkzeugbestückungsraum und eine Dressout-Baugruppe (z. B. Drahtzuführeinheit für Lichtbogenschweißwerkzeug) enthalten, der von einer Werkzeugbestückung eingenommen wird, die an dem ersten Roboter 6 und/oder dem zweiten Roboter 8 befestigt ist. Der Schritt zum Bestimmen der Überdeckung 210 kann auch das Vergleichen des ersten Abschnitts 12 und/oder des zweiten Abschnitt 14 mit einem dritten Abschnitt des gemeinsamen Raumes 10, der von einem Nicht-Roboter-Hindernis (nicht dargestellt) eingenommen wird, umfassen. Das Hindernis kann manuell durch eine Gruppe von Parametern spezifiziert werden, die je nach Bedarf zur Definition von Größe, Form und Lage des gemeinsamen Raumes 10 verwendet werden. In einem anderen Beispiel kann das Verfahren 200 des Weiteren den Schritt zum Bestimmen des dritten Abschnitts des vom Hindernis besetzten, gemeinsamen Raumes 10 umfassen. Es soll verständlich werden, dass der dritte Abschnitt des von dem Nicht-Roboter-Hindernis besetzten gemeinsamen Raumes je nach Bedarf auch durch Voxel 302 in einem ähnlichen Voxelmodell 300 dargestellt werden kann.In further embodiments, the first section 12 and / or the second section 14 of the common room 10 a tooling space and a dressout assembly (eg wire feed unit for arc welding tool) occupied by tooling attached to the first robot 6 and / or the second robot 8th is attached. The step of determining the coverage 210 can also compare the first section 12 and / or the second section 14 with a third section of the common room 10 which is occupied by a non-robotic obstacle (not shown). The obstacle can be specified manually by a set of parameters, as needed to define the size, shape and location of the common space 10 be used. In another example, the method may 200 further comprising the step of determining the third portion of the common space occupied by the obstacle 10 include. It should be understood that the third section of the common space occupied by the non-robotic obstacle may also be voxelized as needed 302 in a similar voxel model 300 can be represented.

Das Verfahren 200 der vorliegenden Offenlegung kann ferner den Schritt zum Bestimmen eines nicht besetzten Abschnitts des gemeinsamen Raumes 10 umfassen, nachdem der erste Roboter 6 sich entlang der ersten programmierten Strecke bewegt hat und/oder der zweite Roboter 8 sich entlang der zweiten programmierten Strecke bewegt hat. Der nicht besetzte Abschnitt des gemeinsamen Raumes 10 kann dann zur Verwendung durch einen weiteren Roboter freigegeben werden, dem sich je nach Bedarf eine weitere programmierte Strecke oder Bahn anschließt. In einer weiteren Ausführungsform kann das Verfahren 200 den Schritt des Übertragens der Koordinaten des ersten Abschnitts 12 und zweiten Abschnitts 14 des gemeinsamen Raumes 10 auf die zumindest eine Steuereinheit 16, 18 zur weiteren Verwendung nach dem Verfahren 200 der vorliegenden Offenlegung umfassen. Die Steuereinheit 16, 18 kann dann zum Handhaben von mindestens einem der ersten und zweiten Bestimmungsschritte 204, 206, wie hier beschrieben, und zum Umwandeln der Koordinaten in die Voxelmodelle 300, die den ersten Abschnitt 12 und den zweiten Abschnitt 14 darstellen, eingesetzt werden.The procedure 200 The present disclosure may further include the step of determining an unoccupied portion of the common space 10 include after the first robot 6 has moved along the first programmed distance and / or the second robot 8th has moved along the second programmed route. The unoccupied section of the common room 10 can then be released for use by another robot, which joins as needed another programmed route or train. In a further embodiment, the method 200 the step of transmitting the coordinates of the first section 12 and second section 14 of the common room 10 on the at least one control unit 16 . 18 for further use according to the method 200 of the present disclosure. The control unit 16 . 18 may then be for handling at least one of the first and second determination steps 204 . 206 , as described here, and for converting the coordinates into the voxel models 300 that the first section 12 and the second section 14 be used.

Der geübte Handwerker soll erkennen, dass beim Bestimmen, ob zwischen dem ersten Abschnitt 12 und dem zweiten Abschnitt 14 des gemeinsamen Raumes 10 die Überdeckung vorhanden ist, die jeweiligen Bewegungen des ersten Roboters 6 und des zweiten Roboters 8 durch Prioritätswerte bestimmt werden können. Als ein nicht einschränkendes Beispiel können die Prioritätswerte des ersten Roboters 6 und des zweiten Roboters 8 einem Durchrück-System zugrunde gelegt werden. In einem anderen Beispiel kann einer der ersten und zweiten Roboter 6, 8 immer einen höheren Prioritätswert als der andere der ersten und zweiten Roboter 6, 8 aufweisen. Der höhere Prioritätswert kann einer vorbestimmten Anwendereinstellung für Priorität der Roboter 6, 8 in dem robotischen System 2 zugrunde gelegt werden. In einem weiteren Beispiel können die Prioritätswerte basierend auf der Verfügbarkeit von nicht besetzten Abschnitten innerhalb des gemeinsamen Raumes 10 ausgewählt werden. Ein geübter Handwerker kann die gewünschten Prioritätswerte bei Bedarf dem ersten Roboter 6 und dem zweiten Roboter 8 zuordnen.The skilled artisan should recognize that when determining whether between the first section 12 and the second section 14 of the common room 10 the overlap is present, the respective movements of the first robot 6 and the second robot 8th can be determined by priority values. As a non-limiting example, the priority values of the first robot 6 and the second robot 8th be based on a Durchrück system. In another example, one of the first and second robots 6 . 8th always a higher priority value than the other of the first and second robots 6 . 8th exhibit. The higher priority value may be a predetermined user preference for priority of the robots 6 . 8th in the robotic system 2 be based on. In another example, the priority values may be based on the availability of unoccupied sections within the shared space 10 to be selected. A skilled craftsman can give the desired priority values to the first robot when needed 6 and the second robot 8th assign.

In einer weiteren Ausführungsform umfasst das Verfahren 200 ferner den Schritt zum Analysieren der Vielzahl programmierter Strecken auf das Vorhandensein der Überdeckung 210, die in einem Zustand gegenseitiger Blockierung resultieren kann. Ein Funktionsablauf der Vielzahl programmierter Strecken kann anschließend je nach Bedarf eingestellt werden, um dem Auftreten des Zustandes der gegenseitigen Blockierung entgegenzuwirken. Der Funktionsablauf kann je nach Bedarf, zum Beispiel auf der Basis von Prioritätswerten, manuell oder automatisch eingestellt werden.In a further embodiment, the method comprises 200 and the step of analyzing the plurality of programmed paths for the presence of the overlap 210 which may result in a state of mutual blockage. A functional sequence of the plurality of programmed routes can then be adjusted as needed to counteract the occurrence of the state of mutual blocking. The functional sequence can be set manually or automatically as needed, for example on the basis of priority values.

Es soll deutlich werden, dass das Störungsprüfsystem 2 für Automatikbereiche und das Verfahren 200 der vorliegenden Offenlegung vorteilhaft für einen Wettbewerbsvorteil gegenüber herkömmlichen mehrarmigen Robotersystemen sorgt. Das System 2 und Verfahren 200 bewirken die Vermeidung eines dreidimensionalen Zusammenstoßes in Echtzeit. Das System 2 erfordert eine minimale Programmierung, weil es der Notwendigkeit entgegenwirkt, Störungsbereiche zu spezifizieren oder zu zeigen. Außerdem wird dadurch die Produktionsausfallzeit reduziert.It should be clear that the fault checking system 2 for automatic areas and the procedure 200 Advantageously, the present disclosure provides a competitive advantage over conventional multi-arm robotic systems. The system 2 and procedures 200 cause the avoidance of a three-dimensional collision in real time. The system 2 requires minimal programming because it counteracts the need to specify or show disturbance ranges. It also reduces production downtime.

Ein gewöhnlicher Fachmann soll außerdem erkennen, dass der Einsatz von voxelierten Kugeln 500 und Zylindern 502 die typischerweise mit einer Erzeugung von Robotermodellen verbundenen Verarbeitungsanforderungen auf das Mindestmaß zurückführt. Bewegungen des ersten Roboters 6 und zweiten Roboters 8 werden im Voraus an das System 2, zum Beispiel durch eine rechnerunabhängige Erzeugung der Voxelmodelle 300, übertragen. Ebenso werden programmierte Wege oder Bahnen des ersten Roboters 6 und des zweiten Roboters 8 ohne Zusammenstoß reserviert. Ein Prozessweg ist eine Folge von Bewegungen, während deren ein Benutzerprozess wie beispielsweise Schneiden, Schweißen, Schleifen, Verlegen, Anstreichen, Austeilen oder andere ähnliche Prozesse stattfinden kann. Allgemein wichtig ist es, dass der gesamte Prozessweg ohne Unterbrechung abgeschlossen ist, sobald ein Prozessweg begonnen hat. Es soll auch deutlich werden, dass entscheidende Prozesswege des ersten Roboters 6 und zweiten Roboters 8 ähnlich nach dem vorliegenden Verfahren 200 geschützt werden.It should also be appreciated by one of ordinary skill in the art that the use of voxelated spheres 500 and cylinders 502 typically reduces the processing requirements associated with creating robotic models to the minimum. Movements of the first robot 6 and second robot 8th be in advance to the system 2 , for example, by a computer-independent generation of the voxel models 300 , transfer. Likewise, programmed paths or paths of the first robot 6 and the second robot 8th reserved without collision. A process path is a sequence of movements during which a user process such as cutting, welding, grinding, laying, painting, dispensing or other similar processes may take place. Generally, it is important that the entire process path is completed without interruption as soon as a process path has begun. It should also be clear that crucial process paths of the first robot 6 and second robot 8th similar to the present method 200 to be protected.

Das System 2 unterstützt die Vermeidung von Zusammenstößen von Mehrfachroboterarmen innerhalb der gleichen Steuereinheit 16, 18 und je nach Bedarf über mehrfache Steuereinheiten 16, 18. System 2 und Verfahren 200 stellen ferner eine vereinfachte Roboterkonfiguration bereit und sprechen gegen die Notwendigkeit eines I/O Quittungsbetriebprotokolls, wie es mit bestimmten Systemen und Verfahren im Stand der Technik gehandhabt wird. Das Störungsprüfsystem 2 für Automatikbereiche und das Verfahren 200 vereinfachen die Konfiguration von Mehrfacharm-Störungsprüfungen und wirken einer gegenseitigen Blockierung von Mehrfachroboterarmen entgegen.The system 2 Supports the avoidance of collisions of multiple robotic arms within the same control unit 16 . 18 and as needed via multiple control units 16 . 18 , system 2 and procedures 200 further provide a simplified robotic configuration and address the need for an I / O handshake protocol, as is handled with certain prior art systems and methods. The fault checking system 2 for automatic areas and the procedure 200 simplify the configuration of multi-arm failure checks and counteract mutual blockage of multiple robotic arms.

Die Störungsverhinderung und Verhinderung von gegenseitiger Blockierung stehen in enger Beziehung. Störung tritt auf, wenn zwei Roboter versuchen, den gleichen physikalischen Raum zu besetzen. Ein Verfahren der Störungsverhinderung umfasst das Prüfen des Raumes, der bei dem augenblicklichen Bewegungsbefehl von allen Robotern eingenommen ist oder eingenommen wird sowie das Anhalten von einem oder mehreren Robotern bevor die Störung auftritt. Diese Art von Störungsverhinderung hat den hauptsächlichen Vorteil, dass sie sehr anfällig für gegenseitige Blockierung ist, wenn einer oder mehrere der angehaltenen Roboter zur Zeit den Raum besetzt, der durch einen anderen Roboter benötigt wird oder benötigt werden wird, und der angehaltene Roboter nicht fortschreiten kann, weil er durch einen anderen Roboter weiter blockiert wird.The prevention of interference and the prevention of mutual blocking are closely related. Disruption occurs when two robots try to occupy the same physical space. One method of interference prevention involves checking the space taken or taken at the instantaneous move command from all robots, and stopping one or more robots before the disturbance occurs. This type of interference prevention has the major advantage that it is very susceptible to deadlock when one or more of the suspended robots is currently occupying the space needed or needed by another robot and the stopped robot can not progress because it is blocked by another robot.

Ein anderes Verfahren der Störungsverhinderung ist das manuelle Einrichten von Störungsbereichen, indem in die Roboterprogramme durch Programm Eintritts- und Austrittsbereichsbefehle eingesetzt werden. Diese Befehle würden mit einer speicherprogrammierbaren Steuerung oder anderen Robotern eine Kommunikation bewirken, die es erleichtert, dass nur ein Roboterarm einen speziellen Bereich zu einem Zeitpunkt einnehmen kann. Für einen einzelnen Bereich ist das von geringer Bedeutung. Das grundlegende Problem wäre eines von Priorität; wer würde den Bereich zuerst bekommen, wenn mehrere Roboter darauf warten, dass er verfügbar wird. Für mehrere Bereiche ist es jedoch sehr leicht, dass gegenseitige Blockierung auftritt. Zum Beispiel ist sie leicht für benachbarte Bereiche zu sehen, falls jeder Roboter zurzeit einen Bereich besetzt und die nächste Bewegung innerhalb des Bereiches ist, der von dem anderen Roboter eingenommen wird. In diesem Fall wird jeder Roboter ständig auf den anderen Roboter warten, um den gewünschten Bereich aufzugeben. Es wird ein Zustand gegenseitiger Blockierung auftretenAnother method of interference prevention is to manually set up fault areas by entering into the robot programs through program entry and exit area commands. These commands would effect communication with a programmable logic controller or other robots that would make it easy for only one robotic arm to occupy a particular area at a time. For a single area this is of little importance. The basic problem would be one of priority; who would get the area first if several robots are waiting for it to become available. For several areas, however, it is very easy for mutual blocking to occur. For example, it is easy to see for adjacent areas if each robot currently occupies one area and the next movement is within the area occupied by the other robot. In this case, each robot will constantly wait for the other robot to abandon the desired area. There will be a state of mutual blockage

Das System und Verfahren gemäß dieser Erfindung schließt den Zustand von gegenseitiger Blockierung in den oben genannten Fällen aus durch Festlegen der Anweisungen einer von gegenseitiger Blockierung freien Bewegung vor Ausführung der Bewegungen, die potenzielle Bedingungen einer gegenseitigen Blockierung aufweisen. Die Festlegung von Anweisungen einer von gegenseitiger Blockierung freien Bewegung kann rechnerunabhängig arbeitend, außerhalb einer normalen Ausführung oder während einer normalen Produktionsdurchführung vorgenommen werden. Wenn genügend Verarbeitungszeit der CPU verfügbar ist, bewirkt die Festlegung während einer normalen Produktionsdurchführung die größte Flexibilität, um auf dynamische Bedingungen wie beispielsweise Änderungen bei der zeitlichen Steuerung von Eingabe/Ausgabe oder der zeitlichen Steuerung von externen Ereignissen oder Abläufen zu reagieren. Zur minimalen Belastung der CPU wird die Festlegung rechnerunabhängig arbeitend vorgenommen, wobei viele Permutationen von Programmabläufen analysiert werden können und ein optimierter Ausführungsablauf gefunden werden kann.The system and method according to this invention excludes the state of deadlock in the above cases by setting the instructions of a blockage-free movement prior to performing the motions having potential conditions of mutual blockage. The determination of instructions of a blockage-free movement may be made independently of the computer, outside of normal execution, or during normal production execution. If enough CPU processing time is available, setting during normal production execution provides the most flexibility to respond to dynamic conditions such as changes in the timing of input / output or the timing of external events or operations. In order to minimize the load on the CPU, the definition is made independent of the computer, whereby many permutations of program sequences can be analyzed and an optimized execution sequence can be found.

Das erfindungsgemäße System und Verfahren erfordert keinen von gegenseitiger Blockierung freien Ablauf, der vorher bekannt ist. System und Verfahren werden automatisch die potenziellen Bedingungen von gegenseitiger Blockierung bestimmen und einen Weg zur Vermeidung dieser Bedingungen kennzeichnen. Das System und Verfahren benötigen keine Prioritätswerte, um gegenseitige Blockierung zu verhindern. Das System und Verfahren verhindern Bedingungen von Störung und gleichzeitig die Möglichkeit, dass Bedingungen einer gegenseitigen Blockierung existieren.The system and method of the present invention does not require a deadlock-free process previously known. System and procedures will automatically determine the potential conditions of mutual blocking and identify a way to avoid these conditions. The system and method do not require priority values to prevent deadlock. The system and method prevent conditions of disturbance and at the same time the possibility that mutual blocking conditions exist.

In 7 ist eine von „gegenseitiger Blockierung freie Matrix” 400 von Zeilenzahlen für eine Auflistung 401 „Originalprogramm A”, die von einem ersten Roboter zu durchlaufen ist, und eine Auflistung 403 „Originalprogramm B”, die von einem zweiten Roboter zu durchlaufen ist, dargestellt. Schraffierte Fächer in der Matrix 400 stellen eine ansteigende, nach außen gewölbte Hülle dar, die einen von gegenseitiger Blockierung freien Bereich bildet. Eine Mehrzahl der schraffierten Fächer stellt Programmlinienpaare dar, die während einer Bewegung auf einer Strecke von Linie „i – 1” zu Linie „i” des einen Programms und Linie „j – 1” zu Linie „j” in dem anderen Programm eine Störung aufweisen. Die restlichen Fächer müssen die ansteigende, nach außen gewölbte Hülle vervollständigen. Die Fächer in der Matrix 400 können in einer Form (i, j) bezeichnet werden, wobei „i” die Zeilenzahl von Programm „A” und „j” die Zeilenzahl von Programm „B” ist. Folglich sind die Störungsfächer (3,6; 3,7; 4,5; 4,6; 4,7; 5,4; 5,5; 5,6; 5,7) und die restlichen Fächer sind (3,4; 3,5; 4,4).In 7 is a matrix free of "mutual blocking" 400 of row numbers for a listing 401 "Original Program A" to be traversed by a first robot and a listing 403 "Original program B", which is to be traversed by a second robot, shown. Hatched fans in the matrix 400 represent a rising, outwardly curved shell, which forms an area free from mutual blocking. A plurality of the hatched shelves represent program line pairs that have interference during movement on a route from line "i-1" to line "i" of one program and line "j-1" to line "j" in the other program , The remaining compartments must complete the rising, outwardly curved shell. The fans in the matrix 400 may be denoted in a form (i, j), where "i" is the line number of program "A" and "j" is the line number of program "B". Consequently, the perturbators (3.6, 3.7, 4.5, 4.6, 4.7, 5.4, 5.5, 5.6, 5.7) and the remaining slots are (3.4 ; 3.5; 4.4).

Wenn sich zum Beispiel Programm „A” auf Zeile 3 und Programm „B” auf Zeile 5 befindet, dann besteht die Bedingung einer gegenseitigen Blockierung, weil, wenn „A” versucht, sich zu der Zeile 4 zu bewegen, dann eine Störung mit „B” auf Zeile 5 vorhanden sein wird; und wenn „B” versucht, sich zu der Zeile 6 zu bewegen, dann eine Störung mit „A” auf Zeile 3 vorhanden sein wird. Daher kann kein Roboter fortschreiten. Durch Vervollständigung des Bereiches gegenseitiger Blockierung von den „A” Zeilen 3 bis 5 und „B” Zeilen 7 bis 4 kann nur ein Programm, „A” oder „B”, diesen Bereich gleichzeitig besetzen. Dies wird gekennzeichnet als Bereich [1] in den Beispielprogrammen, die als Auflistung 402 „Neues Programm A” und Auflistung 404 „Neues Programm B” dargestellt sind.For example, if program "A" is on line 3 and program "B" is on line 5, then the condition of mutual blocking exists because if "A" attempts to move to line 4, then a fault with " B "will be present on line 5; and if "B" tries to move to line 6, then there will be an interference with "A" on line 3. Therefore, no robot can progress. By completing the area of mutual blocking from the "A" lines 3 to 5 and "B" lines 7 to 4, only one program, "A" or "B", can occupy this area at the same time. This is indicated as Area [1] in the sample programs that are listed 402 "New Program A" and listing 404 "New program B" are shown.

8 zeigt ein Beispiel, bei dem eine „Störungsmatrix” 405 in drei von gegenseitiger Blockierung freie Bereiche unterteilt werden kann: Bereich [1]; Bereich [2] und Bereich [3]. Die Störungsfächer sind (3,3; 3,4; 3,5; 3,6; 3,7; 4,5; 4,6; 4,7; 5,4; 5,5; 5,6; 5,7; 6,6; 6,7). Bereich [1] umfasst die Fächer (3,3; 3,4; 3,5; 3,6; 3,7), Bereich [2] umfasst die Fächer (4,5; 4,6; 4,7; 5,4; 5,5; 5,6; 5,7) und Bereich [3] umfasst die Fächer (6,6; 6,7). Eine ansteigende, nach außen gewölbte Hülle wird durch das Fach (4, 4) erzeugt, was eine virtuelle Störung ist, so dass die drei nach außen gewölbten Hüllen erzeugt werden können und die gesamte Fläche ansteigend nach außen gewölbt ist. Die drei Bereiche werden anschließend in eine Auflistung 406 „Neues Programm A” und einer Auflistung 407 „Neues Programm B” einbezogen. Es gibt keinen Fall, dass bei einer beliebigen, von Störung freien Kombination der Zeilenpaare mindestens ein Programm ohne Störung zu der nächsten Zeile vorrücken kann. 8th shows an example in which a "disturbance matrix" 405 can be subdivided into three areas free of mutual blocking: area [1]; Area [2] and area [3]. The disturbance compartments are (3.3, 3.4, 3.5, 3.6, 3.7, 4.5, 4.6, 4.7, 5.4, 5.5, 5.6, 5, 7, 6, 6, 6, 7). Area [1] comprises the compartments (3,3; 3,4; 3,5; 3,6; 3,7), area [2] comprises the compartments (4,5; 4,6; 4,7; 5) , 4, 5.5, 5.6, 5.7) and area [3] comprises the compartments (6, 6, 6, 7). A rising, outwardly bulging envelope is created by the pocket (4, 4), which is a virtual perturbation, so that the three outwardly curved envelopes can be created and the entire face is arched outward. The three areas are subsequently listed 406 "New Program A" and a listing 407 Included "New Program B". There is no case that with any combination of pair pairs free of interference, at least one program can progress to the next row without interference.

9 zeigt das Beispiel eines Paars von Programmen, die mehrfache Störungsbereiche und zwei Bereiche gegenseitiger Blockierung, wo gegenseitige Blockierung vorhanden sein kann, aufweisen. Ein „Programm A” schreibt eine Strecke 409 von Zeile 3 nach Zeile 15. Ein „Programm B” 410 schreibt eine Strecke von Zeile 9 nach Zeile 21. Die Programme besitzen einen ersten Bereich 412 gegenseitiger Blockierung und einen zweiten Bereich 411 gegenseitiger Blockierung wie es in den Strecken und in einer Tabelle 413 gezeigt ist. Ein einfaches Verfahren zum Herstellen eines einzelnen Bereiches gegenseitiger Blockierung ist das Kombinieren aller Störungsbereiche und dazwischen liegender Nicht-Störungsbereiche zu einem einzelnen Bereich, wie in Tabelle 414 gezeigt, wobei der Bereich von Natur aus frei von gegenseitiger Blockierung sein wird. 9 Figure 12 shows the example of a pair of programs having multiple perturbation areas and two areas of mutual blockage where mutual blockage may be present. A "Program A" writes a route 409 from line 3 to line 15. A "program B" 410 writes a line from line 9 to line 21. The programs have a first section 412 mutual blocking and a second area 411 mutual blocking as it does in the ranges and in a table 413 is shown. A simple method of establishing a single area of mutual blockage is to combine all perturbation areas and intermediate non-perturbation areas into a single area as shown in the table 414 where the region will naturally be free of mutual blockage.

10 zeigt fünf Abläufe der Roboter 6, 8, die jeweils „Programm A” und „Programm B” durchlaufen. Im ersten Ablauf auf der ganz linken Seite durchläuft der Roboter 6 das „Programm A”, ohne dass sich der Roboter 8 bewegt. Im nächsten Ablauf nach rechts durchläuft der Roboter 8 das „Programm B”, ohne dass sich der Roboter 6 bewegt. Im mittleren Ablauf durchlaufen die Roboter 6, 8 die jeweiligen Programme gleichzeitig, und es tritt ein Zusammenstoß auf. Der nächste Ablauf nach rechts zeigt die Roboter 6, 8, die die jeweiligen Programme mit einem Merkmal von Störungsvermeidung im Stand der Technik, das gegenseitige Blockierung verursacht, gleichzeitig durchlaufen. Der Ablauf auf der ganz rechten Seite zeigt die Roboter 6, 8, die die jeweiligen Programme mit einer Verhinderung von gegenseitiger Blockierung nach der Erfindung gleichzeitig durchlaufen, so dass beide Programme ohne Störung abgeschlossen werden. 10 shows five processes of the robots 6 . 8th , each of which "Program A" and "Program B" go through. In the first sequence on the left-hand side, the robot goes through 6 the "Program A" without the robot 8th emotional. In the next sequence to the right the robot goes through 8th the "program B" without the robot 6 emotional. In the middle sequence the robots go through 6 . 8th the respective programs at the same time, and a collision occurs. The next sequence to the right shows the robots 6 . 8th that undergo the respective programs with a feature of prior art interference prevention causing mutual blocking simultaneously. The process on the far right shows the robots 6 . 8th which simultaneously pass through the respective programs with mutual blocking prevention according to the invention, so that both programs are completed without interference.

Das oben beschriebene System und Verfahren wird Programmanweisungen automatisch hinzufügen und/oder modifizieren, um sowohl Zusammenstöße zu verhindern als auch potenzielle gegenseitige Blockierungen durchzuleiten. In einigen Fällen kann der automatische Wartebefehl, der ausgegeben wird, bewirken, dass sich die gesamte Zykluszeit für eine gegebene Aufgabe erhöht. Wenn erhöhte Zykluszeit nicht akzeptabel ist, kann das erfindungsgemäße System und Verfahren erneut abzulaufende Strecken empfehlen oder automatisch erzeugen, die es den Robotern ermöglichen werden, die Programme ohne Unterbrechung zu durchlaufen. Mit anderen Worten, wenn es einen Abschnitt der Strecken gibt, wo zwei Roboter den gleichen Raum zum gleichen Zeitpunkt besetzen werden, wird das System und das Verfahren automatisch einen neuen Streckenablauf (das Schweißen der Punkte sich in einer anderen Reihenfolge vorstellen) empfehlen, so dass diese Bedingung ausgeschlossen wird. Dieses Merkmal, die Programmanweisungen erneut abzulaufen, besitzt Reserven zur Verwendung für Anwendungen der Autolackierung.The system and method described above will automatically add and / or modify program instructions to both prevent collisions and to pass potential deadlocks. In some cases, the automatic wait command that is issued may cause the total cycle time for a given task to increase. If increased cycle time is unacceptable, the system and method of the present invention may recommend or automatically generate recurring routes that will allow the robots to cycle through the programs without interruption. In other words, if there is a section of the routes where two robots will occupy the same space at the same time, the system and method will automatically recommend a new route sequence (welding the points in a different order) so that this condition is excluded. This feature of re-running the program instructions has reserves for use in car paint applications.

Wenn in dem Programm unverbindliche Ausführungsanweisungen auftreten, dann kann die Analyse alle Kombinationen einer Ablaufausführung enthalten. Oder es könnten die in den unverbindlichen Zweigbereichen enthaltenen Programmsegmente der Einfachheit halber als unabhängig behandelt werden. Typisch ist es, dass der Roboterprogrammierer solche unverbindlichen Bereiche zeigen wird, so dass die Eintritts- und Austrittsstrecken zu dem Bereich keine Störung mit anderen Robotern haben werden und somit die unabhängige Behandlung praktisch sein kann. Wenn jedoch die Eintritts- oder Austrittsstrecken zu den unverbindlichen Bereichen eine Störung mit anderen Robotern aufweisen, dann sollten die Mehrfachkombinationen der unverbindlichen und verbindlichen Bereiche analysiert werden, um keine Störung und keine gegenseitige Blockierung zu garantieren.If non-binding execution instructions occur in the program, then the analysis may contain all combinations of execution execution. Or, for simplicity, the program segments included in the non-binding branches could be treated as independent. Typically, the robot programmer will show such non-binding areas so that the entry and exit distances to the area will not interfere with other robots and thus the independent treatment may be convenient. However, if the entry or exit routes to the non-binding areas interfere with other robots, then the multiple combinations of non-binding and binding areas should be analyzed to ensure no interference and no deadlock.

Einer der Vorteile dieses Verfahren ist, dass der gleiche Mechanismus, der Bedingungen von gegenseitiger Blockierung ausschließen kann, auch eine Störung während einer normalen Programmbewegung ausschließen kann. So kann die Echtzeitprüfung einer Störung von Roboter zu Roboter während einer normalen Programmbewegung ausgeschlossen werden. Dies kann erhebliche Auslastung der CPU einsparen, was die Nutzung von Verarbeitungszeit für andere Zwecke wie beispielsweise eine schnellere Interpolationsrate oder kürzere Interpolationszeit ermöglicht. Bei Fehlerbedingungen oder wenn das Programm nicht läuft, könnte zur Verhinderung von Störung eine reduzierte CPU-Verwendung der Störungsprüfung, so wie es in der anhängigen US-Patentanmeldung, Serien-Nr. 12/124,430 mit dem Titel „Störungsprüfung eines mehrarmigen Robotersystems über dreidimensionale Automatikbereiche” vorgeschlagen ist, genutzt werden.One of the advantages of this method is that the same mechanism that can preclude conditions of mutual blocking can also preclude interference during normal program motion. Thus, the real-time inspection of a robot-to-robot disturbance during a normal program movement can be excluded. This can save significant CPU utilization, allowing the use of processing time for other purposes such as a faster interpolation rate or shorter interpolation time. In fault conditions or if the program is not running, a reduced CPU usage of the fault check, as disclosed in pending US patent application Ser. No. No. 12 / 124,430 entitled "Fault check of a multi-arm robotic system via three-dimensional automatic ranges".

Der von einem Programm besetzte Bereich kann eine Funktion des physikalischen Raums, von Zeit, Programmablauf, Zeilenzahl, Anteil an Beendigung eines Programms oder einer Zeile, oder eine auf den Roboter, das Programm oder System bezogene Zustandsänderung sein. Der Störungsbereich und der Bereich gegenseitiger Blockierung werden durch die gleiche Funktion korreliert, die den besetzten Raum definiert.The area occupied by a program may be a function of physical space, time, program flow, line count, rate of completion of a program or line, or state change related to the robot, program, or system. The perturbation area and the area of mutual blockage are correlated by the same function that defines the occupied space.

Die Art und Weise zur Vermeidung von gegenseitiger Blockierung kann auf mehreren Wegen gehandhabt werden. Der leichteste Weg ist es, die Störungsbereiche zu erweitern, so dass sie sowohl eine gegenseitige Blockierung als auch Störung gemäß 9 verhindern. Das Erweitern der Störungsbereiche, so dass es nur einen Störungsbereich für das gesamte Programm gibt, wird garantieren, dass das System frei von gegenseitiger Blockierung ist, wobei jedoch eine bestimmte Art von Ablaufsteuerung und/oder mehrere Störungsbereiche genutzt werden können, wenn Zykluszeit wichtig ist. Eine andere Möglichkeit ist, einen Ausführungsablauf außerhalb der Störungsbereiche zur Verfügung zu stellen, so dass eine gegenseitige Blockierung verhindert wird. Dies kann einfach vorgenommen werden, indem man einen ersten Roboter auf einen zweiten Roboter warten lässt, um einen bestimmten Abschnitt einer Programmausführung zu beenden, an dem Bedingungen von gegenseitiger Blockierung vorhanden sein können, bevor der erste Roboter fortschreitet.The way to avoid mutual blocking can be handled in several ways. The easiest way is to broaden the perturbation areas so that they have both mutual blocking and interference according to 9 prevent. Extending the perturbation areas so that there is only one perturbation area for the entire program will guarantee that the system is free of interlocking, but some type of flow control and / or multiple perturbation areas can be used if cycle time is important. Another possibility is to provide an execution process outside the fault areas so that mutual blocking is prevented. This can be done simply by having a first robot wait for a second robot to move to a particular section program execution at which conditions of mutual blockage may exist before the first robot progresses.

Es gibt mehrere Wege, wie der besetzte Raum bestimmt werden kann. Der einfachste Weg ist, dass der besetzte Raum rein der kumulative Raum ist, der von einem Roboter während der Programmausführung durchweg eingenommen wird. Wenn mehrere Roboter ihren besetzten Raum auf diese Weise bestimmen lassen, dann ist der Störungsbereich einfach der Raum, welcher der Schnittpunkt des kumulativen besetzten Raumes für jeden Roboter ist. Indem man nur einem Roboter ermöglicht, in diesen Raum zu einem Zeitpunkt einzutreten, wird sowohl Störung als auch gegenseitige Blockierung verhindert.There are several ways in which the occupied space can be determined. The simplest way is that the occupied space is purely the cumulative space that is consistently occupied by a robot during program execution. If several robots have their occupied space determined in this way, then the disturbance area is simply the space which is the intersection of the cumulative occupied space for each robot. Allowing only one robot to enter this space at a time prevents both interference and deadlock.

Eine weitere Möglichkeit ist, den besetzten Raum als eine Funktion der Zeit zu bestimmen. Zu jedem Zeitpunkt gibt es einen von jedem Roboter besetzten Raum. Durch Darstellung des besetzten Raums als Integration der Zeit über ein bestimmtes Intervall kann der besetzte Raum als eine Reihe von zeitkorrelierten diskreten Räumen dargestellt werden. Die Störungsbereiche sind die Schnittpunkte der Roboter zum gleichen Zeitpunkt oder Zeitintervall. Eine Störung kann vermieden werden, indem nur einem Roboter ermöglicht wird, jeweils in einem Störungsbereich zu sein. Weil sich die relative Zeit infolge der Ablaufsteuerung ändert, muss die Zeitbasis eingestellt werden, um die neue Zeit zu korrelieren, nachdem die Ablaufsteuerung angewandt worden ist.Another possibility is to determine the occupied space as a function of time. At any given moment, there is a room occupied by each robot. By representing the occupied space as integrating time over a particular interval, the occupied space can be represented as a series of time-correlated discrete spaces. The disturbance areas are the intersections of the robots at the same time or time interval. A disturbance can be avoided by allowing only one robot to be in a fault area at a time. Because the relative time changes due to scheduling, the time base must be set to correlate the new time after scheduling has been applied.

Für das obige zeitbasierte Verfahren kann die Zeit als eine Zeitintervallzahl dargestellt werden. Auf diese Weise wird die gesamte abgelaufene Zeit weniger wichtig, und der Störungsbereich kann als die Matrix von Intervallzahlen dargestellt werden. Wenn in einem spezifischen Intervallzustand eine Störung vorhanden ist, dann darf dieser Zustand nicht auftreten, weil in diesem Intervallzustand ein Zusammenstoß stattfinden kann.For the above time-based method, the time can be represented as a time interval number. In this way, the total elapsed time becomes less important and the disturbance area can be represented as the matrix of interval numbers. If there is a disturbance in a specific interval state, then this state must not occur because a collision may take place in this interval state.

Ähnlich kann der Programmablauf als Zeilenzahlen, dem Anteil am Ablauf, Programmzustand, usw. dargestellt werden. Für jede solche Ablaufdarstellung kann es eine definierte Störungsdarstellung als eine Funktion des gewählten Parameters geben. Das Ziel zur Vermeidung einer Störung ist es, die Zustände der Sammlung von Funktionen, wo eine Störung existiert, zu vermeiden. Für Funktionen, die als sequentielle diskrete Intervalle oder sequentielle Zustände dargestellt werden können, kann dies als eine Störungsmatrix gemäß 8 dargestellt werden. Die Störungsmatrix enthält den Störungsbereich. Natürlich ist eine Matrix nur eine Möglichkeit der Darstellung von Daten, jedoch kann die Matrix eine visuellere Darstellung sein. Im Allgemeinen ist die Matrix schwach besetzt, so dass auch eine beliebige Sparce-Matrix-Technik für die Darstellung Anwendung finden würde.Similarly, the program flow can be represented as line numbers, the proportion of the sequence, program state, etc. For each such flowchart, there may be a defined fault representation as a function of the selected parameter. The goal to avoid interference is to avoid the states of collection of functions where a disturbance exists. For functions that may be represented as sequential discrete intervals or sequential states, this may be referred to as a disturbance matrix according to FIG 8th being represented. The fault matrix contains the fault area. Of course, a matrix is just one way of displaying data, but the matrix can be a more visual representation. In general, the matrix is sparse so any sparse matrix technique would apply to the rendering.

Eine Bestimmung von Zuständen wie Eingabe-Ausgabe-Zustände oder ein Prozess oder andere Zustände können zum Definieren der Bereiche verwendet werden. Solange die Zustände eine sequentielle Bedeutung haben oder definiert werden können, um eine mit Roboterposition und besetztem Raum verbundene sequentielle Aktivität darzustellen, können sie für die Parameterdarstellung der Bereiche von Störung und gegenseitiger Blockierung verwendet werden.Determination of states such as input-output states or a process or other states may be used to define the regions. As long as the states have a sequential meaning or can be defined to represent a sequential activity associated with robot position and occupied space, they can be used for the parameter representation of the regions of disturbance and mutual blockage.

Sobald die Störungsmatrix bestimmt worden ist, besteht ein Verfahren zur Verhinderung von gegenseitiger Blockierung darin, jede „Falle” der monotonen Erhöhung einer Ablaufzahl dort zu vermeiden, wo Störung eine vorwärtsgerichtete Folgesteuerung blockieren würde. Indem die Störungsmatrix ansteigend konvex gemacht wird, werden sowohl gegenseitige Blockierung als auch Störung vermieden. Die ansteigend konvexe Störungsmatrix kann als Matrix gegenseitiger Blockierung bezeichnet werden. Die Matrix gegenseitiger Blockierung enthält den Bereich von gegenseitiger Blockierung wie es in 7 gezeigt ist. Wie die Störung, so ist die Matrix gegenseitiger Störung nur eine Möglichkeit, die Daten darzustellen.Once the perturbation matrix has been determined, one method of preventing interlocking is to avoid any "trap" of monotonically increasing a purging count where perturbation would block forward-following. By making the perturbation matrix increasingly convex, both mutual blocking and perturbation are avoided. The increasing convex perturbation matrix may be referred to as the mutual block matrix. The mutual blockage matrix contains the area of mutual blocking as in 7 is shown. Like the disorder, the matrix of mutual interference is just one way to represent the data.

Es gibt viele Mittel, um gegenseitige Blockierung und Störung zu vermeiden, sobald die Matrix gegenseitiger Blockierung bestimmt wurde. Das einfachste Mittel ist das Einfügen von Anweisungen im Programm zum Einstellen der zeitlichen Steuerung der Ausführung, womit der Bereich einer gegenseitigen Blockierung der Matrix gegenseitiger Blockierung vermieden wird. Das Hinzufügen von Anweisungen zum Programm besitzt den Vorteil, dass die genaue Beschaffenheit der zeitlichen Steuerung der Ausführung bestimmt werden kann, indem einfach das Programm betrachtet wird. Andere Mittel ermöglichen es, dass die zeitliche Steuerung außerhalb der aktuellen Programmmodifikation bestimmt wird.There are many ways to avoid mutual blocking and interference once the matrix of mutual blockage has been determined. The simplest means is to insert instructions in the execution timing control program, thus avoiding the area of mutual blockage of the interlocking matrix. The addition of instructions to the program has the advantage that the exact nature of the scheduling of the execution can be determined simply by looking at the program. Other means allow the timing to be determined outside the current program modification.

Die parametrische Definition der Bereiche von Störung und von gegenseitiger Blockierung stellt ein allgemeines Verfahren zum Vermeiden von Störung und gegenseitiger Blockierung bereit. Diese Darstellung der Bereiche ermöglicht eine verschiedenartige Programmsteuerung durch verschiedene Faktoren.The parametric definition of the regions of perturbation and mutual blocking provides a general method for avoiding perturbation and mutual blocking. This representation of the areas allows for a diverse program control by various factors.

Zur Reduzierung der CPU-Auslastung können die aktuellen Programme auch aktualisiert werden, um Bereichs- und Ablaufinformationen einzubeziehen, so dass alle erforderlichen Informationen zur Vermeidung von Bedingungen gegenseitiger Blockierung in den Programmen enthalten sind. Dies schließt die Notwendigkeit einer Echtzeitprüfung der Programmabläufe, Störungen und potenziellen Bedingungen von gegenseitiger Blockierung aus.To reduce CPU usage, the current programs may also be updated to include scope and expiration information, so that all necessary information to avoid mutual blocking conditions is included in the programs. This eliminates the need for a real-time check of the Program sequences, disruptions and potential conditions of mutual blocking.

11 ist das Flussbild eines Ablaufs zur Vermeidung von gegenseitiger Blockierung nach System und Verfahren der Erfindung. In einem Schritt 420 werden den Robotersteuereinheiten 16, 18 die Programme beigebracht. In einem Schritt 421 wird ein besetzter Raum festgelegt. Dann werden Störungsbereiche in einem Schritt 422 bestimmt. In einem Schritt 423 werden potenzielle Bereiche von gegenseitiger Blockierung festgelegt. In einem Schritt 424 werden Anforderungen der Programmausführung zur Vermeidung von gegenseitiger Blockierung bestimmt. Schließlich ist in einem Schritt 425 ein Mechanismus zur Vermeidung von gegenseitiger Blockierung vorgesehen, wie es oben beschrieben ist. 11 Figure 3 is the flow chart of a process for preventing blockage according to the system and method of the invention. In one step 420 become the robot control units 16 . 18 taught the programs. In one step 421 a occupied room is set. Then, trouble areas become one step 422 certainly. In one step 423 potential areas of mutual blocking are defined. In one step 424 requirements of program execution are determined to avoid mutual blocking. Finally, in one step 425 provided a mechanism for preventing mutual blocking, as described above.

Der Schritt 423 ist in 12 ausführlicher dargestellt. In einem Schritt 426 werden der besetzte Raum und alle Störungsbereiche gekennzeichnet. In einem Schritt 427 wird jede Kombination von Störungsbereichen geprüft. In einem Entscheidungsschritt 428 wird eine Prüfung auf „Besteht Bedingung gegenseitiger Blockierung” hin vorgenommen. Wenn das Ergebnis „NEIN” ist, wird der Schritt 423 in einem Schritt 429 beendet. Wenn das Ergebnis „JA” ist, bewirkt ein Schritt 430 ein Mittel, um zu verhindern, dass gegenseitige Blockierung auftritt, und das Verfahren kehrt zum Schritt 427 zurück.The step 423 is in 12 shown in more detail. In one step 426 Both the occupied room and all the trouble areas are identified. In one step 427 every combination of fault areas is checked. In a decision step 428 a check is made for "condition of mutual blockage". If the result is "NO", the step becomes 423 in one step 429 completed. If the result is "YES", a step is effected 430 a means to prevent mutual blocking from occurring and the method returns to the step 427 back.

Während bestimmte typische Ausführungsformen und Einzelheiten zum Zweck der Darstellung der Erfindung gezeigt worden sind, erschließt sich dem Fachmann, dass verschiedene Änderungen vorgenommen werden können, ohne vom Geist der Offenlegung, die in den folgenden angefügten Ansprüchen weiter beschrieben wird, abzuweichen.While certain typical embodiments and details have been shown for the purpose of illustrating the invention, it will be apparent to those skilled in the art that various changes may be made without departing from the spirit of the disclosure which is further described in the following appended claims.

ZITATE ENTHALTEN IN DER BESCHREIBUNG QUOTES INCLUDE IN THE DESCRIPTION

Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of the documents listed by the applicant has been generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.

Zitierte PatentliteraturCited patent literature

  • US 5150452 [0010] US 5150452 [0010]
  • US 5347459 [0011] US 5347459 [0011]
  • US 7114157 [0014] US 7114157 [0014]

Claims (15)

Verfahren zur Verhinderung von gegenseitiger Blockierung eines Paares von Robotern, die einen gemeinsamen Arbeitsbereich besitzen, jeder der Roboter durch ein zugeordnetes Programm gesteuert wird, wobei, wenn die Programme gleichzeitig ausgeführt werden, jeder der Roboter zumindest einen Abschnitt des gemeinsamen Arbeitsbereiches während eines Teils der Ausführung des zugeordneten Programms besetzt, wobei das Verfahren die Schritte umfasst: während gleichzeitiger Ausführung der Programme das Kennzeichnen von Abschnitten des durch die Roboter besetzten, gemeinsamen Arbeitsbereiches; Kennzeichnen zumindest eines Störungsbereiches, in dem sich die Abschnitte des gemeinsamen Arbeitsbereiches überdecken; Analysieren des zumindest einen Störungsbereiches und Kennzeichnen, wo zumindest eine Bedingung gegenseitiger Blockierung der zwei Roboter auftreten kann; und Vermeiden der zumindest einen Bedingung gegenseitiger Blockierung während einer Ausführung der Programme durch automatisches Bestimmen und Ausführen von zumindest einer Anweisung einer von gegenseitiger Blockierung freien Bewegung vor Ausführung einer beliebigen Bewegung der Roboter, was in der zumindest einen Bedingung von gegenseitiger Blockierung resultiert.A method for preventing mutual blocking of a pair of robots having a common work area, each of the robots being controlled by an associated program, wherein when the programs are executed simultaneously, each of the robots covers at least a portion of the common work area during a part of the execution occupied by the associated program, the method comprising the steps of: while concurrently executing the programs, identifying portions of the shared workspace occupied by the robots; Identifying at least one fault area in which the portions of the common work area overlap; Analyzing the at least one fault area and identifying where at least one condition of mutual blockage of the two robots may occur; and Avoiding the at least one condition of mutual blocking during execution of the programs by automatically determining and executing at least one instruction of mutual blocking free movement prior to performing any movement of the robots resulting in the at least one condition of mutual blocking. Verfahren nach Anspruch 1, umfassend das Durchführen von Bestimmung und Ausführung während einer normalen Produktionsausführung der Programme.The method of claim 1, comprising performing determination and execution during normal production execution of the programs. Verfahren nach Anspruch 1, bei dem die zumindest eine Anweisung der von gegenseitiger Blockierung freien Bewegung zu mindestens einem der Programme hinzugefügt wird.The method of claim 1, wherein the at least one instruction of the mutual blocking free movement is added to at least one of the programs. Verfahren nach Anspruch 1, bei dem die zumindest eine Anweisung einer von gegenseitiger Blockierung freien Bewegung durch Modifizieren von zumindest einem Arbeitsschritt in zumindest einem der Programme bereitgestellt wird.The method of claim 1, wherein the at least one mutual block free motion instruction is provided by modifying at least one operation in at least one of the programs. Verfahren nach Anspruch 1, bei dem die zumindest eine Anweisung einer von gegenseitiger Blockierung freien Bewegung durch erneutes sequentielles Ordnen von Arbeitsschritten in zumindest einem der Programme bereitgestellt wird.The method of claim 1, wherein the at least one instruction of mutual blocking free movement is provided by re-sequencing operations in at least one of the programs. Verfahren nach Anspruch 1, bei dem die zumindest eine Anweisung einer von gegenseitiger Blockierung freien Bewegung durch das Steuern einer Ausführung von zumindest einem der Programme unabhängig von Arbeitsschritten des Programms in dem zumindest einen Programm bereitgestellt wird.The method of claim 1, wherein the at least one instruction of mutual blocking free movement is provided by controlling execution of at least one of the programs independently of operations of the program in the at least one program. Verfahren nach Anspruch 1, umfassend das Darstellen der besetzten Abschnitte des gemeinsamen Arbeitsbereiches mit Voxelmodellen und Vergleichen der Voxelmodelle, um den zumindest einen Störungsbereich zu kennzeichnen.The method of claim 1, including displaying the occupied portions of the shared work area with voxel models and comparing the voxel models to characterize the at least one perturbation area. Computerlesbare Medien, die Arbeitsschritte enthalten, die durch einen Computer ausführbar sind, um ein Verfahren zur Verhinderung von gegenseitiger Blockierung eines Paares von Robotern, die einen gemeinsamen Arbeitsbereich besitzen, durchzuführen, jeder der Roboter durch ein zugeordnetes Programm gesteuert wird, wobei, wenn die Programme gleichzeitig ausgeführt werden, jeder der Roboter zumindest einen Abschnitt des gemeinsamen Arbeitsbereiches während eines Ausführungsabschnitts des zugeordneten Programms besetzt, wobei das Verfahren umfasst: während gleichzeitiger Ausführung der Programme, die Arbeitsschritte, die Abschnitte des durch die Roboter besetzten gemeinsamen Arbeitsbereiches kennzeichnen; die Anweisungen, die zumindest einen Störungsbereich kennzeichnen, in denen sich die Abschnitte des gemeinsamen Arbeitsbereiches überdecken; die Anweisungen, die den mindestens einen Störungsbereich analysieren und kennzeichnen, wo zumindest eine Bedingung von gegenseitiger Blockierung der zwei Roboter auftreten kann; und die Anweisungen, die die zumindest eine Bedingung gegenseitiger Blockierung während einer Ausführung der Programme verhindern, durch automatisches Bestimmen und Ausführen von zumindest einer Anweisung einer von gegenseitiger Blockierung freien Bewegung vor Ausführung einer beliebigen Bewegung der Roboter, was in der zumindest einen Bedingung gegenseitiger Blockierung resultiert.Computer-readable media containing operations executable by a computer to perform a method of preventing mutual locking of a pair of robots having a common work area, each of the robots being controlled by an associated program, wherein if the programs simultaneously, each of the robots occupies at least a portion of the shared work area during an execution portion of the associated program, the method comprising: while concurrently executing the programs, the operations identifying portions of the shared workspace occupied by the robots; the instructions identifying at least one region of disturbance in which the portions of the common work area overlap; the instructions that analyze and identify the at least one region of disturbance where at least one condition of mutual blockage of the two robots may occur; and the instructions that prevent the at least one condition of mutual blocking during execution of the programs by automatically determining and executing at least one instruction of mutual blocking free movement prior to performing any movement of the robots resulting in the at least one condition of mutual blocking. Verfahren nach Anspruch 8, umfassend die Arbeitsschritte, die das Bestimmen und Ausführen während einer normalen Produktionsausführung der Programme durchführen.The method of claim 8, including the steps of determining and executing during normal production execution of the programs. Verfahren nach Anspruch 8, bei dem die zumindest eine Anweisung einer von gegenseitiger Blockierung freien Bewegung zu mindestens einem der Programme hinzugefügt wird.The method of claim 8, wherein the at least one instruction is added to a block-free motion to at least one of the programs. Verfahren nach Anspruch 8, bei dem die zumindest eine Anweisung einer von gegenseitiger Blockierung freien Bewegung durch Modifizieren von mindestens einem Arbeitsschritt in zumindest einem der Programme bereitgestellt wird.The method of claim 8, wherein the at least one mutual block free motion instruction is provided by modifying at least one operation in at least one of the programs. Verfahren nach Anspruch 8, bei dem die zumindest eine Anweisung einer von gegenseitiger Blockierung freien Bewegung durch erneutes sequentielles Ordnen von Arbeitsschritten in zumindest einem der Programme bereitgestellt wird. A method as claimed in claim 8, wherein the at least one instruction of mutual blocking free movement is provided by re-sequencing operations in at least one of the programs. Verfahren nach Anspruch 8, bei dem die zumindest eine Anweisung einer von gegenseitiger Blockierung freien Bewegung durch das Steuern der Ausführung von mindestens einem der Programme unabhängig von Programmarbeitsschritten in dem zumindest einen Programm bereitgestellt wird.The method of claim 8, wherein the at least one mutual-blocking-movement instruction is provided by controlling execution of at least one of the programs independently of program operations in the at least one program. Verfahren nach Anspruch 8, umfassend die Arbeitsschritte des Darstellens der besetzten Abschnitte des gemeinsamen Arbeitsbereiches mit Voxelmodellen und des Vergleichens der Voxelmodelle, um den zumindest einen Störungsbereich zu kennzeichnen.The method of claim 8, comprising the steps of presenting the occupied portions of the shared workspace with voxel models and comparing the voxel models to characterize the at least one perturbation region. Verfahren zur Verhinderung von gegenseitiger Blockierung einer Vielzahl von Robotern, die einen gemeinsamen Arbeitsbereich aufweisen, jeder der Roboter durch ein zugeordnetes Programm gesteuert wird, wobei, wenn die Programme gleichzeitig ausgeführt werden, jeder der Roboter zumindest einen Abschnitt des gemeinsamen Arbeitsbereiches während eines Ausführungsabschnitts des zugeordneten Programms besetzt, wobei das Verfahren die Schritte umfasst: während gleichzeitiger Ausführung der Programme das Kennzeichnen von Abschnitten des durch die Roboter besetzten gemeinsamen Arbeitsbereiches; Kennzeichnen von zumindest einem Störungsbereich, bei dem die Abschnitte des gemeinsamen Arbeitsbereiches sich für mindestens zwei der Roboter überdecken; Analysieren des zumindest einen Störungsbereiches und Kennzeichnen, wo zumindest eine Bedingung gegenseitiger Blockierung der mindestens zwei Roboter auftreten kann; und Vermeiden der zumindest einen Bedingung gegenseitiger Blockierung während einer Ausführung der Programme durch automatisches Bestimmen und Ausführen von zumindest einer Anweisung einer von gegenseitiger Blockierung freien Bewegung vor Ausführung einer beliebigen Bewegung der mindestens zwei Roboter, was in der zumindest einen Bedingung gegenseitiger Blockierung resultiert.A method for preventing mutual blocking of a plurality of robots having a common work area, each of the robots being controlled by an associated program, wherein when the programs are executed simultaneously, each of the robots maintains at least a portion of the shared work area during an execution section of the associated work area Program, the procedure comprising the steps of: while concurrently executing the programs, identifying portions of the shared workspace occupied by the robots; Characterizing at least one fault area in which the portions of the common work area overlap for at least two of the robots; Analyzing the at least one fault area and identifying where at least one mutual lock condition of the at least two robots may occur; and Avoiding the at least one condition of mutual blocking during execution of the programs by automatically determining and executing at least one instruction of mutual blocking free movement prior to performing any movement of the at least two robots resulting in the at least one mutual blocking condition.
DE102012103830.9A 2011-05-05 2012-05-02 Method and computer-readable media for automatic connection of deadlocks in multiple robot systems Active DE102012103830B4 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201161482808P 2011-05-05 2011-05-05
US61/482,808 2011-05-05

Publications (2)

Publication Number Publication Date
DE102012103830A1 true DE102012103830A1 (en) 2012-11-08
DE102012103830B4 DE102012103830B4 (en) 2022-05-25

Family

ID=47019755

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102012103830.9A Active DE102012103830B4 (en) 2011-05-05 2012-05-02 Method and computer-readable media for automatic connection of deadlocks in multiple robot systems

Country Status (3)

Country Link
JP (1) JP5981215B2 (en)
CN (1) CN102814813B (en)
DE (1) DE102012103830B4 (en)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013015234A1 (en) * 2013-09-13 2015-03-19 Liebherr-Verzahntechnik Gmbh Method for controlling a gear cutting machine and gear cutting machine
EP2918378A1 (en) * 2014-03-10 2015-09-16 Tecan Trading AG Process for finding a path in an automated handling system, and handling system with corresponding control module for finding a path
DE102015007395A1 (en) * 2015-06-08 2016-12-08 Kuka Roboter Gmbh Method and system for operating and / or monitoring a machine, in particular a robot
JP2018134703A (en) * 2017-02-21 2018-08-30 株式会社安川電機 Robot simulator, robot system, and simulation method
DE102017215268A1 (en) * 2017-08-31 2019-02-28 Siemens Aktiengesellschaft Method for laser deposition welding
DE102016013475B4 (en) 2015-11-20 2019-10-02 Fanuc Corporation Manual feeder of a robot for calculating an operating range of a robot
DE102018133472B3 (en) * 2018-12-21 2020-03-12 Franka Emika Gmbh Motion monitoring of a robot manipulator
DE102019102803A1 (en) * 2019-02-05 2020-08-06 Franka Emika Gmbh Align two robot arms to each other
US10766139B2 (en) 2015-02-13 2020-09-08 Abb Schweiz Ag Method for avoiding collisions between two robots
DE102019126465B4 (en) * 2018-10-01 2021-02-11 KBee AG Method and device for determining trajectories for serial manipulators
DE102020203636A1 (en) 2020-03-20 2021-09-23 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung eingetragener Verein Determination of safety areas around an automated machine
DE102021204148B3 (en) 2021-04-27 2022-06-23 Kuka Deutschland Gmbh Process and system for the coordinated traversing of specified robot paths
DE102021105772B4 (en) 2020-03-13 2022-06-23 Omron Corporation Interference determination apparatus and method
DE102019118202B4 (en) 2018-07-17 2022-11-03 Fanuc Corporation robotic system
DE102021122606A1 (en) 2021-09-01 2023-03-02 Arburg Gmbh + Co Kg Method, machine control and computer program product for determining a path for car navigation
DE102019001970B4 (en) 2018-03-27 2024-04-25 Fanuc Corporation Integrated simulation system with improved usability

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9550295B2 (en) * 2013-02-06 2017-01-24 Mitsubishi Electric Corporation Interference check device
JP5768829B2 (en) * 2013-03-15 2015-08-26 株式会社安川電機 Robot system, robot control method, and workpiece manufacturing method
US9555545B2 (en) * 2014-05-21 2017-01-31 Bot & Dolly, Llc Systems and methods for time-based parallel robotic operation
US9707681B2 (en) * 2015-07-27 2017-07-18 Siemens Industry Software Ltd. Anti-collision management of overlapping robotic movements
US11305429B2 (en) * 2015-10-13 2022-04-19 ATENSOR Engineering and Technology Systems GmbH Synchronization of multiple robots
JP6654926B2 (en) * 2016-02-24 2020-02-26 本田技研工業株式会社 How to estimate processing time
CN107797550A (en) * 2016-09-01 2018-03-13 松下电器(美国)知识产权公司 Autonomous formula robot, method and non-transient recording medium
TWI822729B (en) * 2018-02-06 2023-11-21 美商即時機器人股份有限公司 Method and apparatus for motion planning of a robot storing a discretized environment on one or more processors and improved operation of same
US11738457B2 (en) 2018-03-21 2023-08-29 Realtime Robotics, Inc. Motion planning of a robot for various environments and tasks and improved operation of same
CN111354654B (en) * 2018-12-20 2022-10-21 北京北方华创微电子装备有限公司 Deadlock judgment method and semiconductor device
CN109767118A (en) * 2019-01-11 2019-05-17 沈阳建筑大学 A kind of limited buffer dynamic capacity method for obligating in there is the bus body painting workshop that can reentry process
CN112783145B (en) * 2019-11-11 2023-03-31 上海快仓智能科技有限公司 Traffic control method, device, equipment and computer readable storage medium
CN117729988A (en) 2021-08-06 2024-03-19 发那科株式会社 Interference checking device
KR102595007B1 (en) * 2023-03-24 2023-10-27 주식회사 아임토리 Mathod and Apparatus for Optimizing of Robot Process
CN117381805B (en) * 2023-12-13 2024-02-27 成都航空职业技术学院 Mechanical arm operation control method and system for conflict handling

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5150452A (en) 1989-07-28 1992-09-22 Megamation Incorporated Method and apparatus for anti-collision and collision protection for multiple robot system
US5347459A (en) 1993-03-17 1994-09-13 National Research Council Of Canada Real time collision detection
US7114157B2 (en) 2001-11-27 2006-09-26 Kuka Roboter Gmbh System controlling exclusive access by control programs to system resources

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02257204A (en) * 1989-03-29 1990-10-18 Yaskawa Electric Mfg Co Ltd Collision evasion control system for plural robot arms
JPH04201081A (en) * 1990-11-29 1992-07-22 Honda Motor Co Ltd Control unit for robot
JPH05108129A (en) * 1991-10-21 1993-04-30 Nachi Fujikoshi Corp Inter-robot interlock control method
US5798627A (en) * 1995-01-04 1998-08-25 Gilliland; Malcolm T. Method for simultaneous operation of robot welders
US5548694A (en) 1995-01-31 1996-08-20 Mitsubishi Electric Information Technology Center America, Inc. Collision avoidance system for voxel-based object representation
US6004016A (en) * 1996-08-06 1999-12-21 Trw Inc. Motion planning and control for systems with multiple mobile objects
JPH11347984A (en) * 1998-06-02 1999-12-21 Nissan Motor Co Ltd Robot control device
JP2003103484A (en) * 2001-09-28 2003-04-08 Honda Motor Co Ltd Interlock setting method for robot
US6678582B2 (en) * 2002-05-30 2004-01-13 Kuka Roboter Gmbh Method and control device for avoiding collisions between cooperating robots
DE102004027944B4 (en) 2004-06-08 2012-02-16 Kuka Laboratories Gmbh Method for protecting a robot against collisions
JP2007000955A (en) * 2005-06-22 2007-01-11 Nachi Fujikoshi Corp Robot system
JP4544145B2 (en) * 2005-11-24 2010-09-15 株式会社デンソーウェーブ Robot interference avoidance method and robot
JP4159577B2 (en) 2005-12-13 2008-10-01 ファナック株式会社 Interlock automatic setting device and automatic setting method between a plurality of robots
KR101089536B1 (en) * 2006-06-06 2011-12-05 에이비비 리써치 리미티드 Improved method and system for operating a cyclic production machine in coordination with a loader or unloader machine
DE102008013400B4 (en) 2008-03-06 2016-03-10 Voith Engineering Services Gmbh Method for determining locking areas of at least one first object movable in space
US8315738B2 (en) * 2008-05-21 2012-11-20 Fanuc Robotics America, Inc. Multi-arm robot system interference check via three dimensional automatic zones
CN100570523C (en) * 2008-08-18 2009-12-16 浙江大学 A kind of mobile robot's barrier-avoiding method based on the barrier motion prediction
JP2010240772A (en) * 2009-04-06 2010-10-28 Seiko Epson Corp Device and method for controlling robot

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5150452A (en) 1989-07-28 1992-09-22 Megamation Incorporated Method and apparatus for anti-collision and collision protection for multiple robot system
US5347459A (en) 1993-03-17 1994-09-13 National Research Council Of Canada Real time collision detection
US7114157B2 (en) 2001-11-27 2006-09-26 Kuka Roboter Gmbh System controlling exclusive access by control programs to system resources

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9983561B2 (en) 2013-09-13 2018-05-29 Liebherr-Verzahntechnik Gmbh Method of controlling a gear cutting machine and gear cutting machine
DE102013015234A1 (en) * 2013-09-13 2015-03-19 Liebherr-Verzahntechnik Gmbh Method for controlling a gear cutting machine and gear cutting machine
EP2918378A1 (en) * 2014-03-10 2015-09-16 Tecan Trading AG Process for finding a path in an automated handling system, and handling system with corresponding control module for finding a path
US10766139B2 (en) 2015-02-13 2020-09-08 Abb Schweiz Ag Method for avoiding collisions between two robots
DE102015007395A1 (en) * 2015-06-08 2016-12-08 Kuka Roboter Gmbh Method and system for operating and / or monitoring a machine, in particular a robot
US9999975B2 (en) 2015-06-08 2018-06-19 Kuka Deutschland Gmbh Method and system for operating and/or monitoring a machine, in particular a robot
DE102016013475B4 (en) 2015-11-20 2019-10-02 Fanuc Corporation Manual feeder of a robot for calculating an operating range of a robot
JP2018134703A (en) * 2017-02-21 2018-08-30 株式会社安川電機 Robot simulator, robot system, and simulation method
US11213945B2 (en) 2017-02-21 2022-01-04 Kabushiki Kaisha Yaskawa Denki Robot simulator, robot system and simulation method
DE102017215268A1 (en) * 2017-08-31 2019-02-28 Siemens Aktiengesellschaft Method for laser deposition welding
DE102019001970B4 (en) 2018-03-27 2024-04-25 Fanuc Corporation Integrated simulation system with improved usability
DE102019118202B4 (en) 2018-07-17 2022-11-03 Fanuc Corporation robotic system
DE102019126465B4 (en) * 2018-10-01 2021-02-11 KBee AG Method and device for determining trajectories for serial manipulators
DE102018133472B3 (en) * 2018-12-21 2020-03-12 Franka Emika Gmbh Motion monitoring of a robot manipulator
DE102019102803B4 (en) 2019-02-05 2022-02-17 Franka Emika Gmbh Aligning two robotic arms to each other
DE102019102803A1 (en) * 2019-02-05 2020-08-06 Franka Emika Gmbh Align two robot arms to each other
DE102021105772B4 (en) 2020-03-13 2022-06-23 Omron Corporation Interference determination apparatus and method
US11597090B2 (en) 2020-03-13 2023-03-07 Omron Corporation Interference determination device and method
DE102020203636A1 (en) 2020-03-20 2021-09-23 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung eingetragener Verein Determination of safety areas around an automated machine
DE102021204148B3 (en) 2021-04-27 2022-06-23 Kuka Deutschland Gmbh Process and system for the coordinated traversing of specified robot paths
DE102021122606A1 (en) 2021-09-01 2023-03-02 Arburg Gmbh + Co Kg Method, machine control and computer program product for determining a path for car navigation
WO2023031320A1 (en) 2021-09-01 2023-03-09 Arburg Gmbh + Co Kg Method, machine control and computer-program product for determining a path for autonavigation

Also Published As

Publication number Publication date
JP5981215B2 (en) 2016-08-31
CN102814813A (en) 2012-12-12
DE102012103830B4 (en) 2022-05-25
JP2012232408A (en) 2012-11-29
CN102814813B (en) 2017-05-31

Similar Documents

Publication Publication Date Title
DE102012103830B4 (en) Method and computer-readable media for automatic connection of deadlocks in multiple robot systems
DE102016120763B4 (en) Method for collision-free motion planning
EP1366867B1 (en) Method and device for avoiding collisions between industrial robots and other objects
DE102016009255B4 (en) Coordination of paths of multiple moving machines
DE102015015093B4 (en) Robot programming device for instructing a robot for machining
EP2353802A2 (en) Method for a collision-free path planning of an industrial robot
DE102017002996A1 (en) MACHINE LEARNING DEVICE FOR LEARNING THROUGH THE USE OF A SIMULATION RESULT, MACHINE SYSTEM, MANUFACTURING SYSTEM AND MACHINE LEARNING PROCESS
EP2952990B1 (en) Optimized control of a chip-producing working machine
EP3434424A1 (en) Efficient programming of robots for processing of workpieces with various variants
EP3511126A1 (en) Method for computer-assisted planning of a process which can be executed by a robot
DE102019117877B4 (en) ROBOT PROGRAM GENERATION DEVICE
DE112019007889T5 (en) MACHINING PROGRAM CONVERSION DEVICE, NUMERICAL CONTROL DEVICE AND MACHINING PROGRAM CONVERSION METHOD
DE102015002994A1 (en) Changing an initially given robot path
EP3819088B1 (en) Method for determining a safety area and for routing robots
AT518498A1 (en) Position monitoring of a kinematics
DE102018000205A1 (en) Numerical control
EP3914976B1 (en) Assigning tools to spaces in a tool magazine
DE112020006647T5 (en) ORIGIN RETURN DEVICE
DE102015118431B4 (en) Autonomous tax system
DE112019007579T5 (en) Numerical control device and machine learning device
DE102022131537A1 (en) AUTOMATIC ONLINE LOCKING STRATEGY
EP2796953B1 (en) Numerical controller with indicator for preview in case of changes to the part program
DE102022130341A1 (en) POINT SET INTERFERENCE CHECK
EP3779619B1 (en) Method and device for determining emerging risks of a technical system
EP3518059B1 (en) Method for computer-assisted user assistance in the operation of a movement planer for a machine

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G05B0019418000

Ipc: B25J0009180000

R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final