DE69027634T2 - Verfahren und Gerät zur Anti-Kollision und Kollisionsschutz für Mehrroboter-Anordnung - Google Patents

Verfahren und Gerät zur Anti-Kollision und Kollisionsschutz für Mehrroboter-Anordnung

Info

Publication number
DE69027634T2
DE69027634T2 DE69027634T DE69027634T DE69027634T2 DE 69027634 T2 DE69027634 T2 DE 69027634T2 DE 69027634 T DE69027634 T DE 69027634T DE 69027634 T DE69027634 T DE 69027634T DE 69027634 T2 DE69027634 T2 DE 69027634T2
Authority
DE
Germany
Prior art keywords
map
robot
memory cells
collision
world
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.)
Expired - Fee Related
Application number
DE69027634T
Other languages
English (en)
Other versions
DE69027634D1 (de
Inventor
Brian D Hoffman
Steven H Pollack
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.)
Megamation Inc
Original Assignee
Megamation Inc
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 Megamation Inc filed Critical Megamation Inc
Application granted granted Critical
Publication of DE69027634D1 publication Critical patent/DE69027634D1/de
Publication of DE69027634T2 publication Critical patent/DE69027634T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1674Programme controls characterised by safety, monitoring, diagnostic
    • B25J9/1676Avoiding collision or forbidden zones

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Numerical Control (AREA)
  • Manipulator (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Safety Devices In Control Systems (AREA)

Description

  • Die vorliegende Erfindung ist auf ein Kollisionserkennungsverfahren für eine Anordnung mit wenigstens zwei Elementen, die über eine gemeinsame Oberfläche vorgegebener Größe bewegbar sind, und eine Vorrichtung zur Kollisionserkennung in einer Roboteranordnung gerichtet.
  • Eines der Hauptprobleme, dem man sich zuwenden sollte, in jeglicher Mehrroboteranordnung ist das Problem der Kollision eines Roboterarms mit einem anderen Roboterarm. Noch ein weiteres Problem, dem man selbst in einer Einzelroboteranordnung gegenübersteht, ist das eines Arms, der mit einem feststehenden Hindernis, wie einer Teilezuführung oder einem Teil, das bereits während einer vorherigen Operation auf dem Werkstück montiert wurde, kollidiert.
  • Einer der wichtigen Vorteile einer Roboterautomatisierungs-Arbeitsstation ist ihr Durchsatz, das heißt die Menge an Arbeit, die sie in einer gegebenen Zeit und einem gegebenen Raum ausführen kann. Heutzutage waren Roboteranordnungen bemüht, den Durchsatz dadurch zu erhöhen, daß der Roboter zu schnellerer Bewegung und/oder Arbeit veranlaßt wird. Moderne Roboteranordnungen sind bemüht, das Auftreten von Kollisionen durch sequentielles Vergleichen der erwarteten Bewegung jeder Vorrichtung sequentiell mit jeder anderen Vorrichtung mit einer Bestrebung zu verhindern, die Kollision zu erkennen und ihre Herkunft zu bestimmen. Dies ist unnötig zeitaufwendig und ferner unnötig kompliziert.
  • In "A Neural Controller For Collision-Free Movement of General Robot Manipulators", Daryl H. Graf et al., Nr. 015699, 24. Juli 1988, IEEE International Conference on Neural Networks, San Diego/CA, USA, 5. 77 - 84, ist beschrieben, einen allgemeinen Robotermanipulator während einer anfänglichen, unüberwachten Trainingsphase zu trainieren. Unter Berücksichtigung der Ergebnisse der unüberwachten anfänglichen Trainingsphase in einer Hinderniskarte wird der Roboter danach zu ausgewählten Zielpunkten hin gesteuert.
  • Es ist ein Ziel der vorliegenden Erfindung, ein neues Verfahren und eine neue Vorrichtung zur Kollisionserkennung in einer Mehrroboteranordnung zu schaffen. Dies wird durch das Verfahren nach Anspruch 1 und die Vorrichtung nach Anspruch 25 erreicht.
  • Ein Beispiel der Erfindung soll unter Zuhilfenahme der Figuren beschrieben werden, welche zeigen:
  • Fig. 1 eine perspektivische Ansicht einer Mehrroboteranordnung, die das neue Kollisionserkennungsverfahren und die neue Kollisionserkennungsvorrichtung der vorliegenden Erfindung einsetzt,
  • Fig. 1a ein vereinfachtes Blockdiagramm der computergestützten Steuerung für die Anordnung von Fig. 1,
  • Fig. 2 ein Raster, das zum Beschreiben der Arbeitshülle nützlich ist, die bei der Vorrichtung und dem Verfahren der vorliegenden Erfindung eingesetzt wird,
  • Fig. 3 den Aufbau eines Computerwortes, das bei dem Verfahren und der Vorrichtung der vorliegenden Erfindung eingesetzt wird,
  • Fig. 4 einen Teil einer Kollisionskarte, der die Weise zeigt, in der ein Roboterkörper dargestellt wird,
  • Fig. 5 einen Teil einer Kollisionskarte, der die Weise zeigt, in der ein Roboterkörper und seine Versorgung darauf dargestellt werden,
  • Fig. 6 einen Teil einer Karte, der die Weise zeigt, in der eine "überstrichene" Zone eines Roboterkörpers dargestellt wird,
  • Fig. 7 eine Kollisionskarte, die die Weise zeigt, in der die Bewegung des Roboters von einer Start- zu einer Endposition dargestellt wird,
  • Fig. 8 ein schematisches Diagramm, das zum Erklären der logischen "Exklusiv-ODER"-Operation nützlich ist, die bei dem Kollisionserkennungsverfahren und der Kollisionserkennungsvorrichtung der vorliegenden Erfindung verwendet wird,
  • Fig. 9 ein schematisches Diagramm, das zum Beschreiben der logischen "Inklusiv-ODER"-Operation nützlich ist, die bei dem Kollisionserkennungsverfahren und der Kollisionserkennungsvorrichtung der vorliegenden Erfindung eingesetzt wird,
  • Fig. 10 vorgegebene Bits von "Scheiben" einer Weltkarte und einer Roboterkarte, die unter Einsatz der logischen Operationen, die in den Fig. 8 und 9 gezeigt sind, kombiniert wurden, und die zum Beschreiben des Erkennens einer Kollision nützlich sind,
  • Fig. 11a bis 11h Flußdiagramme für verschiedene Operationen der Anordnung der vorliegenden Erfindung zum Ausführen von Erkennungs- und Behebungsoperationen.
  • Der Ansatz des Verfahrens und der Vorrichtung der vorliegenden Erfindung zum Antikollisionsproblem hin besteht darin, das Problem in eine Kollisionserkennungsphase und eine Behebungs(Ausweichmanöver-) Phase aufzuspalten. Während der Kollisionserkennungsphase wird das 3-D-Kollisionserkennungsproblem in eine 2-D-xy-Erkennung, bei der die Roboterkörper auf eine gemeinsame Ebene projiziert werden, die als die Decke der Arbeitsstation betrachtet werden kann, und einen 1-D-Höhenvergleich (der in vielen Fällen weggelassen werden kann) aufgespalten. Wenn für eine gegebene beabsichtigte Bewegung keine Kollision erkannt wird, ist die Bewegung erlaubt. Wenn eine drohende Kollision erkannt wird, wird ein "Ausweich"-Manöver vorgenommen. Der zeitaufwendigste Teil dieses Ansatzes ist die Zeit, die für die Kollisionserkennungsberechnungen erforder lich ist.
  • Der bei der vorliegenden Erfindung zum Ausführen einer Kollisionserkennung verwendete Algorithmus ist ein graphischer Ansatz, bei dem "Karten" für jeden Roboterarm in der Anordnung und für die "Welt" konstruiert werden, die alle Roboter und feststehenden Gegenstände enthält. Um einen Roboter zu "bewegen", wird die durch den Roboter überstrichene Zone als eine geeignete Serie von Punkten in seine Roboterkarte eingezeichnet. Dann wird der Versuch unternommen, durch Einsetzen aller "Ein"-Punkte aus der Roboterkarte in die Weltkarte die Roboterkarte in die Weltkarte zu "übernehmen". Wenn alle der Roboterkartenpunkte erfolgreich in die Weltkarte übertragen wurden, wird die Bewegung als "nichtkollidierend" erachtet. Das Vorhandensein der Roboterkartenpunkte in der Weltkarte "weist" automatisch den Raum "zu", der zum Ausführen einer nichtkollidierenden Bewegung benötigt wird.
  • Wenn eine Bewegung abgeschlossen ist, muß der in der Weltkarte zugewiesene Raum dann freigegeben werden. Alle der "Ein"-Punkte auf der Roboterkarte werden verwendet, um ihre entsprechenden Punkte in der Weltkarte auszuschalten. Der Roboter wird dann in seiner gegenwärtigen "Warte"-Position auf der Roboterkarte gezeichnet, und das "Warte"-Bild wird dann in die Weltkarte übernommen.
  • Wie deutlich zu erkennen ist, funktioniert die Kollisionserkennung richtig und automatisch, ungeachtet der Anzahl von anderen Robotern, die bereits in der Weltkarte "installiert" sind, und funktioniert für jegliche Kombination von sich bewegenden und stationären Robotern. Tatsächlich funktioniert der Ansatz auch bei Anwesenheit einer beliebigen Anzahl von feststehenden Hindernissen, die durch eine Serie von permanent eingestellten "Ein"-Punkten in der Weltkarte dargestellt werden. Der Algorithmus der vorliegenden Erfindung erkennt, daß es oft nicht wichtig ist, zu bestimmen, mit was der Roboter kollidiert, sondern daß es vielmehr ausreichend ist, die Tatsache eines nichtfreien Raumes zu bestimmen, in welchem die beabsichtigte Bewegung unternommen werden soll.
  • Die Berechnungszeit des vorerwähnten neuen Algorithmus ist unabhängig von der Anzahl von Robotern oder feststehenden Gegenständen und hängt nur von der "Feinheit" (d.h. "Auflösung") der Kartenraster (d.h., wie viele "Punkte" erforderlich sind, um die Arbeitshülle darzustellen) und der durch die beabsichtigten Bewegungen überstrichenen Zone ab.
  • Die Anordnung der vorliegenden Erfindung setzt eine Mehrzahl von kleinen Robotern ein, die schnell und kooperativ in einem gemeinsamen Raum arbeiten. Zum Beispiel müssen in einer zweiarmigen Arbeitsstation konkurrierende Roboter typischerweise zweimal so schnell wie die Roboter der vorliegenden Erfindung sein, um einen äquivalenten Durchsatz zu erzielen, und kein bekannter, gegenwärtig verfügbarer Roboter ist zweimal so schnell wie jeglicher der Roboterarme der vorliegenden Erfindung. Wie zu erwarten ist, bieten drei- und vierarmige Arbeitsstationen noch mehr Durchsatz für dieselbe gegebene Bodenfläche, und die vorliegenden Erfindung kann sehr vorteilhaft bei drei- und vierarmigen Roboteranordnungen verwendet werden.
  • Die Roboterarme der vorliegenden Erfindung werden durch Elektromagnete angetrieben, die durch Permanentmagnete zu einer "Platte" hingezogen werden und sich längs der Platte auf einer Schicht aus Druckluft bewegen. Leistung in Form von Elektrizität und druckentlasteter Luft wird mittels einer Versorgungsleitung, die an dem Maschinenrahmen angebracht ist, von einem Steuerschrank zu jedem Roboterarm übertragen.
  • Die Anordnung löst das zusätzliche Problem, einen Roboterarm davor zu bewahren, sich mit der Versorgungsleitung eines anderen Roboterarms zu umwickeln (was als eine Form eines "Kollidierens" eines Arms mit der Versorgungsleitung eines anderen Arms angesehen werden kann). Da die Roboterarme (durch ihre Sensoren) ständig auf sich ändernde Bedingungen reagieren, muß jegliche Antikollisionslösung geeignet sein, schnell, oft in Echtzeit, bestimmt zu werden. "Echtzeit" bedeutet in diesem Zusammenhang, eine Antikollisionsstrategie schnell genug zu bestimmen, daß der Durchsatz der Arbeitsstation unbeeinflußt oder durch die Berechnung der Strategie minimal beeinflußt ist.
  • Bei vielen Roboterarbeitsstationen, und insbesondere bei der Arbeitsstation , bei der die vorliegende Erfindung sehr vorteilhaft angewandt werden kann, müssen "Kollisionen" oft nur in der xy-Ebene beachtet werden, da die Roboterarme im wesentlichen aus rechtwinkligen Festkörpern bestehen, die sich an einer oberen Platte bewegen, und daher ist eine 3-D-Kollision mit einem anderen Roboter aus der 2-D- (xy-) Projektion auf die obere Platte vorhersagbar. Ferner kann jegliche Kollision mit einem feststehenden Hindernis gewöhnlich als eine 2-D-Projektion angesehen werden, wobei die Höhe des Hindernisses getrennt berücksichtigt wird. Somit kann ein allgemeines 3-D- Kollisionsproblem oft in zwei kleinere Probleme aufgespalten werden, nämlich die 2-D-Kollision, die auf die obere Platte projiziert wird, und die 1-D-Höhenkollision. In vielen Fällen führt die "Höhen"-Kollision zu keinen neuen Informationen über 2-D-Ergebnisse hinaus, und ihre Berechnung kann vollständig weggelassen werden.
  • Somit wird das 3-D-Kollisionserkennungsproblem während der Kollisionserkennungsphase in eine 2-D-xy-Erkennung (bei der der "Fußabdruck" des Roboters auf die obere Platte projiziert wird) und einen 1-D-Höhenvergleich (der in den meisten Fällen weggelassen werden kann) zerlegt. Falls für eine gegebene oder beabsichtigte Bewegung keine Kollision erkannt wird, ist die Bewegung erlaubt. Wenn eine drohende Kollision erkannt wird, wird ein "Ausweichmanöver" vorgenommen, was vom einfachen Warten auf den benötigten Raum bis zum Freimachen rangiert, um Bewegungsversuche um den blockierten Raum durchzuführen (natürlich muß jede "versuchte" Bewegung ebenfalls auf mögliche Kollisionen hin überprüft werden).
  • Der zeitaufwendigste Teil des Ansatzes ist die Kollisionserkennungsphase, und durch einen effizienten "Erkennungs"-Algorithmus können viele "Ausweichmanöver" in Echtzeit berücksichtigt und auf Kollisionen überprüft werden.
  • Der Kollisionserkennungsalgorithmus der vorliegenden Erfindung verwendet einen graphischen Ansatz, bei dem "Karten" für jeden Roboterarm in der Anordnung und für die "Welt" aller Roboter und feststehenden Hindernisse konstruiert werden. Um eine "Bewegung" zu gestatten, wird die Zone, die durch den Roboter überstrichen wird, als eine geeignete Serie von Punkten in seine Roboterkarte eingezeichnet. Dann wird ein Versuch unternommen, durch Verschieben aller "Ein"-Punkte in der Roboterkarte in die Weltkarte die Roboterkarte in die Weltkarte zu "übernehmen". Wenn alle der Roboterkartenpunkte erfolgreich in die Weltkarte übertragen wurden, wird die Bewegung als "nichtkollidierend" erachtet, und das Vorhandensein der Roboterkartenpunkte in der Weltkarte "weist" den Raum "zu", der zum Ausführen einer nichtkollidierenden Bewegung benötigt wird.
  • Die Graphiktechnik enthält die Konstruktion von "xy"-Arbeitshüllenkarten, was die Projektion der Arbeitshüllen auf die Decke (Platte) der Arbeitsstation darstellt, die durch ein quantisiertes Raster bestehend aus gleichmäßigen Rasterquadraten dargestellt wird, von denen jedes einen vorgegebenen Bereich gleicher Größe darstellt. Jedes Rasterquadrat wird durch ein einzelnes Bit eines Computerwortes dargestellt, das in einem Speicher gespeichert wird.
  • Nach dem Erhalt einer Anforderung für eine Bewegung, wird der gesamte Bereich, der von dem Roboterkörper und seiner Versorgungsleitung überstrichen wird, in seine Roboterkarte eingezeichnet. Alle die Punkte für jene Quadrate, die von dem Roboter, der sich von seiner Ausgangsposition zur Endposition bewegt, überstrichen werden, zusammen mit den Quadraten, die den Bereich darstellen, der durch die Versorgungsleitung besetzt ist, werden auf "Ein" gestellt. Die Ausgangsposition des Roboters, für den eine Bewegung angefordert wird, wird dann durch Kombinieren aller Punkte der Roboterkarte und der Weltkarte in einer logischen "Exklusiv-ODER"-Operation aus der Weltkarte entfernt. Anschließend wird der überstrichene Bereich der Roboterkollisionskarte mit der Weltkarte unter Einsatz einer "Exklusiv-ODER"-Operation kombiniert, worauf ein Kombinieren der Karten unter Einsatz einer "Inklusiv-ODER"-Operation folgt, wobei Bytes von vorbestimmten Bits der zwei Karten nacheinander unter Verwendung der vorerwähnten logischen Operationen kombiniert werden. Die Ergebnisse der logischen Operationen werden einzeln verglichen, und falls es irgendwelche Unterschiede in irgendwelchen Quadraten gibt, resultiert ein Kollisionszustand, was die Kollisionserkennungsoperation anhält und die Zuteilung des gewünschten Raums verhindert.
  • Die Bewegungszone wird dann durch Kombinieren der Kollisionskarte mit der Weltkarte in einer "Exklusiv-ODER"-Operation aus der Weltkarte entfernt, um die versuchte Zuteilung aus der Weltkarte zu entfernen. Anschließend kann entweder versucht werden, alternative Wege zuzuteilen, oder ein stationärer Behebungsmodus kann verwendet werden, während dem der Roboter für eine vorgegebene Warteperiode stationär gehalten wird, bevor eine weitere versuchte Zuteilung begonnen wird. Falls nach der vorerwähnten logischen "Exklusiv-ODER"- oder "Inklusiv- ODER"-Operation kein Kollisionszustand vorliegt, wird die Roboterbewegung automatisch auf einer Byte-um-Byte-Basis zugewiesen und verbleibt als ein Teil der Weltkarte, was die Bewegungszone davor bewahrt, freigegeben zu werden.
  • Eine Freigabe kann entweder nach einem Abschluß der Roboterbewegung erfolgen, oder kann als eine Mehrphasenoperation erfolgen, bei der ein Teil der Bewegungszone, der von dem sich bewegenden Roboter verlassen wurde, freigegeben werden kann.
  • Die Behebungsbewegungen, die versucht werden, nachdem ein Kollisionszustand erkannt wurde, enthalten eine Reihe von Zuweisungsversuchen für alternative Routen von der Ausgangsstellung zur Endstellung, und können außerdem eine begrenzte Anzahl von inkrementierenden Schritten enthalten, die den Roboter mit einem dahingehenden Aufwand, eine Zuweisung nach dem Abschluß jedes inkrementierenden Schrittes zu suchen, allgemein zur Endstellung hin vorwärts bringen. Die Anzahl von inkrementierenden Schritten ist begrenzt, um den Roboter daran zu hindem, sich über die Grenze des Arbeitsraumes hinaus zu bewegen.
  • Die Techniken, die eingesetzt werden, um einen Kollisions- oder Nichtkollisionszustand zu bestimmen, sind einfach und werden auf Grund der Einfachheit der Operationen mit hoher Geschwindigkeit ausgeführt, wodurch ein Zuweisungsversuch (oder aus diesem Grund eine abgeschlossene Zuweisung) innerhalb der Spanne einer Millisekunde oder weniger abgeschlossen wird. Ferner gilt für die Anordnung, daß: nur eine bescheidene Menge von Speicherkapazität erforderlich ist, eine Kollisionserkennung ungeachtet der Anzahl von weiteren Robotern, die bereits in der Weltkarte "installiert" sind, sowie jeglicher Anzahl von feststehenden Hindernissen bereitgestellt wird, und die Berechnungszeit unabhängig von der Anzahl von Robotern oder feststehenden Hindernissen innerhalb der Weltkarte ist, wobei die Berechnungszeit nur von der "Feinheit" der Kartenrasterung (d.h., wieviele "Punkte" erforderlich sind, um die Arbeitshülle darzustellen) und dem Bereich abhängt, der durch die beabsichtigten Bewegungen überstrichen wird.
  • Dadurch wird noch eine weitere Aufgabe der vorliegenden Erfindung gelöst, ein neues Verfahren und eine neue Vorrichtung zur Kollisionserkennung in einer Mehrroboteranordnung zu schaffen, welche(s) einen graphischen Ansatz zum Bestimmen einer potentiellen Kollision einsetzt.
  • Es wird noch eine weitere Aufgabe der vorliegenden Erfindung gelöst, ein Verfahren und eine Vorrichtung zur Kollisionserkennung in einer Mehrroboteranordnung zu schaffen, bei dem/der Karten für jeden Arm in der Anordnung und für die "Welt" aller Roboter und feststehenden Hindernisse konstruiert werden, und wobei die Karten in einer eindeutigen und dennoch höchst einfachen Weise zum Erkennen einer Kollision kombiniert werden.
  • Es wird noch eine weitere Aufgabe der vorliegenden Erfindung gelöst, ein neues Verfahren und eine neue Vorrichtung zur Kollisionserkennung in einer Mehrroboteranordnung zu schaffen, bei dem/der Karten der Roboter und der Welt eindeutig in einer solchen Weise kombiniert werden, um Bewegungen, die von einem Roboter angefordert wurden, als einen Teil der Kollisionserkennungsoperation automatisch zuzuweisen.
  • Es wird noch eine weitere Aufgabe der vorliegenden Erfindung gelöst, ein neues Verfahren und eine neue Vorrichtung zur Kollisionserkennung zur Verwendung in einer Mehrroboteranordnung zu schaffen, bei dem/der Karten des Roboters und der Welt unter Einsatz vorgegebener logischer Operationen zur Kollisionserkennung, Zuweisung und Freigabe eines Roboterweges kombiniert werden.
  • Es wird noch eine weitere Aufgabe der vorliegenden Erfindung gelöst, ein neues Verfahren und eine neue Vorrichtung zur Kollisionserkennung in einer Mehrroboteranordnung zu schaffen, bei dem/der Versuche zum Erhalten eines Ausweichweges im Falle eines Kollisionszustandes verwendet werden, der von einem vorher angeforderten Bewegungsweg resultiert.
  • Die Fig. 1 zeigt eine Mehrroboteranordnung 10, die die Kollisionserkennungsprinzipien der vorliegenden Erfindung verkörpert und aus einem Gehäuse 12 besteht, das auf Stützen 14 angeordnet ist. Das Gehäuse 12 enthält den Steuerschrank für die elektronische Steuerung, von der einiges in der Fig. 1a gezeigt ist. Eine Mehrzahl von Betätigungstasten 16 sowie ein Berührungsschirm 18, der ebenfalls für Steuerzwecke sowie zur Anzeige eingesetzt wird, sind derart angeordnet, daß sie von außerhalb des Steuerschrankes 12 erreichbar sind.
  • Die Anordnung 10 ist von Typ einer obenliegenden Anordnung, bei der ein Förderer (nicht gezeigt) oder eine andere Form von Arbeitsoberfläche sich erstrecken kann durch oder bewegt werden kann durch die offene Region, die durch die Ständer bestimmt ist, um Werkstücke auf der Arbeitsoberfläche unter den Robotern 20, 20' auszurichten. Obwohl nur zwei Roboterarme gezeigt sind, kann in der Anordnung 10 eine größere Anzahl verwendet werden. Die Roboter sind mit der Steuerung durch eine Versorgungsleitung 20a, 20a' verbunden. Die Roboter werden durch Elektromagnete angetrieben, die innerhalb der Robotergehäuse enthalten sind, und werden zu einer oberen Platte 22, die als Aufspannfläche bezeichnet wird, durch Permanentmagnete hingezogen und gleiten längs der Platte auf einer Schicht aus Druckluft. Die Energie in Form von Elektrizität und Druckluft wird durch die Versorgungsleitungen 20a, 20a', die an dem Maschinenrahmen angebracht sind, wie bei 24, 24' gezeigt ist, von der Elektronikanordnung und dem Steuerschrank 12 zu jedem Roboter übertragen. Die Roboter enthalten xy-Antriebe, die zum Bewegen des Roboters in gegenseitig senkrechten Richtungen längs der obenliegenden Platte 22 geeignet sind und von der Art sein knnen, die in der ebenfalls anhängigen Anmeldung mit der Seriennummer 112,534 beschrieben ist, die am 26. Oktober 1987 eingereicht und dem Inhaber der vorliegenden Anmeldung übertragen wurde, wobei die besagte Anmeldung durch die Bezugnahme darauf hierin aufgenommen ist.
  • Die Fig. 1a zeigt ein Blockdiagramm der Steueranordnung zum Betreiben der Robotervorrichtungen, die unter anderen Funktionen eine Bewegungssteuerung, Bestimmung kollidierender oder nichtkollidierender Wege, Ressourcenzuweisung, Kommunikation mit externen Vorrichtungen und ähnliches bereitstellt. Die Anordnung verwendet einen Mehrcomputerbus 32, der ein Signalprotokoll einsetzt, das es mehreren Computern gestattet, mittels des Busses Peripherie gemeinsam zu benutzen und miteinander zu kommunizieren. Der Bus 32 ist vorzugsweise ein VME-Bus, was eine internationale Standard-Computerbusarchitektur zur Verwendung mit mehreren Computern ist. Die Architektur des VME- Busses stellte eine "Systemsteuerung" bereit, die Konkurrenzen für den Bus entscheidet, wenn sich mehrere Computer Busressourcen teilen. Ein Computer 34, der vorzugsweise Unterstützungsbausteine, wie Gleitpunktprozessoren, enthält, führt Berechnungen in Echtzeit aus und ist vorzugsweise eine 32-Bit- Vorrichtung, die geeignet ist, mit Taktraten im Bereich von 10 bis 25 Megahertz zu laufen. Der Computer 34 kann zum Beispiel ein Motorola Typ 68020 sein, der mit dem Motorola-68881-Gleitpunktprozessor zusammenarbeitet. Der VME-Bus 32 verbindet den Computer 34 mit der Mehrzahl von CPUs 56, 56', etc. (zu Zwekken der Vereinfachung sind nur zwei derartige CPUS gezeigt).
  • Die Hardware zum Implementieren einer Mehrcomputerumgebung kann aus Heurikon-Vorrichtungen Typ HK68-V2F oder HK68-V20 bestehen, von denen jede eine 68020-MPU, einen 68881-Gleitpunktprozessor und den VME-Bus enthält.
  • Ein Speicher 38 ist an die 68020-MPU gekoppelt und verwendet vorzugsweise Echtzeit-Mehrprogrammbetriebsoperations-Systemkernroutinen, wie VRTX (von Hunter & Ready, Inc.), um die MPU 34 mit in dem Speicher gespeicherten Daten zu bedienen, die enthalten können: Die Datenbasis des Systems, das Betriebssystem, ein Anwenderprogramm und die logischen Anweisungen des Anwenders, die alle Daten enthalten, die erforderlich sind, um zum Beispiel die Ressourcen, Bestandteile und Aufgaben zu beschreiben. Die MPU 34 ist ferner mit Sensoren gekoppelt, die
  • Daten bereitstellen, die die augenblicklichen Positionen der Robotervorrichtungen 20, 20', etc. sowie die Zustände der Ein/Ausgabe-Vorrichtungen identifizieren, die mit jedem Roboter verbunden sein können, welcher Zustand ebenfalls bei der Ausführung von Überwachungs- und Steuerfunktionen erforderlich ist. Die MPU 34 ist ferner an die Ein-/Ausgabe-Vorrichtungen gekoppelt, um die richtige Ein-/Ausgabe auszuwählen und deren Operation zu steuern (d.h. ein/aus).
  • Wie vorstehend beschrieben wurde, können die Roboter 20, 20' (sowie andere Roboter, die in der Anordnung eingesetzt werden können) zu jeglicher Position längs der Oberfläche der Platte 22 bewegt werden, wodurch die Möglichkeit von Kollisionen erzeugt wird. Auf Grund der eindeutigen Gestaltung der vorliegenden Erfindung brauchen "Kollisionen" nur in der xy-Ebene berücksichtigt werden, d.h. der Ebene der Platte 22, auf Grund der Tatsache, daß die Roboter 20, 20' im wesentlichen rechtwinklige parallelflächige Festkörper sind, die einen relativ kleinen "Fußabdruck" haben und sich längs der Platte bewegen, so daß jegliche 3-D-Kollision mit einem anderen Roboter von einer 2-D- (xy-) Projektion auf die Platte 22 vorhersagbar ist. Ferner kann jegliche Kollision mit einem feststehenden Hindernis üblicherweise als eine 2-D-Projektion betrachtet werden, wobei die Hindernishöhe getrennt berücksichtigt wird. Somit kann das allgemeine 3-D-Kollisionsproblem in zwei kleinere Probleme aufgespalten werden, nämlich die auf die Platte projizierte 2-D-Kollision und die 1-D-Höhenkollision. In vielen Fällen stellt die "Höhenkollision" keine neuen Informationen über das 2-D-Ergebnis hinaus bereit, und seine Berechnungen können vollständig weggelassen werden.
  • Das Antikollisionsproblem wird gemäß der vorliegenden Erfindung in eine Kollisionserkennungsphase und eine Behebungs(Ausweichmanöver-) Phase aufgespalten. Während der Kollisionserkennungsphase wird das 3-D-Kollisionserkennungsproblem in die 2-D-xy-Erkennung und den 1-D-Vergleich zerlegt. In dem Fall, in dem für eine gegebene beabsichtigte Bewegung keine Kollision erkannt wird, ist die Bewegung erlaubt. Wenn eine drohende Kollision erkannt wird, wird ein "Ausweichmanöver" vorgenommen, welches Manöver vom einfachen Warten auf den benötigten Raum bis zum Freimachen rangiert, um Bewegungsversuche um den blockierten Raum durchzuführen, wobei die "versuchte" Bewegung ebenfalls auf mögliche Kollisionen hin überprüft wird.
  • Obwohl die Kollisionserkennungsphase der zeitaufwendigste Teil des Ansatzes ist, verwendet die vorliegende Erfindung einen höchst wirksamen "Erkennungs"-Algorithmus, der es ermöglicht, daß auf einer Echtzeitbasis viele "Ausweichmanöver" berücksichtigt und auf Kollision überprüft werden.
  • Der Algorithmus der vorliegenden Erfindung, der zur Kollisionserkennung (was auch "Leitungsentwirren" als einen speziellen "Kollisions"-Fall enthält) verwendet wird, ist ein graphischer Ansatz, bei dem "Karten" für jeden Roboterarm in der Anordnung und für die "Welt" aller Roboter und feststehenden Hindernisse konstruiert werden. Jede Karte stellt eine zweidimensionale Projektion der Arbeitshülle der Arbeitsstation dar, d.h. die Karten sind die Arbeitshülle der Arbeitsstation, wie sie zum Beispiel von der Oberfläche der Platte 22 gesehen wird. Jede Karte besteht aus einem Raster von "Punkten", wobei jeder Punkt ein kleines quantisiertes Quadrat der Plattenoberfläche darstellt, welche Punkte zusammengenommen die gesamte Plattenoberfläche darstellen. Gemäß der Erfindung stellt ein "Aus"-Punkt in der Karte freien Raum dar, und ein "Ein"-Punkt stellt das Vorhandensein von Materie dar, die zum Beispiel der "projizierte" Roboterkörper oder seine Versorgungsleitung oder jeglicher stationäre Gegenstand sein kann, wie eine Teilezuführung. Um eine "Bewegung" durchzuführen, wird der Bereich, der von dem Roboter und seiner Versorgungsleitung überstrichen wird, in seine Roboterkarte als eine geeignete Serie von Punk ten eingezeichnet. Dann wird ein Versuch unternommen, die Roboterkarte durch Verschieben aller "Ein"-Punkte von der Roboterkarte in die Weltkarte auf einer Byte-um-Byte-Basis in der "Welt"-Karte zu "installieren". Wenn irgend ein "Ein"-Punkt der Roboterkarte über einem "Ein"-Punkt der Weltkarte installiert wird, wird eine (potentielle) Kollision signalisiert. Die beabsichtigte Bewegung wird durch "Löschen" des Teils der Bewegungszone, die in die Weltkarte eingetragen wurde, bis zu dem Punkt entfernt, bei dem eine Kollision erkannt wurde, und dann wird ein Ausweichmanöver unternommen. Anschließend werden die Roboter- und Weltkarten jeweils in ihre Ursprungszustände zurückgeführt. Wenn jedoch alle Roboterkartenpunkte erfolgreich zur Weltkarte übertragen wurden, wird die Bewegung als "nichtkollidierend" erachtet. Das Vorhandensein der Roboterkarten-"Punkte" in der Weltkarte "weist" den zum Ausführen einer nichtkollidierenden Bewegung erforderlichen Raum "zu". Somit wird, wenn irgend eine andere Roboterbewegung versucht, in den zugewiesenen Raum einzudringen, dies während des Punktinstallationsprozesses erkannt.
  • Wenn eine Bewegung abgeschlossen ist, muß der zugewiesene Raum in der Weltkarte freigegeben werden, welche Operation effizient unter Verwendung der Roboterkarte ausgeführt wird. Alle "Ein"-Punkte in der Roboterkarte werden verwendet, um ihren entsprechenden Punkt in der Weltkarte auf "AUS" zu stellen. Der Roboter wird dann in seiner "Warte"-Position in der Roboterkarte eingezeichnet, und das "Warte"-Bild wird in die Weltkarte übernommen. Anschließend können die Antikollisionsberechnungen nun für jeden der anderen Roboter oder für eine nachfolgende Operation, die von dem Roboter ausgeführt werden soll, der eine Operation beendet, fortgesetzt werden.
  • Es ist wichtig zu beachten, daß die Kollisionserkennung ungeachtet der Anzahl von anderen Robotern, die bereits in der Weltkarte "installiert" sind, richtig funktioniert, und für jede Kombination von sich bewegenden und stationären Robotern funktioniert. Tatsächlich funktioniert der Ansatz auch beim Vorhandensein einer beliebigen Anzahl von feststehenden Hindernissen, die durch eine Serie von permanent in der Weltkarte installierten "Ein"-Punkten dargestellt werden, welches Ergebnis aus der Tatsache hervorgeht, daß der Algorithmus vor Kollisionen einer beabsichtigten Roboterbewegung mit allem, was gegenwärtig in der Welt ist, schützt. Vergleichsweise überprüfen die Algorithmen einer herkömmlichen Anordnung methodisch den Weg eines gegebenen Roboters nacheinander mit jedem anderen Gegenstand in der Welt, wohingegen der Algorithmus der vorliegenden Erfindung erkennt, daß es oft nicht wichtig ist, zu bestimmen, mit was der Roboter kollidiert, sondern es vielmehr ausreichend ist, die Tatsache eines nicht freien Raums zu bestimmen, in den eine beabsichtigte Bewegung eingreift. Der Algorithmus der vorliegenden Erfindung hat eine Berechnungszeit, die unabhängig von der Anzahl von Robotern oder feststehenden Hindernissen ist, und nur von der "Feinheit" des Kartenrasters (d.h., wieviele "Punkte" verwendet werden, um die Arbeitshülle darzustellen) und dem Bereich abhängt, der von den beabsichtigten Bewegungen überstrichen wird.
  • Der Algorithmus der vorliegenden Erfindung erkennt, daß es oft nicht wichtig ist, zu bestimmen, mit was der Roboter kollidiert, sondern lediglich die Tatsache eines nicht freien Raums zu bestimmen, in dem die beabsichtigte Bewegung vorgenommen werden soll. Diese reduzierte Anforderung gestattet den Einsatz von graphischen Techniken, die "Ja/Nein"-Typ-Ergebnisse hervorbringen, obwohl sie typischerweise keine Informationen bereitstellen, mit was der Roboterarm kollidiert.
  • Die graphische Technik der vorliegenden Erfindung enthält die Konstruktion von "xy"-Arbeitshüllenkarten, die die Projektion der zweidimensionalen Arbeitshülle auf die Platte 22 der Arbeitsstation darstellen.
  • Die Fig. 2 zeigt die Projektion der Arbeitshülle überlagert mit einem quantisierenden Raster. In dem gegebenen Beispiel wird das Raster als ein 64 x 64-Raster zum Darstellen eines 64 Inch mal 64 Inch Arbeitsbereiches herangezogen, woraus sich ergibt, daß jedes Rasterquadrat ein Quadratinch darstellt. Für die Computerausführung stellt jedes Rasterquadrat ein einzelnes Bit in einen Computerwort dar. Da viele moderne Computer oft 32-Bit-Wörter verwenden, kann das gesamte Raster (oder die gesamte Kollisionskarte) in dem Beispiel von Fig. 2 effizient durch 128 Computerwörter dargestellt werden, von denen jedes eine 32-Bit-Länge hat. Ein feineres Raster bedeutet einfach, daß mehr Computerspeicher erforderlich ist, um die gesamte Arbeitshülle zu speichern, jedoch können feinere Bereiche (d.h. weniger als ein Quadratinch Größe) verwendet werden, wenn es gewünscht wird. Bereiche von 0,125" wurden bei der vorliegenden Erfindung eingesetzt. Der durch ein Rasterquadrat dargestellte Bereich ist der MINIMALSEPARATIONSBEREICH zwischen einem Roboter und jedem anderen Roboter oder feststehenden Hindernis. Die Orte von Gegenständen im Raum können als eine Serie von "Ein"- und "Aus"-Bits in der Karte dargestellt werden, wie nachfolgend hierin angegeben wird.
  • Der Kollisionserkennungsalgorithmus verwendet eine Arbeitshüllenkarte für jeden Roboter und eine separate Karte für die "Welt". Die Karte für den Roboter 20 ist zum Beispiel initialisiert, um nur den Ort des Körpers des Roboters 20 und seiner Versorgungsleitung 20a zu enthalten. Ähnlich enthält die Karte für den Roboter 20' nur jene räumlichen Informationen, die den Roboter 20' und die Leitung 20a' darstellen. In ähnlicher Weise werden Karten für zusätzliche Roboter nur räumliche Informationen für jenen speziellen Roboter (und Leitung) enthalten.
  • Die "Weltkarte" stellt dar und enthält alle die Gegenstände, die für eine Antikollision zu berücksichtigen sind, das heißt, alle Roboterkörper, alle Versorgungsleitungen und alle feststehenden Hindernisse, wie Teilezuführungen und ähnliches.
  • In der Praxis wurde herausgefunden, daß ungefähr 8000 (8K) Bytes Computerspeicher zufriedenstellend sind, um eine typische Karte zu speichern. Somit sind für eine Vier-Roboter Anordnung ungefähr 40 KBytes Speicher erforderlich, welches Erfordernis bei Verwendung gegenwärtig verfügbarer Prozessoren, wie dem Motorola 68020, der zum Beispiel in dem System- Blockdiagramm der Fig. 1a gezeigt ist, leicht erfüllt wird.
  • Wie vorstehend beschrieben wurde, ist die xy-Arbeitshülle in den Kollisionskarten in ein quantisiertes Raster aufgeteilt. Um die Raster in dem digitalen Computer darzustellen, wird jedes Rasterquadrat als ein einzelnes Bit in einem Computerwort genommen. Bei einem 32-Bit-Computer, d.h., bei einem Computer, der zum Behandeln von Bytes mit 32 Bit Länge geeignet ist, wie der Motorola 68020, werden die ersten 32 Quadrate, beginnend mit Spalte 1, als ein Wort (oder "Byte") gespeichert, die nächsten 32 Quadrate von Reihe eins, beginnend mit Spalte 3, werden als das nächste Wort in dem Speicher gespeichert, und so weiter. Dasselbe Muster gilt für Reihe zwei, Reihe drei, etc.
  • Wenn das gesamte Quadrat, das ein gegebenes Bit darstellt, nur LEER-RAUM enthält, wird sein "Darstellungsbit" auf NULL gesetzt. Wenn irgend eine Materie, wie ein Teil eines Roboterkörpers, gefunden wird in oder irgend einen Teil "berührt" von dem entsprechenden Rasterquadrat, egal, ein wie kleiner Teil besetzt oder "berührt" wird, wird das "Darstellungsbit" auf EINS gesetzt. Zum Beispiel stellt unter der Annahme, daß jedes Bit ein Quadratinch ist, das in der Fig. 3 gezeigte Computerwort "Materie" in den ersten sechs Quadratinches der oberen linken Ecke einer Kollisionskarte dar, welcher Bereich eine Länge von sechs Inch und eine Breite von einem Inch darstellt, wohingegen der Reste der Reihe aus leerem Raum besteht.
  • Ein Roboterkörper wird durch seine xy-Projektion auf die Plattenoberfläche 22 dargestellt, die die Decke der Arbeitsstation darstellt. Unter Berücksichtigung der Anordnung von Fig. 1, die rechtwinklige, kartesische Roboter einsetzt, wird jeder Roboterkörper durch eine rechtwinklige Serie von "Einsen" in der Roboterkarte und der Weltkollisionskarte dargestellt, wie in der Fig. 4 gezeigt ist, in der die Region 40, die durch die dicke schwarze Linie definiert ist, im wesentlichen die Außenlinie oder den Umfang des Roboters darstellt, wobei jedes der Quadrate, die innerhalb der Region 40 liegen, in dem "Eins"- Zustand ist.
  • Die Ausgangsstellung des stationären Roboterkörpers, die durch die Region 40 dargestellt ist, ist in seiner zugehörigen Roboterkollisionskarte an dem genauen Ort "eingezeichnet", den er besetzt, und ist ferner in der Weltkollisionskarte eingezeichnet, die zum Initialisieren aller dieser Karten für folgende Kollisionserkennungsoperationen dient. Siehe Fig. 11a.
  • Eine Roboterversorgungsleitung, wie die Leitungen 20a und 20a', die in der Fig. 1 gezeigt sind, wird durch ihre xy-Projektion auf die Oberfläche der Platte 22 dargestellt, welche Darstellung aus einer linearen Serie von "Einsen" in sowohl der Roboter- als auch der Weltkollisionskarte besteht. Die "Einsen" beginnen an der Anbringung 24 (oder 24') der Versorgungsleitung an dem Rahmen der Anordnung und setzen sich in der besten ununterbrochenen geraden Linienannäherung fort, die am Anbringungspunkt am Roboterkörper endet. Der Ausdruck "ununterbrochen" im Zusammenhang mit der vorliegenden Erfindung bedeutet, daß von jeglichem "Ein"-Bit, das die Versorgung darstellt, wenigstens eines seiner acht "benachbarten" Bits ebenfalls im "Ein"-Zustand sein muß. Ein "Nachbar" ist eines der drei oberen, drei unteren oder zwei seitlichen Bits, die ein gegebenes Bit in der Karte umgeben. Dieses Erfordernis stellt eine korrekte Bestimmung einer Leitungsentwirrung während der Kollisionserkennungsberechnung sicher. Zu beachten ist Fig. 5, die jene Quadrate zeigt, die durch eine binäre "Eins" besetzt sind, die den Roboterkörper und seine Versorgungsleitung darstellen, die vom Maschinenrahmen zum Roboterkörper verläuft. Die Versorgungsleitung 20a ist in der Fig. 5 als eine durchgezogene diagonale Linie gezeigt. Es sollte beachtet werden, daß jegliches Quadrat, in dem irgend ein Teil der Versorgungsleitung hindurchgeht oder es "berührt", in dem "Eins"-Zustand beibehalten wird.
  • Die Ausgangsstellung der stationären Roboterversorgungsleitung ist in ihrer zugehörigen Roboterkollisionskarte sowie der Weltkollisionskarte "eingezeichnet", die somit zum Initialisieren der Karten für die nachfolgenden Kollisionserkennungsberechnungen dienen.
  • Feststehende Hindernisse werden einfach durch ihre xy-Projektion auf die Oberfläche der Platte 22 dargestellt. Jegliches Rasterquadrat, das die "Materie" enthält, ist auf "Eins" gesetzt, während leerer Raum auf "Null" gesetzt ist. Das Muster von "Einsen" und "Nullen" wird vollständig von der Form des Hindernisses erhalten, das jegliche beliebige Form haben kann, und verändert die Effektivität der vorliegenden Erfindung nicht.
  • Anders als der Roboterkörper und die Versorgungsleitung werden feststehende Hindernisse nur in die Weltkollisionskarte "eingezeichnet" und brauchen nicht in die Roboterkarte eingezeichnet werden. Um ein feststehendes Hindernis zu "entfernen", werden die "Einsen", die die "Materie" des feststehenden Hindernisses in der Arbeitsfläche darstellen, (nur) in der Weltkarte auf "Null" gestellt.
  • Um Raum für eine beabsichtigte Bewegung zuzuweisen, ist es erforderlich, die "überstrichenen" Zonen zu berechnen. Bevor irgend welche Bewegungen durchgeführt werden, werden alle Kollisionskarten initialisiert. Roboterkarten enthalten das "Bild" des Roboterkörpers und der Versorgungsleitung für den gegebenen Roboter, die an der richtigen Stelle in der Arbeitshülle eingezeichnet werden. Die Weltkarte enthält das Bild aller Roboter, Versorgungsleitungen und feststehenden Hindernisse.
  • Die beim Erkennen einer potentiellen Kollision während der Roboterbewegung enthaltenen Schritte werden nun betrachtet. Siehe Fig. 11c.
  • Ohne Verzicht auf die Allgemeingültigkeit berücksichtigen wir eine Bewegung durch Roboter 20 von den xy-Koordinaten (0,0) zu den Koordinaten (3,5). Als "Ort" des Roboters wird der Ort der Mitte seines Roboterkörpers genommen. Für das gegebene Beispiel wird angenommen, daß der Roboterkörper fünf Inch lang und drei Inch breit ist, und daß jeder Raster-"Punkt" einen Ein-Quadratinch-Bereich darstellt, wie zum Beispiel in der Fig. 6 gezeigt ist.
  • Um den Roboter zu bewegen, wird zuerst der von dem Roboterkörper überstrichene Bereich bestimmt. Die Linie 1 und die Linie 2 werden, wie in der Fig. 6 gezeigt ist, konstruiert, wobei die Linie 1 von unten rechts des Roboterkörpers an der (0,0) Koordinate nach unten rechts des Roboterkörpers an der Koordinate (3,5) verläuft. Die Linie 2 verläuft von oben links des an der Koordinate (0,0) angeordneten Roboterkörpers nach oben links des Roboterkörpers an der Koordinate (3,5). Alle Rasterquadrate, die von den Linien 1 oder 2 berührt werden, werden ebenso wie der Bereich, der von den Linien 1, 2 eingeschlossen ist, sowie die Roboterkörper in der Ausgangs- und Endposition auf "Eins" gesetzt. Die Operationen zum Berechnen der Linien 1 und 2 sind unkompliziert und werden zu Zwecken der Einfachheit hier weggelassen, wobei eine Technik, die geeignet ist, für diesen Zweck eingesetzt zu werden, in der vorerwähnten, ebenfalls anhängigen Anmeldung mit der Seriennr. 112,534 beschrieben ist.
  • Die durch die Anfangs- und End-Roboterposition besetzten Positionen und die von dem Roboter beim Bewegen zwischen diesen zwei Positionen überstrichenen Regionen bewirken, daß jegliches Quadrat, über dem der überstrichene Bereich liegt, in eine "Eins" umgewandelt wird.
  • Nach dem Konstruieren des Bereichs, der von der Roboterkörperbewegung auf der Roboterkarte überstrichen wurde, muß nun die Wirkung der Versorgungsleitung berücksichtigt werden. Ein Ansatz ist, den gesamten Bereich einzuzeichnen, der von der Versorgungsleitung umfaßt wird, wenn sie sich von der Ausgangszur Endposition bewegt. Da jedoch die Versorgungsleitung in der Praxis flexibel ist (anders als die Roboterkörper, die stabil sind), ist es oft unnötig, den gesamten von der Versorgungsleitung überstrichenen Bereich einzubeziehen. Es wurde herausgefunden, daß es ausreichend ist, die Versorgungsleitung nur so einzuzeichnen, wie sie in der Endposition erscheint, wobei der Bewegungsbereich gemäß der Bewegung der Versorgungsleitung ignoriert wird. Somit wird die Karte, wie sie in der Fig. 7 gezeigt ist, verwendet, um den Bereich darzustellen, der überstrichen wird, wenn der Roboter 20 seine Bewegung durchführt, und stellt auch die Endposition der Versorgungsleitung dar.
  • Als nächstes wird die Roboterkarte zunächst durch Entfernen der alten Roboterposition für die Bewegung vorbereitet, was einfach durch Löschen der Karte auflauter "Nullen" vorgenommen werden kann.
  • Um die richtigen Punkte auf der Roboterkarte zu installieren, wurden Routinen geschrieben, um alle Bits von der Ausgangszur End-Roboterposition und des gesamten eingeschlossenen Bereichs dazwischen einzuschalten. Der Schritt erfordert nur die unkomplizierte Konstruktion von Linien und wird zu Zwecken der Einfachheit nicht im Einzelnen erörtert, wobei auf die Beschreibung Bezug genommen wird, die in der ebenfalls anhängigen Anmeldung mit der Seriennr. 112,534 angegeben ist. Schließlich wird die Versorgungsleitung eingezeichnet, wie sie unter der Annahme einer erfolgreichen Bewegung von der Aus gangs- zur Endposition in der Endposition erscheinen würde.
  • Die Installation in die Roboterkarte erfordert keine Vergleiche und ist unkompliziert. Der nächste Schritt, die Übernahme des Bildes in die Weltkarte, enthält die kritischen Vergleiche, die die Kollisionserkennungsoperation bilden. Siehe Fig. 11b.
  • Zuerst wird unter Berücksichtigung des Falls einer potentiellen Kollision, wenn eine Roboterbewegung beabsichtigt ist, das "initialisierte" Bild des Roboters zunächst selektiv aus der Weltkollisionskarte gelöscht. Der Ausdruck "selektiv" wird verwendet, weil die anderen Daten in der Weltkarte, nämlich die anderen Roboter und feststehenden Hindernisse, nicht gelöscht werden dürfen. Siehe Fig. 11d.
  • Ein äußerst wirksames Verfahren, das zum selektiven Löschen der Weltkarte verwendet werden kann, vorausgesetzt, daß die vorliegende Anordnung eine Datendarstellung gewählt hat, enthält die Verwendung einer bitweisen Logikoperation, die als ein logisches "Exklusiv-ODER" bezeichnet wird, was in der Fig. 8 gezeigt ist und was ein eingebauter Befehl in modernen Prozessoren, wie zum Beispiel dem Motorola 68020, ist. Diese logische Binäroperation zwischen zwei Operanden bewirkt, daß das Ausgabebit auf "Null" gelöscht wird, wenn beide Eingabebits "Null" sind, oder wenn beide Eingabebits "Eins" sind. Der einzige Fall, in dem das Ausgabebit auf "Eins" gesetzt wird, ist, wenn nur eines der Eingabebits auf "Eins" gesetzt ist. Die "Exklusiv-ODER"-Logikoperation steht im Gegensatz zur "Inklusiv-ODER"-Logikoperation, bei der ein Ausgabebit auf "Eins" gesetzt wird, wenn eine (oder beide) ihrer Eingabebits "Eins" ist/sind, wie durch die Darstellung von Fig. 9 gezeigt ist.
  • Unter Rückbezug darauf, daß eine Roboterkarte als ein Ausgangszustand nur ihren gegebenen Roboterkörper und Versorgungsleitung enthält, wohingegen die Weltkarte alle Roboter und feststehenden Hindernisse enthält, wird durch Verwenden von "Exklusiv-ODER" einer Roboterkarte mit der Welt das Roboterbild in der Welt mit 32 Bit (d.h. ein Byte) auf einmal selektiv gelöscht, wenn ein 32-Bit-Prozessor verwendet wird. Um diese Operation besser zu verstehen, sollte man sich erinnern, daß alle "Nullen" in der Roboterkarte (die "leeren Raum" dar stellen) ihre entsprechende Position in der Weltkarte nicht ändern werden. Dies trifft zu, da das "Exklusiv-ODER" der "Null" mit einem "B"-Bit (wobei "B" entweder "Eins" oder "Null" sein kann) der ungeänderte Wert "B" ist. Ferner werden alle "Einsen" in der Roboterkarte (die einen Teil des Roboterkörpers oder der Versorgungsleitung darstellen) das entsprechende Bit in der Weltkarte veranlassen, auf "Null" gelöscht zu werden. Dies trifft zu, da das entsprechende Weltkartenbit als eine "Eins" startet, und die logische "Exklusiv-ODER"-Operation von "Eins" und "Eins" "Null" ist.
  • Wie vorher angegebenen wurde, wird das Löschen durch Kombinieren der 32-Bit-Bytes der Roboterkarte mit den zugehörigen 32- Bit-Bytes der Weltkarte auf einer Byte-um-Byte-Basis ausgeführt, wobei die typische Operation eine ist, bei der jedes zugehörige Bit von den 32-Bit-Bytes durch die logische "Exklusiv-ODER"-Operation mit den Bits kombiniert wird, die in einer aufeinanderfolgenden oder sequentiellen Weise kombiniert sind. Nach der Beendigung des Kombinierens von zugehörigen Bits der zugehörigen Bytes werden die nächsten zugehörigen Bytes der Roboter- und Weltkarte aus dem Speicher extrahiert und in einer ähnlichen Weise kombiniert, d.h. sequentiell pro Bit und sequentiell pro Byte, bis alle Bytes für den gesamten Arbeitsraum so kombiniert wurden.
  • Nachdem der gewünschte Roboter selektiv aus der Weltkarte gelöscht wurde, wird die Roboterkarte gelöscht (entweder durch Setzen aller Quadrate direkt auf "Null", oder durch "Exklusiv- ODER" der Roboterkarte mit sich selbst, was dasselbe Ergebnis erreichen wird). Der durch die Bewegung überstrichene Bereich wird berechnet und in der Roboterkarte installiert, wie es oben beschrieben wurde. Dieser Bereich hat auf Grund der Berücksichtigung des Gesamtbereichs, der von der Bewegung überstrichen wird, mehr "Materie" als ein stationärer Roboter.
  • Der nächste Schritt enthält das Übernehmen der Roboterkarte in die Weltkarte in einer Byte-um-Byte-Weise, was tatsächlich das Kollisionserkennungsprogramm ausführt, sowie automatisches Bereitstellen der Zuweisung. Die Roboterkarte wird in die Weltkarte gemäß der folgenden Prozedur übernommen (siehe Fig. 11c):
  • Das erste Wort, das ein 32-Bit-Byte der Roboterkarte ist, erfährt ein "Exklusiv-ODER" mit dem entsprechenden (ersten) Wort in der Weltkarte, und das Ergebnis wird in "Exklusiv-ODER" gesichert. Wie aus der Fig. 10 zu ersehen ist, erzeugt das Ergebnis ein Wort, in dem ein Bit "Eins" sein wird, wenn in dem Roboterwort oder dem Weltwort eine "Eins" war, nicht aber, wenn in beiden Kartenpositionen gleichzeitig eine "Eins" war. Eine "Eins" an denselben Bitpositionen in beiden Karten stellt den Fall dar, in dem es in der Welt eine Materie gibt, die mit dem für den Roboter zum Bewegen benötigten Raum kollidiert. Um zu erkennen, daß dieser Fall aufgetreten ist, wird das erste Wort (d.h. Byte) in der Roboterkarte als nächstes mit dem entsprechenden (ersten) Wort in der Weltkarte einem "Inklusiv- ODER" unterzogen, und das Ergebnis wird in "ODER" gesichert. Die Fig. 10 zeigt, daß das Ergebnis eine "Eins" in allen Bit- Positionen enthält, die in entweder der Roboter- oder der Weltkarte "Eins" sind, einschließlich der "Kollisionsbits". Nun wird zwischen dem in dem "Exklusiv-ODER" und dem "ODER" gesicherten Wörtern eine Gleichheitsüberprüfung ausgeführt, um den Kollisionszustand zu erkennen. Wenn die "Exklusiv-ODER"- und die "ODER"-Wörter gleich sind, gibt dies an, daß es in dem Streifen des Arbeitsraums, der durch die untersuchte Kartenwelt dargestellt wird, keine Kollision gibt. In diesem Fall wird das Ergebnis ("Exklusiv-ODER" oder "ODER") gesichert und in die Weltkarte als die neue Weltkarte übernommen. Wenn die "Exklusiv-ODER"- und "ODER"-Wörter nicht gleich sind, ist dies eine Indikation, daß eine drohende Kollision für den überprüften Streifen erkannt wurde. Der "Exklusiv-ODER"/"ODER"-Test wird für jedes Wort in der Roboterkarte wiederholt. Tatsächlich kann jedes "ALLES-NULLEN"-Wort in der Roboterkarte übersprungen werden, da es ungeachtet des Wortes der Weltkarte, mit dem es verglichen wird, nicht möglicherweise die Kollision verursachen kann. "Alles-Null"-Bytes werden automatisch überprüft und identifiziert von dem Motorola 68020-Prozessor durch Setzen eines Merkerbits. Durch Untersuchen des Merkerbits kann das Byte übersprungen werden, wenn es aus lauter Nullen besteht, wodurch die Verarbeitungszeit wesentlich verringert wird. Wenn einmal ein Vergleichstest eine drohende Kollision angibt, wird der Vergleichstest angehalten und die Bewegung wird als "in Kollision" deklariert.
  • Es sollte beachtet werden, daß das vorstehend beschriebene Verfahren nicht unter Kollisionen zwischen Robotern, Versorgungsleitungen und feststehenden Hindernissen unterscheidet. Es ist nur wichtig, daß ein für die beabsichtigte Bewegung erforderlicher Raum in der Welt nicht zur Verfügung steht. Der genaue Grund für die Kollision (Roboter, Versorgung, Hindernis) ist unwichtig, und als ein Ergebnis wird somit dieser sehr schnelle Algorithmus verwendet, um die Tatsache einer Kollision zu erkennen, obwohl der Grund für die Kollision nicht erkannt wurde.
  • Es sollte ferner beachtet werden, daß die Zeit zum Ausführen der Berechnungen unabhängig von der Anzahl von "Einsen" in der Weltkarte ist, und daher unabhangig von der Anzahl von Hindernissen oder Robotern in der Weltkarte ist. Die Berechnungszeit hängt nur von der "Feinheit" oder Auflösung des Rasters (ein feineres Raster erfordert mehr Speicher und daher mehr Berechnungen, um eine vollständige Überprüfung auszuführen) und ferner von der Größe einer beabsichtigten Bewegung ab (da eine Bewegung über eine größere Distanz in der Roboterkarte mehr Nicht-Null-Einträge haben wird, die geprüft werden müssen).
  • Wenn eine drohende Kollision bestimmt wurde, müssen die Karten in ihren ursprünglichen Zustand zurückgesetzt werden. Das Teilbild der beabsichtigten Bewegung wird selektiv aus der Weltkarte gelöscht durch Ausführen einer "Exklusiv-ODER"-Operation auf alle Wörter (d.h. Bytes), die bereits in die Weltkarte übertragen wurden (bis die erste "Kollision" erkannt wurde). Die Roboterkarte wird dann gelöscht, der gegenwärtige stationäre Ort des Roboters wird in die Roboterkarte eingezeichnet und dann neu in die Weltkarte eingezeichnet (üblicherweise durch eine "ODER"-Operation). Die Karten sind nun bereit für zusätzliche Kollisionserkennungsoperationen, und der Anwender weiß, daß die beabsichtigte Bewegung unerlaubt ist.
  • Jedes Byte, in dem es "keine Kollision" gibt, wird in die Weltkarte eingetragen. Wenn der Vergleich aller Wörter, bei dem die Exklusiv-ODER- und ODER-Wörter in derselben Weise, wie oben beschrieben wurde, verglichen werden, einen "keine Kollision"-Zustand erkennt, wird die beabsichtigte Bewegung als sicher erachtet.
  • Es sollte beachtet werden, daß der gesamte Vorgang des Übertragens der Roboterkarte in die Weltkarte die Weltkarte für jegliche nachfolgende Kollisionserkennungsüberprüfung aktualisiert, die ausgeführt wird, während der Roboter 20 (zum Beispiel) in Bewegung ist. Das heißt, daß während der Bewegung des Roboters 20 der gesamte Bereich, der von der Bewegung überstrichen wird, in der Weltkarte geeignet "zugewiesen" ist. Unter der Annahme, daß der Roboter 20' eine Bewegung beabsichtigt, darf der Bereich, den der Roboter 20' bein Bewegen zu seinem gewünschten Ziel überstreicht, nicht mit irgend einem der stationären Roboter, feststehenden Hindernissen oder der Bewegungszone, durch die sich der Roboter 20 bewegt, kollidieren. Die Welt berücksichtigt dies geeignet. Das Ergebnis kann darin geringfügig pessimistisch sein, daß der Roboter 20 bereits den Punkt auf seiner Bahn passiert hat, der die Bewegung des Roboters 20' stören wurde. Jedoch versagt die Kollisionserkennung nie, eine mögliche Kollision zu erkennen. Da zusätzlich Roboterbewegungen von kurzer Dauer sind (unter einer Sekunde) , ist das Warten auf eine Bewegung, die abgeschlossen werden soll, üblicherweise keine schlimme Belastung. Schließlich kann die Bewegung "im Flug" untersucht werden, und Raum kann freigegeben werden, wenn sich ein Roboter bewegt, wenn eine maximale Leistung entweder gewinscht oder erforderlich ist.
  • Um Raum nach einer abgeschlossenen Bewegung freizugeben, müssen die Roboter- und Weltkarten, die den gesamten Bereich enthalten, der von der Bewegung überstrichen wird, entweder während oder beim Abschluß einer Bewegung freigegeben werden. Siehe Fig. 11e.
  • Um einen Bewegungsraum freizugeben, wenn eine Bewegung abgeschlossen wurde, wird die Weltkarte durch "Exklusiv-ODER"-Anwendung der "Zuweisungsraum"-Roboterkarte in der Weltkarte selektiv gelöscht. Anschließend wird die Roboterkarte auf Null bereinigt und die Endposition des Roboterkörpers und seiner Versorgungsleitung werden in die Roboterkarte eingezeichnet und anschließend mit "ODER" in die Weltkarte übernommen. Die Karten sind nun bereit für zusätzliche Kollisionserkennungsberechnungen.
  • Wenn eine Bewegung als keine Kollision erzeugend bestimmt ist (und daher erlaubt ist), enthalten die Roboter- und Weltkarten den gesamten Bereich, der von der Bewegung während der Bewegung überstrichen wird. Wenn eine Bewegung teilweise abgeschlossen ist, aber noch im Ablauf ist, kann der Raum, der für die Bewegung nicht länger erforderlich ist, freigegeben werden, wodurch ein Teil der Arbeitshülle früher freigegeben wird, als es für die nächste Anforderung zum Abwarten einer vollständig abgeschlossenen Bewegung erforderlich wäre. Mit der Geschwindigkeit moderner Computer, wie dem Motorola 68020, kann die Bewegung teilweise wenigstens einmal während der Bewegung sowie am Ende der Bewegung freigegeben werden.
  • Um einen Bewegungsraum teilweise freizugeben, wird die Weltkarte durch "Exklusiv-ODER" der zugewiesenen Raum-Roboterkarte in der Weltkarte selektiv gelöscht. Siehe Fig. 11d. Die Roboterkarte wird dann auf Null bereinigt. Die gegenwärtige Position des Roboters (der noch "im Flug" ist), wird verwendet, um den Roboterkörper zusammen mit dem Bereich, der von dem Rest der Bewegung überstrichen wird und der Endposition der Versorgungsleitung in die Roboterkarte einzuzeichnen. Dieses Bild wird ohne zusätzliche Überprüfungen direkt durch "ODER" in die Weltkarte übertragen. Da die gesamte Bewegung nichtkollidierend war, muß auch der Rest der Bewegung nichtkollidierend sein. Die Karten sind nun bereit für zusätzliche Kollisionserkennungsmathematiken, die oben beschrieben wurden, ob sich nun jegliche anderen Roboter nunmehr über jenen Teil des Arbeitsraums bewegen können oder nicht, d.h., ob ein Teil der Bewegungszone freigegeben wurde.
  • Wenn die beabsichtigte Bewegung vom Punkt A zum Punkt B als "in Kollision" erkannt wurde, wird es der Bewegung nicht erlaubt, stattzufinden. Der Antikollisionsalgorithmus unternimmt dann das, was als "Kollisionsbehebung" bezeichnet wird.
  • Die einfachste Behebung ist die "stationäre Behebung". Da es immer sicher ist, in Wartestellung zu verbleiben, d.h. sich "nicht zu bewegen", muß der Algorithmus den verletzenden Roboter für ein vorgegebenes kurzes Zeitintervall (typischerweise weniger als eine Sekunde) stationär halten. Wenn jeder der anderen Roboter seine Bewegungen abschließt, werden alle Roboter als in einem Schwebezustand einer "stationären Behebung" befindlich untersucht. Vermutlich wird sich, wenn sich die anderen Roboter bewegen, eventuell ein Raum für den verletzenden Roboter öffnen. Sobald ein freier Raum zur Bewegung vom Punkt A zum Punkt B existiert, wird die Bewegung erlaubt. Die Bestimmung, daß der Raum zur Verfügung steht, wird durch Ausführen einer weiteren Kollisionserkennungssequenz mit der neuen aktualisierten Weltkarte durchgeführt.
  • Die Anordnung kann eine kompliziertere Behebungssequenz als die "Stationärbehebungs"-Technik einsetzen. Siehe Fig. 11h. Dem Roboter, dessen Bewegung "in Kollision" ist, wird gestattet, andere Ausweichbewegungen zu versuchen, um um die Blockade der Bewegung vom Punkt A zum Punkt B herum zu kommen.
  • Typisch für solche Behebungsbewegungen ist die "Bewegung zu einem sicheren Punkt". Der Algorithmus ist so eingestellt, daß, wenn eine Bewegung vom Punkt A zum Punkt B unerlaubt ist, als nächstes ein Versuch unternommen wird, sich zu einem "sicher" genannten Punkt zu bewegen. Die Bewegung vom Punkt A zum "sicheren" Punkt wird unter Verwendung des Kollisionserkennungsalgorithmus auf Kollisionen überprüft. Wenn die sichere Bewegung erlaubt ist, wird die Bewegung ausgeführt. Wenn die sichere Bewegung unerlaubt ist, kann eine andere "sichere" Bewegung (nach Sicher 2) versucht werden, oder der Roboter kann dann stationär bleiben. Die nach Vordringlichkeit geordnete Sequenz von versuchten Bewegungen bildet eine "Kollisionsbehebungstabelle", die als ein Teil des Algorithmus gespeichert ist. Am Ende jeder Behebungsbewegung wird die ursprüngliche Bewegung zum Punkt B versucht. Wenn sie erlaubt ist, wird die Bewegung zum Punkt B vorgenommen und die normale Operation geht weiter. Wenn sie unerlaubt ist, folgt die Sequenz von Aktionen, wie sie durch die Behebungstabelle vorgegeben ist. Wenn die Tabelleneinträge erschöpft sind, wird der Roboter in eine stationäre Behebung gezwungen.
  • Eine andere typische Behebungsbewegung ist die "Relativbewegungs"-Behebung (siehe Fig. hg). Unter Verwendung dieses Ansatzes wird der Roboter von dort, wo er augenblicklich ist, in eine bestimmte Richtung bewegt. Zum Beispiel soll angenommen werden, daß die linke Seite des Arbeitsraums (Richtung x = 0) als frei von Hindernissen bekannt ist. Es könnte vernünftig sein, daß der Algorithmus den Roboter 20 zum Beispiel in kleinen Inkrementen, wie ein Inch, zum "x = 0"-Ort bewegt. Bei der Beendigung jeder Bewegung von einem Inch wird die Kollisionssituation neu beurteilt. Wenn eine nichtkollidierende Situation entdeckt wird, kann sich der Roboter zu seinen ursprünglichen Ziel bewegen. Wenn eine "maximale Anzahl" von "Inkrementbewegungen" erschöpft wurde, wird diese Aktion als fehigeschlagen erachtet, und der nächste Eintrag in der Kollisionsbehebungstabelle wird versucht. Das Spezifizieren einer "maximalen Anzahl von Versuchen" beim Verwenden der "Relativbewegungs"-Behebungstechnik" hindert den Roboter daran, instruiert zu werden, sich über die Grenzen seines Arbeitsraums hinaus zu bewegen.
  • Zusammenfassend stellt der Algorithmus der vorliegenden Erfindung genaue und schnelle Mittel für eine Kollisionserkennung in einer Mehrroboteranordnung mit feststehenden Hindernissen bereit, in der sich alle Roboter im wesentlichen zur selben Zeit bewegen können. Das Aufspalten des Antikollisionsproblems in eine Kollisionserkennungsphase und eine Behebungs- (Ausweichmanöver-) Phase, und durch weiteres Zerteilen des 3-D- Kollisionserkennungsproblems, das während der Kollisionserkennungsphase ausgeführt wird, in eine 2-D-xy-Erkennung und einen 1-D-Höhenvergleich (der in vielen Fällen weggelassen werden kann), hat zur Einfachheit der Anordnungsgestalt und -technik geführt.
  • Das Kollisionserkennungssystem der vorliegenden Erfindung arbeitet nicht nur schnell sondern richtig, ungeachtet der Anzahl von Robotern, die bereits in die Weltkarte "übernommen" wurden, und funktioniert für jegliche Kombination von sich bewegenden und stationären Robotern und funktioniert bei Anwesenheit einer beliebigen Anzahl von feststehenden Hindernissen, die als permanent installierte "Ein"-Bits innerhalb der Weltkarte dargestellt sind. Das System bestimmt die Möglichkeit einer Kollision während einer einzigen Kollisionserkennungsphase ungeachtet der Anzahl von "Materie" (d.h. "Hindernisse"), die in der Welt vorhanden ist, durch Konzentrieren auf die Tatsache eines nicht freien Raums im Gegensatz zum Bestimmen des genauen Gegenstandes, der die Kollision verursacht. Die Berechnungszeit des vorliegenden Systems ist unabhängig von der Anzahl von Robotern und/oder feststehenden Gegenständen und hängt nur von der "Feinheit" (d.h. Auflösung) des Kartenrasters (d.h. Anzahl von "Bits", die zum Darstellen der Arbeitshülle erforderlich sind) und dem von den beabsichtigten Bewegungen überstrichenen Bereich ab.

