DE69027402T2 - Verfahren und Vorrichtung zur Steuerung von Robotern und ähnlichem zum Gebrauch hierarchisch organisierter "Bubble-Daten", die entlang einer Mittelachse angeordnet sind - Google Patents

Verfahren und Vorrichtung zur Steuerung von Robotern und ähnlichem zum Gebrauch hierarchisch organisierter "Bubble-Daten", die entlang einer Mittelachse angeordnet sind

Info

Publication number
DE69027402T2
DE69027402T2 DE69027402T DE69027402T DE69027402T2 DE 69027402 T2 DE69027402 T2 DE 69027402T2 DE 69027402 T DE69027402 T DE 69027402T DE 69027402 T DE69027402 T DE 69027402T DE 69027402 T2 DE69027402 T2 DE 69027402T2
Authority
DE
Germany
Prior art keywords
bubble
bubbles
central axis
hierarchy
axis system
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
DE69027402T
Other languages
English (en)
Other versions
DE69027402D1 (de
Inventor
Bernard Johanna Hendric Verwer
Thomas Petrus Hendri Warmerdam
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.)
Koninklijke Philips NV
Original Assignee
Philips Electronics NV
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 Philips Electronics NV filed Critical Philips Electronics NV
Publication of DE69027402D1 publication Critical patent/DE69027402D1/de
Application granted granted Critical
Publication of DE69027402T2 publication Critical patent/DE69027402T2/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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Image Processing (AREA)
  • Numerical Control (AREA)
  • Image Analysis (AREA)

