DE102012103830B4 - Verfahren und computerlesbare Medien zur automatischen Verbindung von gegenseitiger Blockierung in Mehrfachrobotersytemen - Google Patents

Verfahren und computerlesbare Medien zur automatischen Verbindung von gegenseitiger Blockierung in Mehrfachrobotersytemen Download PDF

Info

Publication number
DE102012103830B4
DE102012103830B4 DE102012103830.9A DE102012103830A DE102012103830B4 DE 102012103830 B4 DE102012103830 B4 DE 102012103830B4 DE 102012103830 A DE102012103830 A DE 102012103830A DE 102012103830 B4 DE102012103830 B4 DE 102012103830B4
Authority
DE
Germany
Prior art keywords
robots
deadlock
programs
robot
common
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.)
Active
Application number
DE102012103830.9A
Other languages
English (en)
Other versions
DE102012103830A1 (de
Inventor
H. Dean McGee
Tien L. Chang
Peter Swanson
Jianming Tao
Di Xiao
Ho Cheung Wong
Sai-Kai Cheng
Jason Tsai
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/de
Application granted granted Critical
Publication of DE102012103830B4 publication Critical patent/DE102012103830B4/de
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

Landscapes

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

Abstract

Verfahren zur Verhinderung von gegenseitiger Blockierung eines Paares von Robotern (6, 8), die einen gemeinsamen Arbeitsbereich (10) besitzen, jeder der Roboter (6, 8) durch ein zugeordnetes Programm (A, B) gesteuert wird, wobei, wenn die Programme (A, B) gleichzeitig ausgeführt werden, jeder der Roboter (6, 8) zumindest einen Abschnitt des gemeinsamen Arbeitsbereiches (10) während eines Teils der Ausführung des zugeordneten Programms (A, B) besetzt, wobei das Verfahren die Schritte umfasst:Bestimmen der jeweils besetzten Abschnitte (12, 14) des gemeinsamen Arbeitsbereichs (10) durch Inbetriebnahme der Roboter (6, 8) in einem Sperrmodus oder einem nicht-angeschlossenen Modus, einschließlich der Darstellung der besetzten Abschnitte (12, 14) des gemeinsamen Arbeitsbereichs (10) in Voxelmodellen (300), wobei das Bestimmen der besetzten Abschnitte (12, 14) außerhalb einer normalen Ausführung durchgeführt wird;Bestimmen mindestens eines Störungsbereichs, indem sich die Abschnitte (12, 14) des von den Robotern (6, 8) belegten gemeinsamen Arbeitsbereichs (10) überschneiden, wobei das Bestimmen des mindestens einen Störungsbereichs durch Vergleich der Voxelmodelle (300) durchgeführt wird;Analysieren des zumindest einen Störungsbereiches und Kennzeichnen, wo zumindest eine Bedingung gegenseitiger Blockierung der zwei Roboter (6, 8) auftreten kann; undVermeiden der zumindest einen Bedingung gegenseitiger Blockierung während einer normalen Ausführung der Programme (A, B) durch automatisches Bestimmen und Ausführen einer Anweisung einer von gegenseitiger Blockierung freien Bewegung und Hinzufügen der Anweisung der von gegenseitiger Blockierung freien Bewegung zu mindestens einem der Programme (A, B).

Description

  • Die vorliegende Erfindung betrifft im Allgemeinen ein Verfahren, um die Vermeidung von Bewegungsstörungen für die Vielzahl von Robotern zu steuern. Auch beschrieben werden computerlesbare Medien, die Arbeitsschritte enthalten, die durch einen Computer ausführbar sind, um ein erfindungsgemäßes Verfahren zu implementieren.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • Von einem weiteren bekannten Verfahren zur Vermeidung von Roboterzusammenstössen wird in dem Pollack et al. erteilten US-Patent US 5 150 452 A 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.
  • 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 US 5 347 459 A 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.
  • 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.
  • 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.
  • Das Chaffee et al. erteilte US-Patent US 7 114 157 B2 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.
  • Die US-Patentanmeldung, Veröffentlichungs-Nr. 2009/0 326 711 A1 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.
  • Das Stand der Technik Dokument DE 10 2008 013 400 A1 offenbart ein Verfahren zur Ermittlung von Verriegelungsbereichen wenigstens eines im Raum bewegbaren ersten Objektes mit einem oder mehreren anderen stationären oder im Raum bewegbaren zweiten Objekten, wobei rechnerunterstützt bahndatenrelevante Bereiche (Koordinaten) wenigstens eines ersten Objektes und/oder eines zweiten Objektes in ein zweidimensionales Raster/eine Tabelle übertragen werden und in diesem Raster/dieser Tabelle nicht kollisionsgefährdete erste Bereiche (a) und kollionsgefährdete Bereiche dargestellt und daraus Verriegelungsbereiche des ersten Objektes und/oder des zweiten Objektes festgelegt (bestimmt) werden.
  • Das Stand der Technik Dokument DE 10 2004 027 944 A1 offenbart ein Verfahren zum Schützen von mindestens zwei Robotern, insbesondere Mehrachs-Industrie-Robotern gegen Kollisionen, bei dem Bewegungen eines Roboters automatisch auf mögliche Kollisionen geprüft werden und in den Bewegungsablauf automatisch Verriegelungen eingefügt werden.
  • Das Stand der Technik Dokument US 2009 / 0 326 711 A1 offenbart ein System und ein Verfahren zur Kontrolle der Vermeidung von Kollisionen in einer Arbeitszelle mit mehreren Robotern. Das System enthält eine Folge von Befehlen, die sich auf einem Controller befinden, um darauf ausgeführt zu werden, um ein automatisches Interferenzprüfungszonenverfahren durchzuführen. Das automatische Zonenverfahren zur Interferenzprüfung umfasst die folgenden Schritte: Bestimmen eines ersten Abschnitts eines gemeinsamen Raums, der während einer Bewegung eines ersten Roboters entlang eines ersten programmierten Pfads belegt ist; Bestimmen eines zweiten Abschnitts des gemeinsamen Raums, der während einer Bewegung eines zweiten Roboters entlang eines zweiten programmierten Pfads belegt ist; Vergleichen des ersten Abschnitts und des zweiten Abschnitts, um festzustellen, ob eine Überlappung dazwischen besteht; und Bewegen des ersten Roboters und des zweiten Roboters in Reaktion darauf, ob die Überlappung besteht oder nicht.
  • Das Stand der Technik Dokument US 5 548 694 A offenbart, dass voxel-basierte Objekte in einer physikalisch realistischen Weise manipuliert werden und mit ihnen interagiert wird, so dass während der Bewegung der grafischen Objekte Kollisionen automatisch erkannt und ein gegenseitiges Durchdringen der grafischen Objekte verhindert wird.
  • Das Stand der Technik Dokument EP 1 798 618 B1 offenbart eine Vorrichtung und ein Verfahren zur automatischen Einstellung einer Verriegelung zur Vermeidung von Störungen zwischen Robotern.
  • Das Stand der Technik Dokument EP 1 366 867 B1 offenbart ein Verfahren zum Vermeiden von Kollisionen zwischen einem Roboter und wenigstens einem anderen Objekt.
  • Die vorliegende Erfindung löst die oben genannten Probleme bzw. beseitigt oder vermindert die Nachteile des Stands der Technik entsprechend den unabhängigen Ansprüchen. Bevorzugte Ausführungsformen sind in den abhängigen Ansprüchen angegeben. Die Ausführungsformen und/oder Beispiele der folgenden Beschreibung, die nicht von den Ansprüchen abgedeckt sind, dienen nur der Veranschaulichung und sollen dem Leser nur helfen, die vorliegende Erfindung zu verstehen. Solche Ausführungsformen und/oder Beispiele, die nicht durch die Ansprüche abgedeckt sind, sind jedoch nicht Teil der vorliegenden Erfindung, die ausschließlich durch die Ansprüche definiert ist.
  • 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.
  • Das erfindungsgemäße Verfahren erfordern keinen vorher bekannten, von gegenseitiger Blockierung freien Ablauf. Dieses Verfahren bestimmt die potenziellen Bedingungen von gegenseitiger Blockierung automatisch und erkennt eine Möglichkeit, um diese Bedingungen zu vermeiden. Dieses Verfahren erfordert keine Prioritätswerte, um eine gegenseitige Blockierung zu verhindern. Dieses Verfahren verhindert Störungsbedingungen und verhindert gleichzeitig die Möglichkeit, dass Bedingungen von gegenseitiger Blockierung vorhanden sind.
  • 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:
    • 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;
    • 2 ist ein Prozessablaufdiagramm, das ein Verfahren zur Störungsprüfung eines Automatikbereiches gemäß der vorliegenden Offenlegung veranschaulicht;
    • 3 zeigt ein voxeliertes Modell des jeweils ersten und zweiten Roboters, die in 1 dargestellt sind;
    • 4 ist eine isometrische Darstellung des voxelierten Modells, das in 3 veranschaulicht ist;
    • 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;
    • 6 zeigt die in 5 veranschaulichten voxelierten Kugeln und voxelierten Zylinder, die aus einer Vielzahl von Voxeln gebildet sind;
    • 7 zeigt eine von gegenseitiger Blockierung freie Matrix und dazugehörige Programmauflistungen gemäß der Erfindung;
    • 8 zeigt eine Störungsmatrix und dazugehörige Programmauflistungen gemäß der Erfindung;
    • 9 zeigt Pfade und dazugehörige Tabellen, die mehrere Bereiche gegenseitiger Blockierung zu einem einzelnen, von gegenseitiger Blockierung freien Bereich kombinieren;
    • 10 zeigt mehrere Ausführungsabläufe eines Roboterprogramms ohne und mit Verhinderung von gegenseitiger Blockierung gemäß der Erfindung;
    • 11 ist das Ablaufdiagramm eines Ablaufs zur Vermeidung von gegenseitiger Blockierung gemäß der Erfindung; und
    • 12 ist ein Ablaufdiagramm zur Bestimmung von potenziellen Bereichen gegenseitiger Blockierung gemäß der Erfindung.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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 wird
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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 auftreten
  • 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.
  • 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.
  • 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).
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • Ä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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.

