DE102012007254A1 - Verfahren und Vorrichtung zum Vorausberechnen einer Behinderung zwischen einem Zielteil eines Roboters und einem peripheren Objekt - Google Patents

Verfahren und Vorrichtung zum Vorausberechnen einer Behinderung zwischen einem Zielteil eines Roboters und einem peripheren Objekt Download PDF

Info

Publication number
DE102012007254A1
DE102012007254A1 DE102012007254A DE102012007254A DE102012007254A1 DE 102012007254 A1 DE102012007254 A1 DE 102012007254A1 DE 102012007254 A DE102012007254 A DE 102012007254A DE 102012007254 A DE102012007254 A DE 102012007254A DE 102012007254 A1 DE102012007254 A1 DE 102012007254A1
Authority
DE
Germany
Prior art keywords
robot
convex
occupied
target
peripheral
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.)
Granted
Application number
DE102012007254A
Other languages
English (en)
Other versions
DE102012007254B4 (de
Inventor
Hidetoshi Kumiya
Kyouhei Kokubo
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fanuc Corp
Original Assignee
Fanuc Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fanuc Corp filed Critical Fanuc Corp
Publication of DE102012007254A1 publication Critical patent/DE102012007254A1/de
Application granted granted Critical
Publication of DE102012007254B4 publication Critical patent/DE102012007254B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1674Programme controls characterised by safety, monitoring, diagnostic
    • B25J9/1676Avoiding collision or forbidden zones
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39094Interference checking between robot and fixture

Abstract

Ein Verfahren und eine Vorrichtung zum Vorausberechnen einer Behinderung mit annehmbarer Genauigkeit und Berechnungszeit zwischen einem Zielteil eines Roboters und einem außerhalb des Roboters befindlichem peripherem Objekt, wenn das an dem Kopf bzw. vorderen Ende des Roboterarms angebrachte Zielteil, zum Beispiel einem Werkzeug oder einem Sensor, aufgrund der Bewegung des Roboters entlang seiner Bewegungsbahn bewegt wird. Eine konvexe Einhüllende Cj, definiert durch Flächen D1,j-1 und D1,j, die durch das Werkzeug zu aufeinanderfolgenden Zeitpunkten Tj-1 , und Tj eingenommen werden, werden berechnet. Es wird festgestellt, ob eine gemeinsame Fläche zwischen der Einhüllenden Cj und der Fläche eines Polyeders D2 vorhanden ist. Wenn die gemeinsame Fläche existiert, wird festgestellt, dass sich das Werkzeug und der Behälterkasten auf der Bewegungsbahn behindern, weshalb dann der Vorgang beendet wird. Wenn eine solche gemeinsame Fläche nicht vorhanden ist, wird ermittelt, ob j > n wahr ist. Wenn j ≤ n wahr ist, wird festgestellt, dass eine Behinderung nicht vorliegt.

Description

  • 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 D1 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 D1 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 D1 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.
  • Figure 00110001
  • 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]

