-
Die vorliegende Erfindung bezieht sich auf eine Haltepositions- und Orientierungslehreinrichtung, ein Haltepositions- und Orientierungslehrverfahren und ein Robotersystem für einen Industrieroboter, der ein Werkstück hält.
-
Ein Industrieroboter mit einer Hand, die Werkstücke in vorgegebenen Positionen und Ausrichtungen hält und ausrichtet, ist bekannt. Einem solchen Roboter wird der Haltevorgang im Voraus beigebracht, damit der Roboter eine vorgegebene Operation ausführen kann. Der Lernvorgang benötigt jedoch viel Zeit, so dass die Forderung nach einer Verkürzung und Reduzierung des Lernvorgangs besteht. Als Verfahren hat man eine Technologie entwickelt, die es ermöglicht, einen Roboter dazu zu bringen, einen Haltevorgang durchzuführen, basierend auf den Formdaten der im Roboter vorregistrierten Werkstücke und den Daten der Haltepositionen und Halteorientierungen (im Folgenden zusammenfassend als „Halteposition und Halteorientierung“ bezeichnet) einer Hand in Bezug auf jedes Werkstück.
-
In der
JP 2008 -
15 683 A ist eine Datenbasis angegeben, die Formdaten einer Vielzahl von Werkstücken und Haltepositionen und Orientierungen einer Hand zu jedem Werkstück registriert, Formdaten eines Werkstücks, das eine ähnliche Form wie ein zu haltendes Werkstück hat, werden in der Datenbasis gesucht und der Roboter wird veranlasst, eine Halteposition und Halteorientierung in Bezug auf das Werkstück mit der ähnlichen Form durchzuführen.
-
Weiterhin ist in der WO 2009 / 113 339 A1 eine Datenbasis angegeben, die eine Vielzahl von primitiven Formmodellen und Haltepositionen und Orientierungen einer Hand in Bezug auf jedes primitive Formmodell registriert, und die Halteposition und die Halteorientierung der Hand werden durch Anwendung eines zu haltenden Werkstücks auf ein primitives Formmodell bestimmt. Beispielsweise bezieht sich eine Primitivform hier auf ein Modell eines dreidimensionalen geometrischen Elements, wie einen Zylinder, ein viereckiges Prisma und ein kreisförmiges Rohr.
-
Die
DE 10 2013 014 873 B4 zeigt eine Aufnahmevorrichtung zum Aufnehmen bzw. Ergreifen eines Zielobjekts durch Steuerung eines Roboters aufgrund des Ergebnisses einer Messung von Positionen und Orientierungen von Objekten unter Verwendung eines Sensors.
-
Die
DE 602 05 300 T2 zeigt eine Kollisionsvermeidungs-Vorrichtung zur Vermeidung einer Kollision zwischen einer Betriebsvorrichtung, die an einem Roboter angebracht ist, und einem peripheren Objekt. Die Kollisionsvermeidungs-Vorrichtung ist in der Lage, eine mögliche Kollision bei einem Roboter-Arbeitsvorgang vorab festzustellen und eine Kollision zu vermeiden.
-
Die
EP 1 905 548 B1 zeigt eine Werkstückentnahmevorrichtung, die Folgendes aufweist: einen Roboter; eine Werkstückerkennungsvorrichtung zum Erkennen der in einem weiten Bereich befindlichen Werkstücke; eine genaue Messvorrichtung zum genauen Messen der dreidimensionalen Position des Werkstücks; eine Werkstückauswahlvorrichtung zum Auswählen des zu entnehmenden Werkstücks; und eine NG-Werkstückspeichereinrichtung zum Speichern von Informationen über die ungefähre Position eines fehlgeschlagenen NG-Werkstücks, wenn die Messung der dreidimensionalen Position oder die Entnahme des Werkstücks fehlgeschlagen ist. Die Werkstückauswahlvorrichtung schließt das in der NG-Werkstückspeichereinrichtung gespeicherte NG-Werkstück aus und wählt das nächste zu messende Werkstück aus. Der Roboter wählt das ausgewählte Werkstück auf der Grundlage der dreidimensionalen Position des Werkstücks aus, die von der genauen Messvorrichtung gemessen worden ist.
-
In der US 2012 / 0 059 517 A1 wird ein System zum Greifen von Objekten offenbart, das Folgendes umfasst: eine Messeinheit, die dazu ausgelegt ist, eine Position/Orientierung von mindestens einem Zielobjekt basierend auf einem Bild zu messen; eine Auswahleinheit, die dazu ausgelegt ist, mindestens ein greifbares Zielobjekt basierend auf der Position/Orientierung auszuwählen; eine Bestimmungseinheit, die dazu ausgelegt ist, ein zu greifendes Objekt auf der Grundlage von Prioritäten zu bestimmen, die im Voraus für Zustände einschließlich Greifpositionen/-richtungen festgelegt worden sind; und eine Greifeinheit, die dazu ausgelegt ist, das zu greifende Objekt zu greifen.
-
In der
JP 2016 -
093 879 A wird ein Computerprogramm zur Erstellung von Instruktionen beschrieben, die eine Roboterhand dazu veranlassen, ein Objekt zu greifen.
-
Die
JP 2012 -
187 666 A zeigt eine Steuervorrichtung für einen Roboter zum Greifen eines Objektes aus einer Vielzahl von Entnahmestellen.
-
Es gibt jedoch Probleme dahingehend, dass es bei zufällig gereihten Werkstückeingaben schwierig ist, anwendbare Haltepositionen und Orientierungen der Hand zu jeder Orientierung, die Werkstücke in einer Datenbasis einnehmen können, vorher zu registrieren, und wenn die Haltepositionen und Orientierungen nicht in der Datenbasis registriert sind, kann der Roboter keine Halteoperation durchführen. Werden beispielsweise Werkstücke, die jeweils einen vom Roboter zu haltenden Greifbereich enthalten, gekippt eingegeben und der Greifbereich liegt auf einer ebenen Fläche auf, kann in der in der Datenbasis vorregistrierten Halteposition und Halteorientierung zum Halten des Greifbereichs kein Haltevorgang durchgeführt werden.
-
Die vorliegende Erfindung wurde zur Lösung der oben genannten Probleme konzipiert und hat die Aufgabe, eine Haltepositions- und Orientierungslehreinrichtung zu schaffen, die für jede Orientierung, die ein eingegebenes Werkstück einnehmen kann, eine Halteposition und Halteorientierung einer Hand erzeugen kann. Eine weitere Aufgabe der Erfindung ist die Angabe eines Haltepositions- und Orientierungslehrverfahrens, das für jede Orientierung, die von einem Eingabewerkstück eingenommen werden kann, verwendbar ist. Eine weitere Aufgabe der Erfindung ist die Angabe eines Robotersystems, mit dem eine geeignete Halteposition und Halteorientierung eines Werkstücks unter Verwendung einer Haltepositions- und Orientierungslehreinrichtung erreicht werden können.
-
Diese Aufgaben werden durch eine Haltepositions- und Orientierungslehreinrichtung gemäß Patentanspruch 1, durch ein Haltepositions- und Orientierungslehrverfahren gemäß Patentanspruch 10 sowie durch ein Robotersystem gemäß Patentanspruch 11 gelöst. Vorteilhafte Weiterbildungen der erfindungsgemäßen Haltepositions- und Orientierungslehreinrichtung sind in den abhängigen Ansprüchen 2 bis 9 angegeben.
-
Gemäß der vorliegenden Erfindung kann für jede Orientierung, die ein Werkstück einnehmen kann, eine Halteposition und Halteorientierung generiert werden, die einem Roboter beigebracht werden kann, auch wenn die Halteposition und Halteorientierung nicht in einer Datenbasis registriert ist.
- 1 ist ein schematischer Aufbau eines Robotersystems einschließlich einer Haltepositions- und Orientierungslehreinrichtung gemäß einer ersten Ausführungsform der vorliegenden Erfindung;
- 2 ist ein schematischer Aufbau der Haltepositions- und Orientierungslehreinrichtung gemäß der ersten Ausführungsform der vorliegenden Erfindung;
- 3 ist eine schematische Darstellung einer Haltepositions- und Orientierungslehreinrichtung gemäß der ersten Ausführungsform der vorliegenden Erfindung;
- 4 ist eine schematische Darstellung eines Beispiels für die Halteposition und Halteorientierung eines Werkstücks gemäß der ersten Ausführungsform der vorliegenden Erfindung;
- 5 ist eine schematische Darstellung eines Beispiels für die Halteposition und Halteorientierung eines Werkstücks gemäß der ersten Ausführungsform der vorliegenden Erfindung;
- 6 ist eine schematische Darstellung eines Beispiels für die Halteposition und Halteorientierung eines Werkstücks gemäß der ersten Ausführungsform der vorliegenden Erfindung;
- 7 ist eine schematische Darstellung eines Beispiels einer Hand und eines Werkstücks gemäß der ersten Ausführungsform der vorliegenden Erfindung;
- 8 ist eine schematische Darstellung eines Beispiels für eine Halteposition und Halteorientierung eines Werkstücks gemäß der ersten Ausführungsform der vorliegenden Erfindung;
- 9 ist eine schematische Darstellung eines Beispiels für die Halteposition und Halteorientierung eines Werkstücks gemäß der ersten Ausführungsform der vorliegenden Erfindung;
- 10 ist eine schematische Darstellung eines Beispiels für die Halteposition und Halteorientierung eines Werkstücks gemäß der ersten Ausführungsform der vorliegenden Erfindung;
- 11 ist ein Flussdiagramm, das ein Beispiel für die Verfahrensschritte der Haltepositions- und Orientierungslehreinrichtung gemäß der ersten Ausführungsform der vorliegenden Erfindung zeigt;
- 12 ist ein Flussdiagramm, das beispielhaft die Verfahrensschritte der Haltepositions- und Orientierungslehreinrichtung gemäß der ersten Ausführungsform der vorliegenden Erfindung darstellt;
- 13 ist ein schematisches Diagramm, das ein Beispiel einer Hand gemäß der ersten Ausführungsform der vorliegenden Erfindung zeigt;
- 14 ist eine schematische Darstellung eines Beispiels für eine Haltepositions- und Orientierungslehreinrichtung eines Werkstücks gemäß der ersten Ausführungsform der vorliegenden Erfindung;
- 15 ist eine schematische Darstellung eines Beispiels des Robotersystems, auf das die Haltepositions- und Orientierungslehreinrichtung gemäß einer zweiten Ausführungsform der vorliegenden Erfindung angewendet wird;
- 16 ist ein schematischer Aufbau der Haltepositions- und Orientierungslehreinrichtung gemäß einer dritten Ausführungsform der vorliegenden Erfindung;
- 17 ist ein schematischer Aufbau der Haltepositions- und Orientierungslehreinrichtung gemäß einer vierten Ausführungsform der vorliegenden Erfindung;
- 18 ist ein schematischer Aufbau der Haltepositions- und Orientierungslehreinrichtung gemäß einer fünften Ausführungsform der vorliegenden Erfindung, und
- 19 ist eine schematische Darstellung eines Beispiels einer Saughand gemäß einer Ausführungsform der vorliegenden Erfindung.
-
Eine Haltepositions- und Orientierungslehreinrichtung, ein Haltepositions- und Orientierungslehrverfahren und ein Robotersystem einschließlich der Haltepositions- und Orientierungslehreinrichtung gemäß Ausführungsformen der vorliegenden Erfindung werden anhand der Zeichnungen konkret beschrieben.
-
1 ist ein schematischer Aufbau eines Robotersystems einschließlich einer Haltepositions- und Orientierungslehreinrichtung gemäß der ersten Ausführungsform der vorliegenden Erfindung. Wie in 1 dargestellt, besitzt ein Robotersystem 100 einen Roboter 200, eine Haltepositions- und Orientierungslehreinrichtung 300 und einen Sensor 50, die kommunikativ miteinander verbunden sind. Das Robotersystem 100 veranlasst den Roboter 200, eine von der Haltepositions- und Orientierungslehreinrichtung 300 erzeugte Halteposition und Halteorientierung auszuführen.
-
Der Roboter 200 ist beispielsweise ein vertikaler Knickarmroboter und besitzt einen Roboterhauptkörper 201 und eine Robotersteuerung 202. Der Roboterhauptkörper 201 weist eine Hand 20 in beliebiger Form auf, die eine Haltefläche enthält, die ein Werkstück 10 (nicht abgebildet) hält. Die Hand 20 enthält z.B. ein öffenbares und schließbares Fingerteil 21, das in Drehachsenrichtung an einem drehangetriebenen Handgelenkteil 22 des Hauptkörpers 201 befestigt ist.
-
Die Robotersteuerung 202 enthält ein Steuerprogramm, das die Bedienung der Roboter 200 beschreibt, und übernimmt die Steuerung des Antriebs des Roboters 200, basierend auf den Informationen, die vom Sensor 50, der Haltepositions- und Orientierungslehreinrichtung 300 und ähnlichem erfasst werden.
-
Der Sensor 50 misst ein zweidimensionales Bild und dreidimensionale Daten eines zu haltenden Werkstücks 10 und erkennt eine Position und Orientierung des Werkstücks 10. Die Erkennungsergebnisse des Werkstücks 10 werden durch den Sensor 50 oder die Robotersteuerung 202 in Daten eines Koordinatensystems zur Darstellung einer Position und Orientierung des Roboters 200 umgerechnet. Basierend auf der von der Haltepositions- und Orientierungslehreinrichtung 300 erzeugten Halteposition und Halteorientierung der Hand 20 und den Erkennungsergebnissen des Sensors 50 wird die vom Sensor 50 erkannte Position und Orientierung des Werkstücks 10 berechnet.
-
Als Nächstes wird eine Konfiguration der Haltepositions- und Orientierungslehreinrichtung 300 beschrieben, die dem Roboter 200 eine Halteposition und Halteorientierung beibringt. Die Haltepositions- und Orientierungslehreinrichtung 300 ist z.B. ein arithmetisches Verarbeitungsgerät mit einem Speicher 31, einer Prozessoreinheit 32 und ähnlichem. Darüber hinaus ist es wünschenswert, dass die Haltepositions- und Orientierungslehreinrichtung 300 eine grafische Benutzeroberfläche (GUI) mit einem 3D-Bildschirm zur Darstellung von Werkstück 10 und Hand 20, einem Eingabeknopf und ähnlichem enthält.
-
Der Speicher 31 speichert z.B. ein Programm o. dgl. zur Erzeugung von Werkstückformdaten 301, Handdaten 302, und einer Halteposition und Halteorientierung. Die Prozessoreinheit 32 führt die arithmetische Verarbeitung für das Programm durch, basierend auf den Werkstückformdaten 301 und den im Speicher 31 gespeicherten Handdaten 302. Bei den Werkstückformdaten 301 handelt es sich um dreidimensionale Formdaten, die sich auf das Werkstück 10 beziehen. Weiterhin sind z.B. die Handdaten 302 dreidimensionale Formdaten bezogen auf die Hand 20.
-
Zusätzlich zu den dreidimensionalen Formdaten sollten die Handdaten 302 vorzugsweise weitere Informationen zur Hand 20 enthalten, wie z.B. die Haltefläche der Hand 20, die einen Kontakt mit dem Werkstück 10 ermöglicht, eine Betätigungsrichtung des Fingerteils 21 und eine Richtung, die sich von einem Befestigungsbereich der Hand 20 am Roboter 200 hin zu einem Spitzenende der Hand 20 erstreckt (im Folgenden einfach „Anbringungsrichtung“ genannt).
-
In der folgenden Beschreibung der Haltepositions- und Orientierungslehreinrichtung 300 werden, sofern nicht ausdrücklich anders vermerkt, ein Werkstückmodell und ein Handmodell in einem durch dreidimensionale Formdaten definierten virtuellen Raum als Werkstück 10 bzw. Hand 20 dargestellt. Weiterhin wird als Haltepositions- und Orientierungslehreinrichtung 300 eine relative Position und Orientierung der Hand 20 in Bezug auf das Werkstück 10 im virtuellen Raum dargestellt. Die Position kann in einem beliebigen dreidimensionalen Koordinatensystem ausgedrückt werden, und die Orientierung kann z.B. als Parameter eines Rotationsbetrages um jede Achse ausgedrückt werden.
-
Als Nächstes wird eine Konfiguration zur Ausführung der Funktion der Haltepositions- und Orientierungslehreinrichtung 300 beschrieben. 2 ist ein schematisches Konfigurationsschema, das die Haltepositions- und Orientierungslehreinrichtung 300 darstellt.
-
Eine Werkstückeingabe Orientierungs-Berechnungseinheit 310 erfasst die im Speicher 31 abgelegten Werkstückformdaten 301, kategorisiert die Orientierungen der Werkstücke 10, die in das Robotersystem 100 eingegeben werden, und berechnet jede kategorisierte Eingabeorientierung. Die Verfahren zur Kategorisierung und Berechnung der Eingabeorientierungen unterscheiden sich zwischen einem Fall, bei dem die Werkstücke 10 zufällig gereiht eingegeben werden, und einem Fall, bei dem die Werkstücke 10 auf einer ebenen Fläche nicht überlappend eingegeben werden, ohne ihre Orientierungen auszurichten.
-
In dem Fall, in dem Werkstücke 10 zufällig gereiht eingegeben werden, werden z.B. Eingabeorientierungen kategorisiert, wobei angenommen wird, dass die Richtung, die der Richtung, in der sich die Hand 20 einem Werkstück 10 nähert, entgegengesetzt ist, eine Richtung des Werkstücks 10 ist. Wie in 3 dargestellt, werden z.B. Koordinatenachsen eines orthogonalen Koordinatensystems P, die an einem Werkstück 10 „befestigt“ sind, durch (Px, Py, Pz) und Koordinatenachsen eines orthogonalen Koordinatensystems W des Robotersystems 100 durch (Wx, Wy, Wz) dargestellt.
-
Ist in diesem Fall die Annäherungsrichtung der Hand 20 eine negative Richtung von Wz, so entspricht ein Vektor A, der eine positive Richtung von Wz im Orthogonal-Koordinatensystem P repräsentiert und am Werkstück 10 „befestigt“ ist, einer Richtung des Werkstücks 10. Auf diese Weise werden bei zufällig gereihter Eingabe der Werkstücke 10 die Eingabeorientierungen gemäß den Richtungen der Werkstücke 10 in Bezug auf die Annäherungsrichtung kategorisiert.
-
Werden Werkstücke 10 überlappungsfrei auf einer ebenen Fläche eingegeben, ohne ihre Orientierungen auszurichten, so werden Eingabeorientierungen der Werkstücke 10 gemäß festen Orientierungen der Werkstücke 10 kategorisiert. Die feste Orientierung bezieht sich hier auf eine Orientierung, bei der ein Werkstück 10 auf einer ebenen Fläche fest und ruhig ist. Die Orientierungen der Werkstücke 10 werden für jede kategorisierte Eingabeorientierung in jedem der Fälle berechnet.
-
Eine Halteorientierungs-Auswahleinheit 320 erfasst die im Speicher 31 abgelegten Handdaten 302 und wählt für jede der von der Werkstückeingabe Orientierungs-Berechnungseinheit 310 berechneten Eingabeorientierungen eine Halteorientierung der Hand 20 aus.
-
Die gewählte Halteorientierung erfordert dabei die Berücksichtigung der mechanischen Einschränkungen des Roboters 200 zum Zeitpunkt der tatsächlichen Aufnahme eines Werkstücks 10. Beispielsweise wird, wie in 4 dargestellt, folgender Fall angenommen: Ein Werkstück 10, das in das Robotersystem 100 auf dem Orthogonal-Koordinatensystem W eingegeben wird, wird von dem Roboter 200 (nicht abgebildet) in Richtung eines Vektors B gehalten, der in negativer Richtung von Wx in Bezug auf das Werkstück 10 installiert ist.
-
Wird, wie in 5 dargestellt, eine Halteorientierung der Hand 20 in Bezug auf eine Halteposition des Werkstücks 10 angewendet, die der von 4 entspricht, wenn das Werkstück 10 aus dem Zustand von 4 um die Wz-Achse gedreht wird, so muss der Befestigungsbereich der Hand 20 deutlich in eine positive Richtung von Wx bewegt werden, was den Roboter 200 daran hindert, das Werkstück 10 zu erreichen und den Haltevorgang durchzuführen.
-
Wie in 6 dargestellt, kann der Roboter 200 bei einer Halteorientierung, die einen kleinen Winkel zwischen der Achsrichtung Wz, um die das Werkstück 10 gedreht wird, und der durch die Handdaten 302 definierten Richtung (Vektor B) der Anbringung der Hand 20, durch Drehen des Handgelenkteiles 22 auch bei einer Drehung des Werkstückes 10 den Haltevorgang ohne wesentliche Veränderung der Position der Hand 20 durchführen.
-
Dabei entspricht die Annäherungsrichtung der Hand 20 in Bezug auf ein Werkstück 10 in vielen Fällen der Achsrichtung Wz, um die das Werkstück 10 gedreht wird. Daher wählt die Halteorientierungsauswahleinheit 320 als Halteorientierung eine Orientierung der Hand 20, bei der die Annäherungsrichtung der Hand 20 gegenüber einem Werkstück 10 und die Anbringungsrichtung, die eine Richtung vom Befestigungsbereich bis zum Spitzenende der Hand 20 darstellt, einen vorgegebenen Winkel oder weniger bilden.
-
Eine Haltepositionsbereichs-Extraktionseinheit 330 extrahiert für jede der von der Halteorientierungsauswahleinheit 320 ausgewählten Halteorientierungen einen Bereich als Haltepositionsbereich, der Positionen desselben Haltetyps sammelt. Der „gleiche Haltetyp“ wird hier definiert als ein Fall, in dem die Halteorientierung der Hand 20 in Bezug auf Eingabeorientierungen der Werkstücke 10 gleich ist und gehaltene Teile der Werkstücke 10 in Bezug auf Haltebereiche der Hand 20 übereinstimmen.
-
Wie in 7 dargestellt, entsprechen zum Beispiel die Haltebereiche der Hand 20 den Seiteninnenflächen 20a und 20b des Fingerteils 21, und die Werkstückhaltebereiche entsprechen den Seitenflächen 10a bis 10d des Werkstücks 10, wenn das Werkstück 10 mit der Hand 20 einschließlich des Fingerteils 21 gehalten wird.
-
In diesem Fall sind die Haltearten gemäß 8 und 9 gleich, da die Halteorientierung in Bezug auf Eingabeorientierungen der jeweiligen Werkstücke 10 gleich ist, und die gehaltenen Teile 10a und 10b der Werkstücke 10 in Bezug auf die Haltebereiche 20a und 20b der Hand 20 zueinander passen. Andererseits sind die Haltearten gemäß 10 und 8 unterschiedlich, denn obwohl die Halteorientierung gemäß 10 die gleiche ist wie die gemäß 8, sind die Werkstückhaltebereiche 10 bezüglich der Haltebereiche 20a und 20b der Hand 20 Haltebereiche 10c und 10d, die nicht mit denen gemäß 8 übereinstimmen.
-
Eine Haltepositions- und Orientierungsausgabeeinheit 340 ermittelt eine Halteposition innerhalb des von der Haltepositionsbereichs-Extraktionseinheit 330 extrahierten Haltepositionsbereichs und gibt die Halteposition als Halteposition und Halteorientierung für jede der Eingabeorientierungen der Werkstücke 10 aus.
-
Aufgrund der obigen Konfiguration kann die Haltepositions- und Orientierungslehreinrichtung 300 gemäß der vorliegenden Ausführungsform für jede der Eingabeorientierungen der Werkstücke 10, basierend auf den Werkstückformdaten 301 und den Handdaten 302, mindestens eine Halteposition und Halteorientierung erzeugen.
-
Im Folgenden wird unter Bezugnahme auf 11 ein Beispiel für Verfahrensschritte zur Durchführung der Funktion unter Verwendung der obigen Konfiguration beschrieben. 11 ist ein Flussdiagramm, das die Schritte S1 bis S4 als Beispiel für Verfahrensschritte zeigt.
-
Im Schritt S1 erfasst die Werkstückeingabe Orientierungs-Berechnungseinheit 310 die Werkstückformdaten 301, kategorisiert und berechnet Eingabeorientierungen der Werkstücke 10. Die Verfahren zur Kategorisierung und Berechnung der Eingabeorientierungen unterscheiden sich zwischen einem Fall, bei dem die Werkstücke 10 zufällig gereiht eingegeben werden, und einem Fall, bei dem die Werkstücke 10 auf einer ebenen Fläche nicht überlappend eingegeben werden, ohne ihre Orientierungen auszurichten.
-
In einem Fall, in dem Werkstücke 10 zufällig gereiht eingegeben werden, gibt es z.B. ein Verfahren, die Eingabeorientierungen in einem Polarkoordinatenraum auszudrücken und zu kategorisieren. Wie in 3 dargestellt, wird, wenn die Annäherungsrichtung der Hand 20 die negative Richtung von Wz ist, angenommen, dass der Vektor A, der im Orthogonal-Koordinatensystem P eine zur Annäherungsrichtung entgegengesetzte Richtung hat, die Richtung des Werkstücks 10 ist. In diesem Fall wird der Vektor A in einem zum Werkstück 10 fixierten Polarkoordinatenraum ausgedrückt und die Einteilung in Winkelkomponentenbereiche vorgenommen (θ, φ).
-
Wenn z.B. θ und φ in gleichwinkligen Abständen von 30° kategorisiert werden, kann die Kategorisierung 144 (= 12 × 12) Bereiche ergeben. Die Eingabeorientierung jedes Werkstücks 10 wird berechnet, indem man das Werkstück 10 erkennt, die Richtung des Vektors A der Orientierung des Werkstücks 10 im Polarkoordinatenraum ausdrückt, bestimmt, welcher Bereich aus den 144 vorab kategorisierten Bereichen gilt, und so die Eingabeorientierung des Werkstücks 10 errechnet.
-
In einem Fall, in dem Werkstücke 10 auf einer ebenen Fläche nicht überlappend eingegeben werden, ohne ihre Orientierungen auszurichten, wird die Kategorisierung für jede feste Orientierung der Werkstücke 10 durchgeführt. Als Verfahren zur Berechnung der festen Orientierung beispielsweise erfasst die Werkstückeingabe Orientierungs-Berechnungseinheit 310 zunächst die Werkstückformdaten 301 jedes Werkstücks 10 und berechnet ein konvexes Polyeder, das das Werkstück 10 umgibt und das minimale Volumen hat.
-
Dann wird bei der Projektion des Schwerpunkts/Centroids jedes Werkstücks 10 auf die ebene Fläche, auf die das Werkstück 10 gelegt wird, ermittelt, ob der projizierte Punkt innerhalb einer Fläche des konvexen Polyeders liegt, und der innerhalb der Fläche liegende Punkt wird als feste Orientierung des Werkstücks 10 berechnet. Die Annäherungsrichtung der Hand 20 ist in diesem Fall z.B. eine Normalenrichtung zur ebenen Fläche, auf die das Werkstück 10 gelegt wird.
-
Das Verfahren zur Berechnung der festen Orientierung ist nicht darauf beschränkt, und jedes Verfahren kann verwendet werden, solange die Feststellung, dass das Werkstück 10 fest und noch auf einer ebenen Fläche liegt, errechnet wird. Auf diese Weise wird im Schritt S1 mindestens eine Eingabeorientierung des Werkstücks 10 berechnet.
-
Als Nächstes erfasst die Halteorientierungsauswahleinheit 320 im Schritt S2 die Handdaten 302 und wählt für jede im Schritt S1 abgeleitete Eingabeorientierung eine Halteorientierung aus. Ein Beispiel für das Verfahren zur Auswahl der Halteorientierung wird anhand von 12 beschrieben. Wie in 12 dargestellt, werden zunächst die Wz-Achse und die Qz-Achse in Übereinstimmung gebracht, basierend auf dem orthogonalen Koordinatensystem W (Wx, Wy, Wz) des Robotersystems 100 mit der Annäherungsrichtung der Hand 20 als Wz-Achse und einem an der Hand 20 „befestigten“ Koordinatensystem Q (Qx, Qy, Qz) mit der Anbringungsrichtung der Hand 20 als Qz-Achse.
-
Dann wird die Fläche des Werkstücks 10, mit der der Winkel zwischen der Normalen (Vektor V) der Haltefläche der Hand 20 und der Normalen (Vektor W) jeder Fläche des Werkstücks 10 ein zulässiger Winkel oder weniger ist, als Haltefläche extrahiert. Ferner werden die Normale der Haltefläche der Hand 20 und die Normale der Haltefläche des Werkstücks 10 so aufeinander abgestimmt, dass die extrahierte Haltefläche des Werkstücks 10 und die Haltefläche der Hand 20 parallel zueinander liegen, wobei die Orientierung der Hand 20 in diesem Fall als Halteorientierung in Bezug auf die Eingabeorientierung des Werkstücks 10 gewählt wird.
-
Gemäß dem oben beschriebenen Auswahlverfahren kann die Halteorientierungsauswahleinheit 320 die Halteorientierung unter Berücksichtigung der mechanischen Einschränkungen des Roboters 200 zum Zeitpunkt des tatsächlichen Haltens des Werkstücks 10 wählen. In diesem Fall ist es bei zufällig gereihten Werkstücken 10 wünschenswert, dass der zulässige Winkel oder das Intervall der Kategorisierung der Eingabeorientierung oder beides so eingestellt werden, dass sich zu jeder Eingabeorientierung eine Halteorientierung des zulässigen Winkels oder kleiner ableiten lässt.
-
Hier kann z.B. die Anbringungsrichtung der Hand 20 durch die Handdaten 302 festgelegt werden. Weiterhin kann die Haltefläche der Hand 20 durch die Handdaten 302 vorgegeben werden, oder die Fläche in Öffnungs- und Schließrichtung des Fingerteils 21 kann die Haltefläche sein. Weiterhin kann der zulässige Winkel zwischen der Normalen der Haltefläche der Hand 20 und der Normalen der Haltefläche des Werkstücks 10 durch den Handdaten 302 oder andere Eingabedaten vorgegeben oder als fester Wert wie z.B. 5° eingestellt werden.
-
Weiterhin wird bei mehreren Halteflächen der Hand 20 die Haltefläche des Werkstücks 10 für jede Haltefläche der Hand 20 extrahiert. Wenn die Haltefläche des Werkstücks 10 nicht extrahiert wird, z.B. in 12, wird eine der Orientierungen der Hand 20, bei der die Wz-Achse die Annäherungsrichtung der Hand 20 und die Qz-Achse die Anbringungsrichtung der Hand 20 sind, als Halteorientierung gewählt.
-
In diesem Fall ist bezüglich der Halteorientierung die Drehrichtung um die Qz-Achse der Hand 20 variabel, aber die Drehrichtung wird auf die Richtung gesetzt, in der die Wx-Achse oder die Wy-Achse des Koordinatensystems W des Robotersystems 100 und die Qx-Achsenrichtung oder die Qy-Achsenrichtung des Koordinatensystems Q, das durch die dreidimensionalen Formdaten der Hand 20 definiert ist, übereinstimmen. Die Halteorientierung kann durch andere geeignete Koordinatenachsen und Referenz bestimmt werden. Auf diese Weise wird im Schritt S2 für jede Eingabeorientierung des Werkstücks 10 mindestens eine Halteorientierung gewählt.
-
Anschließend wird im Schritt S3 in der Haltepositionsbereichs-Extraktionseinheit 330 als Haltepositionsbereich ein Bereich extrahiert, in dem die Haltebereiche der Hand 20 in der durch die Halteorientierungsauswahleinheit 320 und die Werkstückhaltebereiche 10 gewählten Halteorientierung übereinstimmen, d.h. ein Bereich, der Positionen des gleichen Haltetyps sammelt. Als Verfahren zum Extrahieren des Haltebereichs gibt es z.B. ein Verfahren zur Simulation des Haltevorgangs des Werkstücks 10 durch Öffnen und Schließen des Fingerteils 21 der Hand 20.
-
Hierbei kann die Simulation des Haltens verschiedene bekannte Verfahren nutzen. Zum Beispiel wird zunächst in einer vorgegebenen Halteorientierung das Fingerteil 21 geöffnet und geschlossen, während eine relative Position der Hand 20 in Bezug auf das Werkstück 10 verändert wird, um einen Bereich zu suchen, der das Werkstück 10 halten kann. Dann werden Positionen desselben Haltetyps, bei denen das Werkstück 10 und eine Oberfläche der Hand 20 innerhalb des Haltebereichs in Kontakt kommen, gemeinsam als ein Haltepositionsbereich extrahiert.
-
Zusätzlich können für den Haltepositionsbereich desselben Haltetyps aus einer Randbedingung, basierend auf den Werkstückformdaten 301, Positionen berechnet werden, bei denen die Halteart gewechselt wird. Auf diese Weise wird im Schritt S3 für jede Eingabeorientierung des Werkstücks 10 mindestens ein Haltepositionsbereich extrahiert.
-
Anschließend wählt die Haltepositions- und Orientierungsausgabeeinheit 340 im Schritt S4 eine Halteposition aus dem im Schritt S3 extrahierten Haltepositionsbereich aus. Bei dem Verfahren zur Auswahl der Halteposition wird beispielsweise zunächst aus der Vielzahl der von der Haltepositionsbereichs-Extraktionseinheit 330 extrahierten Haltepositionsbereiche ein Bereich jedes Bereichs berechnet und für jede Eingabeorientierung ein Haltepositionsbereich mit dem größten Bereich ausgewählt. Dann wird der Schwerpunkt des ausgewählten Haltepositionsbereichs als Halteposition berechnet. Die berechnete Halteposition wird als Halteposition und Halteorientierung für jede Eingabeorientierung des Werkstücks 10 ausgegeben.
-
Die Halteposition und die Halteorientierung wird z.B. an ein Werkzeug zur Bearbeitung des Steuerungsprogramms der Robotersteuerung 202 ausgegeben, als Daten einer relativen Position und Orientierung zwischen Werkstück 10 und Hand 20. Weiterhin kann die Ausgabe auch so erfolgen, dass sie für einen Benutzer mit Hilfe einer Anzeigeeinheit, einer GUI o.ä. sichtbar ist, oder diese können kombiniert werden. Weiterhin können Daten, die eine Beziehung zwischen der Position des Werkstücks 10 als Referenz und der Position und Orientierung des Roboters 200 zum Zeitpunkt des Haltens des Werkstücks 10 anzeigen, im Voraus gespeichert werden.
-
Dabei können die Daten, die einen Zusammenhang zwischen der Position des Werkstücks 10 als Referenz und der Position und Orientierung des Roboters 200 anzeigen, Daten der Position des Werkstücks 10 als Referenz sein, die vom Sensor 50 o. dgl. erfasst werden, vom Anwender durch eine entsprechende Eingabe mit einer Eingabeeinheit o.ä. oder aus der Simulation des Robotersystems 100 stammen. Weiterhin kann die Eingabe über das Werkzeug zur Bearbeitung des Steuerungsprogramms der Robotersteuerung 202 erfolgen oder es können diese Möglichkeiten kombiniert werden.
-
Wie oben beschrieben, kann durch den Ablauf vom Schritt S1 bis zum Schritt S4 für jede Eingabeorientierung des Werkstücks 10, basierend auf den Werkstückformdaten 301 und den Handdaten 302, mindestens eine Halteposition und Halteorientierung ausgegeben werden.
-
Es ist zu beachten, dass zur Vereinfachung der Beschreibung hier nur ein begrenzter Ablauf jeder Funktion beschrieben wird, der Ablauf gemäß der vorliegenden Erfindung aber nicht darauf beschränkt ist.
-
Die Haltepositions- und Orientierungsausgabeeinheit 340 wählt beispielsweise einen Haltepositionsbereich mit dem größten Bereich aus; als Haltepositionsbereich kann aber auch ein Bereich mit einer großen Anzahl von Kontaktflächen zwischen Werkstück 10 und Hand 20 gewählt werden. Wie in 13 dargestellt, ist eine große Anzahl von Kontaktflächen bei einer Hand 20 mit einem Ausschnittbereich 23 im Fingerteil 21 und einer Hand 20 mit mehreren Fingern zu bevorzugen.
-
Dies liegt zum einen daran, dass beim Halten und Bewegen des Werkstücks 10 weniger Gefahr besteht, dass es zum Fallen kommt, zum anderen daran, dass die Position und Orientierung des Werkstücks 10 nach dem Halten durch Ziehen des Werkstücks 10 mit mehreren Kontaktflächen leicht verändert wird.
-
Weiterhin wird ein Beispiel beschrieben, in dem die Haltepositions- und Orientierungsausgabeeinheit 340 den Schwerpunkt des Haltepositionsbereiches als Halteposition verwendet, als Halteposition aber eine Position innerhalb des Haltepositionsbereiches nahe dem Schwerpunkt des Werkstückes 10 gewählt werden kann. Zusätzlich kann die Halteposition gewählt werden, indem die Stabilität zum Zeitpunkt des Haltens des Werkstücks 10 bestimmt wird. Beim Verfahren zur Bestimmung der Stabilität z.B. wird das Werkstück 10 im gewählten Bereich der Halteorientierung und Halteposition gehalten.
-
Dann kann die Verschiebung des Werkstücks 10 bei Einwirkung einer äußeren Kraft auf das Werkstück 10 berechnet und die Position mit geringer Verschiebung als Halteposition gewählt werden. Mit dem oben beschriebenen Verfahren zur Auswahl der Halteposition kann die Hand 20 das Werkstück 10 stabil halten.
-
Weiterhin wird ein Beispiel beschrieben, in dem die Haltepositions- und Orientierungsausgabeeinheit 340 für jede Eingabeorientierung des Werkstücks 10 eine Halteposition und Halteorientierung ausgibt, wobei jedoch eine Vielzahl von Haltepositionen und Orientierungen ausgegeben werden kann. So kann z.B. die Halteposition für jeden der von der Haltepositionsbereichs-Extraktionseinheit 330 abgeleiteten Haltepositionsbereiche abgeleitet werden und alle als Haltepositions- und Orientierungsausgabe ausgegeben werden.
-
Weiterhin kann statt der Ausgabe aller Haltepositionen und Halteorientierung ein Teil nach Priorität ausgewählt werden. So gibt es z.B. ein Verfahren zur Auswertung der Haltepositionen und Orientierungen und zur Ausgabe der drei wichtigsten, ein Verfahren zur Ausgabe eines Teils, das eine bestimmte Auswertung oder höher erhält, und ein Verfahren zur Kombination derselben. Als Bewertungsverfahren kann ein einzelnes Bewertungskriterium, wie z.B. die Anzahl der Kontaktflächen zwischen Werkstück 10 und Hand 20, die Größe der Haltepositionsfläche und der Abstand zwischen dem Schwerpunkt des Werkstücks 10 und der Halteposition verwendet oder auch kombiniert werden.
-
Als Verfahren zur Auswahl einer vom Roboter 200 zu benützenden Halteposition und Halteorientierung aus der Vielzahl der von der Haltepositions- und Orientierungsausgabeeinheit 340 ausgegebenen Haltepositionen und Orientierungen gibt es ferner ein Verfahren zur Bereitstellung einer Anzeigeeinheit für die Haltepositions- und Orientierungslehreinrichtung 300, die alle Haltepositionen und Orientierungen auf der Anzeigeeinheit ausgibt und den Benutzer zur Auswahl auffordert, und ein Verfahren zur Ausgabe, so dass die Auswahl innerhalb des Steuerungsprogramms der Robotersteuerung 202 erfolgen kann.
-
Weiterhin kann die Annäherungsrichtung der Hand 20 entsprechend der Position, an der das Werkstück 10 eingegeben wird, verändert werden. Wenn z.B. Werkstücke 10 in kastenförmige Objekte mit Wänden eingeführt werden, ist es vorzuziehen, dass die Annäherungsrichtung so eingestellt wird, dass die Wände nicht im Weg sind, unter Berücksichtigung der Größe der Hand 20 und dergleichen. Befindet sich z.B., wie in 14 dargestellt, ein vom Sensor 50 erkanntes Werkstück 10 in der Nähe einer Wand des Kastens, so wird die Annäherungsrichtung der Hand 20 entgegengesetzt zur Position der Wand gekippt. In diesem Fall bewirkt die Werkstückeingabe Orientierungs-Berechnungseinheit 310, dass der Vektor A, der eine zur Annäherungsrichtung entgegengesetzte Richtung hat, mit dieser übereinstimmt und kategorisiert die Eingabeorientierung des Werkstücks 10.
-
Sind mehrere Wände in der Nähe, so wird das Kippen entgegengesetzt zur Annäherungsrichtung der beiden Wände durchgeführt. Nähert sich das Werkstück 10 einer Wand und befindet sich an der Wand, können die Annäherungsrichtung weiter verengt und die Halteposition und Halteorientierung berechnet werden.
-
Die Haltepositions- und Orientierungslehreinrichtung 300 der vorliegenden Erfindung enthält, wie oben beschrieben, die Werkstückeingabe Orientierungs-Berechnungseinheit 310, die die Eingabeorientierung des Werkstücks 10 kategorisiert und berechnet, die Halteorientierungsauswahleinheit 320, die für jede Eingabeorientierung die Halteorientierung der Hand 20 auswählt, die Haltepositionsbereichs-Extraktionseinheit 330, die für jede Halteorientierung den Haltepositionsbereich desselben Haltetyps extrahiert, und die Haltepositions- und Orientierungsausgabeeinheit 340, die aus dem Haltepositionsbereich die Halteposition auswählt und die Halteposition der gewählten Halteorientierung als Halteposition und Halteorientierung der Hand 20 ausgibt, so dass für jede Eingabeorientierung mindestens eine Halteposition und Halteorientierung der Hand 20 erzeugt werden kann.
-
Das Robotersystem gemäß der zweiten Ausführungsform zur Durchführung der vorliegenden Erfindung wird unter Bezugnahme auf 15 beschrieben. 15 ist eine schematische Darstellung des Robotersystems zum Ausrichten beliebig gereihter Werkstücke gemäß der zweiten Ausführungsform der vorliegenden Erfindung. In 15 werden die gleichen Bezugszeichen wie in 1 und 2 für gleiche oder gleichwertige Teile verwendet. Im Robotersystem gemäß der vorliegenden Ausführungsform wird die Haltepositions- und Orientierungslehreinrichtung gemäß der ersten Ausführungsform auf ein System zum Ausrichten beliebig gereihter Werkstücke angewendet.
-
Wie in 15 dargestellt, weist das Robotersystem 100 Folgendes auf: einen dreidimensionalen Ansichtssensor 150, einen zweidimensionalen Ansichtssensor 160, den Roboter 200 und die Haltepositions- und Orientierungslehreinrichtung 300. Die Haltepositions- und Orientierungslehreinrichtung 300 erzeugt mit dem bei der ersten Ausführungsform dargestellten Verfahren vorab Haltepositionen und Orientierungen der Werkstücke 10, bevor der Roboter 200 Haltevorgänge ausführt, und bringt diese dem Roboter 200 bei.
-
Die Werkstücke 10 werden auf einen Werkstück-Eingabetisch 110 in zufällig gereihtem Zustand gegeben. Als Auflegen der Werkstücke 10 auf den Werkstück-Eingangstisch 110 gibt es ein Verfahren, bei dem die Werkstücke 10 sequentiell auf eine am Werkstück-Eingangstisch 110 befestigte Palette gegeben werden, sowie ein Verfahren, bei dem die gesamte mit den Werkstücken 10 beladene Palette ausgetauscht wird und diese kombinierende Verfahren.
-
Der dreidimensionale Ansichtssensor 150 ist ein Sensor zur Erkennung von Positionen der Werkstücke 10, die auf dem Werkstück-Eingangstisch 110 zufällig aufgereiht sind. Mit Hilfe der Erkennungsergebnisse des dreidimensionalen Ansichtssensors 150 wird ein Werkstück 10 aus dem Werkstück-Eingangstisch 110 entnommen und direkt auf einem Ausrichtungstisch 140 ausgerichtet, und falls eine direkte Ausrichtung nicht möglich ist, werden die Werkstücke 10 auf einen Behelfstisch 120 so gelegt, dass sich die Werkstücke 10 nicht berühren.
-
Der Fall, dass eine direkte Ausrichtung nicht möglich ist, bezieht sich hier auf einen Fall, bei dem die Genauigkeit der Erkennungsergebnisse der Werkstücke 10 gering ist und ein genaues Halten zum Ausrichten nicht möglich ist. Ein Fall ist z.B., wenn charakteristische Punkte der Werkstücke 10 verdeckt sind und die erkannten Positionen und Ausrichtungen der Werkstücke 10 zweifelhaft sind. Ein weiterer Fall ist, wenn die gewählte Halteposition und Halteorientierung instabil sind und die Werkstücke 10 sich beim Halten mit der Hand 20 bewegen. Ein weiterer Fall ist, dass ein haltbarer Raum erkannt und gehalten wird, ohne dass die Positionen und Orientierungen der Werkstücke 10 erkannt werden.
-
Der Raum zum Halten für eine zupackende Hand 20 ist ein Raum, in den das Fingerteil 21 der Hand 20 eintritt und in dem sich ein zu haltendes Werkstück 10 befindet, und der für eine saugende Hand 20 ist eine ebene Fläche eines Gegenstandes mit einer bestimmten Fläche oder mehr. Ein weiterer Fall ist, dass die Hand 20 und der Roboter 200 aufgrund der Halteposition und Halteorientierung mit umliegenden Geräten interferieren/kollidieren und der Roboter 200 die Position und Orientierung aufgrund mechanischer Einschränkungen nicht umsetzen kann.
-
In den oben beschriebenen Fällen wird festgestellt, dass eine direkte Bewegung zum Ausrichtungstisch 140 nicht möglich ist, und die Werkstücke 10 werden auf den Behelfstisch 120 gelegt, um eine feste Ausrichtung zu erreichen. Der zweidimensionale Ansichtssensor 160 erkennt die Positionen und Orientierungen der Werkstücke 10 auf dem Behelfstisch 120 mit hoher Genauigkeit.
-
Mit den von der Haltepositions- und Orientierungslehreinrichtung 300 erzeugten Haltepositionen und Orientierungen hält der Roboter 200 die Werkstücke 10. Der Roboter 200 führt den Vorgang so aus, dass die Werkstücke 10 auf dem Ausrichtungstisch 140 in vorgegebenen Endorientierungen ausgerichtet werden.
-
Können die Werkstücke 10 mit der von der Haltepositions- und Orientierungslehreinrichtung 300 beigebrachten Halteposition und Halteorientierung nicht auf den Ausrichtungstisch 140 bewegt werden, wird eine Umspannvorrichtung 130 verwendet und der Roboter 200 hält die Werkstücke 10 wieder fest und fährt dann auf den Ausrichtungstisch 140, um die Endorientierungen vorzunehmen.
-
Der Fall, bei dem eine Bewegung nicht möglich ist, bezieht sich auf einen Fall, bei dem die Hand 20 und der Roboter 200 mit umliegenden Ausrüstungsteilen interferieren und der Roboter 200 z.B. die Position und Orientierung nicht umsetzen kann. Nicht nur bei Verwendung der Umspannvorrichtung 130 können die Werkstücke 10 durch erneutes Aufsetzen auf dem Behelfstisch 120 wieder gehalten werden.
-
Aufgrund der oben beschriebenen Konfiguration kann das Robotersystem 100 mit der von der Haltepositions- und Orientierungslehreinrichtung 300 erzeugten Halteposition und Halteorientierung beliebig gereihte Werkstücke 10 halten und in bestimmten Positionen und Orientierungen ausrichten.
-
Die vorliegende Ausführungsform beschreibt ein Beispiel, in dem die Haltepositions- und Orientierungslehreinrichtung 300 auf ein System angewendet wird, in dem zufällig gereihte Werkstücke 10 eingegeben werden, kann aber auch auf andere Systeme angewendet werden, z.B. auf ein System, in dem Werkstücke 10 nicht überlappend eingegeben werden, ohne deren Orientierung auszurichten, und auf ein System, in dem Werkstücke 10 mit ausgerichteter Orientierung eingegeben werden.
-
Die Haltepositions- und Orientierungslehreinrichtung gemäß der dritten Ausführungsform zur Durchführung der vorliegenden Erfindung wird nun unter Bezugnahme auf 16 beschrieben. 16 ist eine schematische Darstellung des Aufbaus der Haltepositions- und Orientierungslehreinrichtung 300 gemäß der vorliegenden Ausführungsform. In 16 werden die gleichen Bezugszeichen wie in 1 und 2 für gleiche oder gleichwertige Teile verwendet. Ausführungsform 3 ist so wie die erste Ausführungsform, nur dass die Haltepositions- und Orientierungsdaten 303 und eine Datenbank-Sucheinheit 311 hinzugefügt werden.
-
Die vorliegende Ausführungsform verwendet eine Konfiguration, in der die Haltepositions- und Orientierungsdaten 303, die eine relative Position und Orientierung der Hand 20 zu einem Hauptwerkstück 10 beschreiben, im Speicher 31 gespeichert sind, und die Datenbank-Sucheinheit 311, die eine Datenbasis des Speichers 31 durchsuchen kann, enthält.
-
Die Datenbank-Sucheinheit 311 erfasst die von der Werkstückeingabe der Orientierungs-Berechnungseinheit 310 berechneten Eingabeorientierungen der Werkstücke 10. Anschließend wird die Datenbasis mit den Haltepositions- und Orientierungsdaten 303 eines Hauptwerkstücks 10 durchsucht. Wenn die Haltepositions- und Orientierungsdaten 303, die für die berechnete Eingabeorientierung des Werkstücks 10 ermittelt werden, extrahiert werden, wird ermittelt, ob der Winkel zwischen der Annäherungsrichtung der Hand 20 in der Eingabeorientierung und der Anbringungsrichtung der Hand 20 der Haltepositions- und Orientierungsdaten 303 ein zulässiger Winkel oder kleiner ist.
-
Wird festgestellt, dass die Halteposition und Halteorientierung der Haltepositions- und Orientierungsdaten 303 der zulässige Winkel oder kleiner ist, gibt die Haltepositions- und Orientierungsausgabeeinheit 340 diesen als Halteposition und Halteorientierung aus.
-
Auch bei einer solchen Konfiguration kann, ähnlich wie bei der ersten Ausführungsform, für jede Eingabeorientierung des Werkstücks 10 mindestens eine Halteposition und Halteorientierung erzeugt werden. Weiterhin sind in der vorliegenden Ausführungsform die Haltepositions- und Orientierungsdaten 303 im Speicher 31 gespeichert und die Datenbank-Sucheinheit 311 zur Suche in der Datenbasis des Speichers 31 ist vorgesehen, so dass dann, wenn die für das Werkstück 10 geltenden Haltepositions- und Orientierungsdaten 303 in der Datenbasis registriert sind, die Haltepositions- und Orientierungsdaten 303 als Halteposition und Halteorientierung des Werkstücks 10 ausgegeben werden können.
-
Als Verfahrensschritte berechnet die Werkstückeingabe Orientierungs-Berechnungseinheit 310 Eingabeorientierungen (Schritt S1), und die Datenbank-Sucheinheit 311 sucht in der Datenbasis gemäß den Haltepositions- und Orientierungsdaten 303 (Schritt S2). Gegebenenfalls werden die Haltepositions- und Orientierungsdaten 303 extrahiert, der Ablauf der Halteorientierungsauswahleinheit 320, der Haltepositionsbereichs-Extraktionseinheit 330 und der Haltepositions- und Orientierungsausgabeeinheit 340 ausgelassen und die Haltepositions- und Orientierungsausgabeeinheit 340 führt die Ausgabe durch (Schritt S3). Falls die Haltepositions- und Orientierungsdaten 303 nicht extrahiert werden, wird ein ähnlicher Vorgang wie bei der ersten Ausführungsform durchgeführt.
-
Durch die obigen Schritte kann, ähnlich wie bei der ersten Ausführungsform, für jede Eingabeorientierung des Werkstücks 10 eine Halteposition und Orientierung generiert werden, basierend auf den Werkstückformdaten 301 und den Handdaten 302. Wenn weiterhin die für das Werkstück 10 geltenden Haltepositions- und Orientierungsdaten 303 registriert sind, können der Prozess der Halteorientierungsauswahleinheit 320, der Haltepositionsbereichs-Extraktionseinheit 330 und der Haltepositions- und Orientierungsausgabeeinheit 340 weggelassen und die Haltepositions- und Orientierungsdaten 303 können von der Haltepositions- und Orientierungsausgabeeinheit 340 ausgegeben werden.
-
Die Haltepositions- und Orientierungslehreinrichtung gemäß der vierten Ausführungsform zur Durchführung der vorliegenden Erfindung wird unter Bezugnahme auf 17 beschrieben. 17 ist ein schematischer Aufbau gemäß der vorliegenden Ausführungsform. In 17 werden die gleichen Bezugszeichen wie in 1 und 2 für gleiche oder gleichwertige Teile verwendet. Die Haltepositions- und Orientierungslehreinrichtung 300 ist die gleiche wie die der ersten Ausführungsform, nur dass die Halteorientierungsdaten 304 und eine Halteorientierungseingabeeinheit 321 hinzugefügt wurden.
-
Die vorliegende Ausführungsform verwendet, wie in 17 dargestellt, eine Konfiguration mit der Halteorientierungseingabeeinheit 321, in die die Halteorientierungsdaten 304 eingegeben werden.
-
Die Halteorientierungsdaten 304 sind Daten, die eine Halteorientierung der Hand 20 in Bezug auf das Werkstück 10 beschreiben. Das Datenformat der Halteorientierungsdaten 304 kann das gleiche sein wie das der Orientierungsausgabe der Halteorientierungsauswahleinheit 320, oder ein Originalformat. Im Falle eines Originalformats wechselt die Halteorientierungseingabeeinheit 321 in das gleiche Datenformat wie die Halteorientierungsauswahleinheit 320.
-
Die Halteorientierungseingabeeinheit 321 kann die Halteorientierungsdaten 304 importieren, oder einen Benutzer über eine GUI zur Eingabe veranlassen. Die GUI enthält z.B. einen 3D-Bildschirm für das Werkstück 10 und die Hand 20, eine Eingabetaste zur Eingabe der Halteorientierung und ähnliches.
-
Auch bei einer solchen Konfiguration kann, ähnlich wie bei der ersten Ausführungsform, für jede Eingabeorientierung des Werkstücks 10 mindestens eine Halteposition und eine Halteorientierung generiert werden. Weiterhin ist gemäß der vorliegenden Ausführungsform die Halteorientierungseingabeeinheit 321 enthalten, und somit kann der Anwender direkt die Halteorientierung, basierend auf den Eigenschaften eines Werkstücks 10 und einer zu verwendenden Hand 20, festlegen.
-
Als Verfahrensschritte berechnet die Werkstückeingabe Orientierungs-Berechnungseinheit 310 Eingabeorientierungen (Schritt S1), und die Halteorientierungseingabeeinheit 321 gibt für jede Eingabeorientierung die Halteorientierungsdaten 304 ein (Schritt S2). Bei Eingabe der Halteorientierungsdaten 304 entfällt die Halteorientierungsauswahleinheit 320 und der Vorgang wird mit dem in der ersten Ausführungsform beschriebenen Verfahren unter Verwendung der Haltepositionsbereichs-Extraktionseinheit 330 und der Haltepositions- und Orientierungsausgabeeinheit 340 durchgeführt, und die Haltepositions- und Orientierungsausgabeeinheit 340 führt die Ausgabe durch (Schritt S3). Wenn die Halteorientierungsdaten 304 nicht eingegeben werden, wird ein ähnlicher Prozess wie bei der ersten Ausführungsform durchgeführt.
-
Durch die obigen Schritte kann, ähnlich wie bei der ersten Ausführungsform, für jede Eingabeorientierung des Werkstücks 10, basierend auf den Werkstückformdaten 301 und den Handdaten 302, eine Halteposition und Orientierung erzeugt und ausgegeben werden. Weiterhin können bei Eingabe der Halteorientierungsdaten 304 durch die Halteorientierungseingabeeinheit 321 der Prozess der Halteorientierungsauswahleinheit 320 entfallen und die Halteposition und Halteorientierung generiert werden.
-
Die Haltepositions- und Orientierungslehreinrichtung gemäß der fünften Ausführungsform zur Durchführung der vorliegenden Erfindung wird unter Bezugnahme auf 18 beschrieben. 18 ist ein schematischer Aufbau gemäß der vorliegenden Ausführungsform. In 18 werden die gleichen Bezugszeichen wie in 1 und 2 für gleiche oder gleichwertige Teile verwendet. Sie ist so wie in der ersten Ausführungsform ausgebildet, nur dass eine Haltepositions- und Orientierungseinstelleinheit 341 hinzugefügt wird.
-
Wie in 18 dargestellt, verwendet die vorliegende Ausführungsform eine Konfiguration mit der Haltepositions- und Orientierungseinstelleinheit 341 zur Einstellung der Halteposition und Orientierung. Die Haltepositions- und Orientierungseinstelleinheit 341 stellt dem Anwender die Halteposition und Halteorientierung dar, und der Anwender stellt die Halteposition und Halteorientierung auf Basis der dargestellten Informationen ein.
-
Als Verfahren zur Darstellung und Einstellung der Haltepositions- und Orientierungseinstelleinheit 341 kann eine GUI verwendet werden. Die GUI beinhaltet z.B. einen 3D-Bildschirm für das Werkstück 10 und die Hand 20, einen Eingabeknopf zur Änderung der Position und Orientierung der Hand 20 und zur Eingabe der Halteposition und Halteorientierung, und dgl.. Die Haltepositions- und Orientierungseinstelleinheit 341 kann dem Benutzer einen bestimmten Haltepositionsbereich präsentieren und nur innerhalb dieses Bereichs Positionen einstellen.
-
Auch bei einer solchen Konfiguration können, ähnlich wie bei der ersten Ausführungsform, für jede Eingabeorientierung des Werkstücks 10 mindestens eine Halteposition und Halteorientierung erzeugt werden. Weiterhin ist in der vorliegenden Ausführungsform die Haltepositions- und Orientierungseinstelleinheit 341 enthalten, so dass der Anwender die Ausgabe Halteposition und Halteorientierung anpassen kann.
-
Es ist zu beachten, dass die erste bis fünfte Ausführungsform Fälle beschreiben, in denen die Hand 20 das Fingerteil 21 mit mehreren Fingern enthält, die ein Werkstück 10 einklemmen und halten, aber eine Saughand, die ein Werkstück 10 ansaugt und hält, kann auch verwendet werden. 19 illustriert ein Beispiel für die Saughand. Ein oberer Teil der Saughand 20 ist am Handgelenkteil 22 des Roboters 200 befestigt. In einem unteren Teil der Saughand 20 ist ein kreisförmiges Saugerteil 24 enthalten, das ein Werkstück 10 ansaugt, und das Saugerteil 24 saugt ein Werkstück 10 an und hält es fest.
-
Die Halteorientierungsauswahleinheit 320 wählt die Halteorientierung aus, wobei davon ausgegangen wird, dass die Haltefläche der Hand 20 das Saugerteil 24 ist. Die Haltepositionsbereichs-Extraktionseinheit 330 und die Haltepositions- und Orientierungsausgabeeinheit 340 führen ebenfalls einen ähnlichen Vorgang wie die Hand 20 einschließlich des oben beschriebenen Fingerteils 21 aus.
-
Weiterhin beschreiben die ersten bis fünften Ausführungsformen Beispiele, bei denen der Roboter 200 und die Haltepositions- und Orientierungslehreinrichtung 300 getrennt vorgesehen sind, aber eine Konfiguration, bei der eine Lehreinheit mit einer gleichwertigen Funktion der Haltepositions- und Orientierungslehreinrichtung 300 in die Robotersteuerung 202 integriert ist, kann auch eingesetzt werden.
-
Bezugszeichenliste
-
- 100
- Robotersystem
- 200
- Roboter
- 300
- Haltepositions- und Orientierungslehreinrichtung
- 10
- Werkstück
- 20
- Hand
- 310
- Werkstückeingabe Orientierung-Berechnungseinheit
- 320
- Halteorientierungsauswahleinheit
- 330
- Haltepositionsbereichs-Extraktionseinheit
- 340
- Haltepositions- und Orientierungsausgabeeinheit