Claims (35)

1. Ein Kollisionserkennungsverfahren für eine Mehrroboteranordnung mit mindestens zwei Elementen, die entweder ein Roboter, eine Versorgungsleitung oder ein festes Hindernis sind und von denen mindestens eines über eine gemeinsame Oberfläche vorgegebener Größe bewegbar ist:
(a) das eine Weltkarte und eine Vielzahl von Elementkarten erzeugt, die jede in ein xy-Raster von Quadraten gleichmäßiger Größe aufgeteilt sind und wobei jede Karte die gleiche Größe wie die gemeinsame Oberfläche aufweist, um zweidimensionale Darstellungen von auf diese gemeinsame Oberfläche projizierten Elementen zu erhalten;
(b) das jedes der Quadrate jeder Karte mit einer vorgegebenen Speicherzelle in einem zugehörigen Speicher assoziiert;
(c) das die Anfangsposition jedes Elementes in seiner zugehörigen Karte durch Setzen jeder zu einem Quadrat in der zugehörigen Elementkarte, die mindestens teilweise durch das Element belegt ist, gehörigen Speicherzellen in einen ersten binären Zustand übernimmt;
(d) das die Anfangsposition jedes Elementes in die Weltkarte durch Kombination des binären Bits jeder Elementkartenspeicherzelle mit dem binären Bit der zugehörigen Speicherzelle der Weltkarte überträgt;
(e) das die Anfangsposition eines vorgegebenen Elementes von der Weltkarte durch eine logische Kombination der Speicherzellen der Elementkarte dieses vorgegebenen Elementes mit den zugehörigen Speicherzellen der Weltkarte als Antwort auf eine Bewegungsanforderung für das vorgegebene Element entfernt;
(f) das die Bewegungszone, die die Bewegung von der Anfangsposition zu einer gewünschten Endposition des vorgegebenen Elementes darstellt, auf eine Bewegungszonenelementkarte durch Setzen aller von der Bewegungszone besetzten Speicherzellen in den vorgegebenen Zustand überträgt;
(g) das die binären Zustände der zugehörigen Speicherzellen der Bewegungszonenelementkarte und der Weltkarte durch Anwendung eines ersten Typs logischer ODER-Operation kombiniert;
(h) das die binären Zustände der zugehörigen Speicherzellen der Bewegungszonenkarte und der Weltkarte durch Anwendung eines zweiten Typs logischer ODER- Operation, die unterschiedlich ist vom ersten Typ logischer ODER-Operation, kombiniert;
(i) das eine Kollision anzeigt, wenn die binären Zustände eines der zugehörigen Speicherzellen der logischen Kombinationen, die aus diesen ersten und zweiten Typen von logischen ODER-Operationen resultieren, ungleich sind.
2. Verfahren nach Anspruch 1, wobei der erste Typ logischer ODER-Operation eine Exklusiv-ODER-Operation ist.
3. Verfahren nach Anspruch 1, wobei der erste Typ logischer ODER-Operation eine Inklusiv-ODER-Operation ist.
4. Verfahren nach einem der Ansprüche 1 bis 3, wobei die Schritte (g) und (h) außerdem den Schritt der sequentiellen Kombination von Gruppen von Speicherzellen, die jede eine vorgegebene Anzahl von Speicherzellen aufweisen, und weiterhin den Schritt der Übernahme des Ergebnisses von Schritt (g) in die Weltkartenspeicherzellen, wenn die binären Zustände der kombinierten Gruppen aus den Schritten (g) und (h) gleich sind, umfassen.
5. Verfahren nach einem der Ansprüche 1 bis 4, das weiter den Schritt der Lieferung einer Zuteilungsbedingung umfaßt, wenn alle der zugehörigen Speicherzellen der in den Schritten (g) und (h) erzeugten kombinierten Karten gleich sind.
6. Verfahren nach einem der Ansprüche 1 bis 5, wobei die Speicherzellen jeder Karte in Bytes angeordnet sind, die jeweils eine gleiche Anzahl von Speicherzellen-"Bits" aufweisen, wobei jedes Byte jeder Karte mit einem Byte jeder anderen Karte verknüpft ist.
7. Verfahren nach Anspruch 6, wobei die Schritte (g) und (h) außerdem die Schritte umfassen:
- Aussondern zugehöriger Bytes der Element- und Weltkarten aus ihren Speicherzellen;
- Kombination der zugehörigen Bits der ausgesonderten Bytes auf sequentielle Weise.
8. Verfahren nach Anspruch 7, das weiterhin den Schritt der Übertragung des Ergebnisses von Schritt (g) in eine Speicherzelle der Weltkarte umfaßt, wenn die Ergebnisse von Schritt (g) und (h) gleich sind.
9. Verfahren nach Anspruch 8, wobei Schritt (i) außerdem die Schritte umfaßt:
(i&sub1;) Vergleich zugehöriger Bytes in sequentieller Weise; und
(i&sub2;) Abbrechen des Vergleichs, wenn die verglichenen zugehörigen Bytes ungleich sind.
10. Verfahren nach Anspruch 9, das außerdem den Schritt der Entfernung der binären Daten jener Bytes, die in die Speicherzellen der Weltkarte vor dem Auftreten der Ungleichheitsbedingung im Schritt (k) übertragen worden sind, umfaßt.
11. Verfahren nach einem der Ansprüche 1 bis 10, das außerdem die Schritte umfaßt:
(j) Kombination der binären Zustände der zugehörigen Speicherzellen der Bewegungszonenelementkarte und der Weltkarte in einer logischen ODER-Operation zum Löschen der Bewegungszone von der Weltkarte;
(k) Übertragung der binären Zustände, die die momentane Position des Elementes darstellen, dessen Bewegungszone von der Weltkarte entfernt worden ist, in die Speicherzellen einer Elementkarte;
(l) Übertragung der Elementkarte der momentanen Position des Elementes durch Kombination der binären Zustände der zugehörigen Speicherzellen der zuletzt erwähnten Elementkarte und der Weltkarte.
12. Verfahren nach Anspruch 11, wobei Schritt (j) eine logische Exklusiv-ODER-Operation ausführt.
13. Verfahren nach Anspruch 11, wobei Schritt (k) eine logische ODER-Operation ausführt.
14. Verfahren nach einem der Ansprüche 1 bis 13, wobei Schritt (c) außerdem den Schritt umfaßt:
- Übertragung zweidimensionaler Darstellungen fester Objekte im Arbeitsraum auf die Weltkarte durch Einführen des vorgegebenen binären Zustandes in jede zu den Quadraten gehörigen Speicherzellen, die einen Teil des feststehenden Objektes enthalten.
15. Verfahren nach einem der Ansprüche 1 bis 14, das weiterhin die Schritte umfaßt:
(m) Entfernen der ursprünglichen Bewegungszone von den Weltkartenspeicherzellen durch Umkehrung des binären Zustandes der Weltkartenspeicherzellen, die die Bewegungszone darstellen;
(n) Übertragung einer Bewegungszone eines Elementes, das sich zwischen seiner Anfangsposition und einer Sicherheitsposition, die zwischen der Anfangsposition und der gewünschten Endposition lokalisiert ist, bewegt, in die zugehörigen Speicherzellen einer Bewegungszonenkarte durch Einführen des vorgegebenen binären Zustandes in diejenigen Speicherzellen, die von der Bewegungszone berührten Quadraten entsprechen;
(o) Wiederholung der Schritte (d), (h) und (i) unter Verwendung der Weltkarte und der Bewegungszonenkarte, die in Schritt (n) erzeugt wurde.
16. Verfahren nach Anspruch 15, das außerdem den Schritt umfaßt:
- Wiederholung der Schritte (m), (n) und (o) als Antwort auf eine Kollisionsbedingung unter Verwendung einer Bewegungszone, die eine zweite Grenzentfernung zu dem bekannten Sicherheitsbereich aufweist, die unterschiedlich von der ersten Sicherheitsposition und der gewünschten Endposition ist.
17. Verfahren nach Anspruch 15, das außerdem den Schritt umfaßt:
- Verhinderung der Bewegung des Elementes, das die Zuteilung anfordert, für eine vorgegebene Verzögerungszeit als Antwort auf eine Kollisionsanzeige.
18. Verfahren nach einem der Ansprüche 15 bis 17, das außerdem den Schritt umfaßt:
- Wiederholung der Schritte (m), (n) und (o) als Antwort auf eine Kollisionsbedingung unter Verwendung einer Bewegungszone, die eine zweite Sicherheitsposition aufweist, die unterschiedlich von der ersten Sicherheitsposition und der gewünschten Endposition ist.
19. Verfahren nach einem der Ansprüche 1 bis 18, das außerdem die Schritte umfaßt:
(p) Entfernen der ursprünglichen Bewegungszone aus den Weltkartenspeicherzellen;
(q) Übertragung einer Bewegungszone eines Elementes, das sich zwischen seiner Anfangsposition und einer Grenzposition bewegt, die eine kleine vorgegebene Entfernung von der Anfangsposition lokalisiert ist, in einen bekannten freien Raumbereich der gemeinsamen Oberfläche durch Einfügen der vorgegebenen binären Zustände in diejenigen Speicherzellen, die die von der Bewegungszone berührten Quadrate darstellen; und
(r) Wiederholung der Schritte (g), (h) und (i) unter Verwendung der Weltkarte und der Bewegungszonenkarte, die während Schritt (q) erzeugt wurde.
20. Verfahren nach einem der Ansprüche 1 bis 19, das außerdem den Schritt umfaßt:
- Verhinderung der Bewegung des Elementes, das die Zuteilung anfordert, für eine vorgegebene Zeitdauer als Antwort auf eine Kollisionsanzeige.
21. Verfahren nach Anspruch 20, wobei diese Verzögerungsperiode ungefähr 1 Sekunde dauert.
22. Verfahren nach einem der Ansprüche 1 bis 21, wobei jedes Element mit einer Kontrolleinheit über eine Versorgungsleitung verbunden ist, wobei die Schritte (c) bis (h) dieses Verfahrens außerdem den Schritt umfassen:
- Übertragung der zweidimensionalen Darstellung der Versorgungsleitung in die Elementkarte und die Weltkarte und Übertragung der zweidimensionalen Darstellung der Bewegungszone der Versorgungsleitung in die Bewegungszonenelementkarte.
23. Verfahren nach einem der Ansprüche 1 bis 22, wobei jedes Element über eine Versorgungsleitung mit einer Kontrolleinheit verbunden ist und die Schritte (c) bis (f) dieses Verfahrens außerdem den Schritt umfassen:
- Übertragung der zweidimensionalen Darstellung der gewünschten Endposition der Versorgungsleitung in die Bewegungszonenelementkarte
24. Verfahren nach einem der Ansprüche 15 bis 23, das außerdem den Schritt der Erzeugung einer Nichtkollisionsanzeige umfaßt, wenn keines der zugehörigen Quadrate in der Weltkarte und der Bewegungszonenelementkarte, die in Schritt (n) erzeugt wurden, eine Markierung enthält.
25. Vorrichtung zur Kollisionserkennung in einem Robotersystem mit einer Vielzahl von Robotern, die entlang einer gemeinsamen Plattenoberfläche bewegbar sind, wobei jeder Roboter Einrichtungen zur Bewegung des Roboters entlang dieser Platte in zueinander senkrechten Richtungen aufweist, mit:
- Speichereinrichtungen zum Speichern zweidimensionaler Darstellungen dieses auf die Oberfläche der Platte projizierten Roboters mit Speicherabschnitten, die Speicherzellen zum Abspeichern binärer Daten aufweisen, wobei die Speicherzellen eine Anzahl aufweisen, die ausreicht, ein xy-Raster von gleichmäßig großen Quadraten darzustellen, von denen jedes eine vorgegebene Fläche auf dieser plattenoberfläche entspricht;
- wobei dieser Speicher in einen Weltkartenabschnitt und eine Vielzahl von Roboterkartenabschnitte aufgeteilt ist und jeder Speicherabschnitt die Ober fläche dieser Platte abbildet;
- Einrichtungen zur Übertragung einer zweidimensionalen Darstellung der Ausgangsposition jedes Roboters in seiner zugehörigen Roboterkarte durch Einfügen eines binären Bits eines vorgegebenen binären Zustandes in jene Speicherzellen, die von der zweidimensionalen Darstellung des zugehörigen Roboters berührte Quadratflächen repräsentieren;
-Einrichtungen zur Kombination der Roboterkarten mit der Weltkarte durch Übernahme der binären Zustände der Speicherzellen jeder Roboterkarte in die Speicherzellen, die die Weltkarte darstellen.
- Einrichtungen, die als Antwort auf eine Bewegungsanforderung eines vorgegebenen Roboters die Darstellung der Anfangsposition dieses vorgegebenen Roboters durch Kombination der binären Daten in den zugehörigen Speicherzellen der vorgegebenen Roboterkarte und der Weltkarte in einer logischen Operation von der Weltkarte entfernen;
- Einrichtungen zur Erzeugung einer Roboterbewegungszonenkarte, die die zweidimensionale Zone, die von dem vorgegebenen Roboter belegt ist, der sich von seiner Anfangsposition zu einer gewünschten Endposition bewegt, repräsentiert, durch Einführen binärer Bits des vorgegebenen binären Zustandes in diese durch die Bewegungszone berührten Speicherzellen;
-erste Einrichtungen zur Kombination der Roboterbewegungszone in die Weltkarte durch Kombination der binären Daten der zugehörigen Speicherzellen der Bewegungszonenroboterkarte und Weltkarte in einem ersten Typ logischer ODER-Operation;
- zweite Einrichtungen zur Kombination der binären Daten in den Speicherzellen der Bewegungszonenroboterkarte mit den binären Daten in den zugehörigen Speicherzellen der Weltkarte unter Anwendung eines zweiten Typs logischer ODER-Operation;
- Einrichtungen zum Vergleich der binären Daten zugehöriger Speicherzellen, die das Ergebnis der beiden letzterwähnten logischen ODER-Operationen sind, mit Einrichtungen zur Anzeige einer Kollision für den Fall, daß die binären Zustände der zugehörigen Speicherstellen ungleich sind.
26. Vorrichtung nach Anspruch 25, die außerdem Einrichtungen zur Erzeugung eines Zuteilungssignales umfaßt, wenn die von den Vergleichseinrichtungen verglichenen Daten gleich sind.
27. Vorrichtung nach Anspruch 26, die außerdem umfaßt:
- Einrichtungen zur Einfügung der durch die zweiten Kombinationseinrichtungen erzeugten binären Daten, als Antwort auf dieses Zuteilungssignal.
28. Vorrichtung nach einem der Ansprüche 25 bis 27, wobei das Robotersystem eine leitfähige Platte und jeder der Roboter xy-Einrichtungen zur Erzeugung elektromagnetischer Felder in zueinander senkrechten Richtungen aufweist, um den Roboter entlang dieser Platte zu bewegen.
29. Vorrichtung nach Anspruch 28, die außerdem Einrichtungen zum Antrieb dieser Roboter mit einer Versorgungsleitung zur Übertragung von Antriebssignalen zu den xy-Einrichtungen aufweist.
30. Vorrichtung nach einem der Ansprüche 25 bis 29, die außerdem umfaßt:
- Einrichtungen zur Erzeugung eines Kollisionssignales, wenn die von den Vergleichseinrichtungen verglichenen Daten ungleich sind;
- Einrichtungen zur Entfernung einer zweidimensionalen Bewegungszonendarstellung eines Roboters von der Weltkarte durch Kombination der binären Daten der Speicherzellen, die zu der Roboterbewegungszonenkarte gehören, mit den binären Daten in den Speicherzellen, die die Weltkarte darstellen, unter Verwendung einer vorgegebenen logischen ODER-Operation;
- Einrichtungen zur Übernahme der zweidimensionalen Darstellung der Anfangsposition des Roboters, dessen Bewegungszone eine Kollisionsbedingung angezeigt hat, durch Kombination der binären Daten in den Speicherzellen, die die Anfangsposition des Roboters darstellen, mit den binären Daten in den Speicherzellen, die die Weltkarte darstellen, unter Verwendung eines vorgegebenen Typs logischer ODER- Operation.
31. Verfahren nach einem der Ansprüche 25 bis 30, wobei eine der logischen ODER-Operationen eine Exklusiv-ODER-Operation aufweist.
32. Vorrichtung nach einem der Ansprüche 25 bis 31, wobei eine der logischen ODER-Operationen eine Inklusiv-ODER- Operation aufweist.
33. Vorrichtung nach einem der Ansprüche 25 bis 32, wobei eine der logischen ODER-Operationen eine Exklusiv-ODER- Operation und die andere der logischen ODER-Operationen eine Inklusiv-ODER-Operation aufweist.
34. Vorrichtung nach Anspruch 29, wobei die Einrichtungen zur Erzeugung der Roboterbewegungszonenkarte außerdem Einrichtungen zur Übernahme einer zweidimensionalen Darstellung der Roboter-Versorgungsleitung in die Roboterbewegungszonenkarte durch Einfügen binärer Bits des vorgegebenen binären Zustandes in jene Speicherzellen, die die von der zweidimensionalen Projektion der Versorgungsleitung auf die Plattenoberfläche berührten Quadrate repräsentieren, aufweist.
35. Vorrichtung nach einem der Ansprüche 25 bis 341 wobei der vorgegebene binäre Zustand der binäre Eins-Zustand ist.
DE69027634T 1989-07-28 1990-07-21 Verfahren und Gerät zur Anti-Kollision und Kollisionsschutz für Mehrroboter-Anordnung Expired - Fee Related DE69027634T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/387,222 US5150452A (en) 1989-07-28 1989-07-28 Method and apparatus for anti-collision and collision protection for multiple robot system