Description

  • Verfahren und Vorrichtung zur Steuerung von Robotern und ähnlichem zum Gebrauch hierarchisch organisierter "Bubble-Daten", die entlang einer Mittelachse angeordnet sind.
  • Die Erfindung betriffi ein Verfanren zum Detektieren einer möglichen Komsion zwischen einem ersten Objekt (O) und einem zweiten Objekt, wobei von dem ersten Objekt eingenommener Raum durch eine Blasenhierarchie dargestellt wird.
  • Die Erfindung betrifft auch eine Robotersteuerung zum Detektieren einer möglichen Komsion zwischen einem ersten Objekt (O) und einem zweiten Objekt, mit Speichermitteln (30-42) zum Darstellen des von dem ersten Objekt eingenommenen Raumes durch eine Blasenhierarchie.
  • HINTERGRUND DER ERFINDUNG
  • Auf dem Gebiet der Robotik und Automation besteht seit kurzem viel Interesse an dem Problem, Wege für eine Menge von Objekten zu wählen, so daß sie nicht kollidieren. Im folgenden umfassen solche Objekte Maschinen als Objekte an sich und Maschinen zum Handhaben usw. solcher Objekte, und bei einem Teil der Menge kann es sich auch um stillstehende Objekte handeln. Solche Verfahren werden beispielsweise in EP-A-317 020 (PHA 21,413), EP 365 626 (PHA 21.431), EP 375 055 (PHA 21.477) und US-Patentanmeldung Nr.392.636, eingereicht 11. August 1989, (PHA 21.515) beschrieben.
  • Ein einfacheres Problem ist die Kollisionsdetektion zwischen solchen Objekten, d.h. die Bestimmung, ob eine Kollision erfolgt oder nicht, wenn die Wege und Positionen von Objekten bestimmt werden. Kollisionsdetektionsalgorithmen nach dem Stand der Technik werden in "A Study of the Clash Detection Problem in Robotics", S. Cameron, 1985, IEEE International Conference on Robotics and Automation, S.488 ff. beschrieben, das hier als Hintergrund aufgenommen wird.
  • Der Stand der Technik lehrt, daß die Größe und Form von Objekten als eine Folge sich überschneidender Kreise (in zwei Dimensionen) oder Kugeln (in drei Dimensionen) modelliert werden kann. Diese Prinzipien werden beispielsweise in "A Spherical Representation of the Human Body for Visualizing Movement", S. Badler et al., Proceedings of the IEEE , Bd. 67, Nr.10, Oktober 1979 und in der veröffentlichten britischen Patentanmeldung 2. 196.763A (5. Mai 1988) beschrieben. Der Stand der Technik lehrt auch, daß eine Hierarchie von solchen Kreisen oder Kugeln wirkungsvoll zur Darstellung der Form eines Objekts in einer Datenstruktur auf verschiedenen Detaillierungsniveaus genutzt werden kann. Siehe beispielsweise "Using an Efficient Kollision Detector in the Solution of the Find-Path Problem of Industrial Robots", Sawatzky, El- Zorkany, SPIE In Soc.Opt.Eng., Bd. 579, S.131-141 (1985).
  • Der Stand der Technik erkennt auch, daß in manchen Fällen die Mittelpunkte von Kugeln, die zur Darstellung eines Objekts verwendet wurden, genutzt werden können, um die Mittelachse oder das Skelett eines Objekts zu finden. Siehe beispielsweise "Decomposition of Three-Dimensional Objekts into Spheres", O'Rourke und Badler, IEEE Transactions on Pattern Analysis und Machine Intelligence, Bd. PAMI-1, Nr.3, Juli 1979.
  • In der folgenden Beschreibung und den folgenden Ansprüchen werden Kugeln und Kreise der oben genannten Art als Blasen bezeichnet, und die oben genannte Datenstruktur wird Blasenhierarchie genannt.
  • In einer typischen Blasenhierarchie ist die Spitze oder der Ursprung der Hierarchie eine einzige kugelförmige Blase, die umhüllende Blase, die ein ganzes Objekt umschließt. Dies ist das gröbste Detaillierungsniveau in der Datenstruktur. Innerhalb der Spitzenblase gibt es eine kleine Anzahl von Blasen, von denen jede einen Abschnitt des Objekts umschließt und die untereinander das gesamte Objekt umschließen Innerhalb jeder der Blasen auf diesem zweiten, Nachfolgerniveau kann es eine weitere Vielzahl von Blasen geben, von denen jede einen kleineren Abschnitt des Objekts umschließt. Die Erweiterung von Blasen, um feinere Detaillierungsniveaus einzuschließen, setzt sich fort, bis der untere Rand der Blasenhierarchie erreicht ist. Die Blasen am unteren Rand der Hierarchie beschreiben jeweils ein sehr kleines Fragment des Objekts. Im einfachsten Fall werden diese Blasen als fest angenommen, d.h. jeder Punkt im Inneren einer solchen Blase wird als im Inneren des Objekts liegend angenommen.
  • Eine Blasenhierarchie ist nützlich für die Bestimmung, ob sich ein Punkt innerhalb oder außerhalb eines Objekts befindet und ob zwei Objekte (die eventuell jeweils durch gesonderte Blasenhierarchien dargestellt werden) sich schneiden. Die allgemeine Technik zur Beantwortung dieser Fragen heißt Platzenlassen der Blase. Bei einer typischen Anwendung des Platzenlassens der Blasen wird zur Bestimmung, ob sich ein Punkt innerhalb eines Objekts befindet, zunächst ein Punkt-in-Blase-Test mit der umhüllenden Blase ausgeführt. Falls dieser erfolgreich ist (d.h. es zeigt sich, daß der Punkt innerhalb der umhüllenden Blase liegt), dann wird die Blase zum Platzen gebracht, wobei die Gruppe von Nachfolgerblasen direkt darunter in der Hierarchie aufgedeckt wird. Der Test wird mit jeder dieser Blasen wiederholt. Immer wenn der Test erfolgreich ist, wird die Testblase zum Platzen gebracht, wobei die Blasen direkt darunter aufgedeckt werden, und diese Blasen werden dann getestet. Der Vorgang endet, wenn sich zeigt, daß der Punkt innerhalb einer Blase am unteren Rand der Hierarchie liegt (in diesem Fall liegt der Punkt innerhalb des Objekts) oder wenn sich herausstellt, daß der Punkt außerhalb aller verbleibenden Blasen liegt, nachdem eine gewisse Anzahl zum Platzen gebracht worden ist.
  • Während Techniken zur Verwendung von Blasen zur Planung und Steuerung der Bewegung von Maschinen und Robotern wohlbekannt sind, bleibt das Problem, eine optimale Plazierung von Blasen zur Darstellung eines gegebenen Objekts zu finden, bestehen. Rechenzeit kann verringert werden und die Maschinengeschwindigkeit erhöht, wenn eine optimale Blasenplazierung festgelegt wird. Viele Blasenplazierungsverfahren, die in der bekannten Technik vorgeschlagen worden sind, arbeiten bis jetzt wirkungsvoll in zweidimensionalen Systemen, aber werden komplex und zeitraubend, wenn sie auf die Darstellung dreidimensionaler Objekte und Systeme erweitert werden.
  • Ein Verfahren und ein Gerät wie eingangs beschrieben ist aus der europäischen Patentanmeldung EP-A- 0 268 317 bekannt. Diese Bezugsschrift lehrt die Verwendung einer Schätzung für den von einem stillstehenden Objekt eingenommenen Raum mit Hilfe der Blasenhierarchie. Auf höchstem Niveau repräsentiert eine einzige Blase das Objekt in sehr grober Weise. Dieses Niveau ergibt eine pessimistische Betrachtung hinsichtlich der Gefahr einer Kollision zwischen einem Punkt und einem Objekt; d.h. wenn der Punkt innerhalb der Blase liegt, könnte er mit dem Objekt kollidieren, aber das ist nicht sicher und muß auf einem detaillierteren nächstniedrigeren Niveau verifiziert werden. Auf diesem nächstniedrigeren Niveau wird das Objekt durch zwei oder mehr kleinere Blasen repräsentiert, die zusarnmengenommen das Objekt feiner repräsentieren. Auf dem niedrigsten Niveau wird das Objekt von Blasen repräsentiert, die als fest angenommen werden. Wenn sie zusammengenommen werden, bilden diese festen Blasen das Objekt genau so, wie es für die vorliegende Anwendung gewünscht wird.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Der Erfindung liegt als Aufgabe zugrunde, ein wie eingangs beschriebenes Verfahren zu verschaffen, wobei das Verfahren hinsichtlich der benötigten Rechenzeit effizient ist. Hierzu ist das erfindungsgemäße Verfahren dadurch gekennzeichnet, daß das Verfahren die folgenden Schritte enthält:
  • - Lokalisieren des Mittelachsensystems (B) des ersten Objekts,
  • - Erzeugen der Blasenhierarchie auf diesem Mittelachsensystem (20-26) und
  • - Detektieren der möglichen Kollision durch Bestimmung, ob das zweite Objekt mit irgendeiner der Blasen in der Blasenhierarchie kollidiert.
  • Das Erzeugen der Blasenhierachie erfordert relativ geringen Computereinsatz und führt zu einer effizienten Anwendung des Verfahrens bei der Detektion von Kollisionen.
  • Eine Ausführungsform des erfindungsgemaßen Verfahrens ist dadurch gekennzeichnet, daß der Schritt der Erzeugung der Hierarchie ein Top-down-Verfahren umfaßt mit:
  • - erst Plazieren einer Ursprungsblase, die am Mittelpunkt des Mittelachsensystems zentriert ist und einen Radius hat, der nahezu gleich dem maximalen Abstand von diesem Mittelpunkt zur Kontur des ersten Objekts ist;
  • - danach, wenn das Mittelachsensystem eine Vielzahl von Zweiglinien hat, Plazieren einer Vielzahl erster aufeinanderfolgender Blasen, von denen jede einen gesonderten Teil des Objekts umgreift, der durch eine der genannten Zweiglinien beschrieben wird und
  • - dann sukzessives Aufteilen jeder Linie des Mittelachsensystems in zumindest zwei neue Linienteile und Plazieren einer Folge nächster aufeinanderfolgender Blasen, von denen jede einen gesonderten Teil des ersten Objekts umgreift, der
  • durch einen der genannten neuen Linienteile beschrieben wird. Diese Prozedur zur Erzeugung einer Blasenhierarchie ist einfach zu implementieren und erfordert geringen Computereinsatz.
  • Eine Ausführungsform des erfindungsgemaßen Verfahrens ist dadurch gekennzeichnet, daß der Schritt der Erzeugung der Hierarchie ein Bottom-up-Verfahren umfaßt mit:
  • - erst Darstellen des Mittelachsensystems als große Anzahl diskreter Punkte,
  • - danach Plazieren der Mittelpunkte einer Vielzahl von Blasen niedrigsten Niveaus bei den genannten diskreten Punkten, wo der Radius jeder Blase gleich dem minimalen Abstand von dem entsprechenden Mittelpunkt zur Kontur des ersten Objekts ist und
  • - dann sukzessives Erzeugen neuer Blasen durch Vereinigen der Blasen niedrigsten Niveaus, um nacheinander Blasen höherer Ordnung in der Blasenhierarchie zu erzeugen, und Wiederholen dieses Schrittes, bis eine einzige Ursprungsblase übrig bleibt.
  • Diese Bottom-up-Prozedur zur Erzeugung der Blasenhierarchie ist ebenfalls einfach zu implementieren und erfordert geringen Computereinsatz.
  • Das Blasentransformationsverfahren gemäß der vorliegenden Erfindung ist besonders nützlich, da es in einfacher Weise von zwei auf drei oder mehr Dimensionen erweitert werden kann, bei minimaler Zunahme der Computerkomplexität.
  • Die erfindungsgemäße Robotersteuerung ist dadurch gekennzeichnet, daß die Steuerung Computermittel enthält zum:
  • - Lokalisieren des Mittelachsensystems (B) des ersten Objekts,
  • - Erzeugen der in den Speichermitteln (30-42) zu speichernden Blasenhierarchie auf diesem Mittelachsensystem (20-26) und
  • - Detektieren in den Speichermitteln (30-42) der möglichen Kollision durch Bestimmung, ob das zweite Objekt mit irgendeiner der Blasen in der Blasenhierarchie kollidiert.
  • Dies verschafft ein Gerät, das die erfindungsgemäßen Verfahren ausführen kann.
  • Andere vorteilhafte Ausführungsformen des Verfahrens und der Steuerung gemäß der Erfindung sind in den Unteransprüchen aufgeführt.
  • BESCHREIBUNG DER ZEICHNUNG
  • Zum besseren Verständnis ist die Erfindung in der Zeichnung dargestellt und wird im folgenden näher beschrieben. Es zeigen:
  • Figur 1 ein Konzept des Mittelachsensystems eines Objekts;
  • Figur 2 und 3b Ablaufpläne eines Top-down-Verfahrens zum Plazieren von Blasen entlang dem Mittelachsensystem;
  • Figur 3a die in dem Programm von Figur 3b verwendete Geometrie;
  • Figur 4 die in einem Bottom-up-Verfahren verwendete Geometrie zum Plazieren von Blasen und
  • Figur 5 eine Datenstruktur zum Darstellen einer Blasenhierarchie.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Bevorzugte Ausführungsformen der Erfindung sollen im weiteren unter anderem anhand des Anhangs erläutert werden, der eine Auflistung von Computerprogrammen, in C-Quellencode, enthält, die die Erfindung implementieren.
  • Das Mittelachsensystem eines Objekts, oder kurz die Mittelachse, wird jetzt durch Skelettierung des Objekts realisiert, was eine Datenverarbeitungsoperation an einer Datenstruktur ist, die die Form des physikalischen Objekts repräsentiert. Solch eine Datenstruktur kann in verschiedener Weise gegeben sein. Eine sehr einfache Organisationsform ist, hinsichtlich eines bestimmten Bezugsurspungs und einer bestimmten Rotationsorientierung des physikalischen Objekts eine Menge innerhalb des Objekts liegender, gerasterter Pixel oder Punkte anzugeben, während alle anderen gerasterten Pixel oder Punkte außerhalb des Objekts liegen. Dieser Ansatz ist auf Objekte willkürlicher Form eingestellt, aber die Körnigkeit des Objekts bleibt endlich. Ein andere Organisation der Datenstruktur ist, das Volumen des Objekts durch eine Menge sich schneidender Flächen zu begrenzen. wie Ebenen, Zylinder und Kugeln. Für sich können die Flächen durch komplizierte mathematische Ausdrücke beschrieben werden. Dieser Ansatz hat eine unendlich feine Körnigkeit, aber die Entscheidung, ob ein bestimmter Koordinatenwert als innerhalb oder außerhalb des Objekts liegend betrachtet wird, kann beträchtliche Datenverarbeitung erfordern. Außerdem sollte die Form des Objekts durch einen analytischen Ausdruck beschrieben werden. Skelettierung ist bei der Bildverarbeitung eine bekannte Operation. Ihre Bedeutung liegt in der Reduktion der Daten einer Menge von Bildpunkten auf die einer Menge von Liniensegmenten, die "Mittelachse" oder das Skelett. Im stetigen Fall ist die Mittelachse eines Objekts als Linie mit der gleichen Topologie wie das Objekt selbst definiert, die Punkte verbindet, die auf der Hälfte zwischen Grenzelementen der Objekte liegen. Im diskreten Fall erfüllt die Mittelachse vier Bedingungen: sie hat die gleiche Verbundenheit wie das Objekt; sie ist ein Pixel dick; sie behält die Endpunkte bei und sie liegt in der Mitte des Objekts. Für sich kann die Mittelachse bestimmter Objekte eine sehr elementare Form haben, z.B. wenn das Objekt ein Zylinder ist. Andererseits kann die Mittelachse verschiedene unterschiedliche Zweige, Gabelungen usw. enthalten.
  • Figur 1 stellt die Mittelachse eines zweidimensionalen rechteckigen Objekts O mit einer Kontur C dar. Die Mittelachse besteht aus einer Gruppe von fünf verbundenen Liniensegmenten oder Zweigen B. Weitere Eigenschaften der Mittelachse, zusammen mit verschiedenen Mgorithmen zur Berechnung ihrer Koordinaten, werden in "Path Planning in a Three Dimensional Environment", Ruff und Ahuja, IEEE Catalog, Nr. 84CH2046-1, 1984 und in "Improved Metrics in Image Processing Applied to the Hilditch Skeleton", Verwer, IEEE Catalog, Nr. CH614-6/88/0000/0137 beschrieben. Der Kürze halber soll die Erzeugung der Mittelachse selbst hier nicht weiter besprochen werden.
  • In einer bevorzugten Ausführungsform, die in den im Anhang aufgeführten Routinen mit dem Vorsatz "EUSK" implementiert ist, wird die Mittelachse mit Hilfe des Skelettierungsverfahrens von Hilditch berechnet, indem die Hilditch-Bedingungen jedesmal, wenn alle Pixel mit einem gewissen Abstandswert gespeichert worden sind, überprüft werden. Die Berechnung nutzt eine Bucketsortierung mit Richtungsinformation für verbesserte Effizienz. Die Erfindung ist für die Berechnung der Mittelachsenkoordinaten jedoch nicht auf irgendwelche speziellen Algorithmen beschränkt.
  • Bei vielen Anwendungen von Blasenhierarchien bei der Vermeidung von Kollisionen und bei der Robotik sind die Konturen von Objekten genau bekannt und zuvor digitalisiert, da die Objekte häufig unter Verwendung von Datenbasen für rechnergestützten Entwurf (CAD: Computer Aided Design) entworfen und gefertigt worden sind. Die Position der Mittelachse kann dann unmittelbar berechnet werden, ohne daß erst eine Bestimmung der Blasenplazierungsgeometrie notwendig ist, wie von O'Rourke und Badler (wie oben angegeben) gelehrt wird.
  • Erfindungsgemäß wird eine ein Objekt repräsentierende Blasenhierarchie durch das Plazieren von Blasen auf der Mittelachse des Objekts abgeleitet.
  • Bei einer zur Erzeugung der Blasenhierarchie verwendeten ersten Ausführungsform wird, wie in Figur 2 gezeigt, die Ursprungsblase erst um den Schwerpunkt des Objekts (20) herum plaziert und hat sie einen Radius gleich dem maximalen Abstand des Schwerpunkts von der Kontur. Die Nachfolger der Ursprungsblase auf dem ersten Niveau umgreifen jeweils die durch die Zweige der Mittelachse (22) beschriebenen Objektteile. Jedes folgende Niveau der Hierarchie schneidet jeden Zweig in zwei, um zwei neue Blasen zu erhalten, die das Objekt (24) besser repräsentieren, wenngleich unter bestimmten Umständen ein anderer Faktor als zwei geeignet wäre. Nach der Teilung wird das nächste Blasenniveau erzeugt (26). Auf jedem Blasenniveau liegen alle "inside"-Punkte oder -Pixel des Objekts zumindest in einer der Blasen auf diesem Niveau. Verschiedene Taktiken oder Iterationsschrittfolgen können notwendig sein, um diese Wirkung zu erreichen. Die aus den Blöcken 24, 26 gebildete Schleife kann eine vorgegebene Anzhl Male durchlaufen werden oder irgendein Kriterium kann implementiert werden (nicht abgebildet), um zu entscheiden, ob ein weiteres Durchlaufen erforderlich ist oder nicht.
  • Das erfindungsgemäße Verfahren wird jetzt als Beispiel in einer zweidimensionalen Geometrie anhand der Figur 3a dargestellt; für jedes Linienstück L des Mittelachsenzweiges wird die folgende, im Ablaufplan von Figur 3b dargestellte Prozedur verwendet, um die umgreifende Blase zu definieren.
  • Das Liniensegment wird zuerst als eine Liste diskreter Mittelachsenpunkte repräsentiert, die enfiang diesem Segment aufgetragen sind.
  • 3.1 Zwei Zeiger p1 und p2 werden auf den Anfang p1(o) bzw. auf das Ende p2(o) der Liste weisend initialisiert. Zum Zeiger p1 gehört eine Variable r1, die auf den Wert r1(o) des Abstandes vom Punkt am Anfang der Liste zur Kontur des Objekts initialisiert wird, daß heißt, den nächstgelegenen Punkt auf der Kontur. In gleicher Weise gehört zum Zeiger p2 eine Variable r2, die auf den Wert r2(o) des Abstandes vom Punkt am Ende der Liste zur Kontur initialisiert wird.
  • 3.2 Die tatsächlichen Werte der Variablen r1 und r2 werden verglichen und die Variable mit dem niedrigsten Wert, in dem speziellen anfänglichen Fall r2, wird um den Abstand d1 erhöht.
  • 3.3 Der zugehörige Zeiger, p1 oder p2, der vorher auf das Listenelement weist, dessen Variable in 3.2 erhöht worden ist, wird so eingestellt, daß er auf das nächste Element der Liste (falls p1(o)) oder das vorhergehende Element der Liste (falls p2(o)) weist, und der Prozeß kehrt zu 3.2 zurück, sofern nicht die Verzweigungsbedingung von 3.4 wahr wird.
  • 3.4 Der Prozeß endet, wenn p1 auf das gleiche Element weist wie p2.
  • 3.5 Die Blase, die die von diesem Liniensegment der Mittelachse repräsentierte Geometrie umgreift, hat ihren Mittelpunkt bei dem jetzt mit p1 und p2 angedeuteten Punkt auf der Linie und einen Radius gleich dem Maximum der Werte von r1 und r2. In der Praxis hat sich gezeigt, daß der so beschriebene Prozeß gute Ergebnisse liefert. In Fällen, in denen die Kurve c in der Mitte von Figur 3a eine große Ausbeulung hat, was zu einem großen Wert des tatsächlichen Radius führt, der die inkrementierten Werte von r1 und r2 übersteigen könnte, hat das lokale Skelett einen zusätzlichen Zweig, der seine eigene(n) Blase(n) gesondert erzeugen soll. Der Schleifenprozeß (Schritte 3.2, 3.3) endet, wenn ein Unterteilen eines Mittelachsensegments irrelevant wäre, wie für den Fall, das es nur ein Element der Liste aufweist. Während das Beispiel sich auf eine zweidimensionale Geometrie bezog, würde eine ähnliche Prozedur außerdem zur Bildung einer hierarchischen Blasenmenge um ein Mittelachsensystem herum führen, das sich jetzt auch in drei Dimensionen erstrecken kann. Der Kürze halber ist diese Prozedur, die scheinbar identisch mit der oben beschriebenen ist, außer daß Kreise jetzt durch Blasen"kugeln" repräsentiert werden, nicht im einzelnen beschrieben worden. Das Top- down-Verfahren ist im Anhang in zwei Dimensionen als "bubble.c" implementiert worden.
  • BESCHRIIIBUNG DES BOTTOM-UP-PROZESSES
  • - Ein zweites, anderes Verfahren zum Plazieren von Blasen auf der Mittelachse beginnt auf dem niedrigsten Niveau der Blasenhierarchie (feinste Darstellung) und kombiniert Blasen aus den Blasen von unten her, bis die Ursprungsblase erzeugt ist.
  • Die Mittelachse wird in eine größere Anzahl diskreter Punkte unterteilt und jedem ihrer Punkte wird eine Blase zugewiesen, wobei der Mittelpunkt der Blase bei dem betreffenden Punkt liegt und der Radius der Blase gleich dem minimalen Abstand des Punktes von der Kontur ist. Wenn die Anzahl Punkte genügend groß ist, liegen alle Punkte innerhalb der Kontur innerhalb zumindest einer Blase vom niedrigsten Niveau.
  • Die kleinste in dem vorhergehenden Schritt erzeugte Blase wird mit ihrem kleinsten Nachbar oder Nachbarn vereinigt oder kombiniert, um eine neue Blase zu erzeugen, und der Prozeß wird wiederholt, bis die Ursprungsblase gefunden worden ist.
  • Anhand von Figur 4 (zwei Dimensionen) findet die Vereinigungsoperation eine neue Blase aus zwei alten Blasen mit Hilfe der folgenden Formeln, die für zwei oder drei Dimensionen gelten:
  • r' = (r1+j+r2)/2
  • x' = 1/2(x1 + x2 + r1-r2/j (x1-x2)
  • y' = 1/2(y1 + y2 + r1-r2/j (y1-y2)
  • z' = 1/2(z1 + z2 + r1-r2/j (z1-z2)
  • mit r' der neue Radius, r1 und r2 die Radien der alten Blasen und j der Abstand zwischen den Mittelpunkten der alten Blasen, (x', y', z') die dreidimensionalen Koordinaten des Mittelpunkts der neuen Blase und (x1, y1, z1) und (x2, y2, z2) die Koordinaten der jeweiligen Mittelpunkte der alten Blasen. Wie aus Figur 4 deutlich wird, braucht der Mittelpunkt der "neuen" Blase nicht auf der Verbindungslinie zwischen den Mittelpunkten der Blasen zu liegen, die hierzu kombiniert wurden. Gleiche Formeln würden für den Fall einer Kombination von drei oder mehr Blasen gelten, wobei der Abstand j dann zwischen den zwei äußersten Blasen der Teilmenge liegen würde. Außerdem könnten in solchem Fall die äußeren Blasen eventuell ein geringeres Gewicht haben als die Zwischenblasen.
  • Das Bottom-up-Verfahren ist im Anhang als "blower.c" implementiert worden.
  • Das Blasenplazierungsverfahren der vorliegenden Erfindung hat gegenüber dem nach dem Stand der Technik als Vorteil, daß es im wesentlichen nur von Abstandsberechnungen abhängt und somit bei einer Zunahme der Dimensionalität des Systems einfach erweitert werden kann, ohne wesentliche Zunahme der Komplexität der Berechnung.
  • Figur 5 stellt eine Datenstruktur für eine Blasenhierarchie in einem Computer dar. Jede Blase wird als Datensatz repräsentiert, der, wie für die Ursprungsblase 30 angedeutet, Variablen angibt, die die Koordinaten des Blasenmittelpunkts (x/32, y/34, z/36), den Blasenradius (r/38) und auf die Nachfolgerblasen S, D in dem Hierarchiebaum weisende Zeiger 40, 42 angibt. Die Nachfolgerblasen haben eine gleichartige Datensatzstruktur. Wie erwähnt, braucht die Struktur des Baumes nicht binär zu sein. Die Zeiger werden in der Prozedur des Platzenlassens der Blase verwendet.

