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 sindInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 48
- VLCQZHSMCYCDJL-UHFFFAOYSA-N tribenuron methyl Chemical compound COC(=O)C1=CC=CC=C1S(=O)(=O)NC(=O)N(C)C1=NC(C)=NC(OC)=N1 VLCQZHSMCYCDJL-UHFFFAOYSA-N 0.000 claims 1
- 230000008569 process Effects 0.000 description 9
- 238000001514 detection method Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000011960 computer-aided design Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000005484 gravity Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 241001517013 Calidris pugnax Species 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011426 transformation method Methods 0.000 description 1
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
- B25J9/1666—Avoiding 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.
- 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.
- 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.
- 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.
- 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.
- - 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
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)
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)
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 |
-
1989
- 1989-11-01 US US07/430,749 patent/US6089742A/en not_active Expired - Fee Related
-
1990
- 1990-10-29 DE DE69027402T patent/DE69027402T2/de not_active Expired - Fee Related
- 1990-10-29 EP EP90202858A patent/EP0426249B1/de not_active Expired - Lifetime
- 1990-10-30 JP JP2290958A patent/JPH03171303A/ja active Pending
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 "Bubble-Daten", 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 |