Publications (2)

Publication Number Publication Date
DE69027634D1 DE69027634D1 (de) 1996-08-08
DE69027634T2 true DE69027634T2 (de) 1996-11-21

Family

ID=23529001

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69027634T Expired - Fee Related DE69027634T2 (de) 1989-07-28 1990-07-21 Verfahren und Gerät zur Anti-Kollision und Kollisionsschutz für Mehrroboter-Anordnung

Country Status (5)

Country Link
US (1) US5150452A (de)
EP (1) EP0415067B1 (de)
JP (1) JPH03142193A (de)
AT (1) ATE140086T1 (de)
DE (1) DE69027634T2 (de)

Cited By (3)

* 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
DE102015007395A1 (de) * 2015-06-08 2016-12-08 Kuka Roboter Gmbh Verfahren und System zum Betreiben und/oder Überwachen einer Maschine, insbesondere eines Roboters
DE102021122606A1 (de) 2021-09-01 2023-03-02 Arburg Gmbh + Co Kg Verfahren, Maschinensteuerung und Computerprogrammprodukt zur Bestimmung eines Pfades für eine Autonavigation

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0553634A (ja) * 1991-08-29 1993-03-05 Matsushita Electric Ind Co Ltd 複腕干渉回避システム
EP0546633A2 (de) * 1991-12-11 1993-06-16 Koninklijke Philips Electronics N.V. Bahnführung in unbestimmter Umgebung
JPH05216527A (ja) * 1992-02-03 1993-08-27 Fanuc Ltd グラフィック干渉チェック装置
US5502638A (en) * 1992-02-10 1996-03-26 Honda Giken Kogyo Kabushiki Kaisha System for obstacle avoidance path planning for multiple-degree-of-freedom mechanism
US5349533A (en) * 1992-05-08 1994-09-20 Lockheed Missiles & Space Company, Inc. System and method for collision checking between solid objects and vectors
JPH06139498A (ja) * 1992-10-30 1994-05-20 Mitsubishi Electric Corp 障害物回避装置
US5347459A (en) * 1993-03-17 1994-09-13 National Research Council Of Canada Real time collision detection
US5386621A (en) * 1993-08-16 1995-02-07 Ford Motor Company Flexible assembly cell
US5798627A (en) 1995-01-04 1998-08-25 Gilliland; Malcolm T. Method for simultaneous operation of robot welders
JP2915826B2 (ja) * 1995-07-11 1999-07-05 富士通株式会社 干渉チェック装置
US5761391A (en) * 1996-05-22 1998-06-02 Fujitsu Ltd. Arithmetic unit for calculating distance between objects
US6049756A (en) * 1997-11-12 2000-04-11 Lockheed Martin Corporation System and method for avoiding collision between vector and solid objects
JP3415438B2 (ja) 1998-05-12 2003-06-09 富士通株式会社 干渉チェック装置および方法
US6873944B1 (en) 2000-10-11 2005-03-29 Ford Global Technologies, Llc Method of real time collision detection between geometric models
US7114157B2 (en) * 2001-11-27 2006-09-26 Kuka Roboter Gmbh System controlling exclusive access by control programs to system resources
JP2003236787A (ja) * 2002-02-18 2003-08-26 Kawasaki Heavy Ind Ltd 駆動制御方法および駆動制御装置
US7191104B2 (en) * 2002-07-11 2007-03-13 Ford Global Technologies, Llc Method of real-time collision detection between solid geometric models
WO2004038669A1 (en) * 2002-10-22 2004-05-06 Umc Utrecht Holding B.V. System for remote transfer of a monitoring signal
WO2004040390A1 (de) * 2002-10-23 2004-05-13 Siemens Aktiengesellschaft Verfahren und anordnung sowie computerprogramm mit programmcode-mitteln und computerprogramm-produkt zur bildung einer graphenstruktur zur beschreibung einer fläche mit einer freifläche und einer belegtfläche
KR100670565B1 (ko) * 2004-04-01 2007-01-18 재단법인서울대학교산학협력재단 확장된 충돌 지도를 이용한 다개체 로봇의 충돌 회피 방법및 그 방법을 기록한 컴퓨터로 판독 가능한 기록 매체
US8364454B2 (en) * 2004-07-27 2013-01-29 Ford Motor Company System and method of dynamic clearance checking using a geometric model
US7318767B2 (en) 2004-10-05 2008-01-15 Ruger, Barthelt & Abel Device and method for machine control
JP4348276B2 (ja) * 2004-11-02 2009-10-21 本田技研工業株式会社 ロボット制御装置
EP1672449B1 (de) 2004-12-16 2013-07-17 Walter Maschinenbau GmbH Vorrichtung und Verfahren zur Erstellung eines kollisionsfreien Weges einer Schleifmaschine
US7798764B2 (en) 2005-12-22 2010-09-21 Applied Materials, Inc. Substrate processing sequence in a cartesian robot cluster tool
US7699021B2 (en) 2004-12-22 2010-04-20 Sokudo Co., Ltd. Cluster tool substrate throughput optimization
US7371022B2 (en) 2004-12-22 2008-05-13 Sokudo Co., Ltd. Developer endpoint detection in a track lithography system
WO2006130497A2 (en) * 2005-05-27 2006-12-07 The Charles Machine Works, Inc. Determination of remote control operator position
EP1901151B1 (de) * 2006-09-14 2010-02-24 Abb Research Ltd. Verfahren und Vorrichtung zur Vermeidung von Kollisionen zwischen einem Industrieroboter und einem Objekt
JP4985117B2 (ja) * 2007-06-06 2012-07-25 株式会社ニコン 画像処理プログラム、および画像処理装置
DE102008013400B4 (de) 2008-03-06 2016-03-10 Voith Engineering Services Gmbh Verfahren zur Ermittlung von Verriegelungsbereichen wenigstens eines im Raum bewegbaren ersten Objekts
US9144904B2 (en) 2008-05-21 2015-09-29 Fanuc Robotics America Corporation Method and system for automatically preventing deadlock in multi-robot systems
US8315738B2 (en) * 2008-05-21 2012-11-20 Fanuc Robotics America, Inc. Multi-arm robot system interference check via three dimensional automatic zones
US8386080B2 (en) 2009-09-15 2013-02-26 Harris Corporation Robotic apparatus implementing collision avoidance scheme and associated methods
WO2011056633A1 (en) 2009-10-27 2011-05-12 Battelle Memorial Institute Semi-autonomous multi-use robot system and method of operation
FR2954518B1 (fr) * 2009-12-18 2012-03-23 Aripa Service Innovation Ind " systeme anticollision pour le deplacement d'un objet dans un environnement encombre."
DE102012103830B4 (de) 2011-05-05 2022-05-25 Fanuc Robotics America Corp. Verfahren und computerlesbare Medien zur automatischen Verbindung von gegenseitiger Blockierung in Mehrfachrobotersytemen
US8494674B2 (en) * 2011-08-24 2013-07-23 International Business Machines Corporation Fast-access self-repairing tape library using mobile robots
CN102501172B (zh) * 2011-11-22 2013-10-23 清华大学 用于机器人修磨系统的面向空间曲面加工的在位测量方法
WO2013186988A1 (ja) * 2012-06-13 2013-12-19 日本電気株式会社 移動体異常接近検知システムおよび移動体異常接近検知方法
US9263082B2 (en) 2013-01-30 2016-02-16 International Business Machines Corporation High density hybrid storage system
CN105043396B (zh) * 2015-08-14 2018-02-02 北京进化者机器人科技有限公司 一种移动机器人室内自建地图的方法和系统
US10231793B2 (en) 2015-10-30 2019-03-19 Auris Health, Inc. Object removal through a percutaneous suction tube
US9955986B2 (en) 2015-10-30 2018-05-01 Auris Surgical Robotics, Inc. Basket apparatus
US9949749B2 (en) 2015-10-30 2018-04-24 Auris Surgical Robotics, Inc. Object capture with a basket
JP6328599B2 (ja) * 2015-11-20 2018-05-23 ファナック株式会社 ロボットの動作可能範囲を算出するロボットの手動送り装置
US10344450B2 (en) 2015-12-01 2019-07-09 The Charles Machine Works, Inc. Object detection system and method
JP6576255B2 (ja) * 2016-01-25 2019-09-18 キヤノン株式会社 ロボット軌道生成方法、ロボット軌道生成装置、および製造方法
JP6858521B2 (ja) * 2016-09-29 2021-04-14 川崎重工業株式会社 ロボット復旧支援装置及びそれを備えるロボットシステム
US10766140B2 (en) 2017-04-13 2020-09-08 Battelle Memorial Institute Teach mode collision avoidance system and method for industrial robotic manipulators
DE102017213651A1 (de) * 2017-08-07 2019-02-07 Robert Bosch Gmbh Handhabungseinrichtung mit einem Roboter sowie Verfahren und Computerprogramm
DE102018133472B3 (de) * 2018-12-21 2020-03-12 Franka Emika Gmbh Bewegungsüberwachung eines Robotermanipulators
WO2020263629A1 (en) 2019-06-27 2020-12-30 Auris Health, Inc. Systems and methods for a medical clip applier
EP3989863A4 (de) 2019-06-28 2023-10-11 Auris Health, Inc. Medizinische instrumente mit handgelenken mit hybriden umleitungsoberflächen
US11896330B2 (en) 2019-08-15 2024-02-13 Auris Health, Inc. Robotic medical system having multiple medical instruments
EP4034349A1 (de) 2019-09-26 2022-08-03 Auris Health, Inc. Systeme und verfahren zur kollisionserkennung und -vermeidung
US11737845B2 (en) 2019-09-30 2023-08-29 Auris Inc. Medical instrument with a capstan
US11737835B2 (en) 2019-10-29 2023-08-29 Auris Health, Inc. Braid-reinforced insulation sheath
KR20220123269A (ko) 2019-12-31 2022-09-06 아우리스 헬스, 인코포레이티드 고급 바스켓 구동 모드
WO2021137104A1 (en) 2019-12-31 2021-07-08 Auris Health, Inc. Dynamic pulley system
WO2022003485A1 (en) 2020-06-29 2022-01-06 Auris Health, Inc. Systems and methods for detecting contact between a link and an external object
EP4171428A1 (de) 2020-06-30 2023-05-03 Auris Health, Inc. Robotisches medizinisches system mit kollisionsnäherungsindikatoren
US11357586B2 (en) 2020-06-30 2022-06-14 Auris Health, Inc. Systems and methods for saturated robotic movement
US11878424B2 (en) * 2021-12-06 2024-01-23 Fanuc Corporation Point set interference check
CN114347041B (zh) * 2022-02-21 2024-03-08 汕头市快畅机器人科技有限公司 群体机器人控制与图案生成方法
US20230294287A1 (en) * 2022-03-15 2023-09-21 Fanuc Corporation Swept volume deformation

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4437085A (en) * 1980-10-03 1984-03-13 Richard Salant Route mapping device
SE456048B (sv) * 1982-02-24 1988-08-29 Philips Norden Ab Sett och anordning for att bestemma kollisionsrisken for tva inbordes rorliga kroppar
US4586151A (en) * 1983-09-02 1986-04-29 Zymark Corporation Self-configuring computerized robot control system
US4727494A (en) * 1985-01-01 1988-02-23 Zymark Corporation Computerized robot control system with scheduling feature
US4764873A (en) * 1987-02-13 1988-08-16 Dalmo Victor, Inc., Div. Of The Singer Company Path blockage determination system and method
JPH07107648B2 (ja) * 1987-09-09 1995-11-15 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン 物体間衝突検出装置
US4890241A (en) * 1987-10-26 1989-12-26 Megamation Incorporated Robotic system