Claims (11)

  1. Verfahren zur Verhinderung von gegenseitiger Blockierung eines Paares von Robotern (6, 8), die einen gemeinsamen Arbeitsbereich (10) besitzen, jeder der Roboter (6, 8) durch ein zugeordnetes Programm (A, B) gesteuert wird, wobei, wenn die Programme (A, B) gleichzeitig ausgeführt werden, jeder der Roboter (6, 8) zumindest einen Abschnitt des gemeinsamen Arbeitsbereiches (10) während eines Teils der Ausführung des zugeordneten Programms (A, B) besetzt, wobei das Verfahren die Schritte umfasst: Bestimmen der jeweils besetzten Abschnitte (12, 14) des gemeinsamen Arbeitsbereichs (10) durch Inbetriebnahme der Roboter (6, 8) in einem Sperrmodus oder einem nicht-angeschlossenen Modus, einschließlich der Darstellung der besetzten Abschnitte (12, 14) des gemeinsamen Arbeitsbereichs (10) in Voxelmodellen (300), wobei das Bestimmen der besetzten Abschnitte (12, 14) außerhalb einer normalen Ausführung durchgeführt wird; Bestimmen mindestens eines Störungsbereichs, indem sich die Abschnitte (12, 14) des von den Robotern (6, 8) belegten gemeinsamen Arbeitsbereichs (10) überschneiden, wobei das Bestimmen des mindestens einen Störungsbereichs durch Vergleich der Voxelmodelle (300) durchgeführt wird; Analysieren des zumindest einen Störungsbereiches und Kennzeichnen, wo zumindest eine Bedingung gegenseitiger Blockierung der zwei Roboter (6, 8) auftreten kann; und Vermeiden der zumindest einen Bedingung gegenseitiger Blockierung während einer normalen Ausführung der Programme (A, B) durch automatisches Bestimmen und Ausführen einer Anweisung einer von gegenseitiger Blockierung freien Bewegung und Hinzufügen der Anweisung der von gegenseitiger Blockierung freien Bewegung zu mindestens einem der Programme (A, B).
  2. Verfahren nach Anspruch 1, umfassend das Durchführen von Bestimmung und Ausführung während einer normalen Produktionsausführung der Programme (A, B).
  3. 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 (A, B) bereitgestellt wird.
  4. 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 (A, B) bereitgestellt wird.
  5. 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 (A, B) unabhängig von Programmarbeitsschritten in dem zumindest einen Programm (A, B) bereitgestellt wird.
  6. Computerlesbare Medien, die Arbeitsschritte enthalten, die durch einen Computer ausführbar sind, um ein Verfahren zur Verhinderung von gegenseitiger Blockierung eines Paares von Robotern (6, 8), die einen gemeinsamen Arbeitsbereich (10) besitzen, durchzuführen, jeder der Roboter (6, 8) durch ein zugeordnetes Programm (A, B) gesteuert wird, wobei, wenn die Programme (A, B) gleichzeitig ausgeführt werden, jeder der Roboter (6, 8) zumindest einen Abschnitt des gemeinsamen Arbeitsbereiches (10) während eines Ausführungsabschnitts des zugeordneten Programms (A, B) besetzt, wobei das Verfahren umfasst: die Anweisungen, die die jeweils besetzten Abschnitte (12, 14) des gemeinsamen Arbeitsbereichs (10) durch Inbetriebnahme der Roboter (6, 8) in einem Sperrmodus oder einem nicht-angeschlossenen Modus bestimmen, einschließlich der Darstellung der besetzten Abschnitte (12, 14) des gemeinsamen Arbeitsbereichs (10) in Voxelmodellen (300), wobei das Bestimmen der besetzten Abschnitte (12, 14) außerhalb einer normalen Ausführung durchgeführt wird ; die Anweisungen, die mindestens einen Störungsbereich bestimmen, indem sich die Abschnitte (12, 14) des von den Robotern (6, 8) belegten gemeinsamen Arbeitsbereichs (10) überschneiden, wobei das Bestimmen des mindestens einen Störungsbereichs durch Vergleich der Voxelmodelle (300) durchgeführt wird; die Anweisungen, die den mindestens einen Störungsbereich analysieren und kennzeichnen, wo zumindest eine Bedingung von gegenseitiger Blockierung der zwei Roboter (6, 8) auftreten kann; und die Anweisungen, die die zumindest eine Bedingung gegenseitiger Blockierung während einer Ausführung der Programme (A, B) verhindern, durch automatisches Bestimmen und Ausführen von zumindest einer Anweisung einer von gegenseitiger Blockierung freien Bewegung und Hinzufügen der Anweisung der von gegenseitiger Blockierung freien Bewegung zu mindestens einem der Programme (A, B).
  7. Computerlesbare Medien nach Anspruch 6, 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, wobei das Verfahren die Arbeitsschritte umfasst, die das Bestimmen und Ausführen während einer normalen Produktionsausführung der Programme (A, B) durchführen.
  8. Computerlesbare Medien nach Anspruch 6, 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, wobei bei dem Verfahren die zumindest eine Anweisung einer von gegenseitiger Blockierung freien Bewegung durch Modifizieren von mindestens einem Arbeitsschritt in zumindest einem der Programme (A, B) bereitgestellt wird.
  9. Computerlesbare Medien nach Anspruch 6, 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, wobei bei dem Verfahren die zumindest eine Anweisung einer von gegenseitiger Blockierung freien Bewegung durch erneutes sequentielles Ordnen von Arbeitsschritten in zumindest einem der Programme (A, B) bereitgestellt wird.
  10. Computerlesbare Medien nach Anspruch 6, 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, wobei bei dem Verfahren die zumindest eine Anweisung einer von gegenseitiger Blockierung freien Bewegung durch das Steuern der Ausführung von mindestens einem der Programme (A, B) unabhängig von Programmarbeitsschritten in dem zumindest einen Programm (A, B) bereitgestellt wird.
  11. Verfahren zur Verhinderung von gegenseitiger Blockierung einer Vielzahl von Robotern (6, 8), die einen gemeinsamen Arbeitsbereich (10) aufweisen, jeder der Roboter (6, 8) durch ein zugeordnetes Programm (A, B) gesteuert wird, wobei, wenn die Programme (A, B) gleichzeitig ausgeführt werden, jeder der Roboter (6, 8) zumindest einen Abschnitt des gemeinsamen Arbeitsbereiches (10) während eines Ausführungsabschnitts des zugeordneten Programms (A, B) besetzt, wobei das Verfahren die Schritte umfasst: Bestimmen der jeweils besetzten Abschnitte (12, 14) des gemeinsamen Arbeitsbereichs (10) durch Inbetriebnahme der Roboter (6, 8) in einem Sperrmodus oder einem nicht-angeschlossenen Modus, einschließlich der Darstellung der besetzten Abschnitte (12, 14) des gemeinsamen Arbeitsbereichs (10) in Voxelmodellen (300), wobei das Bestimmen der Abschnitte (12, 14) außerhalb einer normalen Ausführung durchgeführt wird; Bestimmen mindestens eines Störungsbereichs, indem sich die Abschnitte (12, 14) des von den Robotern (6, 8) belegten gemeinsamen Arbeitsbereichs (10) überschneiden, wobei das Bestimmen des mindestens einen Störungsbereichs durch Vergleich der Voxelmodelle (300) durchgeführt wird; Analysieren des zumindest einen Störungsbereiches und Kennzeichnen, wo zumindest eine Bedingung gegenseitiger Blockierung der mindestens zwei Roboter (6, 8) auftreten kann; und Vermeiden der zumindest einen Bedingung gegenseitiger Blockierung während einer normalen Ausführung der Programme (A, B) durch automatisches Bestimmen und Ausführen einer Anweisung einer von gegenseitiger Blockierung freien Bewegung und Hinzufügen der Anweisung der von gegenseitiger Blockierung freien Bewegung zu mindestens einem der Programme (A, B).