Claims (2)

  1. Verfahren zum Vorausberechnen einer Behinderung, bei dem das Verfahren die Schritte umfasst: Speichern einer eingenommenen peripheren Fläche (D2), die ein peripheres angenähertes Polyeder ist, das eine polyedrische Annäherung an die Gestalt eines peripheren, in einem Raum festgelegten Objekts (4) ist, und eines einem Zielteil angenäherten Polyeders (D1), das eine polyedrische Annäherung an ein Zielteil eines Roboters (5) ist; Berechnen einer Vielzahl von von einem Zielteil eingenommenen Flächen (D1,j), die von dem Zielteil angenäherten Polyedern (D1) eingenommen sind, zu einer Vielzahl von Zeitpunkten, die der Bewegung des Roboters (5) zugeordnet sind, und Vorausberechnen einer Behinderung zwischen dem Zielteil des Roboters (5) und dem peripheren Objekt (4) auf der Grundlage der Vielzahl der von den Zielteilen eingenommenen Flächen (D1,j) und der eingenommenen peripheren Fläche (D2), bei dem das Verfahren die Schritte umfasst: Berechnen aller konvexen Einhüllenden (Cj), die Kombinationen der von benachbarten Zielteilen eingenommenen Flächen sind, wenn die Vielzahl der von Zielteilen eingenommenen Flächen (D1,j) in der Reihenfolge der Vielzahl von Zeitpunkten aufgereiht sind; Berechnen der eingenommenen peripheren Fläche (D2) als eine Kombination von konvexen Polyedern, und Beurteilen, ob die Behinderung zwischen dem Zielteil des Roboters (5) und dem peripheren Objekt (4) auftritt, durch Feststellen, ob eine gemeinsame Fläche zwischen irgendeiner der konvexen Einhüllenden (Cj) und den konvexen Polyedern besteht.
  2. Vorrichtung (6) zum Vorausberechnen einer Behinderung, bei der die Vorrichtung umfasst: ein Speicherteil, das so konfiguriert ist, dass es eine eingenommene periphere Fläche (D2), die ein peripheres angenähertes Polyeder ist, das eine polyedrische Annäherung an die Gestalt eines peripheren, in einem Raum festgelegten Objekts (4) ist, und ein einem Zielteil angenähertes Polyeder (D1), das eine polyedrische Annäherung an ein Zielteil eines Roboters (5) ist, speichert; ein Rechenteil zum Berechnen einer Vielzahl von von einem Zielteil eingenommenen Flächen (D1,j), die von dem Zielteil angenäherten Polyedern (D1) eingenommen sind, zu einer Vielzahl von Zeitpunkten, die der Bewegung des Roboters (5) zugeordnet sind, und ein eine Behinderung vorausberechnendes Teil, das so konfiguriert ist, dass es eine Behinderung zwischen dem Zielteil des Roboters (5) und dem peripheren Objekt (4) auf der Grundlage der Vielzahl der von den Zielteilen eingenommenen Flächen (D1,j) und der eingenommenen peripheren Fläche (D2) 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 (Cj), die Kombinationen von benachbarten der von Zielteilen eingenommenen Flächen sind, wenn die Vielzahl der von Zielteilen eingenommenen Flächen (D1,j) 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 (D2) als eine Kombination von konvexen Polyedern berechnet, und bei dem das eine Behinderung vorausberechnende Teil beurteilt, ob die Behinderung zwischen dem Zielteil des Roboters (5) und dem peripheren Objekt (4) auftritt, durch Feststellen, ob eine gemeinsame Fläche zwischen irgendeiner der konvexen Einhüllenden (Cj) und den konvexen Polyedern besteht.
DE102012007254.6A 2011-04-18 2012-04-11 Verfahren und Vorrichtung zum Vorausberechnen einer Behinderung zwischen einem Zielteil eines Roboters und einem peripheren Objekt Active DE102012007254B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011-092413 2011-04-18
JP2011092413A JP5144785B2 (ja) 2011-04-18 2011-04-18 ロボットの着目部位と周辺物との干渉を予測する方法及び装置

Publications (2)

Publication Number Publication Date
DE102012007254A1 true DE102012007254A1 (de) 2012-10-18
DE102012007254B4 DE102012007254B4 (de) 2015-10-15

Family

ID=46935698

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102012007254.6A Active DE102012007254B4 (de) 2011-04-18 2012-04-11 Verfahren und Vorrichtung zum Vorausberechnen einer Behinderung zwischen einem Zielteil eines Roboters und einem peripheren Objekt

Country Status (4)