Claims (5)

1. Verfahren zum Detektieren einer möglichen Kollision zwischen einem ersten Objekt (O) und einem zweiten Objekt, wobei von dem ersten Objekt eingenom mener Raum durch eine Blasenhierarchie dargestellt wird, dadurch gekennzeichnet, daß das Verfahren die folgenden Schritte enthält:
- Lokalisieren des Mittelachsensystems (B) des ersten Objekts,
- Erzeugen der Blasenhierarchie auf diesem Mittelachsensystem (20-26) und
- Detektieren der möglichen Kollision durch Bestimmung, ob das zweite Objekt mit irgendeiner der Blasen in der Blasenhierarchie kollidiert.
2. Verfahren nach Anspruch 1, wobei der Schritt der Erzeugung der Hierarchie ein Top-down-Verfahren umfaßt mit:
- erst Plazieren einer Ursprungsblase, die am Mittelpunkt des Mittelachsensystems zentriert ist und einen Radius hat, der nahezu gleich dem maximalen Abstand von diesem Mittelpunkt zur Kontur des ersten Objekts ist;
- danach, wenn das Mittelachsensystem eine Vielzahl von Zweiglinien hat, Plazie ren einer Vielzahl erster aufeinanderfolgender Blasen, von denen jede einen gesonderten Teil des Objekts umgreift, der durch eine der genannten Zweiglinien beschrieben wird und
- dann sukzessives Aufteilen jeder Linie des Mittelachsensystems in zumindest zwei neue Linienteile und Plazieren einer Folge nächster aufeinanderfolgender Blasen, von denen jede einen gesonderten Teil des ersten Objekts umgreift, der durch einen der genannten neuen Linienteile beschrieben wird.
3. Verfahren nach Anspruch 1, wobei der Schritt der Erzeugung der Hier archie ein Bottom-up-Verfahren umfaßt mit:
- erst Darstellen des Mittelachsensystems als große Anzahl diskreter Punkte,
- danach Plazieren der Mittelpunkte einer Vielzahl von Blasen niedrigsten Niveaus bei den genannten diskreten Punkten, wo der Radius jeder Blase gleich dem minimalen Abstand von dem entsprechenden Mittelpunkt zur Kontur des ersten Objekts ist und
- dann sukzessives Erzeugen neuer Blasen durch Vereinigen der Blasen niedrigsten Niveaus, um nacheinander Blasen höherer Ordnung in der Blasenhierarchie zu erzeugen, und Wiederholen dieses Schrittes, bis eine einzige Ursprungsblase übrig bleibt.
4. Verfahren nach Anspruch 3, wobei das genannte Erzeugen neuer Blasen durch Vereinigen jeder kleinsten übrigbleibenden Blase mit ihrem(n) kleinsten Nachbarn erfolgt, um eine neue Blase zu erzeugen, und dieser Schritt wiederholt wird, bis nur eine Ursprungsblase übrig bleibt.
5. Verfahren nach Anspruch 3 oder 4, wobei zwei alte Blasen vereinigt werden, um eine neue Blase zu erhalten, gemäß den Formeln:
r' = r1+j+r2)/2
x' = 1/2(xl+x2+(r1-r2)(x1-x2)/j)
y' = 1/2(y1+y2+(r1-r2)y1-y2)/j)
z' = 1/2(z1+z2+(r1-r2)(z1-z2)/j),
wobei r1 und r2 die Radien der alten Blasen sind, j der Abstand zwischen den Mittelpunkten der alten Blasen ist, (x1, y1, z1) und (x2,y2,z2) die Koordinaten der Mittelpunkte der alten Blasen sind, r' der Radius der neuen Blase ist und (x',y',z') die Koordinaten des Mittelpunkts der neuen Blase sind.
6. Robotersteuerung zum Detektieren einer möglichen Kollision zwischen einem ersten Objekt (O) und einem zweiten Objekt, mit Speichermitteln (30-42) zum Darstellen des von dem ersten Objekt eingenommenen Raumes durch eine Blasenhierarchie, dadurch gekennzeichnet, daß die Steuerung Computermittel enthält zum:
- Lokalisieren des Mittelachsensystems (B) des ersten Objekts,
- Erzeugen der in den Speichermitteln (30-42) zu speichernden Blasenhierarchie auf diesem Mittelachsensystem (20-26) und
- Detektieren in den Speichermitteln (30-42) der möglichen Kollision durch Bestimmung, ob das zweite Objekt mit irgendeiner der Blasen in der Blasenhierarchie kollidiert.
7. Steuerung nach Anspruch 6, wobei die Computermittel Mittel zum Erzeugen einer Hierarchie aus Blasen enthalten, ausgehend von einer Folge von Blasen niedrigsten Niveaus, mit Mittelpunkten, die auf dem Mittelachsensystem liegen.
Bildinschriften:
FIGUR 2:
20: URSPRUNGSBLASE BEI CG PLAZIEREN, UM DAS OBJEKT ZU UMGREIFEN
22: BLASE DES 2. NIVEAUS PLAZIEREN, UM DAS DURCH JEDEN MITTELACHSENZWEIG REPRÄSENTIERTE OBJEKT ZU UMGREIFEN
24: JEDEN ZWEIGTEIL IN ZWEI TEILE AUFTEILEN
26: BLASE DES FOLGENDEN NIVEAUS PLAZIEREN, UM DAS VON NEUEN ZWEIGTEILEN REPRASENTIERTE OBJEKT ZU UMGREIFEN
FIGUR 3b:
3.1 p1&p2 AUF ENDPUNKTE WEISEND INITIALISIEREN
r1&r2 AUF WERT DES ABSTANDS ZWISCHEN ENDPUNKTEN UND KONTUR INITIALISIEREN
3.2 KLEINEREN WERT VON r1&r2 UM ABSTAND ZUM NACHBARN ERHÖ-HEN
3.
3 ZUGEHÖRIGEN ZEIGER (p1 ODER p2) AUF NACHBAR EINSTELLEN
3.
4 VERZWEIGEN, WENN p1 < > p2
3.
5 BLASENMITTE = p1 = p2
RADIUS = MAXIMUM VON r1 & r2
FIGUR 5:
30 URSPRUNG
40,42 ZEIGER
1,2..N NACHFOLGER
DE69027402T 1989-11-01 1990-10-29 Verfahren und Vorrichtung zur Steuerung von Robotern und ähnlichem zum Gebrauch hierarchisch organisierter "Bubble-Daten", die entlang einer Mittelachse angeordnet sind Expired - Fee Related DE69027402T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/430,749 US6089742A (en) 1989-11-01 1989-11-01 Method and apparatus for controlling robots and the like using a bubble data hierarchy placed along a medial axis