DE102012103830.9A 2011-05-05 2012-05-02 Verfahren und computerlesbare Medien zur automatischen Verbindung von gegenseitiger Blockierung in Mehrfachrobotersytemen Active DE102012103830B4 (de)

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 DE102012103830A1 (de) 2012-11-08
DE102012103830B4 true DE102012103830B4 (de) 2022-05-25

Family

ID=47019755

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102012103830.9A Active DE102012103830B4 (de) 2011-05-05 2012-05-02 Verfahren und computerlesbare Medien zur automatischen Verbindung von gegenseitiger Blockierung in Mehrfachrobotersytemen

Country Status (3)

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

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5872077B2 (ja) * 2013-02-06 2016-03-01 三菱電機株式会社 干渉チェック装置
JP5768829B2 (ja) * 2013-03-15 2015-08-26 株式会社安川電機 ロボットシステム、ロボット制御方法及び被加工物の製造方法
DE102013015234A1 (de) * 2013-09-13 2015-03-19 Liebherr-Verzahntechnik Gmbh Verfahren zur Steuerung einer Verzahnmaschine sowie Verzahnmaschine
CH709347A2 (de) * 2014-03-10 2015-09-15 Tecan Trading Ag Verfahren zur Wegfindung in einem automatisierten Handhabungssystem sowie Handhabungssystem mit entsprechendem Kontrollmodul zur Wegfindung.
US9555545B2 (en) * 2014-05-21 2017-01-31 Bot & Dolly, Llc Systems and methods for time-based parallel robotic operation
CN107206590B (zh) 2015-02-13 2021-02-05 Abb瑞士股份有限公司 用于避免两个机器人之间的碰撞的方法
DE102015007395A1 (de) * 2015-06-08 2016-12-08 Kuka Roboter Gmbh Verfahren und System zum Betreiben und/oder Überwachen einer Maschine, insbesondere eines Roboters
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
JP6328599B2 (ja) 2015-11-20 2018-05-23 ファナック株式会社 ロボットの動作可能範囲を算出するロボットの手動送り装置
JP6654926B2 (ja) * 2016-02-24 2020-02-26 本田技研工業株式会社 処理時間の予測方法
CN107797550A (zh) * 2016-09-01 2018-03-13 松下电器(美国)知识产权公司 自主移动式机器人、方法以及非瞬时性记录介质
JP6998660B2 (ja) 2017-02-21 2022-01-18 株式会社安川電機 ロボットシミュレータ、ロボットシステム及びシミュレーション方法
DE102017215268A1 (de) * 2017-08-31 2019-02-28 Siemens Aktiengesellschaft Verfahren zum Laserauftragsschweißen
WO2019139815A1 (en) 2018-01-12 2019-07-18 Duke University Apparatus, method and article to facilitate motion planning of an autonomous vehicle in an environment having dynamic objects
TWI822729B (zh) 2018-02-06 2023-11-21 美商即時機器人股份有限公司 用於儲存一離散環境於一或多個處理器之一機器人之運動規劃及其改良操作之方法及設備
EP3769174B1 (de) 2018-03-21 2022-07-06 Realtime Robotics, Inc. Bewegungsplanung eines roboters für verschiedene umgebungen und aufgaben und verbesserter betrieb davon
JP6730355B2 (ja) 2018-03-27 2020-07-29 ファナック株式会社 操作性を向上した統合シミュレーションシステム
JP6823015B2 (ja) 2018-07-17 2021-01-27 ファナック株式会社 ロボットシステム
DE102019126465B4 (de) * 2018-10-01 2021-02-11 KBee AG Verfahren und Vorrichtung zur Trajektorienbestimmung für serielle Manipulatoren
CN111354654B (zh) * 2018-12-20 2022-10-21 北京北方华创微电子装备有限公司 死锁判断方法及半导体设备
DE102018133472B3 (de) * 2018-12-21 2020-03-12 Franka Emika Gmbh Bewegungsüberwachung eines Robotermanipulators
CN109767118A (zh) * 2019-01-11 2019-05-17 沈阳建筑大学 一种在具有可重入工序的客车涂装车间中有限缓冲区动态容量预留方法
DE102019102803B4 (de) * 2019-02-05 2022-02-17 Franka Emika Gmbh Ausrichten zweier Roboterarme zueinander
CN113905855B (zh) 2019-04-17 2023-08-25 实时机器人有限公司 运动规划图生成用户界面、***、方法和规则
CN112783145B (zh) * 2019-11-11 2023-03-31 上海快仓智能科技有限公司 交通控制方法、装置、设备和计算机可读存储介质
JP7484254B2 (ja) 2020-03-13 2024-05-16 オムロン株式会社 干渉判定装置、方法、及びプログラム
DE102020203636A1 (de) 2020-03-20 2021-09-23 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung eingetragener Verein Ermittlung von Sicherheitsbereichen um eine automatisiert arbeitende Maschine
DE102021204148B3 (de) 2021-04-27 2022-06-23 Kuka Deutschland Gmbh Verfahren und System zum koordinierten Abfahren vorgegebener Roboterbahnen
WO2023013042A1 (ja) 2021-08-06 2023-02-09 ファナック株式会社 干渉チェック装置
DE102021122606A1 (de) 2021-09-01 2023-03-02 Arburg Gmbh + Co Kg Verfahren, Maschinensteuerung und Computerprogrammprodukt zur Bestimmung eines Pfades für eine Autonavigation
KR102595007B1 (ko) * 2023-03-24 2023-10-27 주식회사 아임토리 교착 지점의 딜레이 보상 기능을 갖는 로봇 공정 최적화 방법 및 장치
CN117381805B (zh) * 2023-12-13 2024-02-27 成都航空职业技术学院 一种面向冲突应对的机械臂运行控制方法和***