Country Link
US (1) US8483878B2 (de)
JP (1) JP5144785B2 (de)
CN (1) CN102744727B (de)
DE (1) DE102012007254B4 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102015002658B4 (de) 2014-03-10 2018-09-20 Fanuc Corporation Robotersimulationssystem, das einen Entnahmevorgang eines Werkstücks simuliert

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101330049B1 (ko) * 2012-03-06 2013-11-18 한국기계연구원 3차원 특징점 기반 직접 교시 궤적 후보정 방법
JP5778311B1 (ja) 2014-05-08 2015-09-16 東芝機械株式会社 ピッキング装置およびピッキング方法
JP6026484B2 (ja) * 2014-10-31 2016-11-16 ファナック株式会社 工作機械の周辺機器の自立制御を可能とするシステム
JP6411964B2 (ja) 2015-07-27 2018-10-24 ファナック株式会社 工作機械とロボットのリアルタイム干渉確認システム
US10179411B2 (en) * 2016-01-20 2019-01-15 Soft Robotics, Inc. Soft robotic grippers for cluttered grasping environments, high acceleration movements, food manipulation, and automated storage and retrieval systems
JP6504073B2 (ja) * 2016-02-15 2019-04-24 オムロン株式会社 作業領域推定装置、制御装置、制御システム、作業領域推定方法およびプログラム
JP6570742B2 (ja) 2016-05-16 2019-09-04 三菱電機株式会社 ロボット動作評価装置、ロボット動作評価方法及びロボットシステム
CN107160387A (zh) * 2016-12-13 2017-09-15 陈胜辉 一种物料抓取方法与系统
JP6807949B2 (ja) * 2016-11-16 2021-01-06 三菱電機株式会社 干渉回避装置
CN110167723B (zh) * 2017-01-12 2022-10-04 株式会社富士 作业机
DE112017007392B4 (de) 2017-04-04 2021-11-04 Mujin, Inc. Steuervorrichtung, Greifsystem, Verteilersystem, Programm, Steuerverfahren und Herstellungsverfahren
CN110520259B (zh) 2017-04-04 2021-09-21 牧今科技 控制装置、拾取系统、物流系统、存储介质以及控制方法
DE112017007399B4 (de) * 2017-04-04 2021-09-23 Mujin, Inc. Steuervorrichtung, Greifsystem, Verteilersystem, Programm, Steuerverfahren und Herstellungsverfahren
WO2018185855A1 (ja) 2017-04-04 2018-10-11 株式会社Mujin 制御装置、ピッキングシステム、物流システム、プログラム、制御方法、及び、生産方法
CN110621451B (zh) 2017-04-04 2021-07-06 牧今科技 信息处理装置、拾取系统、物流系统、程序以及信息处理方法
US10766140B2 (en) * 2017-04-13 2020-09-08 Battelle Memorial Institute Teach mode collision avoidance system and method for industrial robotic manipulators
JP6879464B2 (ja) * 2017-08-02 2021-06-02 オムロン株式会社 干渉判定方法、干渉判定システム及びコンピュータプログラム
JP6895082B2 (ja) 2017-11-09 2021-06-30 オムロン株式会社 干渉判定方法、干渉判定システム及びコンピュータプログラム
JP6879238B2 (ja) * 2018-03-13 2021-06-02 オムロン株式会社 ワークピッキング装置及びワークピッキング方法
DE102018205669B4 (de) * 2018-04-13 2021-12-23 Kuka Deutschland Gmbh Aufnehmen von Nutzlasten mittels eines robotergeführten Werkzeugs
CN113597362A (zh) * 2019-03-25 2021-11-02 Abb瑞士股份有限公司 用于确定机器人坐标系与可移动装置坐标系之间的关系的方法和控制装置
JP7204587B2 (ja) 2019-06-17 2023-01-16 株式会社東芝 物体ハンドリング制御装置、物体ハンドリング装置、物体ハンドリング方法および物体ハンドリングプログラム
EP3808511A1 (de) 2019-10-15 2021-04-21 Siemens Aktiengesellschaft Verfahren zum überwachen einer arbeitsumgebung und überwachungseinrichtung
JP2021142635A (ja) * 2020-03-13 2021-09-24 オムロン株式会社 干渉判定装置、方法、及びプログラム
JP2022100030A (ja) * 2020-12-23 2022-07-05 京セラ株式会社 干渉判定装置、ロボット制御システム、及び干渉判定方法
US11883962B2 (en) * 2021-05-28 2024-01-30 Mitsubishi Electric Research Laboratories, Inc. Object manipulation with collision avoidance using complementarity constraints
WO2023158825A1 (en) * 2022-02-17 2023-08-24 Intrinsic Innovation Llc Object grasping
WO2024019701A1 (en) * 2022-07-18 2024-01-25 Siemens Aktiengesellschaft Bin wall collision detection for robotic bin picking
CN115545564B (zh) * 2022-11-23 2023-04-07 湖北凯乐仕通达科技有限公司 机器人任务分组方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0927046A (ja) 1995-07-11 1997-01-28 Fujitsu Ltd 干渉チェック方法
JP2000326280A (ja) 1999-05-18 2000-11-28 Toshiba Mach Co Ltd スカラ型ロボットにおける干渉チェック方法
JP2002273675A (ja) 2001-03-16 2002-09-25 Kawasaki Heavy Ind Ltd ロボット制御方法およびロボット制御システム
JP2002331480A (ja) 2001-05-09 2002-11-19 Fanuc Ltd 干渉回避装置
JP2004280635A (ja) 2003-03-18 2004-10-07 Honda Motor Co Ltd シミュレーション装置,シミュレーション方法及びシミュレーションプログラム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19625637A1 (de) * 1996-06-26 1998-01-02 Brink Carsten Dipl Ing Ten Kollisionsvermeidung und Trajektorienplanung beim Mehrroboterbetrieb mit Hilfe von Kollisionsbereichen
DE10226140A1 (de) * 2002-06-13 2004-01-08 Kuka Roboter Gmbh Verfahren und Vorrichtung zum Vermeiden von Kollisionen zwischen Industrierobotern und anderen Objekten
KR100757839B1 (ko) * 2006-04-04 2007-09-11 삼성전자주식회사 제어시스템, 제어시스템을 갖는 이동로봇장치 및 그제어방법
JP2007334678A (ja) * 2006-06-15 2007-12-27 Fanuc Ltd ロボットシミュレーション装置
DE602006012485D1 (de) * 2006-09-14 2010-04-08 Abb Research Ltd Verfahren und Vorrichtung zur Vermeidung von Kollisionen zwischen einem Industrieroboter und einem Objekt
JP2008188694A (ja) * 2007-02-02 2008-08-21 Jtekt Corp ロボット安全監視装置及びロボット駆動制御システム
JP2008238320A (ja) * 2007-03-27 2008-10-09 Fanuc Ltd 作業ツールを備えたロボット
DE102007037078B4 (de) * 2007-08-06 2022-01-27 Kuka Roboter Gmbh Verfahren zur Einhaltung von Arbeitsraumgrenzen eines Arbeitsmittels eines Roboters
DE102008016604B4 (de) * 2008-04-01 2014-07-17 Kuka Laboratories Gmbh Verfahren und Vorrichtung zur Eigenkollisionsüberwachung eines Manipulators
JP5089533B2 (ja) * 2008-08-28 2012-12-05 株式会社神戸製鋼所 ロボットの干渉回避方法及びロボットシステム
DE102008046348B4 (de) * 2008-09-09 2015-08-20 Siemens Aktiengesellschaft Verfahren, Gerät und ein entsprechendes Computerprogrammprodukt zur rechnergestützten Bahnplanung eines bewegbaren Geräts, insbesondere eines medizinischen Geräts
JP4730440B2 (ja) 2009-01-01 2011-07-20 ソニー株式会社 軌道計画装置及び軌道計画方法、並びにコンピューター・プログラム
DE102009006256B4 (de) * 2009-01-27 2019-01-03 Deutsches Forschungszentrum für künstliche Intelligenz GmbH Verfahren zur Vermeidung von Kollisionen gesteuert beweglicher Teile einer Anlage

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0927046A (ja) 1995-07-11 1997-01-28 Fujitsu Ltd 干渉チェック方法
JP2000326280A (ja) 1999-05-18 2000-11-28 Toshiba Mach Co Ltd スカラ型ロボットにおける干渉チェック方法
JP2002273675A (ja) 2001-03-16 2002-09-25 Kawasaki Heavy Ind Ltd ロボット制御方法およびロボット制御システム
JP2002331480A (ja) 2001-05-09 2002-11-19 Fanuc Ltd 干渉回避装置
JP2004280635A (ja) 2003-03-18 2004-10-07 Honda Motor Co Ltd シミュレーション装置,シミュレーション方法及びシミュレーションプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"The Quickhull Algorithm for Convex Hulls", ACM Translations an Mathematical Software, Vol. 22, No. 4, December 1996

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102015002658B4 (de) 2014-03-10 2018-09-20 Fanuc Corporation Robotersimulationssystem, das einen Entnahmevorgang eines Werkstücks simuliert

