DE102022131537A1 - Automatische online-verriegelungsstrategie - Google Patents

Automatische online-verriegelungsstrategie Download PDF

Info

Publication number
DE102022131537A1
DE102022131537A1 DE102022131537.1A DE102022131537A DE102022131537A1 DE 102022131537 A1 DE102022131537 A1 DE 102022131537A1 DE 102022131537 A DE102022131537 A DE 102022131537A DE 102022131537 A1 DE102022131537 A1 DE 102022131537A1
Authority
DE
Germany
Prior art keywords
robot
overlay
zone
motion
robots
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.)
Pending
Application number
DE102022131537.1A
Other languages
English (en)
Inventor
Hsien-Chung Lin
Tetsuaki Kato
Chi-Keng 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 Corp
Original Assignee
Fanuc 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 Corp filed Critical Fanuc Corp
Publication of DE102022131537A1 publication Critical patent/DE102022131537A1/de
Pending legal-status Critical Current

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/1679Programme controls characterised by the tasks executed
    • B25J9/1682Dual arm manipulator; Coordination of several manipulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/524Deadlock detection or avoidance
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • B25J9/1666Avoiding collision or forbidden zones
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/0084Programme-controlled manipulators comprising a plurality of manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/0084Programme-controlled manipulators comprising a plurality of manipulators
    • B25J9/0087Dual arms
    • 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/39135For multiple manipulators operating at same time, avoid collision

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Manipulator (AREA)
  • Numerical Control (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

Ein Bewegungsplanungsverfahren zur Deadlock-Vermeidung für ein Multi-Roboter-System. Das Verfahren umfasst die Online-Berechnung von überstrichenen Volumina für bevorstehende Roboterbewegungssegmente und verwendet die überstrichenen Volumina zum Berechnen von einer oder mehr Überlagerungszonen, die in allen Robotersteuerungen veröffentlicht werden. Die Berechnung eines überstrichenen Volumens basiert auf der tatsächlichen bevorstehenden Werkzeugbahn, einschließlich adaptiver Bedingungen wie Sprünge und Offsets. Robotersteuerungen prüfen bei jedem Zeitschritt, ob in eine Überlagerungszone eingetreten wird und ob sich bereits ein anderer Roboter in der Zone befindet. Wenn ein Roboter feststellt, dass er im Begriff ist, in eine belegte Zone einzutreten, hält der Roboter seine Position, bis die Zone geräumt ist. Die Roboter veröffentlichen den Zonen-Eintritt und -Austritt zur Kenntnisnahme durch andere Roboter. Zusätzliche Logik ist hinzugefügt, um eine Priorität für die automatische Auflösung eines Deadlock-Zustands und für die Priorisierung des Abschlusses von Bewegungssegmenten für einen Roboter festzulegen, der eine kontinuierliche Prozesstätigkeit ausführt.

Description

  • STAND DER TECHNIK
  • Technisches Gebiet
  • Die vorliegende Offenbarung bezieht sich allgemein auf das Gebiet der Industrieroboter-Bewegungssteuerung und insbesondere auf ein Bewegungsplanungsverfahren zur Deadlock-Vermeidung für ein Multi-Roboter-System, bei dem überstrichene Volumina für bevorstehende Roboterbewegungssegmente verwendet werden, um eine oder mehr Überlagerungszonen zu berechnen, die Belegung jeder Überlagerungszone durch einen der zugehörigen Roboter überwacht wird und, wenn ein Roboter in eine Überlagerungszone eingetreten ist, verhindert wird, dass andere der zugehörigen Roboter in die Überlagerungszone eintreten, bis sie geräumt wurde.
  • Erörterung des Standes der Technik
  • Die Verwendung von Industrierobotern zur Durchführung eines breiten Spektrums von Herstellungs-, Montage- und Materialbewegungstätigkeiten ist gut bekannt. In vielen Roboterarbeitsraumumgebungen arbeiten zwei oder mehr Roboter gleichzeitig, um Tätigkeiten wie Punktschweißen, Spritzlackieren oder Aufnehmen von und Platzieren auf einem Förderer auszuführen. Wenn zwei oder mehr Roboter zusammen in einem Arbeitsraum arbeiten, müssen ihre Bewegungen geplant und gesteuert werden, um Kollisionen zu verhindern. Bewegungsplanungsverfahren zur Kollisionsvermeidung sind aus dem Stand der Technik bekannt, einschließlich der Vermeidung von Kollisionen zwischen Robotern bei Multi-Roboter-Systemen.
  • Zusätzlich zur Kollisionsvermeidung muss bei Multi-Roboter-Systemen versucht werden, das Eintreten eines Deadlock-Zustands zu verhindern. Bei einem Zwei-Roboter-System liegt beispielsweise ein Deadlock vor, wenn jeder Roboter die Bahn des anderen Roboters versperrt, sodass sich keiner der Roboter entlang seiner geplanten Bewegungsbahn vorwärts bewegen kann, ohne eine Kollision zu verursachen. Wenn ein Deadlock eintritt, muss mindestens einer der Roboter rückwärts bewegt oder von seiner geplanten Bahn umgeleitet werden, damit wieder eine kollisionsfreie Bewegung aufgenommen werden kann. Deadlock-Zustände sind nach Möglichkeit zu vermeiden, da sie eine verringerte Roboterproduktivität zur Folge haben und auch zu zerstörten Werkstücken führen können, wenn Tätigkeiten wie Lackieren oder Schweißen auf unerwünschte Weise unterbrochen werden. Die Störungsprüfung allein kann einen Deadlock nicht verhindern.
  • Verfahren zur Deadlock-Vermeidung sind aus dem Stand der Technik bekannt, einschließlich manueller und automatisierter Verfahren. Das manuelle Identifizieren potenzieller Deadlock-Zustände und Hinzufügen von Verriegelungen zu den Roboter-Bewegungsprogrammen zum Zweck der Deadlock-Verhinderung ist ein sehr mühsames und zeitaufwändiges Verfahren. Daher wurden automatisierte Deadlock-Vermeidungsverfahren entwickelt, einschließlich eines Verfahrens, bei dem überstrichene Volumina und Überlagerungszonen abgekoppelt vom Prozess (offline) vor der Ausführung eines Bewegungsprogramms berechnet und Überlagerungszonen-Eintritts-/Austrittsereignisse in die Bewegungsprogramme vor Ausführung eingefügt werden. Dieses Verfahren ist weniger zeitaufwändig als das manuelle Verfahren und verhindert wirksam Deadlocks in bestimmten Roboter-Bewegungsprogrammen. Die Off-line-Berechnung von überstrichenen Volumina und Überlagerungszonen kann jedoch die Deadlock-Verhinderung bei Bewegungsprogrammen mit bestimmten Arten von Bewegungsereignissen - wie z.B. Werkzeugmittelpunkt-Sprünge, und wenn die Werkzeugmittelpunkt-Positionen prozessgekoppelt (online) während der Ausführung durch Positionsregister oder mit anderen Techniken erfasst werden - nicht richtig handhaben.
  • In Anbetracht der oben beschriebenen Umstände besteht ein Bedarf an einem verbesserten Deadlock-Verhinderungsverfahren, das leicht einzurichten ist und einen Deadlock bei Multi-Roboter-Systemen verhindert, indem es adaptive Bewegungssteuerungssegmente einbezieht, die während der Ausführung durch den Roboter online berechnet werden.
  • KURZDARSTELLUNG DER ERFINDUNG
  • In Übereinstimmung mit der Lehre der vorliegenden Offenbarung wird ein Bewegungsplanungsverfahren zur Deadlock-Vermeidung für ein Multi-Roboter-System offenbart. Das Verfahren umfasst die Online-Berechnung von überstrichenen Volumina für bevorstehende Roboterbewegungssegmente und verwendet die überstrichenen Volumina einzelner Roboter zum Berechnen von einer oder mehr Überlagerungszonen, die in allen Robotersteuerungen veröffentlicht werden. Die Berechnung eines überstrichenen Volumens basiert auf der tatsächlichen bevorstehenden Werkzeugbahn, einschließlich adaptiver Bedingungen wie Sprünge und Offsets. Bei jedem Roboter-Zeitschritt prüft die Robotersteuerung, ob in eine Überlagerungszone eingetreten wird, und falls dem so ist, ob sich bereits ein anderer Roboter in der Zone befindet. Wenn ein Roboter feststellt, dass er im Begriff ist, in eine bereits belegte Zone einzutreten, hält der Roboter seine Position, bis die Zone von dem anderen Roboter geräumt wird. Die Roboter veröffentlichen die Zonen-Eintritts- und Austrittsereignisse, damit sie anderen Robotern bekannt sind. Zusätzliche Logik wird hinzugefügt, um eine Priorität für die automatische Auflösung eines beginnenden Deadlock-Zustands und für die Priorisierung des Abschlusses von Bewegungssegmenten für einen Roboter festzulegen, der eine Prozesstätigkeit wie Lackieren oder Schweißen ausführt.
  • Weitere Merkmale der hier offenbarten Vorrichtungen und Verfahren werden aus der nachstehenden Beschreibung und den beigefügten Patentansprüchen in Verbindung mit den begleitenden Zeichnungen ersichtlich.
  • Figurenliste
    • 1 ist eine Darstellung eines Systems, das zwei Industrieroboter umfasst, die in einem gemeinsamen Arbeitsraum arbeiten, in dem Störungsprüfung und Deadlock-Verhinderung erforderlich sind;
    • 2 ist eine vereinfachte zweidimensionale Darstellung eines Deadlock-Zustands bei einem Zwei-Roboter-System;
    • 3 ist eine zweidimensionale Darstellung eines manuellen Verfahrens zur Verhinderung eines Deadlocks durch Analyse von Werkzeugbahn-Überlagerungsbereichen und Einfügen von Verriegelungskontrollpunkten in die Roboter-Bewegungsprogramme gemäß einem im Stand der Technik bekannten Verfahren;
    • 4 ist eine Darstellung von überstrichenen Volumina für die zwei Roboter von 1, einschließlich eines Überlagerungsbereichs der überstrichenen Volumina, der anzeigt, dass es einer Roboterbewegungsplanung zur Deadlock-Vermeidung bedarf;
    • 5 ist ein Blockdiagramm auf hoher Ebene eines Multi-Roboter-Systems, das eine On-line-Festlegung einer Verriegelung zur Deadlock-Verhinderung gemäß einer Ausführungsform der vorliegenden Offenbarung umfasst;
    • 6 ist ein Blockdiagramm, das Merkmale des in 5 gezeigten Arbeitsraum-Manager-Moduls gemäß einer Ausführungsform der vorliegenden Offenbarung veranschaulicht;
    • 7 ist ein Flussdiagramm eines Verfahrens, das gemäß einer Ausführungsform der vorliegenden Offenbarung von dem High-Level-Planer-Modul für jeden der Roboter in einem Multi-Roboter-System, wie es in 5 dargestellt ist, verwendet wird;
    • 8 ist ein Flussdiagramm eines Verfahrens, das von dem Low-Level-Interpolator-Modul für jeden der Roboter in einem Multi-Roboter-System, wie es in 5 dargestellt ist, gemäß einer Ausführungsform der vorliegenden Offenbarung verwendet wird;
    • die 9A-9G sind Darstellungen einer Zeitabfolge von Überlagerungszonen und Ereignissen für ein Drei-Roboter-System gemäß Ausführungsformen der vorliegenden Offenbarung;
    • die 10A/10B/10C sind fortschreitende Darstellungen eines Zwei-Roboter-Systems, bei dem ein Deadlock-Zustand entsteht, obwohl sich keiner der Roboter in eine belegte Überlagerungszone bewegt hat;
    • 11 ist ein Flussdiagramm eines ein Zurücksetzen zum Auflösen eines Deadlocks umfassenden Verfahrens, das gemäß einer Ausführungsform der vorliegenden Offenbarung von dem Low-Level-Interpolator-Modul für jeden der Roboter in einem Multi-Roboter-System, wie es in den 10A-10C dargestellt ist, verwendet wird;
    • 12 ist ein Flussdiagramm eines Verfahrens, das gemäß einer Ausführungsform der vorliegenden Offenbarung von dem Bewegungsplaner für jeden Roboter verwendet wird, der eine kontinuierliche Prozesstätigkeit in einem Multi-Roboter-System ausführt;
    • 13 ist ein Flussdiagramm eines Verfahrens, das gemäß einer Ausführungsform der vorliegenden Offenbarung von dem High-Level-Planer für jeden Roboter verwendet wird, der eine kontinuierliche Prozesstätigkeit in einem Multi-Roboter-System ausführt; und
    • 14 ist ein Flussdiagramm eines Verfahrens, das gemäß einer Ausführungsform der vorliegenden Offenbarung von dem Low-Level-Interpolator für jeden Roboter verwendet wird, der eine kontinuierliche Prozesstätigkeit in einem Multi-Roboter-System ausführt.
  • DETAILLIERTE BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
  • Die nachstehende Erörterung der Ausführungsformen der Offenbarung, die die Deadlock-Vermeidung bei der Roboterbewegungsplanung betrifft, ist nur beispielhafter Natur und soll die offenbarten Vorrichtungen und Techniken oder ihre Anwendungen und Verwendungen in keiner Weise beschränken.
  • Die Verwendung von Industrierobotern für eine Vielzahl von Herstellungs-, Montage- und Materialbewegungstätigkeiten ist gut bekannt. Wenn zwei oder mehr Roboter zusammen in einem Arbeitsraum arbeiten, müssen ihre Bewegungen geplant und gesteuert werden, um Kollisionen zu verhindern und Deadlocks zu vermeiden.
  • 1 ist eine Darstellung von zwei Industrierobotern (100, 110), die in der Nähe eines Fahrzeugkarosseriewerkstücks 120 arbeiten. Die Bewegungen der Roboter 100 und 110 werden von einer Robotersteuerung gesteuert, wie aus dem Stand der Technik bekannt. Der Roboter 100 hat eine Steuerung 102 und der Roboter 110 hat eine Steuerung 112. Da die Bewegungen der Roboter 100 und 110 zur Verhinderung von Kollisionen koordiniert werden müssen, stehen die Steuerungen 102 und 112 miteinander in Verbindung. Darüber hinaus kann auch ein separater Computer 130 in Verbindung mit den Steuerungen 102 und 112 vorgesehen sein, wobei der Computer 130 eine speicherprogrammierbare Steuerung (SPS) oder eine andere Art von Rechenvorrichtung sein könnte, die die Gesamtaktivität der Arbeitszelle oder des Arbeitsraums steuert, in der bzw. dem die Roboter arbeiten. Beispielsweise könnte der Computer 130 bei einer Materialbewegungsanwendung die Roboterbewegungen in Abhängigkeit von der Verfügbarkeit und der Position eingehender Teile auf einem Förderer koordinieren.
  • In dem Arbeitsraum von 1 führen die Roboter 100 und 110 Punktschweißaufgaben an verschiedenen Stellen des Werkstücks 120 aus. Das Punktschweißen umfasst Stellen im Innern der Fahrzeugkarosserie, was erfordert, dass die Roboter 100 und 110 in die Türöffnungen hineinreichen. Bei dieser Anwendung ist das Fahrzeugkarosseriewerkstück 120 selbst ein Hindernis für die Bewegung der Roboter 100 und 110. Außerdem können die Roboter 100 und 110 sich überlagernde Bewegungen haben, was bedeutet, dass die Roboter 100 und 110 füreinander Hindernisse sein können. Die Tätigkeit der Roboter 100 und 110 erfordert, dass Störungsprüfungsberechnungen für alle geplanten Bewegungen durchgeführt werden.
  • Bewegungsplanungsverfahren zur Kollisionsvermeidung sind aus dem Stand der Technik bekannt, einschließlich der Vermeidung von Kollisionen zwischen Robotern bei Multi-Roboter-Systemen. Zusätzlich zur Kollisionsvermeidung muss bei Multi-Roboter-Systemen versucht werden, das Eintreten eines Deadlock-Zustands zu verhindern. Ein Deadlock liegt vor, wenn sich Roboter gegenseitig die Bahnen blockieren, sodass keine weitere Roboterbewegung entlang geplanter Bewegungsbahnen möglich ist, ohne eine Kollision zu verursachen. Wenn ein Deadlock eintritt, muss mindestens einer der Roboter rückwärts bewegt oder umgeleitet werden, damit wieder eine kollisionsfreie Bewegung aufgenommen werden kann. Deadlock-Zustände sind nach Möglichkeit zu vermeiden. Die Störungsprüfung allein kann einen Deadlock nicht verhindern.
  • 2 ist eine vereinfachte zweidimensionale (2D) Darstellung eines Deadlock-Zustands bei einem Zwei-Roboter-System. Ein Roboter 200 und ein Roboter 220 werden in einer Aufsicht (Draufsicht) als einfache Roboter mit einem Unterteil, einem Roboterarm und einem Werkzeug oder einem Endeffektor dargestellt. Der Roboter 200 hat ein Werkzeug 210, das entlang einer Bahn 212 in einer vom Pfeil 214 angezeigten Richtung bewegt wird, während der Roboter 220 ein Werkzeug 230 hat, das entlang einer Bahn 232 in einer vom Pfeil 234 angezeigten Richtung bewegt wird. In 2 liegt ein Deadlock-Zustand vor, weil weder der Roboter 200 noch der Roboter 220 sein Werkzeug weiter entlang seiner Bahn bewegen kann, ohne eine Kollision zu verursachen. Im Wesentlichen wurde der Deadlock unvermeidlich, nachdem sowohl der Roboter 200 als auch der Roboter 220 in einen Überlagerungsbereich 240 eingetreten waren, bei dem es sich um den Bereich zwischen der Bahn 212 und der Bahn 232 handelt. Wie für einen Fachmann ersichtlich ist, kann ein Roboter (z.B. der Roboter 220) in den Überlagerungsbereich 240 eintreten und sein Werkzeug weiter entlang seiner Bahn bewegen, solange der andere Roboter (der Roboter 200) außerhalb des Überlagerungsbereichs 240 bleibt.
  • Sobald beide Roboter in den Überlagerungsbereich 240 eintreten, besteht ein Deadlock-Zustand, und die einzige Lösung besteht darin, dass einer der Roboter den Lauf umkehrt („zurücksetzt“) oder sein Werkzeug anderweitig umleitet. Dies ist offensichtlich keine wünschenswerte Situation. Verfahren zur Deadlock-Verhinderung oder -Vermeidung sind aus dem Stand der Technik bekannt, einschließlich manueller und automatisierter Verfahren.
  • 3 ist eine zweidimensionale Darstellung eines manuellen Verfahrens zur Verhinderung eines Deadlocks durch Analyse von Werkzeugbahn-Überlagerungsbereichen und Einfügen von Verriegelungskontrollpunkten in die Roboter-Bewegungsprogramme gemäß einem im Stand der Technik bekannten Verfahren. Ein Roboter 300 und ein Roboter 310 umfassen jeweils mehrgliedrige Roboterarme und ein Werkzeug und sind in vereinfachter Form in einer Draufsicht in der oben mit Bezug auf 2 erörterten Weise dargestellt. Der Roboter 300 hat ein Werkzeug, das einer Werkzeugbahn 302 folgt, und der Roboter 310 hat ein Werkzeug, das einer Werkzeugbahn 312 folgt. Es gibt einen Überlagerungsbereich 320 in dem Überschneidungsraum zwischen der Werkzeugbahn 302 und der Werkzeugbahn 312. Ein bekanntes Verfahren zur Deadlock-Vermeidung besteht darin, Verriegelungen oder Kontrollpunkte in die Bewegungsprogramme der Roboter 300 und 310 einzufügen. Wenn ein Roboter eine Verriegelung in seinem Bewegungsprogramm erreicht, prüft er den Status des anderen Roboters, bevor er fortfährt.
  • Ein manuelles Verfahren zum Hinzufügen der Kontrollpunkte ist in 3 dargestellt. Ein Punkt 1 wird als der Punkt auf der Werkzeugbahn 302 bestimmt, der dem Roboter 310 am nächsten ist. Ein Punkt 4 wird als der Punkt auf der Werkzeugbahn 312 bestimmt, der dem Roboter 300 am nächsten ist. Dann wird eine Linie „a“ gezogen - etwa senkrecht zu einer Linie vom Punkt 1 zum Unterteil des Roboters 310. Dann werden die Verriegelungspunkte 2 und 3 in das Bewegungsprogramm des Roboters 310 eingefügt. Ebenso wird eine Linie „b“ senkrecht zu einer Linie vom Punkt 4 zum Unterteil des Roboters 300 gezogen. Die Verriegelungspunkte 5 und 6 werden in das Bewegungsprogramm des Roboters 300 eingefügt.
  • Wenn der Roboter 310 sein Werkzeug entlang der Werkzeugbahn 312 im Uhrzeigersinn bewegt, überprüft der Roboter 310 dann, wenn das Werkzeug den Verriegelungspunkt 2 erreicht, den Status des Roboters 300, bevor er fortfährt. Der Roboter 310 setzt seinen Weg entlang seiner Werkzeugbahn 312 erst dann fort, wenn bekannt ist, dass sich der Roboter 300 außerhalb des Überlagerungsbereichs 320 befindet. Wenn der Roboter 310 seinen Weg vorbei am Verriegelungspunkt 2 fortsetzt, meldet er, dass er tatsächlich in den Überlagerungsbereich 320 eingetreten ist, damit der Roboter 300 weiß, dass er ihn freihalten muss. Wenn sich der Roboter 310 entlang der Werkzeugbahn 312 bewegt und den Verriegelungspunkt 3 erreicht, meldet er, dass er den Überlagerungsbereich 320 verlassen hat, damit der Roboter 300 eintreten kann. Der Roboter 300 nutzt den Verriegelungspunkt 5, um vor Eintritt in den Überlagerungsbereich 320 zu prüfen und dann den Eintritt zu melden, und den Verriegelungspunkt 6, um den Austritt aus dem Überlagerungsbereich 320 zu melden.
  • Selbst in der vereinfachten 2D-Darstellung von ist ersichtlich, dass das manuelle Hinzufügen von Verriegelungspunkten zu den Roboterbewegungsprogrammen zusätzliche Arbeit erfordert. Das Verfahren verursacht auch Ineffizienz aufgrund der konservativen Vereinfachungen, die beim Definieren der Verriegelungspunkte verwendet werden, da die Roboter gezwungen sein werden, ihre Position länger als notwendig zu halten, um tatsächlich außerhalb des Überlagerungsbereichs 320 zu bleiben.
  • Die 2 und 3 sind zweidimensionale Darstellungen, um die bildliche Klarheit zu wahren. Bei wirklichen Robotertätigkeiten sind die von jedem Roboter eingenommenen Räume und die Überlagerungsbereiche der Räume komplexe dreidimensionale (3D) Gebilde. Das Konzept der Verhinderung der Belegung eines Überlagerungsbereichs durch mehrere Roboter gilt jedoch auch im 3D-Raum in derselben Weise, wie in den 2 und 3 dargestellt. Dies wird unten erörtert.
  • 4 ist eine Darstellung von überstrichenen Volumina für die zwei Roboter von 1, einschließlich eines Überlagerungsbereichs der überstrichenen Volumina, der anzeigt, dass es einer Roboterbewegungsplanung zur Deadlock-Vermeidung bedarf. 4 zeigt die Roboter 100 und 110 aus einer gegenüber 1 entgegengesetzten Betrachtungsperspektive. Die Roboter 100 und 110 sind in 4 in ihren Grundstellungen dargestellt. Die überstrichenen Volumina 108 und 118 werden unter Verwendung eines beliebigen geeigneten Verfahrens berechnet. Das überstrichene Volumen 108 ist das Volumen, das an irgendeinem Punkt im Bewegungsprogramm des Roboters 100 eingenommen wird, und das überstrichene Volumen 118 ist das Volumen, das an irgendeinem Punkt im Bewegungsprogramm des Roboters 110 eingenommen wird. Normalerweise beginnt die Berechnung des überstrichenen Volumens eines Roboters mit einem geometrischen 3D-Modell (wie z.B. einem CAD-Modell) von jeder Komponente jedes Roboters, und es summiert sich mit der Bewegung des Roboters durch die Schritte seines Bewegungsprogramms inkremental zu einer Gesamtvolumenhülle auf. Verfahren zum Berechnen eines überstrichenen Volumens eines Roboters sind aus dem Stand der Technik bekannt - darunter Verfahren, bei denen Voxel (kubische oder quaderförmige Volumenelemente) verwendet werden, um ein belegtes Volumen darzustellen, und andere Verfahren.
  • Ein Überlagerungsvolumen 410 ist der Raum, der sowohl im überstrichenen Volumen 108 als auch im überstrichenen Volumen 118 liegt (beiden gemeinsam ist). Obwohl das Überlagerungsvolumen 410 nicht notwendigerweise darauf hinweist, dass es zu einer Kollision kommen wird, weil die Roboter 100 und 110 diesen Teil ihrer überstrichenen Volumina zu verschiedenen Zeiten belegen könnten, weist das Vorhandensein des Überlagerungsvolumens 410 darauf hin, dass eine Störungsprüfung zur Kollisionsvermeidung während der Robotertätigkeit ausgeführt werden muss, und es weist auch darauf hin, dass ein Deadlock-Zustand möglich ist und auch die Deadlock-Vermeidung in die Programmierung der Roboterbewegung eingezogen werden sollte.
  • 4 veranschaulicht die Komplexität der 3D-Geometrie, die bei realen überstrichenen Volumina von Robotern und Überlagerungszonen involviert ist, und die Schwierigkeit, das in 3 dargestellte manuelle Verfahren auf eine derart komplexe 3D-Geometrie anzuwenden. Daher wurden automatisierte Deadlock-Vermeidungsverfahren entwickelt, einschließlich eines Verfahrens, bei dem überstrichene Volumina und Überlagerungszonen offline vor der Ausführung eines Bewegungsprogramms berechnet und Verriegelungen für den Eintritt in bzw. Austritt aus Überlagerungszonen in die Bewegungsprogramme vor Ausführung eingefügt werden. Dieses Verfahren ist weniger zeitaufwändig als das manuelle Verfahren von 3 und verhindert wirksam Deadlocks in bestimmten Roboter-Bewegungsprogrammen. Die Off-line-Berechnung (vor den Robotertätigkeiten) von überstrichenen Volumina und Überlagerungszonen kann jedoch die Deadlock-Verhinderung bei adaptiven Bewegungsprogrammen mit bestimmten Arten von Bewegungsereignissen - wie z.B. Werkzeugmittelpunkt-Sprünge, und wenn die Werkzeugmittelpunkt-Positionen online während der Ausführung durch Positionsregister oder mit anderen Techniken erfasst werden - nicht richtig handhaben.
  • Die vorliegende Offenbarung stellt ein Deadlock-Verhinderungsverfahren bereit, das vollständig online während der Robotertätigkeit ausgeführt wird. Das Verfahren berechnet die überstrichenen Volumina und Überlagerungszonen auch bei Bewegungsprogrammen genau, bei denen die Werkzeugbahn durch adaptive Ereignisse wie Sprünge und Positionsregister-Offsets beeinflusst wird, die in Echtzeit aufgelöst werden.
  • 5 ist ein Blockdiagramm auf hoher Ebene eines Multi-Roboter-Systems 500, das eine Online-Festlegung einer Verriegelung zur Deadlock-Verhinderung gemäß einer Ausführungsform der vorliegenden Offenbarung umfasst. Das System 500 umfasst mindestens zwei Roboter, die in einem gemeinsamen Arbeitsraum arbeiten. Das in 5 dargestellte Beispiel umfasst „N“ Roboter, einschließlich eines Roboters 1, der mit dem Bezugszeichen 510 gekennzeichnet ist, eines Roboters N, der mit dem Bezugszeichen 520 gekennzeichnet ist, und eines Roboters „i“, der mit dem Bezugszeichen 530 gekennzeichnet ist. Der Roboter „i“ wird als Roboter 530 bezeichnet und steht stellvertretend für alle Roboter im System 500. Jeder der Roboter 510/520/530 umfasst den Roboter selbst und eine Robotersteuerung in der in 1 dargestellten Weise. Eine einzige Robotersteuerung kann auch mehr als einen Roboter steuern.
  • Ein Arbeitsraum-Manager-Modul 540 ist ein Softwaremodul, das mit der Steuerung von jedem der Roboter 510/520/530 kommuniziert. Das Arbeitsraum-Manager-Modul 540 könnte auf der Steuerung von einem der Roboter ausgeführt werden, oder es könnte auf einem separaten Computer wie etwa dem in 1 gezeigten Computer 130 ausgeführt werden. Das Arbeitsraum-Manager-Modul 540 verfolgt die Überlagerungszonen und die Belegung der Zonen durch Roboter in Echtzeit gemäß den hier offenbarten Verfahren.
  • Die Aktionen und Interaktionen des Roboters 530 und des Arbeitsraum-Manager-Moduls 540 werden auf hoher Ebene mit Bezug auf 5 und detaillierter im Folgenden erörtert. Es versteht sich, dass jeder der Roboter 510/520/530 mit dem Arbeitsraum-Manager-Modul 540 in derselben Weise interagiert. Die Steuerung des Roboters 530 führt Bewegungsplanungsfunktionen aus, die in einem Kasten 532 gezeigt werden, einschließlich einer High-Level-Bewegungsplaner- und einer Low-Level-Bewegungsinterpolator-Funktion. Wie im Kasten 532 dargestellt, generiert der High-Level-Planer ein überstrichenes Volumen aus verfügbaren bevorstehenden Bewegungssegmenten für den Roboter 530. Ein Bewegungssegment ist ein Befehl im Roboter-Bewegungsprogramm, wie etwa „Bewegung in einer geraden Linie zu Punkt P77“. Für die Bewegungsprogrammierung stehen viele verschiedene Arten von Roboterbewegungsbefehlen zur Verfügung, wie Fachleuten bekannt ist. Aufgrund von adaptiven Bewegungsprogrammierungsmerkmalen wie Sprüngen und Positionregistern ist es oft nicht möglich, das gesamte Bewegungsprogramm im Voraus zu berechnen. An einem gewissen Punkt werden die Positionsregister jedoch gefüllt und andere adaptive Merkmale wie Sprünge werden aufgelöst, und eine gewisse Anzahl von bevorstehenden Bewegungssegmenten wird definitiv. Wenn beispielsweise die nächsten zwei Bewegungssegmente definitiv sind, dann berechnet der High-Level-Planer ein überstrichenes Volumen für diese nächsten zwei Bewegungssegmente.
  • Die Verfahren der vorliegenden Offenbarung beinhalten die Berechnung von überstrichenen Volumina für einzelne Roboterbewegungssegmente und die Berechnung von Überlagerungszonen, die der Schnitt von zwei oder mehr überstrichenen Volumina sind. Es versteht sich, dass jedes geeignete Verfahren zum Berechnen der überstrichenen Volumina und Überlagerungszonen verwendet werden kann.
  • Der High-Level-Planer übermittelt die berechneten überstrichenen Volumina an das Arbeitsraum-Manager-Modul 540 oder veröffentlicht sie in ihm. Das Arbeitsraum-Manager-Modul 540 berechnet Überlagerungszonen, die zwischen den überstrichenen Volumina aller Roboter 510-530 im System auftreten. Zu manchen Zeitpunkten gibt es möglicherweise keine Überlagerungszonen zwischen den überstrichenen Volumina, da die Roboter jeweils in getrennten Teilen des Arbeitsraums arbeiten. Zu anderen Zeitpunkten kann es zwei oder mehr Überlagerungszonen zwischen den überstrichenen Volumina der Roboter geben, wie etwa Zonen, die verschiedene Paare von Robotern betreffen. Das Arbeitsraum-Manager-Modul 540 veröffentlicht die aktiven Überlagerungszonen in allen Robotern, die an jeder Überlagerungszone beteiligt sind. Zusammen mit der Veröffentlichung der geometrischen 3D-Form jeder Überlagerungszone veröffentlicht das Arbeitsraum-Manager-Modul 540 kontinuierlich die Identität der an jeder Zone beteiligten Roboter und die Identität jedes Roboters, der momentan jede Überlagerungszone belegt.
  • Zurückkommend auf den Roboter 530, berechnet der Low-Level-Interpolator die tatsächliche Roboterbewegung (Gelenkbefehle) für jeden bevorstehenden Zeitschritt im aktuellen Bewegungssegment. Vor dem Bewegen des Roboters fragt der Low-Level-Interpolator den Arbeitsraum ab, um zu bestimmen, ob die bevorstehende Bewegung dazu führen wird, dass der Roboter in eine Überlagerungszone eintritt, die vom Arbeitsraum-Manager-Modul 540 veröffentlicht wurde. Wenn die bevorstehende Bewegung dazu führen wird, dass der Roboter in eine Überlagerungszone eintritt, bestimmt die Robotersteuerung, ob bereits ein anderer Roboter die Überlagerungszone belegt. Wenn ein anderer Roboter die Überlagerungszone bereits belegt, dann bewegt die Steuerung den Roboter nicht - das heißt, dass die Steuerung veranlasst, dass der Roboter in seiner aktuellen Position verharrt, um einen Deadlock-Zustand aufgrund von zwei Robotern, die gleichzeitig eine Überlagerungszone belegen, zu vermeiden. Wenn kein anderer Roboter bereits die Überlagerungszone belegt, dann bewegt die Steuerung den Roboter gemäß den vom Low-Level-Interpolator berechneten Zeitschritt-Gelenkbefehlen. Bei Eintritt in eine Überlagerungszone veröffentlicht das Interpolator-Modul das Eintreten auch im Arbeitsraum-Manager-Modul 540, das die Belegung verfolgt, wie oben erörtert. Das Interpolator-Modul veröffentlicht im Arbeitsraum-Manager-Modul 540 auch die Ereignisse des Austretens aus der Überlagerungszone.
  • Der oben beschriebene Prozess wird während des gesamten Betriebs der Roboter fortgesetzt, während sie ihre Aufgaben (z.B. Schweißen, Spritzlackieren usw.) ausführen. Jeder Roboter berechnet überstrichene Volumina für verfügbare bevorstehende Bewegungssegmente; das Arbeitsraum-Manager-Modul 540 berechnet Überlagerungszonen aus den überstrichenen Volumina der Roboter, verfolgt die Belegung der Überlagerungszonen und veröffentlicht die Zonen und ihren Status; und jeder Roboter prüft den Überlagerungszonenstatus vor jedem Zeitschritt (oder Interpolationspunkt) einer Bewegung, um sicherzustellen, dass er nicht in eine belegte Überlagerungszone eintritt. Weitere Merkmale und Fähigkeiten der offenbarten Verfahren werden unten erörtert.
  • 6 ist ein Blockdiagramm, das Merkmale des in 5 gezeigten Arbeitsraum-Manager-Moduls 540 gemäß einer Ausführungsform der vorliegenden Offenbarung veranschaulicht. 6 zeigt Eingaben in den Arbeitsraum-Manager, Berechnungen durch den Arbeitsraum-Manager und die resultierenden Daten sowie Ausgaben vom Arbeitsraum-Manager.
  • Kasten 610 zeigt Eingaben, die der Arbeitsraum-Manager von den High-Level-Planer-Modulen der Roboter im System (z.B. der Roboter 510/520/530 von 5) empfängt. Jeder Roboter veröffentlicht ein überstrichenes Volumen für jedes Bewegungssegment, das verfügbar und definitiv ist, wie zuvor erörtert. Im Kasten 610 sind die Roboter „i“, wie in 5, von 1 bis N nummeriert. Beispielsweise beginnend mit einem ersten Bewegungssegment, veröffentlicht der erste Roboter ein überstrichenes Volumen 612, das als „Seg1-1“ gekennzeichnet ist, wodurch angegeben wird, dass es von Roboter 1 stammt und Bewegungssegment Nummer 1 ist. Roboter 1 veröffentlicht weiterhin überstrichene Volumina bis zu einem überstrichenen Volumen 614, das als „Seg1-X“ gekennzeichnet ist, wodurch angegeben wird, dass es von Roboter 1 stammt und Bewegungssegment Nummer „X“ ist. Jeder der N Roboter veröffentlicht gleichermaßen ein überstrichenes Volumen für jedes Bewegungssegment, wenn es verfügbar wird, wobei jedes überstrichene Volumen mit der Roboternummer und der Bewegungssegmentnummer gekennzeichnet ist. Jeder der Roboter sendet außerdem eine Nachricht an den Arbeitsraum-Manager, wenn eines der zuvor veröffentlichten überstrichenen Volumina (wie etwa „Seg1-1“ oder 612) abgeschlossen wurde. Der zum Senden von ein überstrichenes Volumen betreffenden Daten vom High-Level-Planer jedes Roboters verwendete Prozess ist in 7 dargestellt.
  • Bei einer bevorzugten Ausführungsform umfasst jedes überstrichene Volumen die Roboterbewegung für ein Bewegungssegment. Bei einer anderen Ausführungsform, die sich besonders für Roboter eignet, die kontinuierliche Prozesse wie Spritzlackieren, Laser-/Lichtbogenschweißen oder Materialabgabe ausführen, veröffentlicht ein Roboter ein einziges überstrichenes Volumen, das die Roboterbewegung für alle in dem kontinuierlichen Prozess enthaltenen Bewegungssegmente definiert, weil alle Bewegungssegmente ohne Unterbrechung zu Ende geführt werden müssen. Diese Ausführungsform wird weiter unten erörtert.
  • Alle von den Robotern verfügbaren überstrichenen Volumina (Kasten 610) werden dem Arbeitsraum-Manager bei Kasten 620 bereitgestellt, wo die Überlagerungszonen zwischen den überstrichenen Volumina berechnet werden. Wiederum wird betont, dass das Veröffentlichen der überstrichenen Volumina durch die Robotersteuerungen während des gesamten Betriebs der Roboter in Echtzeit fortgesetzt wird. Jede Robotersteuerung veröffentlicht ihre überstrichenen Volumina eigenständig, wenn Bewegungssegmente verfügbar (definitiv) werden. Wie in 4 dargestellt, ist jede Überlagerungszone durch den Schnitt von zwei oder mehr überstrichenen Volumina definiert. Die Überlagerungszonen sind normalerweise unregelmäßig geformte 3D-Volumina und können durch Voxel (kubische oder quaderförmige Volumenelemente) oder mithilfe anderer Definitionstechniken auf der Basis von 3D-Objekten oder Oberflächengeometrie definiert werden.
  • Die Überlagerungszonen von Kasten 620 werden einem Überlagerungszonen-Pool 630 bereitgestellt, wo sie vom Arbeitsraum-Manager verwaltet werden. In der Darstellung enthält der Überlagerungszonen-Pool 630 Überlagerungszonen, die von Nummer 1 bis Nummer M reichen. Eine repräsentative Überlagerungszone „m“ (632) zeigt, welche Informationen für jede Überlagerungszone verwaltet werden, einschließlich der 3D-Definition des überlagerten Volumens, der Segmentnummer von jedem Roboter, der an der Überlagerungszone beteiligt ist, einer Liste zugehöriger Roboter (Roboter, die ein in die Überlagerungszone involviertes Segment haben) und einer Liste der Roboter (falls vorhanden), die sich momentan in der Überlagerungszone befinden.
  • Kasten 640 zeigt Eingaben, die der Arbeitsraum-Manager von den Low-Level-Interpolator-Modulen der Roboter im System empfängt. Der Low-Level-Interpolator ist nicht nur dafür zuständig, sicherzustellen, dass der Roboter nicht in eine bereits belegte Überlagerungszone eintritt, sondern veröffentlicht auch Nachrichten, die angeben, wann der Roboter in eine bestimmte Überlagerungszone eingetreten ist oder sie verlassen hat. Eine Nachricht 642 wird gezeigt, die aussagt, dass der Roboter „i“ in die Überlagerungszone „m“ eingetreten ist (oder sie verlassen hat). Der zum Senden von ein überstrichenes Volumen betreffenden Daten vom Low-Level-Interpolator jedes Roboters verwendete Prozess ist in 8 dargestellt.
  • Die Nachrichten 642 werden vom Arbeitsraum-Manager bei Kasten 650 verwendet, um die Überlagerungszonendaten im Überlagerungszonen-Pool 630 zu aktualisieren. Wenn eine Nachricht „Zone verlassen“ vom Arbeitsraum-Manager bei Kasten 650 empfangen wird, streicht der Arbeitsraum-Manager den Roboter „i“ aus der Roboter-in-Zone-Liste für die Überlagerungszone „m“. Wenn eine Nachricht „in Zone eingetreten“ vom Arbeitsraum-Manager bei Kasten 650 empfangen wird, fügt der Arbeitsraum-Manager entsprechend den Roboter „i“ zur Roboter-in-Zone-Liste für die Überlagerungszone „m“ hinzu.
  • Jedes Mal, wenn eine Überlagerungszone im Überlagerungszonen-Pool 630 hinzugefügt oder entfernt wird oder sich ihr Status ändert, wird die betroffene Überlagerungszone bei Kasten 660 in den betroffenen Robotern veröffentlicht (an sie ausgegeben). Betrachtet sei beispielsweise eine Zonenveröffentlichungsnachricht 662 für die Überlagerungszone „m“, wobei die Zone „m“ zuvor mit ihrem überlagerten Volumen und ihren entsprechenden Bewegungssegmentnummern in den zugehörigen Robotern (i, j und k) veröffentlicht wurde. Die Zonenveröffentlichungsnachricht 662 fügt den Roboter „i“ zur Roboter-in-Zone-Liste hinzu, was eine wichtige Information für alle zugehörigen Roboter ist, die sie kennen sollten, wie unten erörtert wird. Beispiele anderer Zonenveröffentlichungsnachrichten umfassen eine spätere Nachricht, die angibt, dass der Roboter „i“ die Zone „m“ verlassen hat (somit ist die Roboter-in-Zone-Liste leer), und eine noch spätere Nachricht, die auf der Grundlage der von den Robotern empfangenen letzten überstrichenen Volumina angibt, dass die Zone „m“ nicht mehr existiert.
  • 7 ist ein Flussdiagramm 700 eines Verfahrens, das gemäß einer Ausführungsform der vorliegenden Offenbarung von dem High-Level-Planer-Modul für jeden der Roboter in einem Multi-Roboter-System, wie es in 5 dargestellt ist, verwendet wird. Ausgehend von einem Start-Block 702 geht das Verfahren zu einer Entscheidungsraute 704 über, bei der bestimmt wird, ob ein neues Bewegungssegment verfügbar ist. Ein neues Bewegungssegment ist ein Bewegungssegment, das vorher nicht in ein von dem Roboter veröffentlichtes überstrichenes Volumen einbezogen war, und das neue Bewegungssegment ist nun vollständig definiert (beispielsweise wurden Werkzeugmittelpunkt-Sprünge aufgelöst und sind nun Positionsregisterdaten verfügbar). Wie zuvor erörtert, ist die Fähigkeit, Bewegungssegmente inkremental in adaptiven Bewegungsprogrammen während der Echtzeit-Ausführung durch den Roboter zu verarbeiten, ein wichtiges Merkmal der hier offenbarten Verfahren.
  • Wenn ein neues Bewegungssegment verfügbar ist, dann wird bei Kasten 706 eine schnelle Interpolation ausgeführt, um die Roboterbewegungen für das Bewegungssegment bereitzustellen. Bei der schnellen Interpolation kann beispielsweise ein gesamtes Bewegungssegment unter Verwendung der Start- und Endpunkte und ggf. weniger dazwischenliegender Interpolationspunkte berechnet werden, und dies auch, ohne alle Berechnungen zur Optimierung der Gleichmäßigkeit der Gelenkbewegung auszuführen. Bei Kasten 708 wird ein überstrichenes Volumen für das Bewegungssegment generiert, das bei Kasten 706 berechnet wurde. Bei Kasten 710 wird das überstrichene Volumen von Kasten 708 an den Arbeitsraum-Manager übermittelt, wobei es bei Kasten 610 empfangen wird, wie in 6 dargestellt.
  • Die Entscheidungsraute 712 wird erreicht, nachdem das überstrichene Volumen bei Kasten 710 übermittelt wurde oder wenn kein neues Bewegungssegment bei der Entscheidungsraute 704 verfügbar ist. Bei der Entscheidungsraute 712 wird bestimmt, ob ein Bewegungssegment abgeschlossen wurde. Ist dies der Fall, dann sendet bei Kasten 714 der High-Level-Planer eine Nachricht an den Arbeitsraum-Manager, die vorschreibt, dass das überstrichene Volumen für das abgeschlossene Bewegungssegment aus einer/allen Überlagerungszone(n) im Überlagerungszonen-Pool entfernt werden sollte. Alle Überlagerungszonen, die von der Entfernung des überstrichenen Volumens betroffen sind (geändert oder entfernt), werden erneut veröffentlicht. Der High-Level-Planer-Prozess endet beim Endpunkt 716, nachdem alle Nachrichten über das Entfernen eines überstrichenen Volumens übermittelt wurden.
  • 8 ist ein Flussdiagramm 800 eines Verfahrens, das von dem Low-Level-Interpolator-Modul für jeden der Roboter in einem Multi-Roboter-System, wie es in 5 dargestellt ist, gemäß einer Ausführungsform der vorliegenden Offenbarung verwendet wird. Bei Kasten 802 wird ein Interpolationspunkt für eine nächste Bewegung berechnet. Wie aus dem Stand der Technik bekannt, werden Interpolationspunkte vom Bewegungssystem eines Roboters an einer Vielzahl von Stellen längs eines Bewegungssegments berechnet. Jeder Interpolationspunkt schreibt eine nächste Bewegung des Roboters vor, die durch Gelenkbewegungsbefehle definiert ist, die von der Steuerung an den Roboter gesendet werden. Bei Kasten 804 empfängt der Low-Level-Interpolator in der Robotersteuerung die vom Arbeitsraum-Manager veröffentlichten Überlagerungszonen. Dabei handelt es sich um die in 6 gezeigten und oben erörterten Zonenveröffentlichungsnachrichten 662.
  • Bei Entscheidungsraute 806 wird bestimmt, ob das aktuelle Bewegungssegment (das gerade vom Low-Level-Interpolator interpoliert wird) in eine vom Arbeitsraum-Manager veröffentlichte Überlagerungszone involviert ist. Ist dies nicht der Fall, weist der Low-Level-Interpolator den Roboter bei Kasten 808 an, sich zu dem berechneten Interpolationspunkt zu bewegen. Wenn das aktuelle Bewegungssegment in eine Überlagerungszone involviert ist, dann wird bei Entscheidungsraute 810 bestimmt, ob sich gegenwärtig ein anderer Roboter in der Überlagerungszone befindet. Diese Information steht in der Roboter-in-Zone-Liste in den Zonenveröffentlichungsnachrichten vom Arbeitsraum-Manager zur Verfügung. Wenn sich gegenwärtig kein anderer Roboter in der Überlagerungszone befindet, dann weist der Low-Level-Interpolator den Roboter bei Kasten 808 an, sich zu bewegen.
  • Wenn sich ein anderer Roboter gegenwärtig in der Überlagerungszone befindet, dann wird bei Entscheidungsraute 812 bestimmt, ob die nächste Bewegung (der berechnete Interpolationspunkt) bewirken wird, dass der Roboter in die Überlagerungszone eintritt. Ist dies der Fall, dann weist der Low-Level-Interpolator bei Kasten 814 den Roboter an, seine Position zu halten, um das Auftreten eines Deadlock-Zustands zu verhindern. Wenn die nächste Bewegung (der berechnete Interpolationspunkt) nicht bewirken wird, dass der Roboter in die Überlagerungszone eintritt, dann weist der Low-Level-Interpolator bei Kasten 808 den Roboter an, sich zu bewegen. Die oben erörterten Elemente 806-814 können alle als Verriegelungen in das Roboter-Bewegungsprogramm implementiert werden, die bewirken, dass der Roboter seine Position hält, wenn dies nötig ist, um einen Deadlock zu vermeiden.
  • Wenn bei Kasten 808 eine Bewegung ausgeführt wird, dann fährt der Prozess fort, um zu bestimmen, ob in eine Überlagerungszone eingetreten oder aus ihr ausgetreten wurde. Wenn bei Entscheidungsraute 816 die gerade abgeschlossene Bewegung bewirkt hat, dass der Roboter in eine Überlagerungszone eingetreten ist, dann veröffentlicht der Low-Level-Interpolator bei Kasten 818 eine Nachricht „in Zone eingetreten“ im Arbeitsraum-Manager. Dies wurde in 6 gezeigt, wo der Arbeitsraum-Manager bei Kasten 650 eine Zonen-Eintritt/Austritt-Nachricht 642 von einem Low-Level-Interpolator empfangen hat und der Arbeitsraum-Manager die Information verwendet hat, um die Roboter-in-Zone-Liste für die relevante Überlagerungszone zu aktualisieren. Wenn bei Entscheidungsraute 820 die gerade abgeschlossene Bewegung bewirkt hat, dass der Roboter eine Überlagerungszone verlassen hat, dann veröffentlicht der Low-Level-Interpolator bei Kasten 822 eine Nachricht „Zone verlassen“ im Arbeitsraum-Manager, wobei sie auch wie in 6 gezeigt behandelt wird.
  • Um die obige Erörterung zusammenzufassen, zeigt die High-Level-Interaktion des Arbeitsraum-Managers und der Roboter im System. 6 zeigt die Einzelheiten des Arbeitsraum-Managers, einschließlich der Eingaben von den Robotersteuerungen und der Ausgaben an sie. Die 7 und 8 zeigen die von den High-Level-Planer-Modulen beziehungsweise den Low-Level-Interpolator-Modulen der Robotersteuerungen verwendeten Verfahren, einschließlich der Eingaben vom Arbeitsraum-Manager und der Ausgaben an ihn.
  • Während der vorangegangenen und folgenden Erörterung versteht es sich, dass die „nächste Bewegung“, die vom Low-Level-Interpolator evaluiert wird, nicht notwendigerweise nur ein einzelner Schritt oder Interpolationspunkt ist, sondern ein beliebiges Inkrement einer bevorstehenden Roboterbewegung sein kann (wie z.B. die nächsten drei Interpolationspunkte einer Gelenkbewegung).
  • Die 9A-9G sind Darstellungen einer Zeitabfolge von Überlagerungszonen und Ereignissen für ein Drei-Roboter-System gemäß Ausführungsformen der vorliegenden Offenbarung. Die 9A-9G veranschaulichen deutlich, wie sich Überlagerungszonen in einem Multi-Roboter-System im Laufe der Zeit entwickeln (d. h. erscheinen, ihre Form ändern und verschwinden) und entsprechend verwaltet werden. Die 9A-9G sind zweidimensionale Darstellungen, um die bildliche Klarheit zu wahren. Es sollte jedoch verstanden werden, dass die überstrichenen Volumina und Überlagerungszonen tatsächlich dreidimensionaler Natur sind, wie in 4 dargestellt.
  • In 9A veröffentlicht ein Roboter R1 ein überstrichenes Volumen 902 mit der Kennzeichnung „Seg1-1“, veröffentlicht ein Roboter R2 ein überstrichenes Volumen 904 mit der Kennzeichnung „Seg2-1“ und veröffentlicht ein Roboter R3 ein überstrichenes Volumen 906 mit der Kennzeichnung „Seg3-1“. Die überstrichenen Volumina Seg1-1, Seg2-1 und Seg3-1 werden mit einer vereinfachten geometrischen Form in den oberen/linken Abschnitten von 9A dargestellt, und sie werden in Form eines Blockdiagramms (unter Verwendung einer vereinfachten Notation wie S1-1 usw.) im unteren/rechten Abschnitt von 9A dargestellt, wo sie von ihren jeweiligen Robotern im Arbeitsraum-Manager (WSMGR) veröffentlicht werden, der die letzten ein überstrichenes Volumen betreffenden Daten verwendet, um die Überlagerungszonen im Überlagerungszonen-Pool 920 zu aktualisieren. Eine Überlagerungszone „Zone 1“ wird durch den Schnitt der überstrichenen Volumina Seg1-1 und Seg2-1 gebildet, wie geometrisch durch das Bezugszeichen 930 angezeigt. Daten über die Zone 1 - einschließlich der zugehörigen Roboter und der involvierten Bewegungssegmente - werden im Überlagerungszonen-Pool 920 gezeigt. Die Roboter-in-Zone-Liste wird in den 9A-9G nicht gezeigt, doch ist dieses Datenelement leicht verständlich, da es sich auf jede Zone im Überlagerungszonen-Pool 920 bezieht.
  • In 9B veröffentlicht der Roboter R1 ein neues überstrichenes Volumen 908 mit der Kennzeichnung „Seg1-2“, wie in der geometrischen Darstellung und dem Blockdiagramm gezeigt. Die Hinzufügung von Seg1-2 vom Roboter R1 führt zu einer größeren Überlagerungszone zwischen Bewegungen der Roboter R1 und R2. So hat sich die vom Arbeitsraum-Manager neu berechnete Überlagerungszone 1 (930) wie gezeigt vergrößert. Man beachte, dass keine neue Überlagerungszone gebildet wird, weil die Zone 1 bereits vorhanden war und nur verändert wurde. Aufgrund dieses Ereignisses (Veröffentlichung des neuen überstrichenen Volumens Seg1-2 durch R1) würde der Arbeitsraum-Manager die Überlagerungszone 1 erneut veröffentlichen, weil sich die geometrische Definition der Zone geändert hat und weil sich die Liste der involvierten Bewegungssegmente geändert hat, wie im Überlagerungszonen-Pool 920 gezeigt. Man beachte ferner, dass durch die Überlagerung von Seg1-1 mit Seg1-2 keine Überlagerungszone gebildet wird, weil diese zwei überstrichenen Volumina beide zum Roboter R1 gehören.
  • In 9C veröffentlicht der Roboter R3 ein überstrichenes Volumen 910 mit der Kennzeichnung „Seg3-2“, wie in der geometrischen Darstellung und dem Blockdiagramm gezeigt. Die Hinzufügung von Seg3-2 vom Roboter R3 bewirkt, dass eine neue Überlagerungszone „Zone 2“ zwischen Bewegungen der Roboter R1 und R3 gebildet wird. Zone 2 wird in der geometrischen Darstellung (932) und im Blockdiagramm im Überlagerungszonen-Pool 920 gezeigt. Die bestehende Zone 1 wird durch die Bildung der Zone 2 nicht beeinflusst. Aufgrund dieses Ereignisses (Veröffentlichung des überstrichenen Volumens Seg3-2 durch R3) würde der Arbeitsraum-Manager die Zone 2 mit ihrer geometrischen Definition, der Liste der zugehörigen Roboter und den involvierten Bewegungssegmenten veröffentlichen, doch würde er nicht die Überlagerungszone 1 erneut veröffentlichen, da sich in Bezug auf diese Zone nichts geändert hat.
  • In 9D veröffentlicht der Roboter R2 ein überstrichenes Volumen 912 mit der Kennzeichnung „Seg2-2“, wie in der geometrischen Darstellung und dem Blockdiagramm gezeigt. Die Hinzufügung von Seg2-2 vom Roboter R2 bewirkt, dass die Zone 2 (932) eine erheblich andere geometrische Form hat, wie in der Darstellung gezeigt. Auch umfasst die Zone 2 nun eine revidierte Liste der zugehörigen Roboter und involvierten Bewegungssegmente, wie in der geometrischen Darstellung und dem Blockdiagramm im Überlagerungszonen-Pool 920 gezeigt. Die bestehende Zone 1 wird durch die Änderungen an Zone 2 nicht beeinflusst. Aufgrund dieses Ereignisses (Veröffentlichung des überstrichenen Volumens Seg2-2 durch R2) würde der Arbeitsraum-Manager die Zone 2 mit ihrer revidierten geometrischen Definition, der revidierten Liste der zugehörigen Roboter und den aktualisierten involvierten Bewegungssegmente veröffentlichen. Auch in diesem Fall würde die Zone 1 nicht erneut veröffentlicht werden, weil sich in Bezug auf diese Zone nichts geändert hat.
  • In 9E veröffentlicht der Roboter R1 den Abschluss des überstrichenen Volumens „Seg1-1“ (902), wie in der geometrischen Darstellung und dem Blockdiagramm gezeigt. Der Abschluss von Seg1-1 durch den Roboter R1 bewirkt, dass die Zone 1 (930) eine erheblich andere geometrische Form hat, wie in der Darstellung gezeigt. Auch umfasst die Zone 1 nun eine revidierte Liste der involvierten Bewegungssegmente, wie in der geometrischen Darstellung und dem Blockdiagramm im Überlagerungszonen-Pool 920 gezeigt. Die bestehende Zone 2 wird durch die Änderungen an Zone 1 nicht beeinflusst. Aufgrund dieses Ereignisses (Veröffentlichung des Endes des überstrichenen Volumens Seg1-1 durch R1) würde der Arbeitsraum-Manager die Zone 1 mit ihrer revidierten geometrischen Definition und der revidierten Liste der involvierten Bewegungssegmente erneut veröffentlichen. Die Zone 2 würde nicht erneut veröffentlicht werden, weil sich in Bezug auf diese Zone nichts geändert hat.
  • In 9F veröffentlicht der Roboter R2 den Abschluss des überstrichenen Volumens Seg2-1 (904), und der Roboter R3 veröffentlicht den Abschluss des überstrichenen Volumens Seg3-1 (906), wie in der geometrischen Darstellung und dem Blockdiagramm gezeigt. Der Abschluss von Seg2-1 durch den Roboter R2 bewirkt, dass die Zone 1 (930) eliminiert wird, wie in der geometrischen Darstellung und dem Blockdiagramm im Überlagerungszonen-Pool 920 gezeigt. Die bestehende Zone 2 wird durch den Abschluss des überstrichenen Volumens Seg2-1 oder den Abschluss des überstrichenen Volumens Seg3-1 nicht beeinflusst. Aufgrund dieses Ereignisses (Ende der überstrichenen Volumina Seg2-1 und Seg3-1) würde der Arbeitsraum-Manager die Eliminierung der Zone 1 veröffentlichen. Die Zone 2 würde nicht erneut veröffentlicht werden, weil sich in Bezug auf diese Zone nichts geändert hat.
  • In 9G veröffentlicht jeder der Roboter R1/R2/R3 den Abschluss ihrer von 9F verbliebenen überstrichenen Volumina (Seg1-2, Seg2-2 und Seg 3-2), und jeder der Roboter R1/R2/R3 veröffentlicht ein neues überstrichenes Volumen (Seg1-3, Seg2-3 und Seg 3-3). Wie in der geometrischen Darstellung und dem Blockdiagramm gezeigt, verschwindet die Zone 2 mit dem Abschluss aller an ihr beteiligten überstrichenen Volumina, und es werden keine neuen Überlagerungszonen gebildet, weil es keine Überlagerung zwischen den neu veröffentlichten überstrichenen Volumina gibt. Somit würde der Arbeitsraum-Manager die Eliminierung der Zone 2 veröffentlichen.
  • Der in den 9A-9F dargestellte Prozess würde mit der Veröffentlichung neuer überstrichener Volumina durch die Roboter und dem vom Arbeitsraum-Manager abgewickelten Auftreten, Verschwinden und Ändern von Überlagerungszonen fortgesetzt, bis die Bewegungsprogramme der Roboter zu Ende geführt wurden. Der Arbeitsraum-Manager kann die Veröffentlichung eines neuen überstrichenen Volumens von mehr als einem Roboter zu einem gegebenen Zeitschritt, die Veröffentlichung mehrerer überstrichener Volumina von einem einzigen Roboter zu einem Zeitschritt usw. in beliebiger Kombination abwickeln. Während all dessen verwenden die Roboter die Überlagerungszoneninformationen, um zu vermeiden, dass sie in eine belegte Überlagerungszone eintreten, wodurch das Eintreten von Deadlock-Zuständen verhindert wird.
  • Die oben offenbarten Verfahren zum online Einfügen einer Verriegelung - veranschaulicht in den Flussdiagrammen und Blockdiagrammen der 5-8, die den Arbeitsraum-Manager und seine Eingaben von den Robotersteuerungen und seine Ausgaben an diese beinhalten, und dargestellt in der Überlagerungszonen-Zeitabfolge der 9A-9F - sind nachweislich erfolgreich bei der Verhinderung von Deadlock-Zuständen in Roboter-Bewegungsprogrammen, die wegen adaptiver Bewegungsereignisse nicht im Voraus analysiert werden können. Die Verfahren sind effektiv - sie bewirken, dass ein Roboter bei Bedarf seine Position hält, um das Eintreten in eine belegte Überlagerungszone zu vermeiden. Die Verfahren sind auch effizient - sie können in Echtzeit berechnet werden, ohne eine Verlangsamung der Robotertätigkeiten aufgrund der Berechnung zu verursachen.
  • Doch unter bestimmten Bedingungen kann es bei Verwendung der oben offenbarten Verfahren trotzdem zu einer Deadlock-Situation kommen, und zwar aufgrund der Änderung einer Überlagerungszone, wenn ein Roboter ein neues überstrichenes Volumen eines Bewegungssegments veröffentlicht und ein anderer Roboter bereits einen Teil des Raums der aktualisierten Überlagerungszone belegt. Diese Situation und eine Lösung dafür werden unten erörtert.
  • Die 10A/10B/10C sind fortschreitende Darstellungen eines Zwei-Roboter-Systems, bei dem ein Deadlock-Zustand entsteht, obwohl sich keiner der Roboter in eine belegte Überlagerungszone bewegt hat. Ein Roboter 1000 und ein Roboter 1010 werden in einer Aufsicht (Draufsicht) als einfache Roboter mit einem Unterteil, einem Roboterarm und einem Werkzeug oder einem Endeffektor in derselben Weise wie zuvor mit Bezug auf 2 erörtert dargestellt. Der Roboter 1000 hat ein Werkzeug, das entlang einer Bahn 1002 (von rechts nach links in einer geraden Linie) bewegt wird, während der Roboter 1010 ein Werkzeug hat, das entlang einer Bahn 1012 (bumerangförmig von links nach rechts) bewegt wird. Die Roboter 1000 und 1010 haben jeweils ein überstrichenes Volumen für ein bevorstehendes Bewegungssegment veröffentlicht, und der Arbeitsraum-Manager hat wie gezeigt eine Überlagerungszone 1020 berechnet.
  • In 10A hat sich noch keiner der Roboter 1000/1010 bewegt, und beide Roboter 1000 und 1010 bleiben außerhalb der Überlagerungszone 1020. In 10B haben sich beide Roboter 1000 und 1010 entlang ihrer jeweiligen Bahn bewegt. Der Roboter 1010 befindet sich nun in der Überlagerungszone 1020. Der Roboter 1000 bleibt außerhalb der Überlagerungszone 1020 und kann sich nicht weiter entlang seiner Bahn bewegen, weil die nächste Bewegung den Roboter 1000 in eine belegte Überlagerungszone bringen würde.
  • In 10C hat sich keiner der Roboter 1000/1010 gegenüber 10B weiterbewegt. Doch hat der Roboter 1010 ein neues überstrichenes Volumen eines Bewegungssegments veröffentlicht, was bewirkt hat, dass die Überlagerungszone 1020 in eine neue Position verschoben wurde, die als Überlagerungszone 1020A dargestellt ist. Obwohl sich der Roboter 1000 nicht in eine belegte Überlagerungszone bewegt hat, befindet er sich nun selbst zusammen mit dem Roboter 1010 innerhalb der Überlagerungszone 1020A. Nun liegt ein Deadlock-Zustand vor, da sich keiner der Roboter 1000/1010 weiter entlang seiner Bahn bewegen kann, ohne eine Kollision zu verursachen.
  • 11 ist ein Flussdiagramm 1100 eines Verfahrens, das von dem Low-Level-Interpolator-Modul in der Steuerung von jedem Roboter in einem Multi-Roboter-System, wie es in den 10A-10C dargestellt ist, gemäß einer Ausführungsform der vorliegenden Offenbarung verwendet wird. Das Low-Level-Interpolator-Verfahren von 11 ist dasselbe wie das zuvor erörterte Low-Level-Interpolator-Verfahren von 8, mit Ausnahme der Elemente 1110-1116 (schattiert), die in 11 hinzugefügt wurden. Alle Schritte, die Bestandteil von 8 sind, behalten ihr ursprüngliches Bezugszeichen bei und werden hier nicht weiter erörtert.
  • Eine neue Entscheidungsraute 1110 ist nach der Entscheidungsraute 810 hinzugefügt. In dem Fall, in dem sich ein anderer Roboter in der Überlagerungszone befindet („Ja“ bei der Entscheidungsraute 810), bestimmt die Entscheidungsraute 1110, ob sich der Roboter selbst (der Roboter, in Bezug auf den dieses Low-Level-Interpolator-Verfahren ausgeführt wird) ebenfalls in der Überlagerungszone befindet. Diese Situation könnte eintreten, wenn sich die Geometrie der Überlagerungszone ändert, weil der andere Roboter ein neues überstrichenes Volumen eines Bewegungssegments veröffentlicht, wie in 10C dargestellt.
  • Wenn sich der Roboter bei der Entscheidungsraute 1110 in der Überlagerungszone befindet, dann wird bei Kasten 1112 die Überlagerungszone, wie sie durch das vorherige überstrichene definiert ist, überprüft. Bei Entscheidungsraute 1114 bestimmt der Roboter, ob er sich in der Überlagerungszone vom vorherigen überstrichenen Volumen befand. Wenn nicht, dann „setzt“ der Roboter bei Kasten 1116 „zurück“ oder bewegt sich einen Schritt entlang seiner Bewegungsbahn zurück. Diese Maßnahme wird ergriffen, weil, wenn sich der Roboter nicht in der Überlagerungszone vom vorherigen überstrichenen Volumen befindet, dies bedeutet, dass die Veröffentlichung einer aktualisierten Überlagerungszone die doppelte Belegung der Zone verursacht haben muss. Im Beispiel der 10A-10C würde das Zurücksetzen bei Kasten 1116 bewirken, dass sich der Roboter 1000 zurück in seine in 10A gezeigte Position bewegt, was den Roboter 1010 in die Lage versetzen würde, seine nächste Bewegung zum Ende seiner Bewegungsbahn auszuführen, nach der sich der Roboter 1000 entlang seiner gesamten Bewegungsbahn bewegen könnte.
  • Wenn der Roboter bei der Entscheidungsraute 1114 bestimmt, dass er sich in der Überlagerungszone vom vorherigen überstrichenen Volumen befand, dann hält der Roboter bei Kasten 814 seine Position, anstatt zurückzusetzen. In dieser Situation könnte der andere an der Überlagerungszone beteiligte Roboter - unter Verwendung derselben Logik - feststellen, dass er zurücksetzen kann, was die Deadlock-Situation wie oben erörtert auflösen würde.
  • Die in den 10A-10C gezeigte Deadlock-Situation entstand, weil der Roboter 1010 ein neues überstrichenes Volumen eines Bewegungssegments veröffentlicht hat, nachdem sich der Roboter 1000 bereits in eine gefährdete Position bewegt hatte. Diese Art der späten Veröffentlichung von Bewegungssegmenten kann in Roboter-Bewegungsprogrammen mit adaptiven Merkmalen (z.B. Sprünge, Positionsregister) auftreten, wie zuvor erörtert. Das Verfahren von 11 stellt eine Technik zum automatischen Auflösen von Deadlock-Situationen bereit, die aufgrund dieser Art der späten Veröffentlichung von Bewegungssegmenten eintreten, wobei die Roboter bei dieser automatischen Auflösung des Deadlocks mit einem nur geringfügigen Rücksetzer eines Roboters in Betrieb gehalten werden. Die automatische Auflösung des Deadlocks vermeidet die komplette Abschaltung des Multi-Roboter-Systems und die Notwendigkeit eines Bedienereingriffs, wie es in der Vergangenheit erforderlich war.
  • Einige Multi-Roboter-Systeme umfassen einen oder mehrere Roboter, die eine kontinuierliche Prozesstätigkeit wie Spritzlackieren oder Laser-/Lichtbogenschweißen ausführen. Diese kontinuierlichen Prozesstätigkeiten können nicht unterbrochen werden, nachdem sie begonnen wurden, weil die Qualität der Tätigkeit darunter leidet. Diesem Umstand kann durch Hinzufügen weiterer Logik zu den oben beschriebenen Deadlock-Verhinderungsverfahren und -systemen Rechnung getragen werden. Insbesondere besteht die Möglichkeit, einer kontinuierlichen Prozesstätigkeit, die begonnen hat, Vorrang zu geben, sodass es anderen Robotern obliegt, bei Bedarf ihre Position zu halten, um einen Deadlock-Zustand zu vermeiden. Dies ist in den 12-14 dargestellt.
  • 12 ist ein Flussdiagramm eines Verfahrens, das gemäß einer Ausführungsform der vorliegenden Offenbarung vom Bewegungsplaner in der Steuerung jedes Roboters, der eine kontinuierliche Prozesstätigkeit in einem Multi-Roboter-System ausführt, verwendet wird. Der Zweck des Verfahrens von 12 besteht darin, ein überstrichenes Volumen für die gesamte Prozesstätigkeit zu berechnen. Bei Kasten 1202 wird die Prozessbewegung analysiert, um die Start- und Endereignisse zu ermitteln. Beispielsweise könnte ein typisches Bewegungsprogramm einen Befehl „Schweißen Ein“ oder „Lackieren Ein“ beinhalten, um den Prozess einzuschalten, und einen ähnlichen Befehl, um den Prozess auszuschalten. Wenn die Start- und Endereignisse im Bewegungsprogramm identifiziert wurden, wird bei Kasten 1204 ein überstrichenes Volumen für die gesamte Bewegung der Prozesstätigkeit berechnet, die normalerweise eine Vielzahl von Bewegungssegmenten umfassen wird. Adaptive Bewegungsereignisse wie Sprünge kommen normalerweise nicht in einer Prozesstätigkeit vor, daher sollte das berechnete überstrichene Volumen korrekt sein. Bei Kasten 1206 wird das für die Prozesstätigkeit berechnete überstrichene Volumen in einem Speicher der Robotersteuerung gespeichert.
  • 13 ist ein Flussdiagramm eines Verfahrens, das gemäß einer Ausführungsform der vorliegenden Offenbarung vom High-Level-Planer in der Steuerung jedes Roboters, der eine kontinuierliche Prozesstätigkeit in einem Multi-Roboter-System ausführt, verwendet wird. Wenn während der Ausführung des Bewegungsprogramms des Roboters eine Prozessstart-Anweisung angetroffen wird, wird bei Kasten 1302 das (in 12 berechnete und gespeicherte) überstrichene Volumen des Prozesses vom High-Level-Planer des Roboters veröffentlicht. Bei Entscheidungsraute 1304 wird bestimmt, ob sich irgendein anderer Roboter in irgendeiner Überlagerungszone befindet, die das überstrichene Volumen des Prozesses einbezieht. Wenn dies der Fall ist, kehrt der Roboter ständig zur Entscheidungsraute 1304 zurück, bis der andere Roboter die Überlagerungszone geräumt hat. Wenn die Überlagerungszone geräumt wurde, startet der Roboter bei Kasten 1306 den Prozess (er startet z.B. das Spritzlackieren). Bei Kasten 1308 veröffentlicht der Roboter eine Nachricht „in Zone eingetreten“ im Arbeitsraum-Manager. Wenn das überstrichene Volumen des Prozesses veröffentlicht und die zugehörige Überlagerungszone nunmehr vom Roboter betreten wurde, bleiben die anderen Roboter im System außerhalb der Überlagerungszone, und der Roboter kann die Prozesstätigkeit ohne das Risiko eines Deadlocks zu Ende führen.
  • Wenn auf eine Prozessende-Anweisung getroffen wird, teilt der Roboter bei Kasten 1310 dem Arbeitsraum-Manager mit, dass das überstrichene Volumen des Prozesses abgeschlossen wurde und entfernt werden kann. Bei Kasten 1312 beendet der Roboter den Prozess (z.B. beendet er das Spritzlackieren). Bei Kasten 1314 veröffentlicht der Roboter eine Nachricht „Zone verlassen“ im Arbeitsraum-Manager. Wenn das überstrichene Volumen des Prozesses entfernt und die zugehörige Überlagerungszone nunmehr vom Roboter verlassen wurde, fahren alle Roboter in dem System unter Verwendung der zuvor beschriebenen Deadlock-Vermeidungsverfahren (Online-Prüfung des überstrichenen Volumens und Zurücksetzen) fort.
  • 14 ist ein Flussdiagramm eines Verfahrens, das gemäß einer Ausführungsform der vorliegenden Offenbarung vom Low-Level-Interpolator in der Steuerung jedes Roboters, der eine kontinuierliche Prozesstätigkeit in einem Multi-Roboter-System ausführt, verwendet wird. Wenn ein Interpolationspunkt für eine nächste Bewegung des Roboters berechnet wird, wird bei Entscheidungsraute 1402 bestimmt, ob es eine Prozesstätigkeit im aktuellen Bewegungssegment gibt. Wenn dies der Fall ist, dann nimmt der Low-Level-Interpolator bei Entscheidungsraute 1404 mit dem High-Level-Planer (derselben Robotersteuerung) eine Prüfung vor, um zu bestimmen, ob das überstrichene Volumen für die gesamte Bewegung des Prozesses veröffentlicht wurde und es in Ordnung ist, den Prozess zu starten. Wenn also der Kasten 1306 von 13 erreicht wurde, dann teilt der High-Level-Planer bei der Entscheidungsraute 1404 dem Low-Level-Interpolator mit, dass es in Ordnung ist, den Prozess zu starten, und der Low-Level-Interpolator teilt dem Roboter bei Kasten 1406 mit, dass er sich zum nächsten Interpolationspunkt bewegen soll. Nachdem die Prozesstätigkeit begonnen hat, fährt der Roboter fort, sich selbst die Freigabe für die Bewegung zum nächsten Interpolationspunkt zu erteilen, bis der Prozess beendet ist.
  • Wenn der High-Level-Planer bei der Entscheidungsraute 1404 dem Low-Level-Interpolator mitteilt, dass es nicht in Ordnung ist, den Prozess zu starten (weil beispielsweise das überstrichene Volumen des Prozesses noch nicht veröffentlicht wurde oder die resultierende Überlagerungszone von einem anderen Roboter belegt wird), teiltder Low-Level-Interpolator dem Roboter bei Kasten 1406 mit, dass er seine Position halten soll. Der Roboter wird seine Position weiter halten, bis er eine Freigabe vom High-Level-Planer zum Bewegen in das überstrichene Volumen des Prozesses erhält.
  • Wenn bei der Entscheidungsraute 1402 bestimmt wird, dass es im aktuellen Bewegungssegment keine kontinuierliche Prozesstätigkeit gibt, dann wird bei Kasten 1410 das Verfahren für die Online-Veröffentlichung des überstrichenen Volumens, die Prüfung der Überlagerungszone und das Zurücksetzen (11, oben erörtert) verwendet.
  • Es ist zu beachten, dass die in den Verfahren der 12-14 dargestellten Änderungen, die erforderlich sind, um kontinuierlichen Prozesstätigkeiten Rechnung zu tragen, minimal sind und keine Änderung des Datenmodells des Überlagerungszonen-Pools erfordern. Es ist nicht erforderlich, eine Mitteilung über die laufende Verarbeitung zur Kenntnisnahme durch andere Roboter zu veröffentlichen. Es ist nur erforderlich, ein überstrichenes Volumen für den gesamten Prozess zu veröffentlichen und Zonen-Eintritt/Austritt-Nachrichten in der zuvor beschriebenen Weise zu veröffentlichen.
  • Bei allen hier vorstehend offenbarten Verfahren und Systemen sollten die Funktionen des High-Level-Planers und des Low-Level-Interpolators in der Robotersteuerung wie beschrieben als ein Ausführungsbeispiel verstanden werden. Andere Gestaltungen der Robotersteuerung können die Berechnungen, Merkmale und Funktionen nicht in dieser Weise zwischen einem High-Level-Planer-Modul und einem Low-Level-Interpolator-Modul aufteilen. Solange die Robotersteuerung die Veröffentlichung des überstrichenen Volumens eines Bewegungssegments und die Überprüfung vor der Bewegung durchführt, um das Eintreten in eine belegte Überlagerungszone zu vermeiden, werden die offenbarten Verfahren Deadlock-Situationen effektiv verhindern und/oder auflösen.
  • In der gesamten vorstehenden Erörterung werden verschiedene Computer und Steuerungen beschrieben und vorausgesetzt. Es versteht sich, dass die Softwareanwendungen und -module dieser Computer und Steuerungen auf einer oder mehreren Rechenvorrichtungen ausgeführt werden, die einen Prozessor und ein Speichermodul haben. Dies umfasst insbesondere einen Prozessor in jeder der Robotersteuerungen 102 und 112 und in der optionalen Arbeitszellensteuerung 130, die oben mit Bezug auf 1 erörtert wurden. Insbesondere sind die Prozessoren in den Robotersteuerungen und der Arbeitszellensteuerung dazu eingerichtet, die Veröffentlichung des überstrichenen Volumens eines Bewegungssegments, die Berechnung und Veröffentlichung der Überlagerungszone und die Prüfung vor der Bewegung zur Vermeidung des Eintretens in eine belegte Überlagerungszone in der in der gesamten vorstehenden Offenbarung beschriebenen Weise auszuführen. Des Weiteren versteht es sich, dass eine einzelne Steuerung für jeden Roboter in einer Arbeitszelle vorgesehen sein kann oder dass eine Steuerung zum Steuern der Bewegung von mehr als einem Roboter verwendet werden kann, wie es für die Anwendung am besten geeignet ist. In jedem Fall gibt es ein Bewegungsplaner-Modul, dass die Bewegungen für jeden einzelnen Roboter berechnet, einschließlich der hier vorstehend beschriebenen High-Level-Planer- und Low-Level-Interpolator-Funktionen.
  • Wie oben erläutert, verbessern die offenbarten Verfahren zur Deadlock-Vermeidung bei der Roboterbewegungsplanung die Robustheit und Zuverlässigkeit der Deadlock-Verhinderung. Die offenbarten Verfahren vermeiden den Aufwand im Vorfeld und die händisch festgelegten Verriegelungen zur Vermeidung von Überlagerungszonen innewohnende Ungenauigkeit und ermöglichen das Hinzufügen von automatischen Verriegelungen zur Vermeidung von Überlagerungszonen auch bei Bewegungsprogrammen, die adaptive Merkmale wie Sprünge und Positionsregister beinhalten, die nur während tatsächlicher Online-Robotertätigkeiten berechnet werden.
  • Zwar wurde oben eine Reihe beispielhafter Aspekte und Ausführungsformen der Deadlock-Vermeidung bei der Roboterbewegungsplanung erörtert, doch erkennt der Fachmann Modifikationen, Permutationen, Hinzufügungen und Unterkombinationen hiervon. Es ist daher beabsichtigt, dass die folgenden beigefügten Patentansprüche und hiernach eingeführten Patentansprüche so ausgelegt werden, dass sie alle Modifikationen, Permutationen, Hinzufügungen und Unterkombinationen einschließen, die ihrem wahren Geist und Umfang entsprechen.

Claims (24)

  1. Online-Verfahren zur Deadlock-Verhinderung bei einem Multi-Roboter-System, das zwei oder mehr Roboter umfasst, die in einem gemeinsamen Arbeitsraum arbeiten, wobei jeder Roboter von einer Steuerung gesteuert wird, die einen Prozessor und einen Speicher umfasst, wobei das Verfahren umfasst: Berechnen eines überstrichenen Volumens für ein oder mehr bevorstehende Bewegungssegmente durch ein Bewegungsplaner-Modul in der Steuerung für jeden der Roboter; Veröffentlichen der überstrichenen Volumina in einem Arbeitsraum-Manager-Modul; Berechnen durch das Arbeitsraum-Manager-Modul einer Überlagerungszone als räumliches Volumen der Überlagerung zwischen beliebigen zwei oder mehr der überstrichenen Volumina von beliebigen zwei oder mehr der Roboter; Veröffentlichen von jeder der Überlagerungszonen und von Statusdaten in den Steuerungen von jedem der Roboter, die an jeder der Überlagerungszonen beteiligt sind; Prüfen der Überlagerungszonen und der Statusdaten durch das Bewegungsplaner-Modul in der Steuerung für jeden der Roboter nach dem Berechnen eines nächsten Roboterbewegungsinkrements; Ausführen des nächsten Roboterbewegungsschritts, wenn das nächste Inkrement nicht bewirken wird, dass der Roboter in eine belegte Überlagerungszone eintritt; Halten des Roboters in einer aktuellen Position, wenn das nächste Inkrement bewirken würde, dass der Roboter in eine belegte Überlagerungszone eintritt; und Benachrichtigen des Arbeitsraum-Manager-Moduls durch das Bewegungsplaner-Modul in der Steuerung für jeden der Roboter, wenn in eine Überlagerungszone eingetreten wird oder wenn sie verlassen wird.
  2. Verfahren nach Anspruch 1, wobei das Arbeitsraum-Manager-Modul auf einer der Steuerungen oder auf einem Computer, der mit der Steuerung für jeden der Roboter in Verbindung steht, ausgeführt wird.
  3. Verfahren nach Anspruch 1, wobei das Berechnen eines überstrichenen Volumens für ein oder mehr bevorstehende Bewegungssegmente und das Veröffentlichen der überstrichenen Volumina kontinuierlich während der Robotertätigkeiten ausgeführt werden.
  4. Verfahren nach Anspruch 1, wobei das Berechnen eines überstrichenen Volumens für ein oder mehr bevorstehende Bewegungssegmente und das Veröffentlichen der überstrichenen Volumina erst ausgeführt werden, nachdem bestimmt wird, dass alle adaptiven Befehle in den Bewegungssegmenten aufgelöst sind, wobei die adaptiven Befehle einen oder mehr Sprünge und Positionsregister-Offsets umfassen.
  5. Verfahren nach Anspruch 1, ferner umfassend das Benachrichtigen des Arbeitsraum-Manager-Moduls durch das Bewegungsplaner-Modul in der Steuerung für jeden der Roboter, wenn eines der Bewegungssegmente des überstrichenen Volumens abgeschlossen wurde.
  6. Verfahren nach Anspruch 1, wobei die Statusdaten für jede der Überlagerungszonen das räumliche Überlagerungsvolumen, eine Bewegungssegmentnummer für jedes der in die Überlagerungszone einbezogenen überstrichenen Volumina, eine Liste der an der Überlagerungszone beteiligten Roboter und eine Identität von jedem momentan in der Überlagerungszone befindlichen Roboter umfassen.
  7. Verfahren nach Anspruch 1, wobei das Veröffentlichen von jeder der Überlagerungszonen und der Statusdaten das Veröffentlichen jeder Überlagerungszone, wenn sie zum ersten Mal generiert wird, das erneute Veröffentlichen jeder Überlagerungszone, wenn sich ein Element der Statusdaten ändert und das Veröffentlichen einer Aufhebung jeder Überlagerungszone, wenn sie nicht mehr existiert, umfasst.
  8. Verfahren nach Anspruch 1, wobei das räumliche Überlagerungsvolumen für jede der Überlagerungszonen unter Verwendung von Voxel zur Darstellung der überstrichenen Volumina berechnet wird.
  9. Verfahren nach Anspruch 1, ferner umfassend, wenn das nächste Inkrement bewirken würde, dass der Roboter in eine belegte Überlagerungszone eintritt, das Bestimmen, ob sich der Roboter bereits in der belegten Überlagerungszone befindet, und wenn dies der Fall ist, das Bestimmen, ob sich der Roboter in der belegten Überlagerungszone für ein vorheriges überstrichenes Volumen eines Bewegungssegments befand.
  10. Verfahren nach Anspruch 9, ferner umfassend das Halten des Roboters in einer aktuellen Position, wenn sich der Roboter in der belegten Überlagerungszone für das vorherige überstrichene Volumen eines Bewegungssegments befand, und Zurückbewegen zu einem vorherigen Inkrement, wenn sich der Roboter nicht in der belegten Überlagerungszone für das vorherige überstrichene Volumen eines Bewegungssegments befand.
  11. Verfahren nach Anspruch 1, wobei die Steuerungen dazu eingerichtet sind, jedem der Roboter Bewegungspriorität zu geben, die eine kontinuierliche Prozesstätigkeit ausführen, einschließlich Spritzlackieren, Laser- oder Lichtbogenschweißen oder Abgeben einer Materialraupe.
  12. Verfahren nach Anspruch 11, wobei das Bewegungsplaner-Modul in der Steuerung des Roboters, der die kontinuierliche Prozesstätigkeit ausführt, ein überstrichenes Volumen für die gesamte kontinuierliche Prozesstätigkeit berechnet und veröffentlicht, und dann die kontinuierliche Prozesstätigkeit startet, wenn keine Überlagerungszone, die das überstrichene Volumen für die gesamte kontinuierliche Prozesstätigkeit involviert, belegt ist.
  13. Online-Verfahren zur Deadlock-Verhinderung bei einem Multi-Roboter-System, das zwei oder mehr Roboter umfasst, die in einem gemeinsamen Arbeitsraum arbeiten, wobei jeder Roboter von einer Steuerung gesteuert wird, die einen Prozessor und einen Speicher umfasst, wobei das Verfahren umfasst: Berechnen eines überstrichenen Volumens für ein oder mehr bevorstehende Bewegungssegmente durch ein Bewegungsplaner-Modul in der Steuerung für jeden der Roboter, wobei das Berechnen des überstrichenen Volumen erst kontinuierlich während der Robotertätigkeiten ausgeführt wird, nachdem bestimmt wird, dass alle adaptiven Befehle in den Bewegungssegmenten aufgelöst sind, wobei die adaptiven Befehle einen oder mehr Sprünge und Positionsregister-Offsets umfassen; Veröffentlichen der überstrichenen Volumina in einem Arbeitsraum-Manager-Modul; Berechnen durch das Arbeitsraum-Manager-Modul einer Überlagerungszone als räumliches Volumen der Überlagerung zwischen beliebigen zwei oder mehr der überstrichenen Volumina von beliebigen zwei oder mehr der Roboter; Veröffentlichen von jeder der Überlagerungszonen und von Statusdaten in den Steuerungen von jedem der Roboter, die an jeder der Überlagerungszonen beteiligt sind, wobei die Statusdaten für jede der Überlagerungszonen das räumliche Überlagerungsvolumen, eine Bewegungssegmentnummer für jedes der in die Überlagerungszone einbezogenen überstrichenen Volumina, eine Liste der an der Überlagerungszone beteiligten Roboter und eine Identität von jedem momentan in der Überlagerungszone befindlichen Roboter umfassen; Prüfen der Überlagerungszonen und der Statusdaten durch das Bewegungsplaner-Modul in der Steuerung für jeden der Roboter nach dem Berechnen eines nächsten Roboterbewegungsschritts; Ausführen des nächsten Roboterbewegungsschritts, wenn der nächste Schritt nicht bewirken wird, dass der Roboter in eine belegte Überlagerungszone eintritt; Halten des Roboters in einer aktuellen Position, wenn der nächste Schritt bewirken würde, dass der Roboter in eine belegte Überlagerungszone eintritt; Benachrichtigen des Arbeitsraum-Manager-Moduls durch das Bewegungsplaner-Modul in der Steuerung für jeden der Roboter, wenn in eine Überlagerungszone eingetreten wird oder wenn sie verlassen wird; und Benachrichtigen des Arbeitsraum-Manager-Moduls durch das Bewegungsplaner-Modul in der Steuerung für jeden der Roboter, wenn eines der Bewegungssegmente des überstrichenen Volumens abgeschlossen wurde.
  14. Multi-Roboter-System mit Online-Deadlock-Verhinderung, wobei das System umfasst: zwei oder mehr Roboter, die in einem gemeinsamen Arbeitsraum arbeiten; eine oder mehr Steuerungen, die die zwei oder mehr Roboter steuern, wobei jede Steuerung einen Prozessor und einen Speicher umfasst; ein Bewegungsplaner-Softwaremodul, das in der Steuerung für jeden der Roboter ausgeführt wird; und ein Arbeitsraum-Manager-Softwaremodul in Kommunikation mit dem Bewegungsplaner-Softwaremodul in der Steuerung für jeden der Roboter, wobei das Bewegungsplaner-Softwaremodul in der Steuerung für jeden der Roboter dazu eingerichtet ist, ein überstrichenes Volumen für ein oder mehr bevorstehende Bewegungssegmente zu berechnen und die überstrichenen Volumina in dem Arbeitsraum-Manager-Modul zu veröffentlichen, und wobei das Arbeitsraum-Manager-Softwaremodul dazu eingerichtet ist, eine Überlagerungszone als räumliches Volumen der Überlagerung zwischen beliebigen zwei oder mehr der überstrichenen Volumina von beliebigen zwei oder mehr der Roboter zu berechnen, jede der Überlagerungszonen und Statusdaten in den Steuerungen von jedem der Roboter zu veröffentlichen, die an jeder der Überlagerungszonen beteiligt sind; und wobei das Bewegungsplaner-Softwaremodul in der Steuerung für jeden der Roboter ferner dazu eingerichtet ist, die Überlagerungszonen und die Statusdaten nach dem Berechnen eines nächsten Roboterbewegungsinkrements zu prüfen, das nächste Roboterbewegungsinkrement auszuführen, wenn das nächste Inkrement nicht bewirken wird, dass der Roboter in eine belegte Überlagerungszone eintritt, den Roboter in einer aktuellen Position zu halten, wenn das nächste Inkrement bewirken würde, dass der Roboter in eine belegte Überlagerungszone eintritt, und das Arbeitsraum-Manager-Softwaremodul zu benachrichtigen, wenn in eine Überlagerungszone eingetreten wird oder wenn sie verlassen wird.
  15. System nach Anspruch 14, wobei das Arbeitsraum-Manager-Softwaremodul auf einer der Steuerungen oder auf einem Computer, der mit jeder der Steuerungen in Verbindung steht, ausgeführt wird.
  16. System nach Anspruch 14, wobei das Bewegungsplaner-Softwaremodul das überstrichene Volumen für ein oder mehr bevorstehende Bewegungssegmente kontinuierlich während der Robotertätigkeiten berechnet und veröffentlicht.
  17. System nach Anspruch 14, wobei das Bewegungsplaner-Softwaremodul ein überstrichenes Volumen für ein oder mehr bevorstehende Bewegungssegmente berechnet und die überstrichenen Volumina erst veröffentlicht, nachdem bestimmt wird, dass alle adaptiven Befehle in den Bewegungssegmenten aufgelöst sind, wobei die adaptiven Befehle einen oder mehr Sprünge und Positionsregister-Offsets umfassen.
  18. System nach Anspruch 14, wobei das Bewegungsplaner-Softwaremodul ferner dazu eingerichtet ist, das Arbeitsraum-Manager-Softwaremodul zu benachrichtigen, wenn eines der Bewegungssegmente des überstrichenen Volumens abgeschlossen wurde.
  19. System nach Anspruch 14, wobei die Statusdaten für jede der Überlagerungszonen das räumliche Überlagerungsvolumen, eine Bewegungssegmentnummer für jedes der in die Überlagerungszone einbezogenen überstrichenen Volumina, eine Liste der an der Überlagerungszone beteiligten Roboter und eine Identität von jedem momentan in der Überlagerungszone befindlichen Roboter umfassen.
  20. System nach Anspruch 14, wobei das Arbeitsraum-Manager-Softwaremodul jede der Überlagerungszonen und die Statusdaten veröffentlicht, wenn jede Überlagerungszone zum ersten Mal generiert wird, jede Überlagerungszone und die Statusdaten erneut veröffentlicht, wenn sich ein Element der Statusdaten ändert, und eine Aufhebung von jeder Überlagerungszone veröffentlicht, wenn sie nicht mehr existiert.
  21. System nach Anspruch 14, wobei das Bewegungsplaner-Softwaremodul ferner dazu eingerichtet ist, zu bestimmen, wenn das nächste Inkrement bewirken würde, dass der Roboter in eine belegte Überlagerungszone eintritt, ob sich der Roboter bereits in der belegten Überlagerungszone befindet, und wenn dies der Fall ist, zu bestimmen, ob sich der Roboter in der belegten Überlagerungszone für ein vorheriges überstrichenes Volumen eines Bewegungssegments befand.
  22. System nach Anspruch 21, wobei das Bewegungsplaner-Softwaremodul ferner dazu eingerichtet ist, den Roboter in einer aktuellen Position zu halten, wenn sich der Roboter in der belegten Überlagerungszone für das vorherige überstrichene Volumen eines Bewegungssegments befand, und den Roboter zurück zu einem vorherigen Inkrement zu bewegen, wenn sich der Roboter nicht in der belegten Überlagerungszone für das vorherige überstrichene Volumen eines Bewegungssegments befand.
  23. System nach Anspruch 14, wobei das Bewegungsplaner-Softwaremodul in der Steuerung eines Roboters, der bereit ist, eine kontinuierliche Prozesstätigkeit zu beginnen, ein überstrichenes Volumen für alle Bewegungssegmente in der kontinuierlichen Prozesstätigkeit berechnet und veröffentlicht, und dann die kontinuierliche Prozesstätigkeit startet, wenn keine Überlagerungszone, die das überstrichene Volumen für die gesamte kontinuierliche Prozesstätigkeit involviert, belegt ist.
  24. System nach Anspruch 14, wobei das Prüfen der Überlagerungszonen und der Statusdaten nach dem Berechnen eines nächsten Roboterbewegungsinkrements, und Maßnahmen die im Anschluss an die Prüfung der Überlagerungszonen ergriffen werden, als Verriegelungen in Bewegungsprogrammen implementiert sind, die von dem Bewegungsplaner-Softwaremodul in der Steuerung für jeden der Roboter ausgeführt werden.
DE102022131537.1A 2021-12-14 2022-11-29 Automatische online-verriegelungsstrategie Pending DE102022131537A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/644,123 US20230182299A1 (en) 2021-12-14 2021-12-14 Online auto-interlock strategy
US17/644,123 2021-12-14

Publications (1)

Publication Number Publication Date
DE102022131537A1 true DE102022131537A1 (de) 2023-06-15

Family

ID=86498914

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022131537.1A Pending DE102022131537A1 (de) 2021-12-14 2022-11-29 Automatische online-verriegelungsstrategie

Country Status (4)

Country Link
US (1) US20230182299A1 (de)
JP (1) JP2023088293A (de)
CN (1) CN116263716A (de)
DE (1) DE102022131537A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117325185B (zh) * 2023-11-27 2024-04-09 成都越凡创新科技有限公司 移动机器人解死锁的方法及调度设备

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004027944B4 (de) * 2004-06-08 2012-02-16 Kuka Laboratories Gmbh Verfahren zum Schützen eines Roboters gegen Kollisionen
JP4159577B2 (ja) * 2005-12-13 2008-10-01 ファナック株式会社 複数のロボット間のインターロック自動設定装置及び自動設定方法
US9144904B2 (en) * 2008-05-21 2015-09-29 Fanuc Robotics America Corporation Method and system for automatically preventing deadlock in multi-robot systems
US9707681B2 (en) * 2015-07-27 2017-07-18 Siemens Industry Software Ltd. Anti-collision management of overlapping robotic movements
JP6576255B2 (ja) * 2016-01-25 2019-09-18 キヤノン株式会社 ロボット軌道生成方法、ロボット軌道生成装置、および製造方法
CN106979785B (zh) * 2017-03-24 2020-10-16 北京大学深圳研究生院 一种面向多机器人系统的完全遍历路径规划方法
US11890758B2 (en) * 2019-08-30 2024-02-06 Intrinsic Innovation Llc Robot planning from process definition graph
US11745345B2 (en) * 2019-08-30 2023-09-05 Intrinsic Innovation Llc Planning by work volumes to avoid conflicts

Also Published As

Publication number Publication date
JP2023088293A (ja) 2023-06-26
CN116263716A (zh) 2023-06-16
US20230182299A1 (en) 2023-06-15

Similar Documents

Publication Publication Date Title
DE102012103830B4 (de) Verfahren und computerlesbare Medien zur automatischen Verbindung von gegenseitiger Blockierung in Mehrfachrobotersytemen
DE102011108282B4 (de) Numerische Steuerung für eine Mehrachsenmaschine zum Bearbeiten einer geneigten Bearbeitungsebene
DE102004019888B4 (de) Verfahren und Vorrichtung zur Begrenzung der Bewegung eines Roboters, sowie ein mit der Vorrichtung versehener Roboter
DE10162967B4 (de) Verfahren zur Steuerung eines Roboters und dieses Verfahren verwendende Robotersteuerung
DE102015015093B4 (de) Roboterprogrammiervorrichtung zum Instruieren eines Roboters für eine Bearbeitung
DE102016120763B4 (de) Verfahren zur kollisionsfreien Bewegungsplanung
DE102004027944B4 (de) Verfahren zum Schützen eines Roboters gegen Kollisionen
DE10255037A1 (de) Verfahren und Vorrichtung zum Bearbeiten eines Werkstücks
DE3806966C2 (de)
WO2013037693A2 (de) System und verfahren zur automatisierten erstellung von roboterprogrammen
DE102013008755B4 (de) Offline-Programmiersystem
DE102006007623B4 (de) Roboter mit einer Steuereinheit zum Steuern einer Bewegung zwischen einer Anfangspose und einer Endpose
EP3623116A1 (de) Verfahren und vorrichtung zur kollisionsfreien bewegungsplanung eines manipulators
DE102014224193B9 (de) Verfahren und Vorrichtung zur Fehlerhandhabung eines Roboters
DE102019118637B4 (de) Automatische pfadgenerierungsvorrichtung
EP1906281A1 (de) Verfahren und System zur Auslegung und Überprüfung von Sicherheitsbereichen eines Roboters
WO2019020818A1 (de) Effiziente programmierung von robotern für die bearbeitung von werkstücken mit verschiedenen varianten
DE102008013400B4 (de) Verfahren zur Ermittlung von Verriegelungsbereichen wenigstens eines im Raum bewegbaren ersten Objekts
DE102022131537A1 (de) Automatische online-verriegelungsstrategie
DE102019003286A1 (de) Numerische Steuerung
DE102020124734A1 (de) Simulationsgerät
DE102022122663A1 (de) Verfahren zur dynamischen geschwindigkeitsändrung für ein robotiksystem
EP3225366B1 (de) Positionsüberwachung einer kinematik
EP3819088A1 (de) Verfahren zur bestimmung eines sicherheitsbereiches und zur bahnplanung für roboter
DE2338880A1 (de) Verfahren und vorrichtungen zur steuerung der beweglichen teile einer werkzeugmaschine durch ein numerisches umriss- oder punkt-fuer-punkt-steuerungssystem, wobei zwei teile der maschine unabhaengig voneinander entlang einer gemeinsamen achse bewegt werden koennen