Citations (9)

* 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
US5548694A (en) 1995-01-31 1996-08-20 Mitsubishi Electric Information Technology Center America, Inc. Collision avoidance system for voxel-based object representation
DE102004027944A1 (de) 2004-06-08 2005-12-29 Kuka Roboter Gmbh Verfahren und Vorrichtung zum Schützen eines Roboters gegen Kollisionen
US7114157B2 (en) 2001-11-27 2006-09-26 Kuka Roboter Gmbh System controlling exclusive access by control programs to system resources
EP1366867B1 (de) 2002-05-30 2009-01-21 KUKA Roboter GmbH Verfahren und Vorrichtung zum Vermeiden von Kollisionen zwischen Industrierobotern und anderen Objekten
DE102008013400A1 (de) 2008-03-06 2009-09-10 Hörmann Engineering GmbH Verfahren zur Ermittlung von Verriegelungsbereichen wenigstens eines im Raum bewegbaren ersten Objekts
US20090326711A1 (en) 2008-05-21 2009-12-31 Chang Tien L Multi-arm robot system interference check via three dimensional automatic zones
EP1798618B1 (de) 2005-12-13 2011-04-06 Fanuc Corporation Vorrichtung und Verfahren zum automatischen Setzen von Verriegelungen zwischen Robotern

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02257204A (ja) * 1989-03-29 1990-10-18 Yaskawa Electric Mfg Co Ltd 複数ロボット腕の衝突回避制御方式
JPH04201081A (ja) * 1990-11-29 1992-07-22 Honda Motor Co Ltd ロボット制御装置
JPH05108129A (ja) * 1991-10-21 1993-04-30 Nachi Fujikoshi Corp ロボツト間インターロツク制御方法
US5798627A (en) * 1995-01-04 1998-08-25 Gilliland; Malcolm T. Method for simultaneous operation of robot welders
US6004016A (en) * 1996-08-06 1999-12-21 Trw Inc. Motion planning and control for systems with multiple mobile objects
JPH11347984A (ja) * 1998-06-02 1999-12-21 Nissan Motor Co Ltd ロボット制御装置
JP2003103484A (ja) * 2001-09-28 2003-04-08 Honda Motor Co Ltd ロボットのインターロック設定方法
JP2007000955A (ja) * 2005-06-22 2007-01-11 Nachi Fujikoshi Corp ロボットシステム
JP4544145B2 (ja) * 2005-11-24 2010-09-15 株式会社デンソーウェーブ ロボットの干渉回避方法およびロボット
JP5265533B2 (ja) * 2006-06-06 2013-08-14 アーベーベー・リサーチ・リミテッド サイクリックな製造マシンをローダーまたはアンローダー・マシンと調整して運転するための改善された方法及びシステム
CN100570523C (zh) * 2008-08-18 2009-12-16 浙江大学 一种基于障碍物运动预测的移动机器人避障方法
JP2010240772A (ja) * 2009-04-06 2010-10-28 Seiko Epson Corp ロボット制御装置、ロボット制御方法