Also Published As

Publication number Publication date
CN102744727A (zh) 2012-10-24
US8483878B2 (en) 2013-07-09
US20120265342A1 (en) 2012-10-18
DE102012007254B4 (de) 2015-10-15
CN102744727B (zh) 2013-09-18
JP2012223845A (ja) 2012-11-15
JP5144785B2 (ja) 2013-02-13

Similar Documents

Publication Publication Date Title
DE102012007254B4 (de) Verfahren und Vorrichtung zum Vorausberechnen einer Behinderung zwischen einem Zielteil eines Roboters und einem peripheren Objekt
DE102015208584B4 (de) Greifvorrichtung und Greifverfahren
DE102014102943B4 (de) Robotersystem mit Funktionalität zur Ortsbestimmung einer 3D- Kiste
EP2563553B1 (de) Verfahren und steuermittel zum steuern eines roboters
DE102015000587B4 (de) Roboterprogrammiervorrichtung zum Erstellen eines Roboterprogramms zum Aufnehmen eines Bilds eines Werkstücks
DE102018000730B4 (de) Werkstückaufnahmevorrichtung und Werkstückaufnahmeverfahren zum Verbessern des Aufnahmevorgangs eines Werkstücks
DE102015001527B4 (de) Robotersystem, das visuelle Rückmeldung verwendet
DE102017108727B4 (de) Verfahren zur Erstellung einer Datenbank mit Greiferposen, Verfahren zum Steuern eines Roboters, computerlesbares Speichermedium und Handhabungssystem
DE102015010124B4 (de) Roboterprogramm-Erzeugungsvorrichtung, die Roboterprogramm zum Reduzieren von Stössen der Gelenke des Roboters erzeugt
EP3285975B1 (de) Steuern und/oder regeln von motoren eines roboters
DE102006007623B4 (de) Roboter mit einer Steuereinheit zum Steuern einer Bewegung zwischen einer Anfangspose und einer Endpose
DE102015107436B4 (de) Lernfähige Bahnsteuerung
DE102019118637B4 (de) Automatische pfadgenerierungsvorrichtung
DE102018200240B4 (de) Robotersteuerungsvorrichtung
DE102021121063A1 (de) Effiziente datengenerierung für das greifenlernen mit allgemeinen greifern
DE102016012065A1 (de) Robotersystem mit Funktion zum Berechnen von Position und Ausrichtung eines Sensors
DE102017001131C5 (de) Verfahren und System zum Betreiben eines Roboters
DE102010032917A1 (de) Verfahren zur Offline-Programmierung eines NC-gesteuerten Manipulators
DE102007026299A1 (de) Industrieroboter und Verfahren zum Programmieren eines Industrieroboters
DE102019118202B4 (de) Robotersystem
DE102019206444A1 (de) Maschinelles Lernen einer Objekterkennung mithilfe einer robotergeführten Kamera
DE102021103726B4 (de) Messparameter-Optimierungsverfahren und -vorrichtung sowie Computersteuerprogramm
EP3812106B1 (de) Roboteranordnung, verfahren zum betreiben der roboteranordnung, computerprogramm sowie maschinenlesbares speichermedium
DE102022122818A1 (de) Zugriffserzeugung für maschinenbeschickung
DE102022129008A1 (de) Verfahren zur behandlung von kollisionen bei der griffgenerierung

Legal Events

Date Code Title Description
R012 Request for examination validly filed

Effective date: 20121214

R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final