Publications (2)

Publication Number Publication Date
DE69027402D1 DE69027402D1 (de) 1996-07-18
DE69027402T2 true DE69027402T2 (de) 1996-11-28

Family

ID=23708863

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69027402T Expired - Fee Related DE69027402T2 (de) 1989-11-01 1990-10-29 Verfahren und Vorrichtung zur Steuerung von Robotern und ähnlichem zum Gebrauch hierarchisch organisierter "Bubble-Daten", die entlang einer Mittelachse angeordnet sind

Country Status (4)

Country Link
US (1) US6089742A (de)
EP (1) EP0426249B1 (de)
JP (1) JPH03171303A (de)
DE (1) DE69027402T2 (de)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7006084B1 (en) * 2000-09-26 2006-02-28 Faro Technologies, Inc. Method and system for computer aided manufacturing measurement analysis
US6888548B1 (en) * 2001-08-31 2005-05-03 Attenex Corporation System and method for generating a visualized data representation preserving independent variable geometric relationships
US6778995B1 (en) * 2001-08-31 2004-08-17 Attenex Corporation System and method for efficiently generating cluster groupings in a multi-dimensional concept space
US6978274B1 (en) 2001-08-31 2005-12-20 Attenex Corporation System and method for dynamically evaluating latent concepts in unstructured documents
US7215780B2 (en) * 2001-12-31 2007-05-08 Certicom Corp. Method and apparatus for elliptic curve scalar multiplication
US7271804B2 (en) * 2002-02-25 2007-09-18 Attenex Corporation System and method for arranging concept clusters in thematic relationships in a two-dimensional visual display area
JP4532280B2 (ja) * 2002-10-23 2010-08-25 シーメンス アクチエンゲゼルシヤフト 自由面および占有面を有する面を記述するグラフ構造を形成するための方法および装置ならびにプログラムコード手段を有するコンピュータプログラムおよびコンピュータプログラム製品
US7610313B2 (en) * 2003-07-25 2009-10-27 Attenex Corporation System and method for performing efficient document scoring and clustering
US7191175B2 (en) 2004-02-13 2007-03-13 Attenex Corporation System and method for arranging concept clusters in thematic neighborhood relationships in a two-dimensional visual display space
DE102004062163A1 (de) * 2004-12-20 2006-06-22 Dr. Johannes Heidenhain Gmbh Verfahren zur Ermittlung einer möglichen Kollision mindestens zweier zueinander beweglicher Objekte
US7404151B2 (en) * 2005-01-26 2008-07-22 Attenex Corporation System and method for providing a dynamic user interface for a dense three-dimensional scene
US7356777B2 (en) 2005-01-26 2008-04-08 Attenex Corporation System and method for providing a dynamic user interface for a dense three-dimensional scene
US20060267803A1 (en) * 2005-05-26 2006-11-30 Tele Atlas North America, Inc. Non-perspective variable-scale map displays
US8572084B2 (en) 2009-07-28 2013-10-29 Fti Consulting, Inc. System and method for displaying relationships between electronically stored information to provide classification suggestions via nearest neighbor
CA3026879A1 (en) * 2009-08-24 2011-03-10 Nuix North America, Inc. Generating a reference set for use during document review
JP5908285B2 (ja) 2012-01-19 2016-04-26 株式会社三井ハイテック 積層鉄心の製造方法
CN106255471B (zh) * 2014-02-05 2018-10-26 直观外科手术操作公司 用于动态虚拟碰撞物体的***和方法
AU2017274558B2 (en) 2016-06-02 2021-11-11 Nuix North America Inc. Analyzing clusters of coded documents
EP3449214B1 (de) 2016-06-10 2021-12-15 Duke University Bewegungsplanung für autonome fahrzeuge und rekonfigurierbare bewegungsplanungsprozessoren
WO2019139815A1 (en) 2018-01-12 2019-07-18 Duke University Apparatus, method and article to facilitate motion planning of an autonomous vehicle in an environment having dynamic objects
TWI822729B (zh) 2018-02-06 2023-11-21 美商即時機器人股份有限公司 用於儲存一離散環境於一或多個處理器之一機器人之運動規劃及其改良操作之方法及設備
US11738457B2 (en) 2018-03-21 2023-08-29 Realtime Robotics, Inc. Motion planning of a robot for various environments and tasks and improved operation of same
JP7141665B2 (ja) * 2018-08-23 2022-09-26 リアルタイム ロボティクス, インコーポレーテッド ロボットの動作計画に役立つ衝突検出
CN113905855B (zh) 2019-04-17 2023-08-25 实时机器人有限公司 运动规划图生成用户界面、***、方法和规则
JP7479064B2 (ja) 2019-06-03 2024-05-08 リアルタイム ロボティクス, インコーポレーテッド 動的障害物を有する環境における動作計画を容易にする装置、方法及び物品
JP7368025B2 (ja) 2019-08-23 2023-10-24 リアルタイム ロボティクス, インコーポレーテッド 加速度とジャークの制限を維持しながら速度を最適化するロボットの動作計画
TW202146189A (zh) 2020-01-22 2021-12-16 美商即時機器人股份有限公司 於多機器人操作環境中之機器人之建置
CN116051797B (zh) * 2023-04-03 2023-07-14 山东捷瑞数字科技股份有限公司 一种基于三维引擎批量修改模型穿插的方法、装置及设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4063073A (en) * 1974-11-29 1977-12-13 Strayer Larry G Computer system to prevent collision between moving objects such as aircraft moving from one sector to another
SE456048B (sv) * 1982-02-24 1988-08-29 Philips Norden Ab Sett och anordning for att bestemma kollisionsrisken for tva inbordes rorliga kroppar
GB2196763A (en) * 1986-10-29 1988-05-05 Philips Electronic Associated Solid modeling
US4862373A (en) * 1987-05-13 1989-08-29 Texas Instruments Incorporated Method for providing a collision free path in a three-dimensional space
JPH07107648B2 (ja) * 1987-09-09 1995-11-15 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン 物体間衝突検出装置
US4941103A (en) * 1987-09-11 1990-07-10 Mitsubishi Denki Kabushiki Kaisha Running type robot control system

