-
Hintergrund der Erfindung
-
1. Gebiet der Erfindung
-
Die Erfindung bezieht sich auf ein Verfahren und eine Vorrichtung zum Vorausberechnen einer Behinderung zwischen einem Zielteil eines Roboters und einem peripheren Objekt wie zum Beispiel einem externen Gerät oder einem um den Roboter herum errichteten Schutzgitter, wenn das Zielteil – beispielsweise ein an die Hand des Roboters angebautes Werkzeug oder angebrachter Sensor – aufgrund der Bewegung des Roboters längs einer Bewegungsbahn bewegt wird.
-
2. Beschreibung des Standes der Technik
-
Bei einem Aufnahme- bzw. Greifvorgang, bei dem ein Roboter ein Werkstück unter Zuhilfenahme eines Vision-Sensors bzw. bildverarbeitenden Sensors aufnimmt bzw. ergreift, werden die Position und Orientierung des Werkstücks mithilfe des Vision-Sensors gemessen und eine Bewegungsbahn des Roboters für das Ergreifen des Werkstücks aufgrund des Messergebnisses erzeugt. Da sich die Bewegungsbahn des Roboters auch ändern kann, wenn sich die Position und Orientierung des Werkstücks verändert, kann sich auch die Möglichkeit der Behinderung bzw. des Aufeinandertreffens auf der Bewegungsbahn zwischen einem Zielteil – wie beispielsweise einem an die Hand des Roboters angebauten Werkzeugs oder Sensors – und einem peripheren Objekt – wie einem externen Gerät oder einem um den Roboter herum errichteten Schutzgitters – ändern.
-
Wenn eine Vielzahl von Werkstücken zufällig übereinander gelegt ist, wird eine Bewegungsbahn in Bezug auf jedes Werkstück unter Zuhilfenahme des Vision-Sensors erzeugt. Es wird vorgezogen, dass eine mögliche Behinderung mit Bezug auf eine Vielzahl von erzeugten Bewegungsbahnen werden vorausberechnet wird und dass vom Roboter ein Werkstück entsprechend der Bewegungsbahn gegriffen wird, von der ermittelt wurde, dass eine Behinderung nicht auftreten wird. Bei einer bekannten Technik zur Vorausberechnung einer Behinderung wird die mögliche Behinderung zwischen dem Zielteil des Roboters und dem peripheren Objekt am Endpunkt der Bewegung auf der Bewegungsbahn ermittelt. So offenbart zum Beispiel die
japanische nicht geprüfte Patentveröffentlichung (Kokai) Nr. 2000-326 280 (JPP '280) ein Verfahren zur Bestimmung einer Behinderung eines SCARA-Roboters, bei dem ein Befehl für die Zielposition des Roboters in einen Bewegungswert für jede Gelenksachse gewandelt wird, ein Grenzwert für jeden Bewegungswert jedes Roboters überprüft wird, der Befehl bezüglich des Zielpunkts des Roboters in eine Position in einem kartesischen Raum konvertiert wird und eine Behinderungsfläche in dem kartesischen Raum geprüft wird. Wenn dann festgestellt wurde, dass die Zielposition die Bedingungen bezüglich der Bewegungsgrenzen und hinsichtlich des Behinderungsbereichs erfüllt, wird ein Bewegungsbefehl an jede Gelenksachse abgegeben.
-
Die
japanische nicht geprüfte Patentveröffentlichung (Kokai) Nr. 2002-331 480 (JPP '480) offenbart eine Vorrichtung zum Vermeiden einer Behinderung für das Zusammentreffen bzw. -stoßen eines Roboters mit einem anderen Gegenstand. Im Absatz [0024] der JPP '480 wird ausgeführt, dass ein Speicher der Robotersteuerung
6 Informationen zur Gestalt des Werkzeugs
3, die Informationen zur Gestalt sowie der Position und Orientierung des Werkstückkastens
4 bzw. Behälterkastens, der Position und Orientierung Wn des Werkstücks
10 bei einem Teach-in Verfahren (Teachen) bzw. Lern- oder Trainingsvorgang, und die Position und Orientierung Tn des Werkzeugs speichert. Dann kann auf der Grundlage der Gestalt bzw. Form des Werkzeugs und der mit Hilfe der Gleichung (1) berechneten Position und Orientierung Ta und der Information über die Gestalt und die Position und Orientierung des Werkstückkastens
4 beurteilt werden, ob eine Behinderung zwischen dem Werkzeug
3 und dem Werkstückkasten
4 auftreten wird oder nicht.
-
Als eine andere bekannte Technik zum Vorausermitteln einer Behinderung offenbart die
japanische nicht geprüfte Patentveröffentlichung (Kokai) Nr. 2002-273 675 (JJP '675) ein Gerät und eine Vorrichtung zur Steuerung eines Roboters, die dazu in der Lage ist, einen automatisierten Teach-in Vorgang auszuführen, bei dem eine Behinderung zwischen einem Roboter und einem Gegenstand auf einer Bewegungsbahn durch Simulieren der Bewegung des Roboters in einem vorgegebenen Betriebsablauf beurteilt wird. In dem Fall, dass erkannt wird, dass ein Roboterarm oder ein am vorderen Ende des Roboterarms angebrachtes Werkzeug mit dem Gegenstand kollidiert, wenn die Länge eines Abschnitts der Behinderung einen vorgegebenen Schwellwert nicht überschreitet, die Bewegungsbahn des Roboters an der Stelle der Behinderung aufgeteilt wird und der Roboter nur innerhalb einer abgeteilten Bewegungsbahn bewegt wird.
-
Als eine andere bekannte Technik offenbart die
japanische nicht geprüfte Patentveröffentlichung (Kokai) Nr. 9-27046 (JPP '046) ein Verfahren zur Prüfung auf Behinderung zwischen einem nicht-konvexen Polyeder und einem anderen Gegenstand, bei dem eine konvexe Einhüllende des nicht-konvexen Polyeders erzeugt wird, die Behinderung zwischen der konvexen Einhüllenden und dem Gegenstand geprüft wird und dann, wenn eine Behinderung auftritt, die konvexe Einhüllende entfernt wird. Das Verfahren umfasst die folgenden Schritte: Unterteilen der Scheitelpunkte, die das nicht-konvexe Polyeder bilden, in eine Vielzahl von Gruppen, wobei die Differenz zwischen den Scheitelpunkten in jeder Gruppe im Verhältnis zu einer ersten Achse (zum Beispiel einer X-Achse) gleich null oder kleiner als ein Mindestwert ε ist; Erzeugen einer zweidimensionalen konvexen Einhüllenden in der Ebene einer zweiten und dritten Achse (zum Beispiel einer Y-Z-Ebene) im Verhältnis zu jeder Gruppe von Scheitelwerten; Erzeugung einer dreidimensionalen konvexen Einhüllenden durch Kombinieren bzw. Zusammenlegen der benachbarten zweidimensionalen konvexen Einhüllenden, und Erzeugen des gewünschten nicht-konvexen Polyeders durch schrittweises Kombinieren der benachbarten dreidimensionalen konvexen Einhüllenden.
-
Als eine weitere bekannte Technik offenbart die
japanische nicht geprüfte Patentveröffentlichung (Kokai) Nr. 2004-280 635 (JPP '635) eine Simulationsvorrichtung zum Simulieren der Bewegung einer Vielzahl von Robotern. Sie weist eine Speichervorrichtung für Weginformationen zum Speichern von Koordinatenwerten und Simulationszeiten einer Vielzahl von Polyedern auf, die den Verlauf eines Wegs jedes Robotermodells speichern, nachdem der Roboter über eine vorgegebene Zeitdauer betrieben worden ist, und eine Erkennungsvorrichtung für Behinderungen zum Eingeben der Werte der dreidimensionalen Koordinaten und der Zeiten der Vielzahl von Polyedern in entsprechende Kalkulationsblätter (spread sheets) und zum Erkennen eines Polyeders durch Berechnung, bei welchen gleichzeitig und räumlich eine Behinderung nach der Vielzahl der Kalkulationsblätter auftritt.
-
Mit den Techniken der
JPP '280 und
JPP '480 ist es schwierig, die Behinderung auf der Bewegungsbahn zu erkennen oder vorauszuberechnen, obwohl die Behinderung in der Endstellung bestimmt werden kann. So ist in
2 der JPP 480 eine Bewegungsbahn des Werkzeugs
3 gezeigt, wenn das Werkstück
7 in dem Werkstückkasten
4 ergriffen wird, und obwohl das Werkzeug
3 zum Zeitpunkt T4 des Bewegungsendes vom Kasten
4 nicht behindert wird, kann eine Behinderung zwischen den Zeitpunkten T2 und T4 auftreten.
-
Auf der anderen Seite wird nach der Technik der
JPP '675 , um eine Behinderung auf der generierten Bewegungsbahn präzise vorausbestimmen zu können, schrittweise für alle Interpolationspositionen geprüft, ob ein Zielteil des Roboters auf ein peripheres Objekt treffen kann. Diese Technik erfordert jedoch exzessiv lange Berechnungszeiten und ist daher nicht für das Vorausberechnen einer Behinderung während der Bewegung des Roboters in Echtzeit nicht geeignet.
-
Die Technik der
JPP '046 verwendet eine konvexe Einhüllende zur Vorausberechnung einer Behinderung. Mit dieser Technik wird eine Behinderung zwischen Polyedern im stationären Zustand vorausbestimmt. Sie lässt sich daher nicht für ein sich bewegendes Polyeder einsetzen.
-
Bei der Technik nach der
JPP '635 , bei der eine Vielzahl von Robotern und eine Werkzeugmaschine bzw. Herstellungsvorrichtung gleichzeitig betrieben werden, wird die Behinderung zwischen berechneten Polyedern anstelle einer Behinderung zwischen den Robotern berechnet, wobei jedes Polyeder bei jedem Roboter nur einen Bewegungsbereich abdeckt. Da aber das dem Bewegungsbereich entsprechende Polyeder nicht auf ein konvexes Polyeder beschränkt ist, ist die Berechnung zur Beurteilung der Behinderung kompliziert und nimmt viel Zeit in Anspruch. Daher ist die Technik nach der JPP '635 für die Beurteilung der Behinderung während der Bewegung des Roboters in Echtzeit nicht geeignet.
-
Zusammenfassung der Erfindung
-
Es ist eine Aufgabe der vorliegenden Erfindung, ein Verfahren und eine Vorrichtung zum Vorausberechnen bzw. -bestimmen einer Behinderung zwischen einem Zielteil eines Roboters und einem peripheren Gegenstand – wie einem externen Gerät oder einem um den Roboter herum errichteten Gitter – mit praktisch annehmbarer Genauigkeit und Berechnungszeit während das Zielteil – wie beispielsweise ein an die Hand des Roboters angebautes Werkzeug oder Sensor – aufgrund der Bewegung des Roboters längs einer Bewegungsbahn bewegt wird, zu schaffen.
-
Gemäß einem Aspekt der vorliegenden Erfindung ist ein Verfahren zum Vorausberechnen einer Behinderung geschaffen, bei dem das Verfahren die Schritte umfasst:
Speichern einer eingenommenen peripheren Fläche, die ein peripheres angenähertes Polyeder ist, das eine polyedrische Annäherung an die Gestalt eines peripheren, in einem Raum festgelegten Objekts ist, und eines einem Zielteil angenäherten Polyeders, das eine polyedrische Annäherung an ein Zielteil eines Roboters ist;
Berechnen einer Vielzahl von von einem Zielteil eingenommenen Flächen, die von dem Zielteil angenäherten Polyedern eingenommen sind, zu einer Vielzahl von Zeitpunkten, die der Bewegung des Roboters zugeordnet sind, und
Vorausberechnen einer Behinderung zwischen dem Zielteil des Roboters und dem peripheren Objekt auf der Grundlage der Vielzahl der von den Zielteilen eingenommenen Flächen und der eingenommenen peripheren Fläche,
bei dem das Verfahren die Schritte umfasst:
Berechnen aller konvexen Einhüllenden, die Kombinationen bzw. Zusammenlegungen der von benachbarten Zielteilen eingenommenen Flächen sind, wenn die Vielzahl der von Zielteilen eingenommenen Flächen in der Reihenfolge der Vielzahl von Zeitpunkten aufgereiht sind;
Berechnen der eingenommenen peripheren Fläche als Kombination bzw. Zusammenlegungen von konvexen Polyedern, und
Beurteilen, ob die Behinderung zwischen dem Zielteil des Roboters und dem peripheren Objekt auftritt, durch Beurteilen bzw. Feststellen, ob eine gemeinsame Fläche zwischen irgendeiner der konvexen Einhüllenden und den konvexen Polyedern besteht.
-
Entsprechend einem anderen Aspekt der vorliegenden Erfindung ist eine Vorrichtung zum Vorausberechnen einer Behinderung geschaffen, bei der die Vorrichtung umfasst:
ein Speicherteil, das so konfiguriert ist, dass es eine eingenommene periphere Fläche, die ein peripheres angenähertes Polyeder ist, das eine polyedrische Annäherung an die Gestalt eines peripheren, in einem Raum festgelegten Objekts ist, und ein einem Zielteil angenähertes Polyeder, das eine polyedrische Annäherung an ein Zielteil eines Roboters ist, speichert;
ein Rechenteil zum Berechnen einer Vielzahl von von einem Zielteil eingenommenen Flächen, die von dem Zielteil angenäherten Polyedern eingenommen sind, zu einer Vielzahl von Zeitpunkten, die der Bewegung des Roboters zugeordnet sind, und
ein eine Behinderung vorausberechnendes Teil, das so konfiguriert ist, dass es eine Behinderung zwischen dem Zielteil des Roboters und dem peripheren Objekt auf der Grundlage der Vielzahl der von den Zielteilen eingenommenen Flächen und der eingenommenen peripheren Fläche vorausberechnet,
bei dem das eine Behinderung vorausberechnende Teil umfasst:
ein eine konvexe Einhüllende berechnendes Teil, das so konfiguriert ist, dass es alle konvexen Einhüllenden, die Kombinationen bzw. Zusammenlegungen von benachbarten der von Zielteilen eingenommenen Flächen sind, wenn die Vielzahl der von Zielteilen eingenommenen Flächen in der Reihenfolge der Vielzahl von Zeitpunkten aufgereiht sind; und
ein eine eingenommene periphere Fläche berechnendes Teil, das so konfiguriert ist, dass es die eingenommene periphere Fläche als eine Kombination bzw. Zusammenlegungen von konvexen Polyedern berechnet,
und bei dem das eine Behinderung vorausberechnende Teil beurteilt bzw. feststellt, ob die Behinderung zwischen dem Zielteil des Roboters und dem peripheren Objekt auftritt, durch Beurteilen bzw. Feststellen, ob eine gemeinsame Fläche zwischen irgendeiner der konvexen Einhüllenden und den konvexen Polyedern besteht.
-
Kurze Beschreibung der Zeichnungen
-
Die obigen und anderen Ziele, Merkmale und Vorteile der vorliegenden Erfindung werden deutlicher durch die nachfolgende Beschreibung bevorzugter Ausführungsformen hiervon unter Bezugnahme auf die beigefügten Zeichnungen, in denen:
-
1 eine schematische Konfiguration einer Ausführungsform einer eine Behinderung vorausberechnen können Vorrichtung gemäß der vorliegenden Erfindung darstellt;
-
2 ein Beispiel zeigt, bei dem ein Werkzeug und ein Werkstückkasten durch Polyeder approximiert wird;
-
3 zeigt ein Beispiel, bei dem in die CS einem regelmäßigen Tetraeder als ein Beispiel eines konvexen Polyeders zugeordnet werden.
-
4 ist ein Fließschaltbild, zeigt die Prozedur bzw. den Vorgang zum vorausberechnen einer Behinderung gemäß einem Verfahren oder einer Vorrichtung zur Vorausberechnung einer Behinderung gemäß der Erfindung;
-
5 zeigt die positionelle Beziehung zwischen dem Werkzeug, dem Werkstückkasten und dem Werkstück, wobei die Position und Orientierung des Werkzeugs zu jedem angezeigten Zeitpunkt wenn die Divisorzahl bzw. der Divisor 4 ist;
-
6 zeigt ein Diagramm, das ein Beispiel zur Berechnung der Geradheit an einem Scheitelpunkt des Polyeders zu jedem Zeitpunkt;
-
7 zeigt ein Beispiel zum Berechnen einer konvexen Einhüllenden aus einer polyedrischen Fläche;
-
8 zeigt ein Beispiel, bei dem ein Politbüro in eine Vielzahl von drei erkennen unterteilt ist, und
-
9 zeigt die positionelle Beziehung zwischen der konvexen Einhüllenden und dem Polyeder, welches das periphere Objekt repräsentiert.
-
Ausführliche Beschreibung
-
1 zeigt eine schematische Konfiguration einer Ausführungsform einer Vorrichtung zum Vorausberechnen von (gegenseitigen) Behinderungen gemäß der vorliegenden Erfindung. Im Rahmen der vorliegenden Erfindung bedeutet ”ein Zielteil eines Roboters” ein Teil eines Roboterarms, das einen Körper oder ein angebrachtes Teil umfasst, das auf ein peripheres Objekt während der Bewegung des Roboters treffen bzw. an dieses anstoßen könnte. In einer Ausführungsform ist eine Vorrichtung zum Vorausberechnen einer solchen Behinderung dadurch verwirklicht, dass Software zum Vorausberechnen einer Behinderung innerhalb einer Robotersteuerung 6 vorgesehen ist. Am vorderen Ende eines Gelenks eines Roboters 5 sind ein Werkzeug 3 zum Aufnehmen eines Werkstücks 7, eine Kamera 2 zum Aufnehmen eines Bildes des Werkstücks 7 und ein Laseremitter 1 zur Abgabe eines Laserstrahls auf das Werkstück 7 angebracht. Mit der Kamera 2 und des Laseremitters 1 ist ein dreidimensionaler Bildsensor zur Erkennung der Position und Orientierung eines Werkstücks 7 gebildet. Bei dieser Ausführungsform sind die Werkstücke 7 in einem Behälterkasten bzw. Werkstückkasten 4 aufgenommen. In dem Werkstückkasten 4 liegt eine Vielzahl von Werkstücken 7 in zufälliger Anordnung übereinander und folglich sind Lage bzw. Position und Orientierung jedes Werkstücks 7 zufällig.
-
Der Roboter 5, der Laseremitter 1, die Kamera 2 und das Werkzeug 3 können konventionell ausgebildet sein, weshalb hier eine detaillierte Beschreibung ausgelassen ist. Die Robotersteuerung 6 kann insoweit in bekannter Weise ausgebildet sein, als die Steuerung einen Prozessor, ein ROM, einen RAM, einen nicht-flüchtigen Speicher, ein Eingabegerät mit einem Display, eine Eingabe/Ausgabe-Schnittstelle, eine Kameraschnittstelle und einen Servosteuerung für den Betrieb und die Steuerung eines Servomotors für jede Roboterachse aufweist. Der in 1 dargestellte Roboter 5 hat sechs Gelenkachsen. Wenn ein Befehl für die Position und Orientierung des Werkzeugs 3 abgegeben wird, berechnet die Robotersteuerung 6 einen Schwenk- bzw. Drehwinkel für jede Gelenkachse des Roboters 5 und steuert die Bewegung jeder Achse, so dass das Werkzeug 3 die angesteuerte Position und Orientierung einnimmt. Der Laseremitter 1 und das Werkzeug 3 sind mit der Eingabe/Ausgabe-Schnittstelle verbunden und die Kamera 2 ist an die Kameraschnittstelle angeschlossen.
-
Die Position und Orientierung des Werkzeugs 3 in Bezug auf das vordere Ende des Gelenks des Roboters 5, die Form bzw. Gestalt des Werkzeugs 3, die Position und Orientierung des Werkstückkastens 4, die Gestalt des Werkstückkastens 4, die Lage und Orientierung des Werkstücks 7 bei der Unterweisung bzw. beim Lernvorgang (Teachen) und die Position und Orientierung des Werkzeugs zum Ergreifen des Werkstücks 7, die die Position und Orientierung beim Teachen repräsentieren, werden zuvor bestimmt und in einem Speicher der Robotersteuerung 6 gespeichert. Bezüglich der zu speichernden Formen des Werkzeugs 3 und des Werkstückkastens 4, wie sie in 2 dargestellt sind, wird das Werkzeug 3 durch eine Fläche D1 entsprechend einem Polyeder angenähert dargestellt, das durch eine Kombination von 2 rechteckigen Parallelepipeden gebildet ist. Der Werkstückkasten 4 wird durch eine Fläche D2 angenähert wiedergegeben, die einem Polyeder entspricht, das durch Wegnehmen eines rechteckigen Parallelepipeds von einem anderen rechteckigen Parallelepiped gebildet ist, welches etwas größer als das frühere rechteckige Parallelepiped ist.
-
Jede der Flächen D1 und D2 kann als eine Kombination aus einer Vielzahl von rechteckigen Parallelepipeden dargestellt werden. Um die Berechnung für das Vorausberechnen einer Behinderung zu erleichtern, ist die angenäherte bzw. ungefähre Fläche durch eine Kombination von konvexen Polyedern wiedergegeben. Konkret wird einem Scheitelpunkt und einer Seite einer entsprechenden Polyederfläche ein Index zugeordnet und werden die Raumkoordinaten für jeden Scheitelpunkt, die Indices der Scheitelpunkte an beiden Endpunkten jeder Seite und die Indices der Seiten für jede Fläche des Polyeders gespeichert. Wenn zum Beispiel, wie es in 3 dargestellt ist, die angenäherte Fläche ein rechteckiger Tetraeder (oder ein konvexes Polyeder) ist und die Länge jeder Seite hiervon den Wert 3 hat, wird jedem Scheitelwert und jeder Seite ein Index zugeordnet. Dann werden in einem bestimmten Koordinatensystem die Koordinatenwerte (0.000, 0.000, 2.449), (1.732, 0.000, 0.000), (–0.866, 1.500, 0.000) und (–0.866, –1.500, 0.000) der Scheitelpunkte V1, V2, V3 und V4, die Scheitelpunkte (V1, V2), (V1, V4), (V1, V3), (V2, V4), (V3, V4) und (V2, V3) beider Endpunkte der Seiten E1, E2, E3, E4, E5 und E6, und die Scheitelpunkte der Seiten (E1, E2, E4), (E2, E3, E5), (E1, E3, E6) und (E4, E5, E6), die Oberflächen definieren S1, S2, S3 und S4, gespeichert.
-
4 zeigt ein Fließschaltbild, das die Prozedur zur Beurteilung zeigt, ob das Werkzeug 5 vom Werkstückkasten 4 während des Greifvorgangs des Werkstücks 7 unter Verwendung des Roboters 5 behindert werden kann. Bei diesem Vorgang wird zunächst aufgrund eines Befehls der Robotersteuerung 6 der Roboter 5 bewegt, so dass ein Bild des Werkstücks 7 im Werkstückkasten 4 aufgenommen werden kann, und anschließend wird die Position bzw. Lage und die Orientierung des Werkstücks mit Hilfe des Laseremitters 1 und der Kamera 2 bestimmt (Schritt 101).
-
Als nächstes werden die Position und die Orientierung des Werkzeugs 3, aus der heraus das Werkzeug 3 das ausgemessene Werkstück 7 ergreifen und das Werkstück 7 aus dem Werkstückkasten 4 entnehmen kann, auf der Grundlage der gemessenen Position und Orientierung des Werkstücks 7, die zuvor beim Teachen gespeicherten Position und Orientierung des Werkstücks 7 und der zuvor gespeicherten Position und Orientierung des Werkzeugs 3 beim Ergreifen des Werkstücks berechnet. Dann wird eine Bewegungsbahn des Werkzeugs 3 erzeugt (Schritt 102), wobei die Position und Orientierung, wenn das Werkstück 7 ausgemessen ist, als die Position und die Orientierung zum Zeitpunkt des Beginns der Bewegung bestimmt werden und die Position und die Orientierung, wenn das ausgemessene Werkstück 7 durch das Werkzeug 3 ergriffen und aus dem Werkstückkasten 4 herausgenommen wird, als die Position und Orientierung zum Zeitpunkt der Beendigung der Bewegung bestimmt. Es gibt verschiedene Verfahren zur Erzeugung der Bewegungsbahn. Zum Beispiel ist bei einem Verfahren zur Erzeugung einer Bewegungsbahn die Schwenkgeschwindigkeit für jede Gelenkachse des Roboters konstant. Mit anderen Worten, bei diesen Verfahren ist, wenn der Schwenkwinkel jeder Gelenkachse k (k = 1, 2, .., 6) des Roboters 5 zum Zeitpunkt des Beginns der Bewegung auf den Wert Θk gesetzt ist, der Schwenkwinkel für jede Gelenkachse k zum Zeitpunkt der Beendigung der Bewegung auf den Wert ϕk gesetzt und wird der Zeitpunkt des Beginns der Bewegung auf den Wert 0 (null) gesetzt, und wird der Zeitpunkt der Beendigung der Bewegung auf den Wert T gesetzt, der Schwenkwinkel jeder Gelenkachse k zum Zeitpunkt t, mit (0 ≤ t ≤ T), ist gleich (Θk + Δk × t), worin Δk = (ϕk – Θk)/T ist. Dieses Verfahren ist lediglich ein Beispiel und folglich hängt die Anwendung des Verfahrens zum Vorausberechnen von Behinderungen nicht von dem Verfahren für die Erzeugung der Bewegungsbahn bzw. des Bewegungspfads ab.
-
Als nächstes wird die Zeitdauer vom Start zum Ende der Bewegung in n gleiche Teile unterteilt und werden (n + 1) Zeitpunkte als T0, T1... Tn bestimmt (Schritt 103). Die Zeitpunkte T0 und Tn entsprechen dem Zeitpunkt für den Beginn der Bewegung und dem Zeitpunkt für das Ende der Bewegung. Der Divisor ”n” kann zuvor unter Berücksichtigung von Genauigkeit und/oder Berechnungszeit für das Vorausberechnen einer möglichen Behinderung bestimmt werden oder kann nacheinander auf der Grundlage der Zeit der Bewegung und der Länge der Bewegungsbahn bestimmt werden. Mit zunehmender Divisorzahl wird die Genauigkeit der Vorausberechnung der Behinderung verbessert, wobei sich jedoch die Berechnungszeit allgemein proportional der Divisorzahl erhöht. Um die Behinderung in Echtzeit vorauszuberechnen, wird es bevorzugt, die Berechnungszeit so kurz wie möglich zu halten.
-
5 zeigt die proportionale Verknüpfung zwischen dem Werkzeug 3, dem Werkstückkasten 4 und dem Werkstück 7, wobei die Position und Orientierung des Werkzeugs 3 an jedem Zeitpunkt angegeben werden, wenn die Divisorzahl vier (n = 4) ist. In diesem Falle beträgt die Bewegungszeit 2,0 Sekunden und ist die Länge der Bewegungsbahn 400 Millimeter. Daher werden, wenn die Bewegungszeit in vier Teile aufgeteilt wird, fünf Zeitpunkte (0,0, 0,5, 1,0, 1,5, und 2,0 Sekunden) erzeugt und beträgt die Länge der Bewegungsbahn zwischen aufeinanderfolgenden Zeitpunkten jeweils 100 Millimeter.
-
Als nächstes wird eine Variable j auf den Wert 2 (j ← 2) gesetzt und eine konvexe Hülle bzw. Einhüllende D'
1 des Werkzeugs berechnet (Schritt
104). Zunächst werden für die vom Werkzeug
3 eingenommene Fläche D
1 die Scheitelpunkte der konvexen Einhüllenden D'
1 berechnet. Die ”konvexe Einhüllende” bzw. Hülle bedeutet ein minimaler Satz enthaltend (im Sinne einer einschließenden Beziehung) ein Liniensegment, das sich willkürlich zwischen zwei Punkten eines gegebenen Satzes erstreckt. Mit anderen Worten, die konvexe Einhüllende bedeutet eine normale konvexe Gestalt, enthaltend einen ganzen Satz von Punkten, d. h. einen Polyeder, der aus Liniensegmenten zwischen den äußersten Punkten in dem Satz von Punkten gebildet ist. Folglich ist, wenn die Fläche D
1 ein Polyeder ist, eine konvexe Einhüllende D'
1 ebenfalls ein konvexes Polyeder. Scheitelpunkte der konvexen Einhüllenden D'
1 können mit Hilfe jedes Scheitelpunkts der Polyederfläche D
1 berechnet werden, z. B. unter Verwendung eines Algorithmus, der als ”QuickHull” bezeichnet wird (
"The Quickhull Algorithm for Convex Hulls", ACM Translations an Mathematical Software, Vol. 22, No. 4, December 1996).
-
Als nächstes wird im Schritt 105 die Geradheit bzw. Geradlinigkeit von Lj zum Zeitpunkt Tj berechnet. Konkret bedeutet dies, wie es in 6 dargestellt ist, in Bezug auf jeden im Schritt 104 berechneten Scheitelpunkt V der konvexen Einhüllenden D'1, dass die Position jedes Scheitelpunkts V jeweils an den Zeitpunkten Tj-1, Tj und Tj+1 als Pj-1, Pj und Pj+1 bestimmt wird und ein Endpunkt einer vertikalen Linie als Hj bestimmt wird, die sich vom Punkt Pj zu einem Segment Pj-1Pj+1 erstreckt. In diesem Falle wird die Geradheit Lv,j des Scheitelpunkts V zum Zeitpunkt Tj mit nachfolgender Gleichung (1) berechnet.
-
-
Ferner wird ein Minimalwert unter den Geradheitswerten Lv,j für den Zeitpunkt Tj als die Geradheit Lj zum Zeitpunkt Tj des Werkzeugs 3 bestimmt (Schritt 105). Die Geradheit Lv,j kann zwischen 0 und 1 variieren, während wenn die Geradheit nahe dem Wert 1 liegt, eine polygonale Linie Pj-1PjPj+1 nahezu eine gerade Linie ist. Dann wird in Bezug auf einen positiven Wert ε, der nahe 0 liegt und zuvor in der Robotersteuerung gespeichert wurde, das Größenverhältnis zwischen der Geradheit Lj und (1 – ε) beurteilt (Schritt 106).
-
Wenn Lj größer als (1 - ε) ist, wird der Zeitpunkt Tj aus der Serie der Zeitdaten durch die nachfolgende Substitution ersetzt, d. h. Tj ← Tj+1, Tj+1 ← Tj+2, .., Tn-1 ← Tn, n ← n – 1 (Schritt 107).
-
Aufgrund dieses Vorgangs wird ohne die Genauigkeit der Vorausberechnung einer Behinderung wesentlich zu vermindern, die Anzahl der im folgenden Schritt berechneten konvexen Einhüllenden auf um den Wert 1 vermindert, wodurch die Berechnungszeit verringert wird. Der Grund, weshalb die Genauigkeit der Behinderungsvoraussage nicht verringert wird, wird an späterer Stelle näher erläutert.
-
Im Schritt 108 wird die Größenbeziehung zwischen j und (n – 1) beurteilt. Wenn j < (n – 1) ist, wird die Substitution j ← j + 1 ausgeführt (Schritt 109) und springt die Verfahrensprozedur zum Schritt 105 zurück, um die Geradheit Lj zu jedem Zeitpunkt bis j gleich oder größer als (n - 1) zu überprüfen.
-
Als nächstes wird die Substitution j ← 1 im Schritt 110 ausgeführt. Ferner wird die konvexe Einhüllende Cj definiert durch die Flächen D1,j-1 und D1,j an den benachbarten Zeitpunkten Tj-1 und Tj im Schritt 111 berechnet, worin die durch das Werkzeug 3 eingenommene Fläche zu jedem Zeitpunkt Tj (j = 1, 2, .., n) als Fläche D1,j bezeichnet wird. Die Fläche D1,j ist mit Hilfe einer Starrkörper-Transformation (rigid-body transformation) der Fläche D1 in dem 3D-Raum entsprechend der Bewegungsdistanz des Werkzeugs 3 zu jedem Zeitpunkt Tj gebildet. Da die Fläche D1 ein Polyeder ist, ist auch die Fläche D1,j ein Polyeder und folglich ist die konvexe Einhüllende Cj der Flächen D1,j-1 und D1,j ein konvexes Polyeder.
-
Die Einzelheiten des Schritts 111 werden nachfolgend erläutert. Zunächst wird jeder Scheitelpunkt der konvexen Einhüllenden Cj aus jedem Scheitelpunkt der Fläche des Polyeders D1,j-1 und der Fläche D1,j unter zur Hilfenahme des oben erwähnten Verfahrens ”Quickhull” oder dergleichen berechnet. Danach wird jede Seite der konvexen Einhüllenden Cj berechnet, wobei in Bezug auf alle Kombinationen von zwei Scheitelpunkten (V1, V2) der konvexen Einhüllenden Cj gemäß der nachfolgenden Prozedur beurteilt wird, ob das Liniensegment V1V2 einer Seite der konvexen Einhüllenden Cj entspricht. Alle Scheitelpunkte der konvexen Einhüllenden Cj werden orthographisch auf eine Ebene Π projiziert, die rechtwinklig zum Liniensegment V1V2 steht. An diesem Punkt werden die Scheitelpunkte V1 und V2 auf einen identischen Punkt P in der Ebene Π projiziert. Wenn auf der Ebene Π der Punkt P am Scheitelpunkt oder auf einer Seite der konvexen Einhüllenden aller orthographisch projizierten Punkte positioniert ist, wird an diesem Punkt festgestellt, dass das Liniensegment V1V2 der Seite der konvexen Einhüllenden entspricht. Die Scheitelpunkte der konvexen Einhüllenden auf der Ebene können mit Hilfe des Verfahrens ”Quickhull” oder dergleichen berechnet werden.
-
Es wird beurteilt, ob ein Liniensegment P1P2, das sich zwischen den Scheitelpunkten P1 und P2 der konvexen Einhüllenden in der Ebene erstreckt, der Seite der konvexen Einhüllenden, wie es nachfolgend beschrieben wird, entspricht. Alle Scheitelpunkte der konvexen Einhüllenden sind orthographisch auf eine gerade Linie λ projiziert, die rechtwinklig zum Liniensegment P1P2 steht. Als nächstes wird auf der geraden Linie λ, wenn ein Punkt, der das orthographisch projizierte Liniensegment P1P2 widergibt, an einem Ende eines Liniensegments existiert, das die konvexe Einhüllende dieser Punkte wiedergibt, wird geschlossen, dass das Liniensegment P1P2 der Seite konvexen Einhüllenden entspricht. Auf gleiche Weise werden in Bezug auf alle Kombinationen von drei Seiten der konvexen Einhüllenden Cj, die jeweils ein Dreieck bilden, alle Scheitelpunkte der konvexen Einhüllenden Cj orthographisch auf eine gerade Linie A projiziert, die rechtwinklig zu einer das Dreieck enthaltenden Ebene steht. Anschließend wird auf der geraden Linie Λ, wenn ein Punkt, der das orthographisch projizierte Dreieck repräsentiert, am einen Ende des Liniensegments existiert, welches die konvexe Einhüllende dieser Punkte repräsentiert, geschlossen, dass das Dreieck einer Fläche der konvexen Einhüllenden Cj entspricht. 7 zeigt ein Beispiel der Flächen D1,j-1 und D1,3 und die daraus errechnete konvexe Einhüllende Cj. Wenn die Flächen D1,j-1 und D1,j im Wesentlichen dem Werkzeug 3 zu jedem Zeitpunkt, der durch die durchgezogenen Linien repräsentiert ist, entsprechen, ist die konvexe Einhüllende Cj durch eine Fläche repräsentiert, die durch Addieren einer durch eine gestrichelten Linie wiedergegebenen Fläche zu den Flächen D1,j-1 und D1,j gebildet ist.
-
Als nächstes wird bestimmt, ob eine gemeinsame Fläche oder eine sich überlappende Fläche zwischen der konvexen Einhüllenden Cj und der polyedrischen Fläche D2 existiert (Schritt 112). Da die Polyederfläche D2 durch die Summierung der Vielzahl von konvexen Polyederflächen D2,j wiedergegeben ist, wenn eine gemeinsame Fläche zwischen der konvexen Einhüllenden Cj und jeder beliebigen Kombination der konvexen Polyederflächen D2,j vorhanden ist, kann gesagt werden, dass eine gemeinsame Fläche zwischen der konvexen Einhüllenden Cj und der Polyederfläche D2 existiert. Da alle Flächen der konvexen Einhüllenden Cj und den konvexen Polyederflächen D2,j Polygone sind, kann jede der Flächen in eine Vielzahl von Dreiecken unterteilt werden, wie dies in 8 dargestellt ist. (In 8 ist ein Hexagon (Sechseck) in vier Dreiecke I bis IV unterteilt). Mit anderen Worten, es kann jede der konvexen Einhüllenden Cj und konvexen Polyederflächen D2,j als eine geschlossene nur durch Dreiecke definierte geschlossene Region wiedergegeben werden. Daher kann die Existenz oder fehlende Existenz der gemeinsamen Fläche aufgrund wenigstens einer der nachfolgenden drei Bedingungen beurteilt werden: (1) ob eine oder mehrere Kombinationen existieren, in denen ein Dreieck, das eine konvexe Einhüllende Cj definiert, sich mit einer Seite (oder einem Liniensegment) eines konvexe Polyederflächen D2,j definierenden Dreiecks schneidet; (2) ob eine oder mehrere Kombinationen existieren, bei denen eine Seite (oder ein Linienelement) eines eine konvexe Einhüllende Cj definierenden Dreiecks sich mit einem die konvexe Polyederfläche D2,j definierenden Dreieck schneidet, und (3) ob die konvexe Einhüllende Cj vollständig konvexe Polyederflächen D2,j enthält oder umgekehrt.
-
Der Schnittpunkt zwischen dem Liniensegment und dem Dreieck wird wie nachfolgend beschrieben beurteilt. Die räumlichen Koordinatenwerte der Endpunkte A1 und A2 des Liniensegments werden als α1 und α2 bezeichnet und die Werte der Raumkoordinaten der Scheitelpunkte B1, B2 und B3 der Dreiecke werden entsprechend als β1, β2 und β3 bezeichnet. Die Koordinatenwerte (α1, α2, β1, β2, und β3) werden als dreidimensionale Vektoren wiedergegeben. Zunächst wird beurteilt, ob eine 3 × 3 Matrix (α1 – α2, β1 – β3, β2 – β3) eine reguläre Matrix ist. Wenn die 3 × 3 Matrix eine reguläre Matrix ist, wird geschlossen, dass das Liniensegment A1A2 und das Dreieck B1B2B3 nicht parallel zueinander liegen. Wenn dagegen die 3 × 3 Matrix eine singuläre Matrix ist, wird geschlossen, dass das Liniensegment A1A2 und das Dreieck B1B2B3 parallel zueinander liegen.
-
Wenn das Liniensegment A1A2 und das Dreieck B1B2B3 nicht parallel zueinander liegen, wird ein Wert x der räumlichen Koordinate, die einen Schnittpunkt zwischen einer geraden, das Liniensegment A1A2 enthaltenden Linie und einer das Dreieck B1B2B3 enthaltenden Ebene eindeutig durch die nachfolgende Gleichung wiedergegeben x = s1α1 + s2α2, x = t1β1 + t2β2 + t3β3
-
In der obigen Gleichung sind s1, s2, t1, t2 und t3 reale Zahlen, die die folgenden Gleichungen erfüllen s1 + s2 = 1 t1 + t2 + t3 = 1
-
Wenn alle berechneten Werte s1, s2, t1, t2 und t3 gleich oder größer als Null (0) und gleich oder kleiner als Eins (1) sind, wird geschlossen, dass sich das Liniensegment A1A2 mit dem Dreieck B1B2B3 schneidet. Auf der anderen Seite wird, wenn das Liniensegment A1A2 und der Winkel B1B2B3 parallel zueinander liegen, der Abstand zwischen dem Punkt A1 und der Ebene B1B2B3 berechnet. Wenn der berechnete Abstand gleich Null ist, liegen das Liniensegment A1A2 und das Dreieck B1B2B3 in der gleichen Ebene.
-
In dem Fall, dass das Liniensegment A1A2 und das Dreieck B1B2B3 in der gleichen Ebene liegen, wenn eine 2 × 2 Matrix (α1 – α2, β1 – β2) eine reguläre Matrix ist, liegen das Liniensegment A1A2 und die Seite B1B2 des Dreiecks B1B2B3 nicht parallel zueinander. Dann wird der Wert y der Raumkoordinate, die dem Schnittpunkt zwischen einer geraden Linie, die das Liniensegment A1A2 enthält, und einer gerade Linie, die die Seite B1B2 enthält, eindeutig durch die nachfolgende Gleichung wiedergegeben. y = s1α1 + s2α2, y = t1β1 + t2β2
-
In der obigen Gleichung sind s1, s2, t1 und t2 reale Zahlen, die die folgenden Gleichungen erfüllen. S1 + S2 = 1, t1 + t2 = 1
-
Wenn alle Werte s1, s2, t1 und t2 als gleich oder größer Null und gleich oder kleiner Eins berechnet werden, wird daraus geschlossen, dass sich das Liniensegment A1A2 mit der Seite B1B2 schneidet und sich somit das Liniensegment A1A2 mit dem Dreieck B1B2B3 schneidet. Wenn das Liniensegment A1A2 und das Dreieck B1B2B3 in der gleichen Ebene liegen, wird der Schnittpunkt zwischen dem Liniensegment A1A2 und der Seite B2B3 und der Schnittpunkt zwischen dem Liniensegment A1A2 und der Seite B3B1 ebenfalls beurteilt, ebenso wie im Falle der Seite B1B2, um den Schnittpunkt zwischen dem Liniensegment A1A2 und dem Dreieck B1B2B3 zu beurteilen. Wenn keine der Seiten des Dreiecks B1B2B3 sich mit dem Liniensegment A1A2 schneidet, wird geschlossen, dass das Liniensegment A1A2 sich nicht mit dem Dreieck B1B2B3 schneidet.
-
Ob die konvexe Einhüllende Cj vollständig die konvexe Polyederfläche D2,j enthält oder nicht, kann durch Ermittlung, ob sich ein Liniensegment zwischen dem Schwerpunktzentrum der konvexen Einhüllenden Cj und jedem aller Scheitelpunkte der konvexen Polyederfläche D2,j mit einer Oberfläche der konvexen Einhüllenden Cj schneidet oder nicht schneidet, ermittelt werden. Auf gleiche Weise kann ermittelt werden, ob die Polyederfläche D2,j die konvexe Einhüllende Cj vollständig enthält oder nicht.
-
Als Ergebnis der Beurteilung hinsichtlich der Existenz einer gemeinsamen Fläche, ob die gemeinsame Fläche zwischen der konvexen Einhüllenden Cj und der konvexen Polyederfläche D2,j existiert, kann geschlossen werden, dass das Werkzeug 3 auf der Bewegungsbahn auf den Werkstückkasten 4 trifft (sie sich behindern) (Schritt 113). Die Prozedur bzw. das Beurteilungsverfahren wird dann beendet. Wenn andererseits die gemeinsame Fläche nicht vorhanden ist, wird bestimmt, ob j < n wahr ist oder nicht (Schritt 114).
-
Im Schritt 114 geht das Verfahren, wenn j < n wahr ist, zum Schritt 109 über, um j durch (j + 1) zu substituieren (j ← j + 1) und dann springt das Verfahren zum Schritt 105 zurück. Wenn auf der anderen Seite j ≥ n im Schritt 114 wahr ist bzw. zutrifft, wird geschlossen, dass das Werkzeug 3 nicht mit dem Werkstückkasten 4 auf seiner Bewegungsbahn zusammentrifft (Schritt 115) und wird wiederum das Verfahren beendet.
-
9 stellt eine vergrößerte Ansicht eines Teils der 5 zwischen den Zeitpunkten T2 und T3 dar. Wie gezeigt, ist ein gemeinsamer Bereich zwischen der konvexen Einhüllenden C3 und der Polyederfläche D2 vorhanden, bei der die konvexe einhüllende C3 zwei durch das Werkzeug 3 eingenommene Flächen zu den Zeitpunkten T2 und T3 einnimmt. Folglich wird vorausgesagt oder geurteilt, dass das Werkzeug 3 auf der Bewegungsbahn der 5 mit dem Werkstückkasten 4 zusammenstößt bzw. von ihm behindert wird.
-
Die Berechnungszeit zum Urteilen über die Existenz einer gemeinsamen Fläche zwischen der konvexen Einhüllenden Cj und der Fläche D2 beträgt 1 bis 2 ms. Auch die Zeit zur Berechnung der konvexen Einhüllenden Cj aus den beiden Flächen D1,j-1 und D1,j beträgt 1 bis 2 Millisekunden (ms). Im Falle der 5 beträgt die Berechnungszeit zum Vorausberechnen einer Behinderung höchstens 16 ms (= (2 + 2) × 4), da der Divisor n für die Bewegungszeit des Roboters 4 beträgt. Eine solche Berechnungsdauer beeinträchtigt die Bewegung des Roboters nicht. Wie bereits oben erläutert, wenn sich die polygonale Linie Pj-1PjPj+1, die die Bewegung jedes Scheitelpunkts der konvexen Einhüllenden der vom Werkzeug 3 eingenommenen Fläche D1 wiedergibt, nahe einer geraden Linie (d. h. die Geradheit Lj nahezu 1 beträgt), ist die Genauigkeit des Vorausberechnens einer Behinderung nicht wesentlich vermindert, selbst wenn der Zeitpunkt Tj aus der Serie der Zeitdaten im Schritt 107 herausgenommen wurde. Dies deshalb, weil, wenn die polygonale Linie Pj-1PjPj+1 nahezu eine gerade Linie ist, eine Summierung der Flächen D1,j-1, D1,j und der konvexen Einhüllenden der Flächen D1,j+1 allgemein übereinstimmt mit der konvexen Einhüllenden der Flächen D1,j-1, D1,j+1. Wenn daher die Beeinträchtigung auf der Grundlage des Vorhandenseins einer gemeinsamen Fläche zwischen der konvexen Einhüllenden und der Polyederfläche D2 beruht, ist die Genauigkeit der Vorausberechnung einer Beeinträchtigung nicht wesentlich herabgesetzt, selbst wenn der Zeitpunkt Dj aus der Serie der Zeitdaten herausgenommen ist.
-
Wie oben beschrieben, werden in der vorliegenden Erfindung die von dem Zielteil an einigen interpolierten Positionen der Bewegungsbahn belegten Flächen berechnet, werden alle konvexen Einhüllenden, die Kombinationen von Flächen benachbarter interpolierter Positionen sind, berechnet und wird das periphere Objekt durch eine Summierung von konvexen Polyedern wiedergegeben. Die Behinderung zwischen allen konvexen Einhüllenden und allen konvexen Polyedern wird bewertet, um die Behinderung oder Berührung zwischen dem Zielteil und dem peripheren Objekt vorherzuberechnen bzw. vorherzusagen, während das Zielteil längs der Bewegungsbahn bewegt wird.
-
Gemäß der vorliegenden Erfindung kann die Behinderung mit praktisch annehmbarer Genauigkeit und Berechnungsdauer unmittelbar vor der Bewegung vorausberechnet werden. Daher kann bei der Anwendung des Aufnehmens von Werkstücken, die willkürlich bzw. zufällig gestapelt oder gelagert sind, der Roboter unter Vermeidung der Behinderung betrieben werden. Ferner wird nach der Erfindung die konvexe Einhüllende (oder ein Bereich eines konvexen Polyeders), welche eine Kombination von Flächen benachbarter interpolierter Positionen des Zielteils des Roboters ist, berechnet, wobei das periphere Objekt durch eine Summierung der konvexen Polyeder wiedergegeben ist, so dass die Vorausberechnung der Behinderung zwischen dem Zielteil und dem peripheren Objekt durch Bewertung der Behinderung oder Wechselwirkung zwischen der konvexen Einhüllenden und der Summierung konvexer Polyeder ausgeführt werden kann. Somit kann die Berechnung vereinfacht und beschleunigt werden, wobei die Vorausberechnung der Behinderung in Echtzeit während des Betriebs des Roboters vorgenommen werden kann.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- JP 2000-326280 [0003, 0008]
- JP 2002-331480 [0004, 0008]
- JP 2002-273675 [0005, 0009]
- JP 9-27046 [0006, 0010]
- JP 2004-280635 [0007, 0011]
-
Zitierte Nicht-Patentliteratur
-
- ”The Quickhull Algorithm for Convex Hulls”, ACM Translations an Mathematical Software, Vol. 22, No. 4, December 1996 [0033]