Patent Citations (9)

* 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
US5548694A (en) 1995-01-31 1996-08-20 Mitsubishi Electric Information Technology Center America, Inc. Collision avoidance system for voxel-based object representation
US7114157B2 (en) 2001-11-27 2006-09-26 Kuka Roboter Gmbh System controlling exclusive access by control programs to system resources
EP1366867B1 (de) 2002-05-30 2009-01-21 KUKA Roboter GmbH Verfahren und Vorrichtung zum Vermeiden von Kollisionen zwischen Industrierobotern und anderen Objekten
DE102004027944A1 (de) 2004-06-08 2005-12-29 Kuka Roboter Gmbh Verfahren und Vorrichtung zum Schützen eines Roboters gegen Kollisionen
EP1798618B1 (de) 2005-12-13 2011-04-06 Fanuc Corporation Vorrichtung und Verfahren zum automatischen Setzen von Verriegelungen zwischen Robotern
DE102008013400A1 (de) 2008-03-06 2009-09-10 Hörmann Engineering GmbH Verfahren zur Ermittlung von Verriegelungsbereichen wenigstens eines im Raum bewegbaren ersten Objekts
US20090326711A1 (en) 2008-05-21 2009-12-31 Chang Tien L Multi-arm robot system interference check via three dimensional automatic zones