Also Published As

Publication number Publication date
DE69027402D1 (de) 1996-07-18
EP0426249B1 (de) 1996-06-12
JPH03171303A (ja) 1991-07-24
US6089742A (en) 2000-07-18
EP0426249A3 (en) 1992-03-18
EP0426249A2 (de) 1991-05-08

Similar Documents

Publication Publication Date Title
DE69027402T2 (de) Verfahren und Vorrichtung zur Steuerung von Robotern und ähnlichem zum Gebrauch hierarchisch organisierter &#34;Bubble-Daten&#34;, die entlang einer Mittelachse angeordnet sind
DE69322575T2 (de) Verfahren und Gerät zur Wiedergabe von abgeglichenen NURB Oberflächen
DE69801113T2 (de) Längste-kanten verfeinerungs- und vergröberungssystem und -verfahren zur automatischen maschen-erzeugung
DE69032387T2 (de) Vorrichtung und Verfahren zum rechnergestützten Entwurf von Blechteilen
DE3852596T2 (de) Verfahren zur Erzeugung eines diskreten Netzes zur Simulation mittels finiter Differenzen.
DE3888055T2 (de) Gegenstandskollisionserkennungsschaltung.
DE3852328T2 (de) Formierung von geometrischen Objekten durch kumulative Versetzungsschritte.
DE69303468T2 (de) Speicherbasierte verfahren und geraet fuer rechnergraphik
DE69328589T2 (de) System und Verfahren zur Darstellung von Bezier-Splines-Kurven
DE69329572T2 (de) Bilderzeugungsgerät
DE68927471T2 (de) Verfahren zur Schattierung eines graphischen Bildes
DE3608438A1 (de) Verfahren zum berechnen von freien gekruemmten flaechen mittels computergestuetztem design cad und computergestuetzter herstellung cam und numerischer steuerung nc
DE69222707T2 (de) Zeichenverdünnung mit Verwendung des Auftrittsverhaltens von lokal unabhängigen kompetitiven Prozessen
DE69924699T2 (de) Verfahren zur Schaffung von als Oberflächenelemente dargestellten grafischen Objekten
DE69428482T2 (de) Verfahren und Vorrichtung zur Bildverarbeitung
DE112009004371T5 (de) Kollisionsbestimmungsvorrichtung und Kollisionsbestimmungsprogramm
DE602004011749T2 (de) Umschlagsdeformation mittels unterteilten Oberflächen
DE69430572T2 (de) System und verfahren zur parametrischen geometrischen modellierung
DE4303071A1 (de) Verfahren und Vorrichtung zur Randbewertung in einer Nicht-Mannigfaltigkeits-Umgebung
DE69331419T2 (de) Bilddatenverarbeitung
DE69924230T2 (de) Verfahren zur Modellierung von durch Oberflächenelemente dargestellten grafischen Objekten
DE69915837T2 (de) Parametrische Flächenauswertung im Eigenraum der Unterteilungsmatrix eines irregulären Flächenstücks
DE19807013A1 (de) Volumetrisches Vorabschneidungsverfahren, das eine minimale Anzahl von Abtastpunkten durch ein Volumen gewährleistet
DE69318930T2 (de) Bilddatenverarbeitung
DE69230901T2 (de) Graphisches Datenverarbeitungssystem und -verfahren

Legal Events

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