Cited By (5)

* 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
DE102015007395A1 (de) * 2015-06-08 2016-12-08 Kuka Roboter Gmbh Verfahren und System zum Betreiben und/oder Überwachen einer Maschine, insbesondere eines Roboters
US9999975B2 (en) 2015-06-08 2018-06-19 Kuka Deutschland Gmbh Method and system for operating and/or monitoring a machine, in particular a robot
DE102021122606A1 (de) 2021-09-01 2023-03-02 Arburg Gmbh + Co Kg Verfahren, Maschinensteuerung und Computerprogrammprodukt zur Bestimmung eines Pfades für eine Autonavigation
WO2023031320A1 (de) 2021-09-01 2023-03-09 Arburg Gmbh + Co Kg Verfahren, maschinensteuerung und computerprogrammprodukt zur bestimmung eines pfades für eine autonavigation

Also Published As

Publication number Publication date
EP0415067B1 (de) 1996-07-03
EP0415067A2 (de) 1991-03-06
DE69027634D1 (de) 1996-08-08
ATE140086T1 (de) 1996-07-15
JPH03142193A (ja) 1991-06-17
EP0415067A3 (en) 1991-04-17
US5150452A (en) 1992-09-22

Similar Documents

Publication Publication Date Title
DE69027634T2 (de) Verfahren und Gerät zur Anti-Kollision und Kollisionsschutz für Mehrroboter-Anordnung
DE68907383T2 (de) Verfahren und Anordnung zur Umsetzung von Umrissdaten in Rasterdaten.
DE102012103830B4 (de) Verfahren und computerlesbare Medien zur automatischen Verbindung von gegenseitiger Blockierung in Mehrfachrobotersytemen
DE69834739T2 (de) Ausgleichen von daten die zwischen verschiedenen leitern fliessen die auf unterschiedlichen frequenzen operieren
DE69908966T3 (de) Schattierung von 3-dimensionalen rechner-erzeugten bildern
DE3854481T2 (de) Datenverarbeitungsverfahren in einem dezentralisierten Verarbeitungssystem.
DE102019115060A1 (de) Verfahren and einrichtung zur speicherzugriffsverwaltung für die datenverarbeitung
DE3788257T2 (de) Bilddrehungsverfahren.
DE2403270A1 (de) Lichtstrahl-stellungsgeber fuer darstellungsvorrichtungen
DE69122147T2 (de) Verfahren und Einrichtung zum Abschneiden von Pixeln von Quellen- und Zielfenstern in einem graphischen System
EP0057756A2 (de) Anordnung zum Datenaustausch in parallel arbeitenden Multi-Mikrorechnersystemen
DE3831428A1 (de) Verfahren und vorrichtung zum erzeugen einer tiefenkarte
DE60106301T2 (de) Verfahren und system für die ausfuhr von datenverbänden zu zweidimensionalen oder dreidimensionalen geometrischen entitäten
EP0006164A1 (de) Multiprozessorsystem mit gemeinsam benutzbaren Speichern
WO2021186068A1 (de) Ermittlung von sicherheitsbereichen um eine automatisiert arbeitende maschine
DE102020128307A1 (de) Kooperatives abbilden für autonome fahrzeuge, roboter oder multiagentensysteme
DE3750216T2 (de) Busvermittlungssystem.
DE69818853T2 (de) Verfahren und Vorrichtung zur Bilddrehung
DE3650160T2 (de) Sonderzweckprozessor zur Übernahme vieler Betriebssystemfunktionen in einem grossen Datenverarbeitungssystem.
DE112021005568T5 (de) Datenverarbeitungsvorrichtung und Datenverarbeitungsverfahren
DE102004012516A1 (de) Computersystem zur elektronischen Datenverarbeitung
DE3789912T2 (de) System und Verfahren zur Bildverarbeitung.
DE10063915B4 (de) Informationsverarbeitungsgerät, das eine Mehrzweckverarbeitung und Transaktionsverarbeitung ausführt
DE60306388T2 (de) Verfahren und vorrichtung zur bilddatenverarbeitung unter verwendung von bildstreifen und zirkularadressierungsanordnung
DE69028492T2 (de) System und atomistische Zugriffmethode zu einer Eingaben-/Ausgabenvorrichtung mit einem direkten Speicherzugriff

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee