-
Stand der Technik
-
Die vorliegende Offenbarung betrifft Vorrichtungen und Verfahren zum Trainieren eines neuronalen Netzes zum Steuern eines Roboters für eine Einsetzaufgabe.
-
Zusammenbau, wie etwa Zusammenbau von elektrischer Verdrahtung, ist eine der gängigsten manuellen Arbeiten in der Industrie. Beispiele dafür sind Zusammenbau elektrischer Schalttafeln und Zusammenbau hausinterner Schaltanlagen. Komplizierte Zusammenbauprozesse können typischerweise als eine Abfolge von zwei Hauptaktivitäten beschrieben werden: Greifen und Einsetzen. Ähnliche Aufgaben treten beispielsweise bei Kabelherstellung auf, was typischerweise Kabeleinstecken für Validierung und Verifizierung beinhaltet.
-
Während in der Industrie für Greifaufgaben geeignete Robotersteuerungsschemas typischerweise verfügbar sind, ist Durchführen von Einstecken oder von „Stift-in-Loch“-Aufgaben durch Roboter weiter nur auf kleine Untermengen von Problemen anwendbar, hauptsächlich solche, die einfache Formen an festen Orten involvieren und in denen die Variationen nicht berücksichtigt werden. Darüber hinaus sind existierende visuelle Techniken langsam, typischerweise etwa dreimal langsamer als menschliche Bediener.
-
Daher sind effiziente Verfahren zum Trainieren einer Steuereinheit für einen Roboter zum Durchführen einer Einsetzaufgabe wünschenswert.
-
Offenbarung der Erfindung
-
Gemäß verschiedensten Ausführungsformen ist ein Verfahren vorgesehen zum Trainieren eines neuronalen Netzes zum Ableiten, aus einer Kraft und einem Moment, die auf ein Objekt ausgeübt werden, wenn es auf eine Ebene gedrückt wird, in welcher sich eine Einsetzstelle zum Einsetzen des Objekts befindet, eines Bewegungsvektors zum Einsetzen eines Objekts an einer Einsetzstelle, das Folgendes umfasst: für eine Mehrzahl von Positionen, in denen das Objekt oder das Teil, das durch den Roboter gehalten wird, eine Ebene, in der sich die Einsetzstelle befindet, berührt, Steuern des Roboters zum Bewegen an die Position, Steuern des Roboters, das Objekt auf die Ebene zu drücken, Messen der Kraft und des Moments, die von dem Objekt erfahren werden, Skalieren des Paars aus Kraft und Moment mit einer zufällig zwischen null und einer vorbestimmten positiven maximalen Zahl gewählten Zahl und Labeln des skalierten Paars aus Kraft und Moment durch einen Bewegungsvektor zwischen der Position und der Einsetzstelle, und Trainieren des neuronalen Netzes unter Verwendung der gelabelten Paare aus Kraft und Moment.
-
Das zufällige Skalieren der Paare von Kraft und Moment vermeidet Überanpassen an die Kraft, mit der der Roboter das Objekt auf die Ebene drückt. Dem ist so, weil sowohl die Kraft als auch das Moment von dieser Andruckkraft abhängen. Da beide der für die Regressionsaufgabe wertvollen Informationen im Verhältnis aus der gemessenen Kraft und dem gemessenen Moment liegen, führt das Skalieren nicht zu einem Informationsverlust.
-
Der Bewegungsvektor kann beispielsweise ein Vektor der Differenzen zwischen der Pose der aktuellen Position (Position an der ein Kamerabild aufgenommen wird) und der Pose der Einsetzstelle (z. B. im Hinblick auf kartesische Koordinaten für die Position und Winkel für die Orientierung) sein.
-
Verschiedene Ausführungsformen des oben beschriebenen Verfahrens erlauben ein Trainieren eines Roboters für eine Einsetzaufgabe, für die Trainingsdaten möglicherweise einfach gesammelt werden können und die Verallgemeinern auf Variationen in der Steuerungsumgebung oder dem Steuerungsszenario erlauben, wie etwa einem Fehler beim Greifen (fehlausgerichtetes Greifen) des einzusetzenden Objekts, ein anderer Ort oder eine andere Orientierung als in den gesammelten Trainingsdaten, unterschiedliche Farben, kleine Formabweichungen. Insbesondere kann Gefährdung des Roboters oder dessen Umgebung während Daten gesammelt werden vermieden werden, und Lernen kann Offline durchgeführt werden. Ferner ist der Ansatz des oben beschriebenen Verfahrens auf viele verschiedene Einsetzprobleme skalierbar (einschließlich des Stift-in-Loch- und des Einfädel-Problems). Das Obige wird insbesondere durch Formulieren der Korrektur eines Greiffehlers (oder allgemein die Korrektur einer Position in einer Einsetzaufgabe) als eine Regressionsaufgabe für ein neuronales Netz erreicht, da ein neuronales Netz sehr komplex strukturierte Umweltgegebenheiten erfassen kann, während Datensammeln weiter einfach bleibt.
-
Im Folgenden werden verschiedene Beispiele beschrieben.
-
Beispiel 1 ist ein Verfahren zum Trainieren eines wie oben beschriebenen neuronalen Netzes.
-
Beispiel 2 ist das Verfahren von Beispiel 1, ferner umfassend, für jede Position aus der Mehrzahl von Positionen, Aufnehmen eines Kamerabilds durch eine an dem Roboter montierte Kamera, Bilden eines Trainingsdatenelements, das das Kamerabild, das skalierte Paar aus Kraft und Moment und den Bewegungsvektor als Label umfassen, wobei das Verfahren Trainieren des neuronalen Netzes unter Verwendung des Trainingsdatenelements umfasst.
-
Berücksichtigen von Kamerabildern zusätzlich zu Kraftmessungen in der Regression liefert zusätzliche Informationen, die Verbessern des Regressionsergebnisses erlauben.
-
Beispiel 3 ist ein Beispiel für Einsetzen eines Objekts in eine Einsetzstelle, umfassend Steuern des Roboters zum Halten des Objekts, Steuern des Roboters zum Bewegen in der Richtung einer Ebene, in der sich die Einsetzstelle befindet, bis das Objekt oder der Teil des Objekts die Ebene berührt, Steuern des Roboters, das Objekt auf die Ebene zu drücken, Messen der Kraft und des Moments, die von dem Objekt erfahren werden, Einspeisen der gemessenen Kraft und des gemessenen Moments in das neuronale Netz, das gemäß einem der Beispiele 1 und 2 trainiert wurde, und Steuern des Roboters zum Bewegen gemäß dem durch das neuronale Netz aus dem Kamerabild abgeleiteten Bewegungsvektor.
-
Dieser Steuerungsansatz ermöglicht es, aus dem oben beschriebenen Trainingsverfahren Nutzen zu ziehen.
-
Beispiel 4 ist das Verfahren von Beispiel 3, umfassend Aufnehmen eines Kamerabilds an der Position, an der die Kraft und das Moment, die durch das Objekt erfahren werden, gemessen werden, und Einspeisen des gemessenen Moments in das durch Beispiel 2 trainierte neuronale Netz.
-
Dies erhöht die Genauigkeit der Regression und führt somit zu einer exakteren Steuerung.
-
Beispiel 5 ist das Verfahren von Beispiel 3 oder 4, wobei Steuern des Roboters zum Bewegen gemäß dem Bewegungsvektor Steuern des Roboters zum Bewegen gemäß dem Bewegungsvektor, während Druck des Objekts auf die Ebene, in welcher sich der Ort befindet, beibehalten wird, bis das Objekt in die Einsetzstelle eingesetzt ist, umfasst.
-
Dies verringert die Freiheitsgrade der Bewegung des Roboters und führt somit zu einer zuverlässigeren Steuerung, bis die Einsetzstelle gefunden ist.
-
Beispiel 6 ist ein Roboter, umfassend eine an dem Roboter montierte Kamera, die eingerichtet ist zum Liefern von Kamerabildern, und eine Steuereinheit, ausgelegt zum Implementieren eines neuronalen Netzes und ausgelegt zum Ausführen des Verfahrens nach einem der Beispiele 1 bis 5.
-
Beispiel 7 ist ein Computerprogramm, das Anweisungen umfasst, die bei Ausführung durch einen Prozessor veranlassen, dass der Prozessor ein Verfahren nach einem der Beispiele 1 bis 5 durchführt.
-
Beispiel 8 ist ein computerlesbares Medium, das Anweisungen speichert, die bei Ausführung durch einen Prozessor veranlassen, dass der Prozessor ein Verfahren nach einem der Beispiele 1 bis 5 durchführt.
-
In den Zeichnungen beziehen sich im Allgemeinen überall in den verschiedenen Ansichten ähnliche Bezugszeichen auf die gleichen Teile. Die Zeichnungen sind nicht notwendigerweise maßstabsgetreu, stattdessen wird der Schwerpunkt allgemein auf die Veranschaulichung der Prinzipien der Erfindung gelegt. In der folgenden Beschreibung werden verschiedene Aspekte unter Bezugnahme auf die folgenden Zeichnungen beschrieben, in denen gilt:
- 1 zeigt einen Roboter.
- 2 zeigt ein neuronales Netz gemäß einer Ausführungsform.
- 3 zeigt ein Beispiel für eine Ausgestaltung, in der die Steuereinheit ein Bild mit der robotermontierten Kamera aufnimmt, für Training oder im Betrieb.
- 4 veranschaulicht Kraft und Moment, die durch ein Objekt erfahren werden.
- 5 veranschaulicht Betrieb gemäß einer Ausführungsform für Einsetzen eines Elektrosteckers in eine Einsetzstelle.
- 6 zeigt ein Flussdiagramm für ein Verfahren zum Trainieren eines neuronalen Netzes zum Ableiten, anhand eines Bilds einer Kamera, die an einem Roboter montiert ist, eines Bewegungsvektors für den Roboter zum Einsetzen eines Objekts in eine Einsetzstelle, gemäß einer Ausführungsform.
-
Die folgende ausführliche Beschreibung bezieht sich auf die begleitenden Zeichnungen, die zur Veranschaulichung spezielle Einzelheiten und Aspekte dieser Offenbarung zeigen, in denen die Erfindung ausgeübt werden kann. Andere Aspekte können genutzt werden und strukturelle, logische und elektrische Änderungen können vorgenommen werden, ohne vom Schutzumfang der Erfindung abzuweichen. Die verschiedenen Aspekte dieser Offenbarung schließen sich nicht notwendigerweise gegenseitig aus, da manche Aspekte dieser Offenbarung mit einem oder mehreren anderen Aspekten dieser Offenbarung kombiniert werden können, um neue Aspekte zu bilden.
-
Im Folgenden werden verschiedene Beispiele ausführlicher beschrieben.
-
1 zeigt einen Roboter 100.
-
Der Roboter 100 beinhaltet einen Roboterarm 101, zum Beispiel einen Industrieroboterarm zum Handhaben oder Zusammenbauen eines Werkstücks (oder eines oder mehrerer anderer Objekte). Der Roboterarm 101 beinhaltet Manipulatoren 102, 103, 104 und eine Basis (oder Stütze) 105, mittels der die Manipulatoren 102, 103, 104 gestützt werden. Der Begriff „Manipulator“ bezieht sich auf die bewegbaren Glieder des Roboterarms 101, deren Betätigung eine physische Interaktion mit der Umwelt ermöglicht, um z. B. eine Aufgabe auszuführen. Zur Steuerung beinhaltet der Roboter 100 eine (Roboter-) Steuereinheit 106, die zum Implementieren der Interaktion mit der Umwelt gemäß einem Steuerprogramm ausgelegt ist. Das letzte Glied 104 (das am weitesten von der Stütze 105 entfernt ist) der Manipulatoren 102, 103, 104 wird auch als der Endeffektor 104 bezeichnet und kann ein oder mehrere Werkzeuge beinhalten, wie etwa einen Schweißbrenner, ein Greifinstrument, ein Lackiergerät oder dergleichen.
-
Die anderen Manipulatoren 102, 103 (die sich näher an der Stütze 105 befinden) können eine Positionierungsvorrichtung bilden, sodass, zusammen mit dem Endeffektor 104, der Roboterarm 101 mit dem Endeffektor 104 an seinem Ende versehen ist. Der Roboterarm 101 ist ein mechanischer Arm, der ähnliche Funktionen wie ein menschlicher Arm vorsehen kann (möglicherweise mit einem Werkzeug an seinem Ende).
-
Der Roboterarm 101 kann Gelenkelemente 107, 108, 109 beinhalten, die die Manipulatoren 102, 103, 104 miteinander und mit der Stütze 105 verbinden. Ein Gelenkelement 107, 108, 109 kann ein oder mehrere Gelenke aufweisen, die jeweils eine drehbare Bewegung (d. h. Drehbewegung) und/oder translatorische Bewegung (d. h. Verlagerung) für assoziierte Manipulatoren relativ zueinander vorsehen können. Die Bewegung der Manipulatoren 102, 103, 104 kann mittels Aktoren initiiert werden, die durch die Steuereinheit 106 gesteuert werden.
-
Der Begriff „Aktor“ kann als eine Komponente verstanden werden, die eingerichtet ist, als Reaktion auf deren Ansteuerung, zum Einwirken auf einen Mechanismus oder Prozess. Der Aktor kann durch die Steuereinheit 106 erteilte Anweisungen (die sogenannte Aktivierung) in mechanische Bewegungen umsetzen. Der Aktor, z. B. ein elektromechanischer Wandler, kann dafür ausgelegt sein, als Reaktion auf eine Ansteuerung, elektrische Energie in mechanische Energie umzuwandeln.
-
Der Begriff „Steuereinheit“ kann als eine beliebige Art von logikimplementierender Entität verstanden werden, die zum Beispiel eine Schaltung und/oder einen Prozessor beinhalten kann, die/der in der Lage ist, in einem Speicherungsmedium gespeicherte Software, Firmware oder eine Kombination davon auszuführen, und die/der im vorliegenden Beispiel Anweisungen, z. B. einem Aktor, erteilen kann. Die Steuereinheit kann zum Beispiel durch Programmcode (z. B. Software) konfiguriert werden, um den Betrieb eines Systems, eines Roboters im vorliegenden Beispiel, zu steuern.
-
Im vorliegenden Beispiel beinhaltet die Steuereinheit 106 einen oder mehrere Prozessoren 110 und einen Speicher 111, der Code und Daten speichert, auf deren Grundlage der Prozessor 110 den Roboterarm 101 steuert. Gemäß verschiedenen Ausführungsformen steuert die Steuereinheit 106 den Roboterarm 101 auf der Grundlage eines Maschinenlernmodells 112, das im Speicher 111 gespeichert ist.
-
Gemäß verschiedenen Ausführungsformen ist das Maschinenlernmodell 112 dafür ausgelegt und dafür trainiert, dem Roboter 100 zu erlauben, eine Einsetzaufgabe (z. B. Stift-in-Loch) durchzuführen, beispielsweise Einsetzen eines Steckers 113 in eine entsprechende Buchse 114. Hierfür nimmt die Steuereinheit 106 mithilfe der Kameras 117, 119 Bilder des Steckers 113 und der Buchse 114 auf. Der Stecker 113 ist beispielsweise ein USB-Stecker (USB - Universal Serial Bus). Es sei angemerkt, dass, falls der Stecker wie ein Stromstecker mehrere Stifte aufweist, jeder Stift dann als ein einzusteckendes Objekt angesehen werden kann (wobei die Einsetzstelle ein entsprechendes Loch ist). Alternativ kann der ganze Stecker als das einzusetzende Objekt angesehen werden (wobei die Einsetzstelle eine Steckdose ist). Es sei angemerkt, dass (abhängig davon, was als das Objekt angesehen wird) das Objekt 113 nicht notwendigerweise vollständig in die Einsetzstelle eingesetzt wird. Wie im Falle des USB-Steckers wird der USB-Stecker als eingesetzt betrachtet, wenn der Metallkontaktteil 116 in die Buchse 114 eingesetzt ist.
-
Robotersteuerung zum Durchführen einer Stift-in-Loch-Aufgabe involviert typischerweise zwei Hauptphasen: Suchen und Einsetzen. Während des Suchens wird die Buchse 114 identifiziert und lokalisiert, um die zum Einsetzen des Steckers 113 benötigten essenziellen Informationen bereitzustellen.
-
Suchen einer Einsetzstelle kann auf Visions- oder Blindstrategien basieren, was beispielsweise Spiralpfade involviert. Visuelle Techniken hängen in hohem Maße vom Standort der Kamera 117, 119 und der Platte 118 (in der die Buchse 114 platziert ist) und Hindernissen ab, und sind typischerweise dreimal langsamer als menschliche Bediener. Aufgrund der Limitierungen visueller Verfahren kann die Steuereinheit 106 Kraft-Drehmoment- und Haptik-Rückmeldung berücksichtigen, entweder ausschließlich oder in Kombination mit Vision.
-
Dies erlaubt insbesondere eine Verallgemeinerung, beispielsweise zwischen zylindrischen und kuboiden Stiften.
-
Steuern eines Roboters zum Durchführen einer Einsetzaufgabe kann auch eine Kontaktmodell-basierte Steuerung oder Kontaktmodell-freies Lernen involvieren. Modellbasierte Strategien schätzen den Zustand des Zusammenbaus anhand der gemessenen Kräfte, Drehmomente und der gemessenen Position und korrigieren die Bewegung dementsprechend unter Verwendung von zustandsabhängiger vorprogrammierter konformer Steuerung. Modellfreies Lernen involviert Lernen aus Demonstration (LfD - Learning from Demonstration) oder Lernen aus der Umwelt (LfE - Learning from the Environment). LfD-Algorithmen leiten eine Vorgehensweise aus einer Menge von Beispielen oder Demonstrationen ab, die durch erfahrene Bediener bereitgestellt werden. Die Flexibilität der resultierenden Vorgehensweise wird durch die in der Demonstrationsdatenmenge bereitgestellten Informationen beschränkt.
-
Bestärkungslernen-Ansätze (RL - Reinforcement learning) (z. B. Kombinieren einer vortrainierten Grundvorgehensweise (unter Verwendung von LfD oder einer vordesignten Grundsteuereinheit) und einer erlernten Restvorgehensweise durch Interagieren mit der Umwelt) können damit fertig werden, irgendwelche komplizierte Einsetzprobleme zu lösen und sogar in gewissem Ausmaß zu verallgemeinern. Allerdings bleiben die Flexibilität und die Skalierbarkeit von Online-RL als ein Online-Lernschema begrenzt. In diesem Fall ist es nämlich nichtpraktikabel, den Roboter mit der Umwelt mit der neuesten erlernten Vorgehensweise interagieren zu lassen, um weitere Erkenntnis über die Umwelt zu erfassen und die Vorgehensweise zu verbessern, da Datensammlung teuer (man muss Trajektorien an einem realen Roboter sammeln) und gefährlich (Robotersicherheit und dessen Umgebung) ist. Der Datensammlungsaspekt ist hochwichtig, da Verallgemeinerung beim Maschinenlernen mit der Qualität und Größe der trainierten Daten verknüpft ist.
-
Angesichts des Obigen, gemäß verschiedenen Ausführungsformen, ist ein Regressionsansatz vorgesehen, der auf einen weiten Bereich von Einsetzproblemen anwendbar ist. Experimente zeigen, dass dies ermöglicht, nahezu perfekte Ergebnisse über einen weiten Bereich von Steckern und Stiften mit nur 50-100 gesammelten Datenpunkten (die innerhalb weniger Minuten erlernt werden können) zu erreichen. Diese Datenpunkte können ohne Notwendigkeit einer vorausschauend erlernten Vorgehensweise gesammelt werden und können an irgendeinem abgesetzten Offline-Standort gesammelt werden. Zusätzlich kann es als über Ort und über stark verwandte Szenarien hinweg verallgemeinernd gezeigt werden, wie etwa hinsichtlich verschiedener Größe, verschiedener Formen und Farben als in den gesammelten Daten.
-
Zusammenbauaufgaben involvieren üblicherweise eine Abfolge von zwei Grundaufgaben: Aufnehmen-und-Ablegen (Pick-and-Place) und Stift-in-Loch (Einstecken). Im Folgenden wird Aufnehmen und Ablegen und insbesondere das Trainieren und Steuern für die Fähigkeit zum Greifen eines Objekts nicht beschrieben, da angenommen wird, dass eine entsprechende Steuerung verfügbar ist oder dass der Ort und das Greifen des Objekts (z. B. des Steckers 113) durch den Benutzer vordefiniert ist. Der im Folgenden beschriebene Ansatz kann Ungewissheiten (unerwünschtes fehlausgerichtetes Greifen) beim Greifort und winkel (typischerweise bis zu einem Ausmaß von 10 Grad) handhaben. Eine automatische Transportvorrichtung ist ein praktischer Weg zum Reduzieren von unerwünschtem fehlausgerichtetem Greifen.
-
Zum Erleichtern von Verallgemeinerung (und dafür, auf einen Regressionsansatz anwendbar zu sein) ist die durch die Steuereinheit 106 durchgeführte Steuerungsprozedur zum Steuern des Roboterarms 101 zum Einsetzen des Objekts 113 in die Einsetzstelle 114 in zwei Stufen aufgeteilt. Die erste Stufe (Lokalisierungsstufe) ist ein grober Lokalisierungs- und Planungsteil. Hierfür verwendet die Steuereinheit 106 eine weitere (z. B. horizontale) Kamera 119 zum Lokalisieren der Einsetzstelle 114. Die Lokalisierung ist eine grobe Lokalisierung und deren Fehler hängt von dem Standort und der Art der horizontalen Kamera 119 ab.
-
Die zweite Stufe (Korrekturstufe) ist eine Korrektur der Position gemäß einer Restvorgehensweise. Die Notwendigkeit für eine Korrektur entsteht durch den Umstand, dass Ungewissheiten bei Ort und Orientierung der Einsetzstelle 114 aufgrund von Lokalisierungs-, Greif- und Steuerungsverfolgungsfehlern unvermeidlich sind.
-
Gemäß verschiedenen Ausführungsformen wird ein Maschinenlernmodell 112 in der Form eines neuronalen Netzes trainiert, um einen Bewegungsvektor zum Korrigieren der Position zu liefern. Das bedeutet, dass das neuronale Netz zum Durchführen von Regression trainiert wird. Das neuronale Netz 112 arbeitet auf Bildern, die durch eine robotermontierte Kamera 117 aufgenommen wurden, die mit einem gewissen Winkel (z. B. 45 Grad) auf den Endeffektor 104 gerichtet ist, so dass durch diese aufgenommene Bilder das durch den Endeffektor 104 gehaltene Objekt 113 zeigen. Die Kamera 117 ist beispielsweise eine unter 45 Grad (von dem Roboterhandgelenk, z. B. in Bezug auf eine Endeffektor-z-Achse) befindliche Handgelenkskamera, so dass die Mitte des Bilds zwischen die Finger des Endeffektors 104 zeigt. Dies erlaubt es, Verdeckung zu vermeiden.
-
Ein durch die robotermontierte Kamera 117 aufgenommenes Bild ist eine der Eingaben des neuronalen Netzes 112.
-
2 zeigt ein neuronales Netz 200 gemäß einer Ausführungsform.
-
Das neuronale Netz 200 führt eine Regressionsaufgabe durch. Es beinhaltet ein erstes Subnetz 201, das eine visuelle Eingabe 202 empfängt, z. B. ein Bild, das durch die robotermontierte Kamera 117 geliefert wird. Das erste Subnetz 201 ist ein Faltungsnetz (z. B. gemäß YOLO-Lite). Dessen Ausgabe wird an ein zweites Subnetz 204 des neuronalen Netzes 200 übergeben. Das zweite Subnetz 204 empfängt eine Krafteingabe 203, d. h. Messungen eines Kraftsensors 120, der ein Moment und eine Kraft misst, die durch das Objekt 113 erfahren werden, wenn es durch den Endeffektor gehalten und durch den Roboter auf eine Ebene (z. B. die Oberfläche 115 der Platte 118) gedrückt wird. Die Kraftmessung kann durch den Roboter oder durch einen externen Kraft- und Drehmomentsensor vorgenommen werden.
-
Die Verwendung von sowohl visueller Eingabe 202 und von Krafteingabe 203 macht den Ansatz für viele verschiedene Arten von Einsetzaufgaben anwendbar.
-
Das zweite Subnetz 204 (das z. B. vollständig verbundene Schichten aufweist) verwendet eine gemeinsam genutzte Repräsentation von visuellen und Kraftinformationen (z. B. erzeugt durch Verkettung der Ausgabe des ersten Subnetzes 201 und der Krafteingabe 203). Dessen Ausgabe ist ein Bewegungsvektor (hier als ΔY bezeichnet), der eine Delta-Aktion repräsentiert, die der Roboter in dem Endeffektor-Koordinatensystem anwenden sollte. Der Bewegungsvektor kann beispielsweise einen Translationsvektor in der x-y-Ebene des Endeffektor-Koordinatensystems umfassen. Es sei angemerkt, dass der Bewegungsvektor nicht nur Translationskomponenten umfassen kann, sondern auch Winkel umfassen kann, die Spezifizieren, wie der Roboterarm 101 gedreht werden sollte, um die Orientierung des Objekts 113 zu korrigieren, um dieses in die Einsetzstelle 114 einzusetzen.
-
Verwendung einer Delta-Aktion als eine Ausgabe, ohne den Ort des Endeffektors (gegenüber dem neuronalen Netz) anzugeben, führt zu einem Schema, bei dem sich das neuronale Netz in Unkenntnis von Ort und Drehung befindet. Drehen der Platte 118 und des Endeffektors 104 um neunzig Grad in der horizontalen Ebene hat keine Auswirkung auf die Eingabedaten und die Ausgabedaten des neuronalen Netzes 200. Dies ermöglicht es, das neuronale Netz 200 einfach zu halten.
-
Falls der Endeffektorort zum Spezifizieren der Korrekturaktion der Korrekturstufe nötig sein sollte, würde Trainieren des neuronalen Netzes 200 nicht auf einen anderen Plattenort verallgemeinert, wohingegen Verwenden des Endeffektor-Koordinatensystems erlaubt, das neuronale Netz gegenüber der Plattendrehung in Unkenntnis zu halten.
-
Um Trainingsdaten für das neuronale Netz 200 zu sammeln (insbesondere, um die richtigen Aktionen herauszufinden, d. h. Bewegungsvektoren, die durch das neuronale Netz 200 ausgegeben werden sollten) werden zuerst Einsetzort und - orientierung bestimmt und gespeichert. Nach sichern des Einsetzortes können Trainingsdaten für das Regressionsmodell gesammelt werden als obs:{Kamerabild, Kraft}
Aktion im Endeffektor-Koordinatensystem:{Lochvoransichten gesicherter Ort - aktueller Ort}.
-
Dies bedeutet, dass Erzeugen von Trainingsdatenelementen zum Trainieren des neuronalen Netzes 200 umfasst:
- • Bestimmen des Einsetzstellenorts
- • Sammeln von Kamerabild, Kraftmessung und aktuellem Ort (für einen Trainingsort)
- • Bilden eines Trainingsdatenelements als Eingabe (Observation) gegeben durch {Bild, Kraft} und Label (Aktion im Endeffektorraum) gegeben durch {Einsetzstellenort - aktueller Ort}, d. h. die Differenz zwischen Einsetzstellenort und aktuellem Ort
-
Wie oben erwähnt wurde, kann das Label ferner einen oder mehrere Winkel zum Korrigieren der Orientierung umfassen, d. h. die Differenz zwischen der Einsetzstellenorientierung und der aktuellen Orientierung. In diesem Falle wird auch die aktuelle Orientierung gesammelt.
-
Unter Verwendung der auf diese Weise erzeugten Trainingsdatenelemente wird das neuronale Netz 200 unter Verwendung von überwachtem Training trainiert. Das Training kann durch die Steuereinheit 106 durchgeführt werden oder das neuronale Netz 200 kann extern trainiert und in die Steuereinheit 106 geladen werden.
-
Im Betrieb nimmt die Steuereinheit 106, in der Korrekturstufe (d. h. der zweiten Stufe) unter Verwendung der handgelenkmontierten Kamera 107 ein Bild auf, speist es in das trainierte neuronale Netz 200 ein und steuert den Roboter gemäß der Ausgabe des trainierten neuronalen Netzes 200, die ein Bewegungsvektor ist, der spezifiziert, wohin sich von der aktuellen Position (die sich aus der ersten Stufe ergibt) bewegt werden soll und möglicherweise wie die Orientierung des Objekts 113 zum Einsetzen des Objekts 113 in die Einsetzstelle geändert werden soll. Dies bedeutet, dass die Steuereinheit 106 eine durch die Ausgabe des neuronalen Netzes 200 spezifizierte Steuerungsaktion durchführt. Wie oben erläutert wurde, muss die aus der ersten Stufe resultierende Position typischerweise aufgrund von Lokalisierungsgreif- und Steuerungsverfolgungsfehlern korrigiert werden.
-
Gemäß verschiedenen Ausführungsformen werden die durch die Kamera 107 aufgenommenen Bilder (sowohl für Training als auch im Betrieb) aufgenommen, wenn sich die Einsetzstelle (d. h. insbesondere die Öffnung der Einsetzstelle) und die Spitze des Objekts, das in die Einsetzstelle eingesetzt werden soll, in derselben Ebene befinden.
-
3 zeigt ein Beispiel für eine Ausgestaltung, in der die Steuereinheit 106 ein Bild mit der robotermontierten Kamera 107 aufnimmt, für Training oder im Betrieb.
-
In diesem Beispiel, wie in der Veranschaulichung von 1, ist das Objekt ein USB-Stecker 301 und die Einsetzstelle ist eine USB-Buchse 302 (gezeigt im Querschnitt). Die Steuereinheit 106 nimmt mittels der robotermontierten Kamera 107 ein Foto auf, wenn, die Spitze des Steckers 301 (die zuerst in die Buchse 302 hineingehen soll) die Oberfläche 303 (z. B. die Plattenoberfläche), in der die Einsetzstelle ausgebildet ist, berührt.
-
In dem Beispiel eines Stromsteckers ist die Oberfläche 303 beispielsweise die Oberfläche, in der sich die Löcher für die Stifte befinden (d. h. die untere Oberfläche der Öffnung zum Aufnehmen des Kunststoffgehäuses). Dies setzt voraus, dass die Genauigkeit der ersten Stufe hoch genug ist, so dass die Stifte die Oberfläche berühren (d. h., sich in dieser Öffnung befinden).
-
Verwenden einer Handgelenkkamera zum Evaluieren der Delta-Distanz zu dem benötigten Ort ist kompliziert, wenn, da sich der Pin der Spitze der Buchse und die Öffnung der Einsetzstelle in verschiedenen Ebenen befinden, da die Distanz zwischen dem Stecker 301 und der Buchse 302 parallel zu der Oberfläche 303, gezeigt in einem Kamerabild, für unterschiedliche Distanzen zwischen dem Stecker 301 und der Buchse 302 senkrecht zu der Oberfläche 303 und somit für unterschiedliche tatsächliche Distanzen zwischen Stecker 301 und Buchse 302 aufgrund des Kamerabildwinkels dieselbe sein kann (als wenn man zwei nahe beieinanderliegende Bleistifte mit einem geschlossenen Auge betrachtet und einen Bleistift vor und zurück bewegt). Die Beziehung zwischen einer in einem Kamerabild gezeigten Distanz und tatsächlichen Distanzen wird sogar noch komplizierter, wenn die Handgelenkkamera 107 unter einem Winkel platziert ist, wie es gemäß verschiedenen Ausführungsformen der Fall ist, um Okklusion zu vermeiden. Diese Schwierigkeit kann angegangen werden, indem Kamerabilder nur erhalten werden, wenn der Stecker 301 die Oberfläche 303 berührt. Die Steuereinheit 106 kann mittels des Kraftsensors 120 detektieren, dass der Stecker 301 die Oberfläche 303 berührt: wenn der Kraftsensor eine auf den Stecker 113 ausgeübte Kraft detektiert, die von der Oberfläche 303 der Platte 118 weggerichtet ist, berührt der Stecker 113 die Oberfläche 303 der Platte 118.
-
In dieser speziellen Situation befindet bzw. befinden sich der bzw. die Kontakte, z. B. der Pin oder die Pins, des Steckers und des Buchsenlochs in derselben Ebene, und das neuronale Netz 200 (trainiert unter Verwendung von Kamerabildern, wenn diese Bedingung zutrifft) kann die Distanz zwischen der aktuellen Position des Steckers 301 zu der Buchse 302 aus einem Kamerabild (aufgenommen, wenn diese Bedingung zutrifft) berechnen.
-
Gemäß verschiedenen Ausführungsformen werden die Trainingsdatenbilder (d. h. die für die Trainingsdatenelemente aufgenommenen Kamerabilder) auf eine rückwärtige Lernweise gesammelt. Dies bedeutet, dass der Roboter gesteuert wird, das Objekt 113 zu halten (z. B. Greifer geschlossen), und in eine Position gebracht wird, so dass das Objekt 113 in die Einsetzstelle 114 eingesetzt ist. Aus dieser Position wird der Roboter gesteuert, nach oben zu gehen (d. h. in die z-Richtung des Endeffektor-Koordinatensystems), wobei ein zufälliger Fehler (z. B. 10 mm und 20 Grad, was für die meisten Anwendungen ausreichend ist) ähnlich den Unsicherheiten in dem System (Greif- und Lokalisierungsfehler) hinzugefügt wird. Nach dem Nach-oben-Gehen wird der Roboter gesteuert, nach unten zu gehen, bis der Kraftsensor 102 eine auf das Objekt 113 ausgeübte Kraft fühlt oder ein Ortsfehler (Anomalie) detektiert wird. Dann wird die robotermontierte Kamera 117 gesteuert, ein Bild zu erhalten, und Obs:{Kamerabild, Kraft} und ein Bewegungsvektor (Differenzvektor zwischen Einsetzstellenort und aktuellem Ort in dem Endeffektor-Koordinatensystem) werden als Trainingsdatenelement aufgezeichnet, wie oben erläutert wurde.
-
Gemäß verschiedenen Ausführungsformen wird Datenerweiterung für die Trainingsdaten durchgeführt, um die Verallgemeinerung zu verbessern.
-
Hinsichtlich der gesammelten Trainingsdatenbilder ist es wünschenswert, dass die Korrekturstufe (insbesondere das neuronale Netz 200) in Unkenntnis stark verwandter Szenarien ist, wie etwa unterschiedliche Farben und unterschiedliche Formen von Steckern und Buchsen (z. B. Stromstecker mit unterschiedlichen Gehäusen und Farben). Verallgemeinerung über Formen ist typischerweise schwierig, da die Form die Kameraposition beeinflusst, wenn das Kamerabild aufgenommen wird, da die Stromsteckerstifte länger oder kürzer sein können. Bespiele für Erweiterung von Trainingsdatenbildern (d. h., wie ein oder mehrere zusätzliche Trainingsdatenbilder aus einem aufgezeichneten Trainingsdatenbild erzeugt werden) sind:
- • zufällige Farbschwankungen von 50% des Trainingsdatenbilds (für Verallgemeinerung über Helligkeit und Farbe)
- • zufällige Grauwerte von 50% des Trainingsdatenbilds - (für Verallgemeinerung über Farbe)
- • Zuschneiden des Trainingsdatenbilds (für Verallgemeinerung über Verschiebungen der Kameraposition, die aufgrund von unterschiedlicher Form oder von Greiffehlern bewirkt werden)
- • Verschieben des Trainingsdatenbilds (für Verallgemeinerung über Verschiebungen der Kameraposition, die aufgrund von unterschiedlichen Formen oder von Greiffehlern bewirkt werden)
- • Zufallsfaltung (zum Hinzufügen von Gesamtrobustheit)
-
Das Label (Bewegungsvektor) für ein zusätzliches Trainingsdatenbild, erzeugt auf diese Weise aus einem aufgezeichneten Trainingsdatenbild, wird auf dasselbe wie für das aufgezeichnete Trainingsdatenbild eingestellt.
-
Gemäß verschiedenen Ausführungsformen wird Trainingsdatenerweiterung auch für die Kraftmessung vorgenommen. Dies bedeutet, dass aus einem Trainingsdatenelement ein oder mehrere zusätzliche Trainingsdatenelemente erzeugt werden, indem die Kraftinformationen (die als Krafteingabe 203 verwendet werden, wenn das neuronale Netz 200 mit dem Trainingsdatenelement trainiert wird) abgeändert werden. Die Kraftinformationen umfassen beispielsweise eine Kraft, die in der Endeffektor-z-Richtung durch das Objekt 113 erfahren wird, und ein Moment, das durch das Objekt 113 erfahren wird.
-
4 veranschaulicht Kraft und Moment, die durch ein Objekt 401 erfahren werden.
-
Ähnlich der 3 soll das Objekt 401 in eine Einsetzstelle 402 eingesetzt werden und berührt die Oberfläche 403. Der das Objekt 401 haltende Roboterarm 101 übt in der Richtung der Oberfläche 403 eine Kraft 404 auf das Objekt 401 aus. Das Objekt 401 erfährt eine entsprechende Reaktionskraft 405. Da das Objekt 401 an der Kante der Einsetzstelle 402 ist, verursacht die Kraft 404 darüber hinaus ein Moment 406. Die Reaktionskraft 405 und das Moment 406 werden beispielsweise durch den Sensor 120 gemessen und als Kraftinformationen verwendet (d. h. Krafteingabe 203 für das neuronale Netz 200 im Training und im Betrieb).
-
Die Reaktionskraft 405 und das Moment 406 hängen von der Kraft 404 ab. Diese Abhängigkeit kann zum Überanpassen führen. Man kann sehen, dass die wirklich wertvollen Informationen nicht die Stärke des Paars (F, M) sind, d. h. das Paar aus Reaktionskraft 405 und Moment 406, sondern deren Verhältnis, das die Distanz R zwischen dem Aktionspunkt der Reaktionskraft 405 und der Mitte des Objekts 401 ist.
-
Um Überanpassen von Kraft-Moment zu vermeiden, wird Erweiterung für ein Paar (F, M) in einem Trainingsdatenelement folgendermaßen durchgeführt
wobei α zufällig aus dem Intervall [0, k] entnommen wird (z. B. gleichmäßig), wobei k eine vorbestimmte Obergrenze ist.
-
(F, M)' wird als Kraftinformationen für ein zusätzliches Trainingsdatenelement verwendet. (F, M), d. h. die Kraftinformationen des ursprünglichen Trainingsdatenelements, wird beispielsweise durch Messung bestimmt.
-
5 veranschaulicht Betrieb gemäß einer Ausführungsform für Einsetzen eines Elektrosteckers in eine Einsetzstelle.
-
Die Steuereinheit 106 zeichnet mit der horizontalen Kamera 119 zuerst ein Bild auf. Sie führt dann (erste Stufe) eine grobe Lokalisierung der Löcher (z. B. unter Verwendung eines geschlossenen Orb-Algorithmus) aus und plant eine entsprechende Bewegung.
-
Die Steuereinheit 106 führt beispielsweise unter Verwendung einer PD-Regelung den Plan aus, den Ort der Löcher zu erreichen (Bilder 501, 502, 503).
-
Die Stifte sind dann in der Öffnung der Buchse, aber noch nicht in den Löchern (Figur 503), aufgrund von verschiedenen Fehlern, wie oben erläutert wurde. Die Steuereinheit detektiert dies durch Kraftmessung, da der Stecker (und somit der Endeffektor) eine Kraft erfährt.
-
Die Steuereinheit 106 misst die Kraft und nimmt mit der robotermontierten Kamera 117 ein Bild auf, speist diese in das trainierte neuronale Netz 112 ein und steuert den Roboter wie durch die Bewegungsvektorausgabe durch das neuronale Netz 112 spezifiziert. Der Roboter drängt permanent in Richtung der Einsetzebene (Abwärts-z-Richtung im Endeffektor-Koordinatensystem), so dass er schließlich den Stecker in die Buchse drängt, wenn der Roboter die Bewegung gemäß dem Bewegungsvektor abgeschlossen hat (Bild 504).
-
Zusammengefasst wird gemäß verschiedenen Ausführungsformen ein Verfahren wie in 6 veranschaulicht bereitgestellt.
-
6 zeigt ein Flussdiagramm 600 für ein Verfahren zum Trainieren eines neuronalen Netzes zum Ableiten, anhand eines Bilds einer Kamera, die an einem Roboter montiert ist, eines Bewegungsvektors für den Roboter zum Einsetzen eines Objekts in eine Einsetzstelle, gemäß einer Ausführungsform.
-
In 601 wird für eine Mehrzahl von Positionen, in denen das Objekt oder das Teil, das durch den Roboter gehalten wird, eine Ebene, in der sich die Einsetzstelle befindet, berührt, in 602 wird der Roboter gesteuert, sich an die Position zu bewegen, in 603 wird der Roboter gesteuert, das Objekt auf die Ebene zu drücken, in 604 werden die Kraft und das Moment, erfahren durch das Objekt (verursacht durch Andrücken durch den Roboter auf die Ebene) gemessen, in 604 wird das Paar aus Kraft und Moment mit einer zufällig zwischen null und einer vorbestimmten positiven maximalen Zahl gewählten Zahl (z. B. 1) skaliert, und in 606 wird das skalierte Paar aus Kraft und Moment durch einen Bewegungsvektor zwischen der Position und der Einsetzstelle gelabelt.
-
In 607 wird das neuronale Netz unter Verwendung der gelabelten Paare aus Kraft und Moment trainiert.
-
Das Verfahren von 6 kann durch einen oder mehrere Computer durchgeführt werden, die eine oder mehrere Datenverarbeitungseinheiten beinhalten. Der Begriff „Datenverarbeitungseinheit“ kann als eine beliebige Art von Entität verstanden werden, die die Verarbeitung von Daten oder Signalen ermöglicht. Beispielsweise können die Daten oder Signale gemäß mindestens einer (d. h. einer oder mehr als einer) spezifischen Funktion bearbeitet werden, die durch die Datenverarbeitungseinheit durchgeführt wird. Eine Datenverarbeitungseinheit kann eine analoge Schaltung, eine digitale Schaltung, eine Mischsignalschaltung, eine Logikschaltung, einen Mikroprozessor, einen Mikrocontroller, eine Zentralverarbeitungseinheit (CPU), eine Grafikverarbeitungseinheit (GPU), einen Digitalsignalprozessor (DSP), ein programmierbares Gate-Array (FPGA), eine integrierte Schaltung oder eine beliebige Kombination davon beinhalten oder daraus gebildet werden. Eine beliebige andere Weise zum Implementieren der jeweiligen Funktionen kann auch als eine Datenverarbeitungseinheit oder Logikschaltungsanordnung angesehen werden. Es versteht sich, dass ein oder mehrere der hierin ausführlich beschriebenen Verfahrensschritte durch eine Datenverarbeitungseinheit über eine oder mehrere spezifische durch die Datenverarbeitungseinheit durchgeführte Funktionen ausgeführt (z. B. implementiert) werden können.
-
Verschiedene Ausführungsformen können Bilddaten von verschiedenen visuellen Sensoren (Kameras), wie etwa Video, Radar, Lidar, Ultraschall, Thermobildgebung usw. empfangen und verwenden. Ausführungsformen können zum Trainieren eines Maschinenlernsystems und zum Steuern eines Roboters, z. B. zum autonomen Steuern eines Robotermanipulators, verwendet werden, um verschiedene Einsetzaufgaben unter verschiedenen Szenarios zu erzielen. Es sei angemerkt, dass das neuronale Netz nach Training für eine Einsetzaufgabe für eine neue Einsetzaufgabe trainiert werden kann, was im Vergleich zum Trainieren von null auf die Trainingszeit reduziert (Übertragung von Lernfähigkeiten). Insbesondere sind Ausführungsformen bei der Steuerung und Überwachung der Ausführung von Manipulationsaufgaben z. B. bei Montagelinien, anwendbar.
-
Gemäß einer Ausführungsform ist das Verfahren computer-implementiert.
-
Obgleich hier spezielle Ausführungsformen veranschaulicht und beschrieben wurden, versteht der Durchschnittsfachmann, dass eine Vielfalt alternativer und/oder äquivalenter Implementierungen die speziellen gezeigten und beschriebenen Ausführungsformen ersetzen können, ohne vom Schutzumfang der vorliegenden Erfindung abzuweichen. Diese Anmeldung soll sämtliche Anpassungen oder Variationen der speziellen hier erörterten Ausführungsformen abdecken. Daher soll diese Erfindung nur durch die Ansprüche und deren Äquivalente beschränkt werden.