-
QUERVERWEIS AUF VERWANDTE ANMELDUNGEN
-
Die vorliegende Anmeldung beansprucht den Vorteil der vorläufigen US-Anmeldung mit der Serien-Nr. 62/543,652, mit dem Titel „SYSTEM AND METHOD OF DIRECT TEACHING A ROBOT“ von Colasanto et al., eingereicht am 10. August 2017, und der vorläufigen US-Anmeldung mit der Serien-Nr. 62/545,020, mit dem Titel „SYSTEM AND METHOD OF DIRECT TEACHING A ROBOT" von Colasanto et al., eingereicht am 14. August 2017, deren Offenbarungen hiermit durch Bezugnahme in ihrer Gesamtheit aufgenommen werden.
-
TECHNISCHES GEBIET
-
Diese Offenbarung betrifft allgemein das Anlernen von Systemen und insbesondere ein System und ein Verfahren zum direkten Anlernen eines Roboters.
-
HINTERGRUND
-
Insofern hierin nicht anders angegeben, sind die in diesem Abschnitt beschriebenen Materialien kein Stand der Technik für die Ansprüche in dieser Anmeldung und werden durch den Einschluss in diesem Abschnitt nicht dem Stand der Technik zugeschrieben.
-
KURZFASSUNG
-
Eine Kurzfassung gewisser hierin offenbarter Ausführungsformen ist im Folgenden dargelegt. Es sollte verstanden werden, dass diese Aspekte lediglich dargeboten werden, um dem Leser eine kurze Zusammenfassung dieser gewissen Ausführungsformen bereitzustellen, und dass diese Aspekte nicht den Schutzumfang dieser Offenbarung beschränken sollen. In der Tat kann diese Offenbarung eine Vielfalt von Aspekten einschließen, die möglicherweise nicht im Folgenden dargelegt sind.
-
Ausführungsformen der Offenbarung betreffen Systeme und Verfahren zum Anlernen eines Roboters. Ein derartiges System kann eine tragbare Einrichtung mit mehreren Sensoren zum Erfassen von Signalen, die mindestens eine Bewegung, Orientierung, Position, Kraft und mindestens ein Drehmoment eines beliebigen Teils eines Körpers eines Benutzers repräsentieren, die an einem Ziel angewendet werden, beinhalten. Das System beinhaltet ferner eine Verarbeitungseinrichtung, die dazu ausgelegt ist, die erfassten Signale zu empfangen, wobei die Verarbeitungseinrichtung ferner dazu ausgelegt ist, die erfassten Signale, als Daten von Lernbefehlen definiert, zu speichern, eine Steuerung zum Steuern eines Roboters, die die Daten von Lernbefehlen empfängt und den Roboter gemäß den empfangenen Daten von Lernbefehlen betreibt, einen Objektsensor zum Detektieren einer Position und Orientierung eines Objekts als ein Arbeitsstück des Roboters, und eine visuelle Eingabeeinrichtung, die kommunikativ mit der Verarbeitungseinrichtung und/oder der Steuerung gekoppelt ist, wobei die visuelle Eingabeeinrichtung dazu ausgelegt ist, eine visuelle Ansicht für den Benutzer einer durch den Roboter bezüglich des Objekts durchgeführten Aufgabe zu erzeugen und den Roboter während des Betriebs des Roboters visuell zu korrigieren und die durch die Steuerung empfangenen Daten von Lernbefehlen zu überschreiben. Die Steuerung ist dazu ausgelegt, die detektierte Position und Orientierung des Objekts zu empfangen, und betreibt den Roboter dahingehend, einen Vorgang gemäß den Daten von Lernbefehlen durchzuführen, einschließlich des Verschiebens und/oder Bewegens und/oder Anhebens und/oder Herunterlassens des Roboters näher zu dem Objekt. Die visuelle Eingabeeinrichtung ermöglicht eine Visualisierung eines Lernergebnisses während des Betriebs des Roboters. Die Verarbeitungseinrichtung ermöglicht einen Datentransfer zwischen beliebigen der tragbaren Einrichtung, des Objektsensors, der visuellen Eingabeeinrichtung und der Steuerung. Die tragbare Einrichtung ist ein Handschuh, eine Handgelenkeinrichtung, eine Armbanduhr oder ein Ring. Die visuelle Eingabeeinrichtung ist eine Kontaktlinse, eine Brille, eine Schutzbrille oder eine am Kopf befestigte Anzeige. Die erfassten Signale, als Daten von Lernbefehlen definiert, werden auf einem computerlesbaren Medium und/oder einer Cloud-Datenbank gespeichert. Die Daten von Lernbefehlen werden aus einer Gruppe bestehend aus einer Endeffektorbewegung, einer Greifbewegung, einer Greifstärke, einer Annäherungsbewegung zu dem Objekt, einer Hubbewegung, einer Haltebewegung, einer Wurfbewegung und einer Schwenkbewegung ausgewählt. Beispiele für Sensoren sind Bewegungserfassung, Positionserfassung, magnetische Erfassung, Beschleunigungsmesser, Gyroskope, globale Positionierung (GPS), inertiale Erfassung oder Krafterfassung.
-
Gemäß einem anderen Aspekt der Offenbarung beinhaltet ein System zum Anlernen eines Roboters eine Eingabebaugruppe mit mehreren Sensoren zum Erfassen analoger Signale, die mindestens eine Bewegung, Orientierung, Position, Kraft und mindestens ein Drehmoment eines beliebigen Teils eines Körpers eines Benutzers repräsentieren, die an einem Ziel angewendet werden, und zum Visualisieren eines Lernergebnisses während des Betriebs des Roboters. Das System beinhaltet ferner eine Verarbeitungseinrichtung, die dazu ausgelegt ist, die erfassten Signale zu empfangen, wobei die Verarbeitungseinrichtung ferner dazu ausgelegt ist, die erfassten Signale, als Daten von Lernbefehlen definiert, zu speichern, und eine Steuerung empfängt die Daten von Lernbefehlen und betreibt den Roboter gemäß den empfangenen Daten von Lernbefehlen, wobei die Eingabebaugruppe dazu ausgelegt ist, den Roboter während des Betriebs des Roboters visuell zu korrigieren und die durch die Steuerung empfangenen Daten von Lernbefehlen zu überschreiben. Ein Objektsensor ist dazu ausgelegt, eine Position und Orientierung eines Objekts als ein Arbeitsstück des Roboters für das System zu detektieren. Die Steuerung empfängt die detektierte Position und Orientierung des Objekts und betreibt den Roboter, um einen Vorgang gemäß den Daten von Lernbefehlen durchzuführen, einschließlich des Verschiebens und/oder Bewegens und/oder Anhebens und/oder Herunterlassens des Roboters näher zu dem Objekt. Die Verarbeitungseinrichtung ermöglicht einen Datentransfer zwischen beliebigen der Eingabebaugruppe, des Objektsensors und der Steuerung. Die Eingabebaugruppe beinhaltet eine tragbare Einrichtung mit mehreren Sensoren zum Erfassen analoger Signale, die mindestens eine Bewegung, Orientierung, Position, Kraft und mindestens ein Drehmoment eines Teils des Körpers des Benutzers repräsentieren, die an einem Ziel angewendet werden, und eine visuelle Eingabeeinrichtung, die dazu ausgelegt ist, eine Visualisierung eines Lernergebnisses zu ermöglichen und den Roboter während des Betriebs des Roboters visuell zu korrigieren. Die tragbare Einrichtung ist ein Handschuh, eine Handgelenkeinrichtung, eine Armbanduhr oder ein Ring. Die visuelle Eingabeeinrichtung ist eine Kontaktlinse, eine Brille, eine Schutzbrille oder eine am Kopf getragene Anzeige.
-
Gemäß noch einem anderen Aspekt der Offenbarung beinhaltet ein Verfahren zum Anlernen eines Roboters Erfassen, durch eine Eingabeeinrichtung, analoger Signale, die mindestens eine Bewegung, Orientierung, Position, Kraft und mindestens ein Drehmoment eines beliebigen Teils eines Körpers eines Benutzers repräsentieren, die an einem Ziel angewendet werden, Empfangen der erfassten Signale durch einen Prozessor, Speichern der erfassten Signale, als Daten von Lernbefehlen definiert, auf einem nichtflüchtigen computerlesbaren Speichermedium und Steuern eines Roboters durch eine Steuerung. Die Steuerung empfängt die Daten von Lernbefehlen und betreibt den Roboter gemäß den empfangenen Daten von Lernbefehlen, wohingegen die Eingabeeinrichtung den Roboter visuell korrigiert und die durch die Steuerung empfangenen Daten von Lernbefehlen während des Betriebs des Roboters überschreibt. Das Verfahren beinhaltet ferner Detektieren einer Position und Orientierung eines Objekts als ein Arbeitsstück des Roboters, wobei die detektierte Position und Orientierung des Objekts durch die Steuerung empfangen werden und der Roboter betrieben wird, um einen Vorgang gemäß den Daten von Lernbefehlen durchzuführen. Das Verfahren beinhaltet ferner umfassend Ermöglichen einer Visualisierung eines Lernergebnisses durch die Eingabeeinrichtung während des Betriebs des Roboters.
-
Gemäß noch einem anderen Aspekt der Offenbarung beinhaltet ein System zum Anlernen eines Roboters einen oder mehrere Prozessoren, einen Speicher und ein oder mehrere Programme, wobei das eine oder die mehreren Programme in dem Speicher gespeichert sind und dazu ausgelegt sind, durch den einen oder die mehreren Prozessoren ausgeführt zu werden, wobei das eine oder die mehreren Programme Folgendes beinhalten: Anweisungen zum Detektieren von Signalen, die mindestens eine Bewegung, Orientierung, Position, Kraft und mindestens ein Drehmoment eines beliebigen Teils eines Körpers eines Benutzers repräsentieren, mit einer tragbaren Einrichtung, Anweisungen zum Verarbeiten der detektierten Signale, Anweisungen zum Speichern der verarbeiteten Signale, als Daten von Lernbefehlen definiert, Anweisungen zum Betreiben des Roboters gemäß den Daten von Lernbefehlen und Anweisungen zum visuellen Korrigieren des Roboters während des Betriebs des Roboters. Das System beinhaltet ferner Anweisungen zum Visualisieren eines Lernergebnisses und Überschreiben der durch die Steuerung empfangenen Daten von Lernbefehlen während des Betriebs des Roboters.
-
Gemäß einem anderen Aspekt der Offenbarung weist ein computerlesbares Speichermedium Anweisungen darauf auf, die bei Ausführung durch eine Einrichtung zum Anlernen eines Roboters bewirken, dass die Einrichtung: Signale detektiert, die mindestens eine Bewegung, Orientierung, Position, Kraft und mindestens ein Drehmoment eines beliebigen Teile eines Körpers eines Benutzers repräsentieren, mit einer tragbaren Einrichtung, die detektierten Signale, als Daten von Lernbefehlen definiert, verarbeitet, den Roboter gemäß den Daten von Lernbefehlen betreibt und den Roboter während des Betriebs des Roboters visuell korrigiert. Das computerlesbare Speichermedium beinhaltet ferner Anweisungen, die bewirken, dass die Einrichtung ein Lernergebnis während des Betriebs des Roboters visualisiert, wobei der Roboter gemäß den Daten von Lernbefehlen betrieben wird, einschließlich basierend auf einer Position und Orientierung eines Objekts als ein Arbeitsstück des Roboters, das durch einen Objektsensor detektiert wird, und den Roboter entweder näher zu dem Objekt zu verschieben, zu bewegen, anzuheben oder herunterzulassen, um einen Vorgang gemäß den Daten von Lernbefehlen durchzuführen.
-
Figurenliste
-
Diese und andere Merkmale, Aspekte und Vorteile dieser Offenbarung werden besser verstanden, wenn die folgende ausführliche Beschreibung gewisser Ausführungsbeispiele mit Bezug auf die begleitenden Zeichnungen gelesen wird, in denen überall in den Zeichnungen gleiche Zeichen die gleiche Technik repräsentieren, wobei gilt:
- 1A ist eine Perspektivansicht eines Lernsystems, das in einer Bediener-Roboter-Umgebung implementiert wird, gemäß einer Ausführungsform der Offenbarung;
- 1B ist ein Beispiel für eine erweiterte Realitätsansicht, die das Lernsystem von 1A zeigt;
- 2A ist eine Perspektivansicht eines Lernsystems, das in einer Bediener-Roboter-Umgebung implementiert wird, gemäß einer anderen Ausführungsform der Offenbarung;
- 2B ist ein Beispiel für eine erweiterte Realitätsansicht, die das Lernsystem von 2A zeigt; und
- 3 ist ein schematisches Blockdiagramm eines Roboterlernsystems gemäß einer Ausführungsform der Offenbarung.
- 4 ist ein schematisches Blockdiagramm eines Roboterlernsystems gemäß einer anderen Ausführungsform der Offenbarung.
- 5 ist ein Blockdiagramm des Datenflusses des Systems von 4.
- 6 ist ein Flussdiagramm eines Prozesses, der durch das Objektsensormodul des Systems von 4 implementiert wird.
- 7 ist ein Flussdiagramm eines Prozesses, der durch das Tragbare-Einrichtung-Modul des Systems von 4 implementiert wird.
- 8 ist ein Flussdiagramm eines Prozesses, der durch das Trainingsmodul des Systems von 4 implementiert wird.
- 9 ist ein Flussdiagramm eines Prozesses, der durch das Planungsmodul des Systems von 4 implementiert wird.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Zum Zwecke des Förderns des Verständnisses der Prinzipien der Offenbarung wird nun Bezug auf die Ausführungsformen genommen, die in den Zeichnungen veranschaulicht und in der folgenden geschriebenen Spezifikation beschrieben sind. Es versteht sich, dass dadurch keine Beschränkung an dem Schutzumfang der Offenbarung beabsichtigt ist. Es versteht sich ferner, dass die vorliegende Offenbarung beliebige Abänderungen und Modifikationen an den veranschaulichten Ausführungsformen beinhaltet und ferner Anwendungen der Prinzipien der Offenbarung beinhaltet, wie sie normalerweise einem Durchschnittsfachmann der Technik, auf die sich diese Offenbarung bezieht, ersichtlich werden würden.
-
Verschiedene Vorgänge können als mehrere diskrete aufeinanderfolgende Handlungen oder Vorgänge auf eine Art und Weise beschrieben werden, die für das Verständnis des beanspruchten Gegenstands am hilfreichsten ist. Die Reihenfolge der Beschreibung sollte jedoch nicht so aufgefasst werden, dass sie andeutet, dass die Vorgänge notwendigerweise reihenfolgeabhängig sind. Insbesondere werden diese Vorgänge möglicherweise nicht in der dargestellten Reihenfolge durchgeführt. Beschriebene Vorgänge können in einer anderen Reihenfolge außer der beschriebenen Ausführungsform durchgeführt werden. Verschiedene zusätzliche Vorgänge können durchgeführt werden und/oder beschriebene Vorgänge können bei zusätzlichen Ausführungsformen weggelassen werden.
-
1A veranschaulicht eine Perspektivansicht eines Lernsystems, das in einer Bediener-Roboter-Umgebung 100 implementiert wird, gemäß einer Ausführungsform der Offenbarung. In der Umgebung 100 gibt es einen Bediener oder einen Benutzer 102 und einen Roboter 104. Ein tragbarer Computer oder eine tragbare Einrichtung 118, der bzw. die durch den Bediener 102 getragen wird, ist dazu ausgelegt, eine Bewegung, Orientierung, Position, Kraft, ein Drehmoment oder eine Kombination davon eines Körpers oder eines Teils des Körpers, wie etwa eines Arms, einer Hand, eines Fingers oder einer Handfläche, des Bedieners 102 zu verfolgen oder zu detektieren. Bei einem Beispiel beinhaltet der tragbare Computer oder die tragbare Einrichtung 118 mehrere Elemente zum Verfolgen oder Detektieren analoger Signale, die mindestens eine Bewegung, Orientierung, Position, Kraft oder mindestens ein Drehmoment des Körpers oder eines Teils des Körpers, wie etwa eines Arms, einer Hand, eines Fingers, einer Handfläche, des Bedieners 102 repräsentieren. Bei einem anderen Beispiel beinhaltet der tragbare Computer oder die tragbare Einrichtung 118 mehrere Elemente zum Erfassen analoger Signale, die mindestens eine Bewegung, Orientierung, Position, Kraft oder mindestens ein Drehmoment des Körpers oder eines Teils des Körpers, wie etwa eines Arms, einer Hand, eines Fingers, einer Handfläche, des Bedieners 102 repräsentieren. Der tragbare Computer oder die tragbare Einrichtung 118 kann ein Handschuh, eine Handgelenkeinrichtung, eine Armbanduhr oder ein Ring sein. Ein visionsbasierter Computer 114, der durch den Bediener 102 getragen wird, kann bereitgestellt sein, um ein Lernergebnis entweder bevor, während oder nach dem Betrieb des Roboters 104 zu visualisieren. Der visionsbasierte Computer 114 kann eine Kontaktlinse, eine Brille, eine Schutzbrille oder eine am Kopf befestigte Anzeige sein, die durch den Bediener 102 getragen wird. Bei manchen Ausführungsformen ist der visionsbasierte Computer 114 ein visionsbasierter Computer mit erweiterter Realität (AR), der dazu ausgelegt ist, ein Lernergebnis zu visualisieren, durch eine Steuerung empfangene Lernbefehle zu überschreiben und den Betrieb des Roboters visuell zu korrigieren. Der Bediener 102 verwendet seinen Finger, seine Hand oder seine Handfläche mit dem tragbaren Computer oder der tragbaren Einrichtung 104 daran, um dem Roboter zu lehren, wie ein Objekt 112 auf einer Basis oder Oberfläche 114 einer Arbeitsplatte, eines Tisches oder dergleichen zu verarbeiten ist. Wie als ein Beispiel veranschaulicht, nimmt der Bediener 102 ein oder mehrere Objekte 112 auf, die auf der Oberfläche 114 liegen, und platziert das Objekt bzw. die Objekte 112 in ein Gefäß 106, 108, wie etwa eine Kiste oder einen Behälter. Bei einem anderen alternativen Beispiel nimmt der Bediener 102 ein oder mehrere Objekte 112 auf, die in dem Gefäß 106, 108 aufzufinden oder enthalten sind, und platziert das Objekt bzw. die Objekte 112 auf der Oberfläche 114. Die Elemente des tragbaren Computers oder der tragbaren Einrichtung 118 erfassen oder verfolgen entweder die Bewegung, Orientierung, Position, Kraft oder das Drehmoment des Arms, der Hand, des Fingers oder der Handfläche des Bedieners 102. Die erfassten oder verfolgten Signale, die eine beliebige Bewegung, Orientierung, Position, Kraft oder ein beliebiges Drehmoment repräsentieren, werden verarbeitet und als Daten von Lernbefehlen gespeichert. Ein oder mehrere Prozessoren, die direkt oder indirekt mit der tragbaren Einrichtung 118 gekoppelt sind, empfangen die erfassten oder verfolgten Informationen oder Signale zur Verarbeitung, bevor die erfassten oder verfolgten Informationen zu einem nichtflüchtigen computerlesbaren Speichermedium oder maschinenlesbaren Medium zur Speicherung übertragen oder weitergeleitet werden. Bei einer anderen Ausführungsform beinhaltet die tragbare Einrichtung 118 den Prozessor zur Verarbeitung der erfassten oder verfolgten Informationen. In Abhängigkeit von gewissen Anwendungen kann eine partielle Aufgabe, eine einzelne Aufgabe oder mehrere Aufgaben einschließlich der erfassten/verfolgten Informationen zu einem oder mehreren Prozessoren zur Verarbeitung übertragen oder weitergeleitet werden. Bei einer Ausführungsform kann das nichtflüchtige computerlesbare Speichermedium oder maschinenlesbare Medium zur Speicherung eine Cloud-Datenbank, eine lokale Datenbank, eine Speichereinheit auf der tragbaren Einrichtung 118, eine Speichereinheit, eine Datenbank auf einem Thin-Client, wie etwa einer persönlichen Einrichtung, einer mobilen Einrichtung, einem Phablet, einem Tablet, einem Personal Digital Assistant (PDA), einem Laptop, einer portablen Einrichtung, einer am Handgelenk getragenen Einrichtung, einer am Körper getragenen Einrichtung, oder eine beliebige geeignete Einrichtung sein, die in der Lage ist, die verarbeiteten Informationen, als Daten von Lernbefehlen definiert, zu speichern. Beispiele für Erfassungs- und Verfolgungselemente zum Bestimmen der Bewegung, Orientierung, Position, Kraft oder des Drehmoments sind Bewegungserfassung, Positionserfassung, magnetische Erfassung, Beschleunigungsmesser, Gyroskope, globales Positionierungssystem (GPS), inertiale Erfassung, Druckerfassung oder beliebige geeignete Erfassungs- und Verfolgungstechnologien. Eine Kommunikation der Informationen von der tragbaren Einrichtung 118 zu dem Prozessor und/oder den nichtflüchtigen computerlesbaren Speichermedien wird über eine drahtgebundene oder drahtlose Verbindung durchgeführt.
-
1B veranschaulicht ein Beispiel für eine erweiterte Realitätsansicht 150, die ein Lernergebnis zeigt, das durch einen visionsbasierten Computer 114 erzeugt wird, die Implementierung der Verwendung des Lernsystems von 1A kombinierend. Der Bediener 102 trägt den visionsbasierten Computer 114 mit erweiterter Realität (AR) und sieht die reale Welt einschließlich der Bewegung, Orientierung, Position, Kraft und des Drehmoments des Körpers oder eines Teils des Körpers kombiniert mit computererzeugten Grafiken, die zum Beispiel den Roboter 104' und ein Lernergebnis repräsentieren. Sobald das Lernergebnis visualisiert ist, kann der visionsbasierte AR-Computer 114 zum einen die Genauigkeit des Lernergebnisses verifizieren. Der visionsbasierte AR-Computer 114 bewirkt, dass die Steuerung entweder nichts am Roboter 104' durchführt, oder die Steuerung oder den Betrieb des Roboters 104' abändert/korrigiert/ändert. Bei dieser Veranschaulichung stimmt das Lernergebnis mit der durch den Bediener 102 durchgeführten Lernsequenz überein und wird über den durch den Bediener 102 getragenen visionsbasierten AR-Computer 114 verifiziert. Einzelheiten des Lernsystems können ferner in der (den) folgenden Figuren(en) beschrieben sein.
-
Die 2A und 2B veranschaulichen eine Perspektivansicht eines Lernsystems, das in der Bediener-Roboter-Umgebung 200 implementiert wird, bzw. ein Beispiel für eine AR-Ansicht 250 gemäß einer anderen Ausführungsform der Offenbarung. Im Gegensatz zu 1A führt der Roboter 204 zur Verwendung in der Bediener-Roboter-Umgebung 200 die Aufgabe gemäß der Lernsequenz oder Daten von Lernbefehlen, die zuvor in den nichtflüchtigen computerlesbaren Speichermedien oder dem maschinenlesbaren Medium gespeichert oder aufgezeichnet werden, aus. Während des Betriebs des Roboters 204 beobachtet der Bediener 202 das Lernergebnis über die visionsbasierte AR-Einrichtung 214. Falls das Lernergebnis mit der aufgezeichneten Lernsequenz oder den aufgezeichneten Daten von Lernbefehlen übereinstimmt, werden keine Änderungen benötigt. Falls das Lernergebnis jedoch einige Verbesserungen oder Modifikationen erfordert, wird zumindest ein Teil der durch den Roboter 204 durchgeführten aufgezeichneten Lernsequenz modifiziert oder abgeändert. Zum Beispiel wird nun die aufgezeichnete Lernsequenz, die eine Aufheben-, Anheben-, Links-nach-Rechts- und Fallenlassen-Bewegung beinhaltet, so modifiziert, dass sie eine zweite Aufheben- und Anheben-Bewegung zwischen der Links-nach-Rechts- und Fallenlassen-Bewegung beinhaltet. Die visuell basierte AR-Einrichtung 214 erzeugt die visuelle Ansicht des Lernergebnisses der aufgezeichneten Aufgabe oder Lernsequenz, korrigiert den Roboter visuell, indem die aufgezeichnete Lernsequenz oder Aufgabe, die durch die Steuerung empfangen wird, überschrieben wird, wie in 2B veranschaulicht. In Abhängigkeit von der Anwendung kann die gesamte oder ein Großteil der zuvor aufgezeichneten Lernsequenz oder der Daten von Lernbefehlen vollständig oder teilweise ersetzt, modifiziert, aktualisiert oder abgeändert werden.
-
3 ist ein schematisches Blockdiagramm eines Roboterlernsystems 300 gemäß einem Ausführungsbeispiel der Offenbarung. Das System 300 beinhaltet einen oder mehrere Prozessoren 370, die kommunikativ mit einer tragbaren Einrichtung 318 und einer Steuerung 390 zum Steuern eines Roboters 304 gekoppelt sind. Ein nichtflüchtiges computerlesbares Speichermedium 372, wie etwa ein Speicher zum Speichern eines oder mehrerer Programme, ist in dem System 300 bereitgestellt. Alternativ dazu kann sich das nichtflüchtige computerlesbare Speichermedium entfernt anderweitig außerhalb des Systems 300 befinden. Das nichtflüchtige computerlesbare Speichermedium 372 kann sich zum Beispiel auf einem Cloud-Netzwerk oder beliebigen geeigneten entfernten drahtlosen Netzwerken befinden. Die gespeicherten Programme, die durch den einen oder die mehreren Prozessoren 370 ausgeführt werden, beinhalten unter anderem Anweisungen zum Detektieren von Signalen, die mindestens eine Bewegung, Orientierung, Position, Kraft und mindestens ein Drehmoment eines beliebigen Teils eines Körpers eines Benutzers repräsentieren, mit der tragbaren Einrichtung 318, Anweisungen zum Verarbeiten der detektierten Signale, Anweisungen zum Speichern der verarbeiteten Signale, als Daten von Lernbefehlen definiert, Anweisungen zum Betreiben des Roboters 304 gemäß den Daten von Lernbefehlen und Anweisungen zum visuellen Korrigieren des Roboters 304 während des Betriebs des Roboters 304. Die gespeicherten Programme, die durch den einen oder die mehreren Prozessoren ausgeführt werden, beinhalten ferner Anweisungen zum Visualisieren eines Lernergebnisses und Überschreiben der durch die Steuerung 390 empfangenen Daten von Lernbefehlen während des Betriebs des Roboters 304. Ein oder mehrere Erfassungselemente 392 zum Verfolgen, Erfassen und Detektieren einer Bewegung, Orientierung, Position, Kraft und eines Drehmoments eines beliebigen Teils eines Körpers eines Benutzers können in der tragbaren Einrichtung 318 integriert sein. Bei manchen Beispielen kann die tragbare Einrichtung 318 einen Datenhandschuh 394 beinhalten, um eine Geste eines menschlichen Körpers oder einer Hand zu bestimmen.
- A. Sensordaten: Die Sensordaten sind die Daten, die von dem Objektsensor und der tragbaren Einrichtung empfangen werden. Sie beinhalten unter anderem die Bewegung, Orientierung, Position, Kraft und das Drehmoment von mindestens einem Benutzerkörperteil, die an dem Objekt angewendet werden. Die Sensordaten beinhalten außerdem die Daten, die vom Objektsensor empfangen werden, z. B. die Position, die Orientierung, die Art oder die Klasse des Objekts.
- B. Lernalgorithmus - Dies ist der Hauptprozess der Verarbeitungseinrichtung. Er wendet mathematische Transformationen und Algorithmen an, um die Sensordateninformationen in Lernbefehle zu generalisieren.
- C. Lernbefehle - Die Lernbefehle sind das Ergebnis der Berechnungen des Lernalgorithmus. Sie beschreiben die demonstrierte Aufgabe mit einer objektzentrischen Repräsentation, die unter anderem die Hubbewegung, Haltebewegung, Platzierungsbewegung, Greifstärke, Objektinteraktionskraft, Objektlage und Bewegungen durch den Bediener beinhaltet. Die Lernbefehle sind unabhängig von der zur Erfassung verwendeten Hardware und unabhängig von der Steuerung und dem Roboter. Die Lernbefehle werden im Speicher gespeichert.
- D: Steuerung 378 - Die Steuerung ist eine roboterspezifische Hardware mit beschränkten Verarbeitungsfähigkeiten. Sie empfängt die Lernbefehle und passt sie gemäß dem vom Objektsensor kommenden aktuellen Signal an. Die Steuerung betreibt den Roboter direkt. Dem Benutzer wird gestattet, den Lernbefehl unter Verwendung der Eingabevisionseinrichtung zu überschreiben.
- E: Roboterkinematik und -dynamik 380 - Vom Arbeitsfluss gestrichen.
- F: Roboterausgabeninformationen 382 - Vom Arbeitsfluss gestrichen.
-
Die oben beschriebenen Ausführungsformen wurden beispielshalber dargestellt und es sollte verstanden werden, dass diese Ausführungsformen verschiedenen Modifikationen und alternativen Formen unterliegen können. Es sollte ferner verstanden werden, dass die Ansprüche nicht die speziellen offenbarten Formen beschränken sollen, sondern stattdessen alle Modifikationen, Äquivalente und Alternativen abdecken sollen, die in den Gedanken und Schutzumfang dieser Offenbarung fallen.
-
Ausführungsformen innerhalb des Schutzumfangs der Offenbarung können auch nichtflüchtige computerlesbare Speichermedien oder ein maschinenlesbares Medium zum Führen oder Aufweisen von darauf gespeicherten computerlesbaren Anweisungen oder Datenstrukturen beinhalten. Derartige nichtflüchtige computerlesbare Speichermedien oder ein derartiges maschinenlesbares Medium können beliebige verfügbare Medien sein, auf die ein Allgemein- oder Spezialcomputer zugreifen kann. Beispielshalber und nicht beschränkend können derartige nichtflüchtige computerlesbare Speichermedien oder ein derartiges maschinenlesbares Medium RAM, ROM, EEPROM, CD-ROM oder eine andere optische Plattenspeicherung, magnetische Plattenspeicherung oder andere magnetische Speichereinrichtungen oder ein beliebiges anderes Medium umfassen, das verwendet werden kann, um gewünschte Programmcodemittel in Form von computerausführbaren Anweisungen oder Datenstrukturen zu führen oder zu speichern. Kombinationen des Obenstehenden sollten auch im Schutzumfang der nichtflüchtigen computerlesbaren Speichermedien oder des maschinenlesbaren Mediums eingeschlossen werden.
-
Ausführungsformen können auch in verteilten Rechenumgebungen umgesetzt werden, in denen Aufgaben durch lokale und entfernte Verarbeitungseinrichtungen durchgeführt werden, die (entweder durch festverdrahtete Verbindungen, drahtlose Verbindungen oder durch eine Kombination davon) über ein Kommunikationsnetz verbunden sind.
-
Computerausführbare Anweisungen beinhalten zum Beispiel Anweisungen und Daten, die bewirken, dass ein Allgemeincomputer, Spezialcomputer oder eine Spezialverarbeitungseinrichtung eine gewisse Funktion oder Gruppe von Funktionen durchführt. Computerausführbare Anweisungen beinhalten auch Programmmodule, die durch Computer in unabhängigen Umgebungen oder Netzwerkumgebungen ausgeführt werden. Allgemein gesagt beinhalten Programmmodule Routinen, Programme, Objekte, Komponenten und Datenstrukturen usw., die spezielle Aufgaben durchführen oder spezielle abstrakte Datentypen implementieren. Computerausführbare Anweisungen, assoziierte Datenstrukturen und Programmmodule repräsentieren Beispiele für die Programmcodemittel zum Ausführen von Schritten der hierin offenbarten Verfahren. Die spezielle Sequenz derartiger ausführbarer Anweisungen oder assoziierter Datenstrukturen repräsentiert Beispiele für entsprechende Handlungen zum Implementieren der in derartigen Schritten beschriebenen Funktionen.
-
4 ist ein schematisches Blockdiagramm eines anderen Ausführungsbeispiels eines Roboterlernsystems 400 gemäß der Offenbarung. Das System 400 beinhaltet eine tragbare Einrichtung 402, einen Objektsensor 404, einen Roboter 406, eine Robotersteuerung 408, eine Benutzereingabeeinrichtung 410, einen Speicher 412 und eine Verarbeitungseinrichtung 414.
-
Die tragbare Einrichtung 402 ist eine durch den Benutzer getragene Einrichtung, wie etwa ein Handschuh, eine Handgelenkeinrichtung, ein Ring, ein Pflaster und dergleichen, die dazu ausgelegt ist, eine Bewegung, Orientierung, Position, Kraft, ein Drehmoment oder eine Kombination davon eines Körpers oder eines Teils des Körpers, wie etwa eines Arms, einer Hand, eines Fingers, einer Handfläche, des Benutzers zu verfolgen oder zu detektieren. Die tragbare Einrichtung 402 beinhaltet ein oder mehrere Erfassungselemente zum Erfassen oder Verfolgen einer Bewegung, Orientierung, Position, Kraft oder eines Drehmoments des Arms, der Hand, des Fingers oder der Handfläche des Benutzers. Beispiele für Erfassungs- oder Verfolgungselemente zum Bestimmen der Bewegung, Orientierung, Position, Kraft oder des Drehmoments sind Bewegungserfassung, Positionserfassung, magnetische Erfassung, Beschleunigungsmesser, Gyroskope, globales Positionierungssystem (GPS), inertiale Erfassung, Druckerfassung oder beliebige geeignete Erfassungs- und Verfolgungstechnologien.
-
Das System beinhaltet mindestens einen Objektsensor 404 zum Erfassen von physikalischen Charakteristiken der Lernumgebung oder des Arbeitsraums und zum Bereitstellen einer Sensorausgabe zu der Verarbeitungseinrichtung. Die Sensorausgabe wird durch das System verwendet, um Objekte in der Lernumgebung zu identifizieren und zu unterscheiden. Ein beliebiger geeigneter Typ und eine beliebige geeignete Anzahl von Sensoren kann verwendet werden, um dem System eine Eingabe bereitzustellen, einschließlich optischer Sensoren Näherungssensoren, Beschleunigungsmesser, Drucksensoren, Temperatursensoren und dergleichen.
-
Ein Roboter 406 ist eine elektromechanische Einrichtung, die dazu konzipiert ist, eine oder mehrere Arten von Aufgaben mit wenig oder keinem Eingriff von einem menschlichen Bediener durchzuführen. Manche Roboter beinhalten mehrere starre Teile, die durch motorisierte Gelenke verbunden sind, die Glieder bilden, die auf eine gesteuerte, artikulierte Art und Weise bewegt werden können. Roboter können auch mit Mechanismen ausgestattet sein, die eine autonome Bewegung von einem Ort zu einem anderen ermöglichen, z. B. unter Verwendung von Rädern, Laufflächen, Beinen, Flügeln, Propellern usw. Roboterglieder können mit einer Vielfalt unterschiedlicher Arten von Mechanismen und/oder Werkzeugen zum Durchführen unterschiedlicher Arten von Aufgaben ausgestattet sein. Roboter können für Steuerzwecke auch mit einem oder mehreren Sensoren zum Erfassen einer oder mehrerer physikalischer Eigenschaften der Umgebung, in der sich der Roboter befindet, ausgestattet sein.
-
Die Robotersteuerung 408 ist eine elektrische Einrichtung mit Verarbeitungsfähigkeit, die dazu ausgelegt ist, Befehle hoher Ebene, z. B. Lernbefehle, von der Verarbeitungseinrichtung 414 zu empfangen, um eine spezifische Aufgabe durchzuführen und die Befehle in Befehlssequenzen niedriger Ebene für die Aktoren des Roboters 406 zu übersetzen, die bewirken, dass der Roboter die spezifische Aufgabe durchführt. Die Robotersteuerung 408 kann eine Sensoreingabe z. B. von dem Objektsensor 404 und/oder Sensoren des Roboters 406 empfangen, um eine Steuerung und Befehlserzeugung für den Roboter zu ermöglichen. Die Steuerung 408 betreibt den Roboter direkt.
-
Das System 400 beinhaltet mindestens eine Eingabeeinrichtung 410, die dem Benutzer ermöglicht, mit dem System zu interagieren. Bei einer Ausführungsform ist die Eingabeeinrichtung 410 eine visuelle Eingabeeinrichtung, z. B. eine Smart-Brille, zum Visualisieren von Lernergebnissen entweder bevor, während oder nach dem Betrieb des Roboters 406. Die Visionseingabeeinrichtung 410 kann eine Kontaktlinse, Smart-Brille, Smart-Schutzbrille oder eine am Kopf befestigte Anzeige sein, die durch den Benutzer getragen wird. Bei manchen Ausführungsformen kann die Visionseingabeeinrichtung 410 ein visionsbasiertes System mit erweiterter Realität (AR) umfassen, das dazu ausgelegt ist, ein Lernergebnis zu visualisieren, durch eine Steuerung empfangene Lernbefehle zu überschreiben und den Betrieb des Roboters visuell zu korrigieren.
-
Der Speicher 412 ist ein nichtflüchtiges computerlesbares Speichermedium zum Speichern von Programmanweisungen, die durch die Verarbeitungseinrichtung 414 ausgeführt werden, sowie von Prozessdaten, die durch die Verarbeitungseinrichtung 414 verwendet werden, um die verschiedenen Funktionen des Systems zu implementieren. Die gespeicherten Programme, die durch die Verarbeitungseinrichtung 414 ausgeführt werden, beinhalten unter anderem Anweisungen zum Detektieren von Signalen, die mindestens eine Bewegung, Orientierung, Position, Kraft und mindestens ein Drehmoment eines beliebigen Teils eines Körpers eines Benutzers repräsentieren, mit der tragbaren Einrichtung 402, Anweisungen zum Verarbeiten der detektierten Signale, Anweisungen zum Speichern der verarbeiteten Signale, als Daten von Lernbefehlen definiert, Anweisungen zum Betreiben des Roboters 406 gemäß den Daten von Lernbefehlen und Anweisungen zum visuellen Korrigieren des Roboters 406 während des Betriebs des Roboters. Die gespeicherten Programme, die durch die Verarbeitungseinrichtung ausgeführt werden, beinhalten ferner Anweisungen zum Visualisieren eines Lernergebnisses und Überschreiben der durch die Steuerung 408 empfangenen Daten von Lernbefehlen während des Betriebs des Roboters 406. Der Systemspeicher 412 kann ein beliebiger geeigneter Typ von Speicher sein, einschließlich Festkörperspeicher, magnetischer Speicher oder optischer Speicher, um nur einige zu nennen, und kann in einer einzelnen Einrichtung oder verteilt über mehrere Einrichtungen implementiert werden.
-
Die Verarbeitungseinrichtung ist die Hauptkomponente des Systems 400 und ist für eine Anzahl von wesentlichen Aspekten des Systems verantwortlich, einschließlich des Empfangens und des Verarbeitens von Sensordaten (vom Objektsensor und der tragbaren Einrichtung), des Lernens der Aufgabe vom Bediener mittels direkter Demonstration, des Planens der Ausführung der erlernten Aufgabe, des Kommunizierens von Lernbefehlen zu der Robotersteuerung, des Empfangens einer Bedienerrückmeldung und des Interagierens mit dem Benutzer über die visuelle Eingabeeinrichtung. Die Verarbeitungseinrichtung 414 beinhaltet mindestens einen Prozessor, wie etwa eine zentrale Verarbeitungseinheit (CPU), eine anwendungsspezifische integrierte Schaltung (ASIC), eine Einrichtung mit feldprogrammierbarem Gate-Array (FPGA) oder einen Mikrocontroller, die/das/der dazu ausgelegt ist, programmierte Anweisungen auszuführen, die im Speicher 412 gespeichert sind.
-
Um die Funktionalität des Systems zu implementieren, besteht die Verarbeitungseinrichtung 414 aus vier Untermodulen. Jedes Untermodul weist eine spezifische Eingabe/Ausgabe auf, die durch ein anderes Untermodul der Verarbeitungseinrichtung, eine externe Einrichtung oder eine Speichereinheit empfangen/gesendet wird. Diese Untermodule beinhalten ein Objektsensormodul 416, ein Tragbare-Einrichtung-Modul 418, ein Trainingsmodul 420 und ein Planermodul 422. Wie hierin verwendet, beziehen sich die Begriffe „Modul“ und „Untermodul“ auf eine beliebige bekannte oder später entwickelte Hardware, Software, Firmware, künstliche Intelligenz, Fuzzy-Logik oder Kombination von diesen, die in der Lage ist, die mit diesem Element assoziierte Funktionalität durchzuführen. Das Modul oder Untermodul kapselt zusammengehörige Funktionen und liefert deutlich definierte Schnittstellen zum Empfangen einer Eingabe, Übertragen einer Ausgabe und Zugreifen auf Funktionen des Moduls.
-
5 bildet den Informationsfluss zwischen den verschiedenen Untermodulen der Verarbeitungseinrichtung 414 und der Robotersteuerung 408 über Speichereinheiten ab. Diese Speichereinheiten können im Systemspeicher implementiert werden und/oder können sich intern oder extern zu der Verarbeitungseinrichtung befinden. Eine beliebige geeignete Datenstruktur oder Speicherspeicherungsstruktur kann verwendet werden, um die Daten für die Untermodule zu speichern. Wie in 5 abgebildet, können die in den Speichereinheiten gespeicherten Daten in Form einer Datenbank (z. B. werden durch das Abfragen eines eindeutigen „Schlüssels“ die mit dem Schlüssel assoziierten Informationen abgerufen) oder eines Stapels (einer geordneten Liste von Einträgen) organisiert sein.
-
Mit Bezug auf 5 ist das Objektsensormodul 416 für die Unterscheidung und Identifizierung von Objekten in der Lernumgebung verantwortlich. Zu diesem Zweck empfängt das Objektsensormodul 416 Sensordaten, die der Sensorausgabe vom Objektsensor 404 entsprechen, und verarbeitet die Sensordaten, um die Objekte im Arbeitsraum zu identifizieren. Die für das Objektsensormodul 416 relevanten Daten werden in einer Eingabe-DB 424 gespeichert. Bei einer Ausführungsform weist das Objektsensormodul 416 jedem identifizierten Objekt eine eindeutige Kennung (z. B. Objekt_ID, 6) zu. Das Objektsensormodul 416 greift dann auf eine Wissens-DB 426 zu, um einen Typ oder eine Klassifikation für das Objekt zu bestimmen. Die Objektkennungs- und Typeninformationen werden dann zusammen mit anderen relevanten Daten, wie etwa Positions- und Orientierungsdaten von den Sensoren, in der Eingabe-DB 424 gespeichert. Das Objektsensormodul 416 ist dazu ausgelegt, die Sensorausgabe zu verwenden, um identifizierte Objekte zu verfolgen und die Eingabe-DB 424 mit aktuellen Informationen zu aktualisieren.
-
Das Objektsensormodul verarbeitet die Daten, die von dem mit dem System verbundenen Objektsensor kommen. Es ist verantwortlich für das Identifizieren der Objekte und das Verfolgen ihrer Position und Orientierung im Arbeitsraum. Wenn ein neues Objekt in den Arbeitsraum eingeführt wird, identifiziert es das Objektsensormodul, indem es ihm eine eindeutige Objekt_ID und Typ_ID zuweist. Daher wird ein neuer Eintrag in der Eingabe-DB erzeugt und mit diesen IDs instanziiert. Die Objekt_ID ist ein eindeutiger Schlüssel der Objekt-DB und wird verwendet, um Informationen bezüglich des Objektsstatus und der Objekteigenschaften zu speichern und auf diese zuzugreifen. Die Typ ID wird als ein eindeutiger Schlüssel der Wissens-DB verwendet, um eine Objektbibliothek zu indizieren, die die Charakteristiken der unterschiedlichen Typen von Objekten sammelt, wie etwa geometrische und dynamische Eigenschaften. Bei jeder Iteration des Algorithmus werden die Position und Orientierung der sich im Arbeitsraum befindlichen Objekte unter Verwendung der Sensordaten des Objektsensors berechnet. Die Lage jedes Objekts wird in der Eingabe-DB am entsprechenden Objekt_ID-Eintrag gespeichert.
-
6 ist ein Flussdiagramm einer Ausführungsform eines Algorithmus, der im Objektsensormodul implementiert wird. Der Prozess startet bei Block 600. Die Objektsensordaten werden verarbeitet, um zu bestimmen, ob sich die Sensordaten auf ein neues Objekt oder auf ein zuvor identifiziertes Objekt beziehen (Block 602). Falls die Sensordaten angeben, dass ein neues Objekt im Arbeitsraum detektiert wird, wird dem neuen Objekt eine eindeutige Kennung (Objekt ID) zugewiesen (Block 604). Das Objektsensormodul greift dann auf die Wissens-DB 426 zu, um das neue Objekt zu klassifizieren (Block 606). Basierend auf den Informationen in der Wissens-DB 426 weist das Objektsensormodul dem neuen Objekt eine Typenkennung (Typ_ID) zu (Block 608). Die neuen Objektinformationen (z. B. Objekt_ID, Typ ID und Sensordaten) werden dann in der Eingabe-DB 424 gespeichert (Block 610). Falls sich die Sensordaten auf ein zuvor identifiziertes Objekt beziehen, werden die sich auf dieses Objekt beziehenden Sensordaten in der Eingabe-DB 424 aktualisiert (Block 612).
-
Erneut unter Bezugnahme auf 5 ist das Tragbare-Einrichtung-Modul 418 dazu ausgelegt, mit der (den) tragbaren Einrichtung(en) 402 auf eine Art und Weise zu interagieren, die der Art und Weise ähnelt, mit der das Objektsensormodul 416 mit dem (den) Objektsensor(en) 404 interagiert. Das Tragbare-Einrichtung-Modul 418 verwaltet Informationen in der Eingabe-DB 424, die sich auf die tragbare(n) Einrichtung(en) beziehen. Das Tragbare-Einrichtung-Modul 418 weist jeder mit dem System verbundenen tragbaren Einrichtung eine eindeutige Kennung (z. B. Tragbare_Einrichtung_ID, 7) zu. Das Tragbare-Einrichtung-Modul 418 empfängt die Ausgabe von der tragbaren Einrichtung 402 und verarbeitet die Daten, um die Orientierung, Position, Kraft, das Drehmoment und dergleichen des Körperteils des Benutzers zu bestimmen. Diese Informationen werden dann in der Eingabe-DB 424 in Assoziation mit der entsprechenden Tragbare-Einrichtung-Kennung gespeichert. Das Tragbare-Einrichtung-Modul 418 überwacht die Ausgabe der tragbaren Einrichtung(en) 402 und aktualisiert die Informationen in der Eingabe-DB 424 dementsprechend.
-
Das Tragbare-Einrichtung-Modul 418 verarbeitet die von der tragbaren Einrichtung kommenden Daten, um die Position und Orientierung der Fingerspitzen des Benutzers und die Kraft und das Drehmoment, die bzw. das durch den Benutzer auf die Objekte im Arbeitsraum ausgeübt werden, zu verfolgen. Wenn eine neue tragbare Einrichtung mit dem System verbunden wird, weist das Modul ihr eine eindeutige Tragbare_Einrichtung_ID zu. Daher wird ein neuer Eintrag in der Eingabe-DB erzeugt und mit dieser ID instanziiert. Während Iterationen des Algorithmus sammelt das Modul die Sensordaten, die von den im Arbeitsraum agierenden tragbaren Einrichtungen kommen, verarbeitet sie und speichert sie in die Eingabe-DB an dem entsprechenden Tragbare_Einrichtung_ID-Eintrag.
-
7 ist ein Flussdiagramm einer Ausführungsform eines Prozesses, der in dem Tragbare-Einrichtung-Modul 418 implementiert wird. Der Prozess startet bei Block 700. Tragbare-Einrichtung-Daten werden verarbeitet, um zu bestimmen, ob sich die Daten auf eine neue tragbare Einrichtung oder eine zuvor identifizierte Einrichtung beziehen (Block 702). Falls die Einrichtungsdaten angeben, dass eine neue Einrichtung detektiert wird, wird der neuen Einrichtung eine eindeutige Kennung (Tragbare_Einrichtung_ID) zugewiesen (Block 704). Die neuen Einrichtungsinformationen (z. B. Tragbare Einrichtung ID und Einrichtungsausgabe) werden dann in der Eingabe-DB 424 gespeichert (Block 706). Falls sich die Einrichtungsdaten auf eine zuvor identifizierte Einrichtung beziehen, werden die sich auf diese Einrichtung beziehenden Einrichtungsdaten in der Eingabe-DB 424 aktualisiert (Block 708).
-
Erneut unter Bezug auf 5 ist das Trainingsmodul 420 dazu ausgelegt, die Aufgabe, die durch den Roboter 406 implementiert werden soll, von dem Benutzer zu lernen. Das Trainingsmodul 420 besitzt Zugang zu den Daten in der Eingabe-DB 424 einschließlich der Objektsensorausgabe und der Ausgabe der tragbaren Einrichtung. Das Trainingsmodul 420 besitzt auch Zugang zu der Wissens-DB 426, die eine Liste von Lernbefehlsvorlagen enthält. Das Trainingsmodul 420 ist dazu ausgelegt, eine Sequenz von Lernbefehlen zu erzeugen, indem es die zweckmäßigen Lernbefehlsvorlagen unter Bezugnahme auf die Objektsensordaten und die Daten der tragbaren Einrichtung aus der Eingabe-DB 424 auswählt, um die benutzerdemonstrierte Aufgabe zu implementieren. Diese Sequenz von Lernbefehlen wird in dem Lernbefehlsstapel 428 als eine geordnete Liste von instanziierten Lernbefehlen abgespeichert.
-
8 ist ein Flussdiagramm einer Ausführungsform eines Prozesses zum Implementieren der Funktionalität des Trainingsmoduls 420. Dieses Modul ist verantwortlich für das Erlernen der Aufgabe vom Bediener mittels direkter Demonstration. Dafür wird eine objektzentrische Repräsentation zum Beschreiben der Aufgabe verwendet. Der Prozess startet bei Block 800. Das Trainingsmodul 420 fragt die Eingabe-DB 424 ab, um die Objekt IDs und Tragbare_Einrichtung_IDs im Arbeitsraum sowie die erfassten Daten, die sich auf die Objekte und die Einrichtung beziehen, zu empfangen (Block 802). Sobald diese Informationen empfangen werden, ist sich das Trainingsmodul über den aktuellen Zustand des Arbeitsraums bewusst, einschließlich der Position, der Orientierung und des Typs der Objekte, der Position und Orientierung der Fingerspitzen des Benutzers und der entsprechenden Kraft und des entsprechenden Drehmoments, die bzw. der durch die Benutzerhand an den Objekten angewendet wird.
-
Das Trainingsmodul identifiziert dann jegliche aktive Objekte (Objekt_IDs) im Arbeitsraum (Block 804). Ein Objekt wird als „aktiv“ angesehen, wenn der Benutzer eine Handlung an ihm ausführt. Beispiele für Benutzerhandlungen beinhalten Annähern an das Objekt, Greifen des Objekts, Heben des Objekts, Bewegen des Objekts und so weiter. Das Trainingsmodul greift auf die Wissens-DB 426 zu und wählt eine sich auf jedes aktive Objekt beziehende Lernbefehlsvorlage aus und weist die ausgewählten Lernbefehle dem entsprechenden aktiven Objekt zu (Block 806). Das Trainingsmodul wählt die Lernbefehlsvorlage aus, die die Handlung, die der Benutzer gegenwärtig am aktiven Objekt ausführt, am besten beschreibt.
-
Unter Bezugnahme auf die in der Eingabe-DB 424 gespeicherten Sensorinformationen instanziiert das Trainingsmodul 420 die ausgewählte Vorlage für jedes aktive Objekt (Block 808). Dies resultiert in einer geordneten Liste von Lernbefehlen. Eine instanziierte Lernbefehlsvorlage (oder einfach ein Lernbefehl) beschreibt eine spezifische Handlung an dem Objekt, wie etwa, dass das Objekt von einer spezifischen Anfangsposition zu einer spezifischen Endposition bewegt wird, oder, dass das Objekt in einer spezifischen Konfiguration und mit einer spezifischen Kraft gegriffen wird. Schließlich fügt das Lehrmodul dem Lernbefehlsstapel 430 die instanziierten Lernbefehle hinzu (Block 810).
-
Unter Bezugnahme auf 5 besitzt das Planermodul 422 Zugang zu der Eingabe-DB 424, der Wissens-DB 426, dem Lernbefehlsstapel 428 und dem Roboterbefehlsstapel 430. Das Planermodul 422 ist dazu ausgelegt, die Sequenz von im Lernbefehlsstapel 428 gespeicherten instanziierten Lernbefehlen unter Verwendung der in der Wissens-DB 426 enthaltenen Informationen in eine Sequenz von Roboterbefehlen zu übersetzen. Die Roboterbefehle werden dann gemäß den Objekten instanziiert, die gegenwärtig in der Eingabe-DB 424 registriert sind. Schließlich wird die resultierende Liste von instanziierten Roboterbefehlen in dem Roboterbefehlsstapel 430 gespeichert.
-
9 ist ein Flussdiagramm einer Ausführungsform eines Prozesses zum Implementieren der Funktionalität des Planungsmoduls. Das Planungsmodul übersetzt die erlernte Aufgabe, die in einer objektzentrischen Repräsentation beschrieben ist, in eine Sequenz von Roboterbefehlen, die unter Verwendung der Steuerung auf dem Roboter ausführbar sind. Der Prozess startet bei Block 900. Die Roboteraufgabe wird gemäß den sich gegenwärtig im Arbeitsraum befindlichen Objekten geplant. Zu diesem Zweck beginnt das Planungsmodul, indem es die Objekte im Arbeitsraum auswählt, die für die zu implementierende Aufgabe relevant oder mit dieser kompatibel sind (Block 902). Durch das Abfragen der Eingabe-DB 424 ist das Planungsmodul in der Lage, die Position, die Orientierung und den Typ der sich im Arbeitsraum befindlichen Objekte zu erhalten.
-
Das Planungsmodul 422 weist die Objekte zu den im Stapel gespeicherten Lernbefehlen zu (Block 904). Das Planungsmodul übersetzt dann die Lernbefehle in Roboterbefehle (Block 906). Für jede Lernbefehlsvorlage enthält die Wissens-DB Anweisungen, wie der entsprechende Lernbefehl (eine einzelne Handlung, die in objektzentrischer Repräsentation ausgedrückt wird) in einen Satz von Roboterbefehlen umzuwandeln ist. Ein Roboterbefehl ist ein parametrisierter Steuerbefehl niedriger Ebene, der durch die Steuerung ausgeführt werden kann. Daher instanziiert das Planungsmodul für jeden Lernbefehl des Lernbefehlsstapels 428 den entsprechenden Satz von Roboterbefehlen unter Verwendung der Position und Orientierung des assoziierten Objekts. Die instanziierten Roboterbefehle werden dann dem Roboterbefehlsstapel 430 hinzugefügt (Block 908). Um die Aufgabe auszuführen, greift die Robotersteuerung auf den Roboterbefehlsstapel zu und führt die Roboterbefehle nacheinander aus, um die zuvor durch den Benutzer demonstrierte Aufgabe durchzuführen.
-
Obwohl die Offenbarung ausführlich in den Zeichnungen und der vorstehenden Beschreibung veranschaulicht und beschrieben wurde, sollte dieselbe als veranschaulichend und nicht beschränkend angesehen werden. Es versteht sich, dass nur die bevorzugten Ausführungsformen dargelegt wurden und dass alle Änderungen, Modifikationen und zusätzlichen Anwendungen, die in den Gedanken der Offenbarung fallen, geschützt werden sollen.
-
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 Nicht-Patentliteratur
-
- Colasanto et al., eingereicht am 10. August 2017, und der vorläufigen US-Anmeldung mit der Serien-Nr. 62/545,020, mit dem Titel „SYSTEM AND METHOD OF DIRECT TEACHING A ROBOT“ von Colasanto et al., eingereicht am 14. August 2017 [0001]