Also Published As

Publication number Publication date
DE102012103830A1 (de) 2012-11-08
CN102814813A (zh) 2012-12-12
JP5981215B2 (ja) 2016-08-31
JP2012232408A (ja) 2012-11-29
CN102814813B (zh) 2017-05-31

Similar Documents

Publication Publication Date Title
DE102012103830B4 (de) Verfahren und computerlesbare Medien zur automatischen Verbindung von gegenseitiger Blockierung in Mehrfachrobotersytemen
DE102016120763B4 (de) Verfahren zur kollisionsfreien Bewegungsplanung
DE102004027944B4 (de) Verfahren zum Schützen eines Roboters gegen Kollisionen
EP1366867B1 (de) Verfahren und Vorrichtung zum Vermeiden von Kollisionen zwischen Industrierobotern und anderen Objekten
EP3434424A1 (de) Effiziente programmierung von robotern für die bearbeitung von werkstücken mit verschiedenen varianten
DE102015015093B4 (de) Roboterprogrammiervorrichtung zum Instruieren eines Roboters für eine Bearbeitung
EP3491473B1 (de) Koordinierung von pfaden mehrerer beweglicher maschinen
DE102017004366B4 (de) Numerische Steuervorrichtung
EP3592561B1 (de) Verfahren zur additiven fertigung eines dreidimensionalen gegenstandes
EP1906281A1 (de) Verfahren und System zur Auslegung und Überprüfung von Sicherheitsbereichen eines Roboters
DE102010007458A1 (de) Verfahren für eine kollisionsfreie Bahnplanung eines Industrieroboters
EP2952990B1 (de) Optimiertes Steuern einer zerspanenden Werkzeugmaschine
DE102011108282A1 (de) Numerische Steuerung für eine Mehrachsenmaschine zum Bearbeiten einer geneigten Bearbeitungsebene
DE102016000754A1 (de) Verfahren und System zur Bahnplanung eines redundanten Roboters
DE112020006647B4 (de) Ursprungsrückführvorrichtung
EP3819088B1 (de) Verfahren zur bestimmung eines sicherheitsbereiches und zur bahnplanung für roboter
DE102020124734A1 (de) Simulationsgerät
EP3812106B1 (de) Roboteranordnung, verfahren zum betreiben der roboteranordnung, computerprogramm sowie maschinenlesbares speichermedium
DE102022130341A1 (de) Punktmengen-störungsprüfung
EP3225366B1 (de) Positionsüberwachung einer kinematik
DE112019007889T5 (de) Bearbeitungsprogramm-umwandlungseinrichtung, numerische-steuereinrichtung und bearbeitungsprogramm-umwandlungsverfahren
EP3569367A1 (de) Rechnergestütztes ermitteln einer bewegung einer vorrichtung
DE102022131537A1 (de) Automatische online-verriegelungsstrategie
DE102015118431B4 (de) Autonomes Steuersystem
DE112019007579T5 (de) Numerische-Steuerung-Vorrichtung und Maschinelles-Lernen-Gerät

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