-
HINTERGRUND
-
Technisches Gebiet
-
Die vorliegende Erfindung betrifft allgemein robotergestütztes Fügen und insbesondere das Ausführen einer „Peg in Hole“- („Bolzen in Bohrung“-) Aufgabe mit unbekannter Neigung.
-
Beschreibung des verwandten Standes der Technik
-
Im Laufe der Jahre hat die Verlagerung von Fertigungsanforderungen hin zu hoher Flexibilität, kurzer Produktionszykluszeit und hohem Durchsatz das Entstehen intelligenter Fertigungssysteme ermöglicht. Herkömmliche Industrieroboter verfügen über eine hohe Wiederholgenauigkeit, jedoch kann es ihnen an Anpassbarkeit und Flexibilität mangeln. In Fertigungsprozessen ändert sich das Umfeld ständig, und zu verarbeitende Teile und/oder Komponenten können aus unterschiedlichen Chargen und von verschiedenen Lieferanten kommen. All diese Schwankungen können herkömmlichen Industrierobotern beim Durchführen verschiedener Fertigungsprozesse Schwierigkeiten bereiten. Aufgrund hoher Anforderungen an die Fertigung und der Einschränkungen herkömmlicher Industrieroboter wurden in der Roboterprogrammierung intensive menschliche Anstrengungen unternommen.
-
KURZDARSTELLUNG
-
Gemäß einer Ausführungsform wird ein durch ein Robotersystem zum Durchführen eines Positionssuchprozesses in einer Fügeaufgabe ausgeführtes computerimplementiertes Verfahren bereitgestellt. Das computerimplementierte Verfahren umfasst Ausüben von Kräften auf eine in eine zweite Komponente einzufügende erste Komponente, Erfassen der auf die erste Komponente ausgeübten Kräfte durch Einsetzen einer Mehrzahl an einem Roboterarm des Robotersystems angebrachter Kraftsensoren, Extrahieren von Trainingsproben, die den auf die erste Komponente ausgeübten Kräften entsprechen, Normalisieren von Zeitreihendaten für jede der Trainingsproben durch Anwenden einer Variablentransformation um eine richtige Neigungsrichtung, Erstellen eines Zeitreihen-Vorhersagemodells aus transformierten Trainingsdaten, Anwenden der Variablentransformation mit unterschiedlichen Richtungen für eine Testprobe und Berechnen eines Übereinstimmungsverhältnisses zwischen dem erstellten Zeitreihen-Vorhersagemodell und der transformierten Testprobe.
-
Gemäß einer weiteren Ausführungsform wird ein Robotersystem zum Durchführen eines Positionssuchprozesses in einer Fügeaufgabe bereitgestellt. Das Robotersystem umfasst einen Roboterarm und ein mit dem Roboterarm in Datenübertragungsverbindung stehendes Steuersystem, wobei das Steuersystem ausführbare Programmanweisungen speichert, um den Roboterarm zu veranlassen, die Schritte Ausüben von Kräften auf eine in eine zweite Komponente einzufügende erste Komponente, Erfassen der auf die erste Komponente ausgeübten Kräfte durch Einsetzen einer Mehrzahl an dem Roboterarm angebrachter Kraftsensoren, Extrahieren von Trainingsproben, die den auf die erste Komponente ausgeübten Kräften entsprechen, Normalisieren von Zeitreihendaten für jede der Trainingsproben durch Anwenden einer Variablentransformation um eine richtige Neigungsrichtung, Erstellen eines Zeitreihen-Vorhersagemodells aus transformierten Trainingsdaten, Anwenden der Variablentransformation mit unterschiedlichen Richtungen für eine Testprobe und Berechnen eines Übereinstimmungsverhältnisses zwischen dem erstellten Zeitreihen-Vorhersagemodell und der transformierten Testprobe durchzuführen.
-
Gemäß einer weiteren Ausführungsform wird ein Robotersystem bereitgestellt. Das Robotersystem umfasst einen Roboter, der so konstruiert ist, dass er eine erste Komponente an eine zweite Komponente fügt, mindestens einen mit dem Roboter verbundenen Sensor, ein mit dem Roboter und dem mindestens einen Sensor in Datenübertragungsverbindung stehendes Steuersystem, wobei das Steuersystem ausführbare Programmanweisungen zum Ausführen von Fügebewegungen des Roboters speichert, und eine Lerneinheit, die mit dem Steuersystem in Datenübertragungsverbindung steht und betriebsfähig ist, den Roboter über das Steuersystem zu lenken. Das Steuersystem führt die Schritte Extrahieren von Trainingsproben, die auf die erste Komponente ausgeübten Kräften entsprechen, Normalisieren von Zeitreihendaten für jede der Trainingsproben durch Anwenden einer Variablentransformation um eine richtige Neigungsrichtung, Erstellen eines Zeitreihen-Vorhersagemodells aus transformierten Trainingsdaten, Anwenden der Variablentransformation mit unterschiedlichen Richtungen für eine Testprobe und Berechnen eines Übereinstimmungsverhältnisses zwischen dem erstellten Zeitreihen-Vorhersagemodell und der transformierten Testprobe durch.
-
Des Weiteren können Ausführungsformen die Form eines zugehörigen Computerprogrammprodukts annehmen, das von einem computerverwendbaren oder computerlesbaren Medium, das Programmcode zur Verwendung bereitstellt, durch oder in Verbindung mit einem Computer oder einem beliebigen Befehlsausführungssystem abgerufen werden kann. Für die Zwecke dieser Beschreibung kann es sich bei einem computerverwendbaren oder computerlesbaren Medium um eine beliebige Vorrichtung handeln, die Mittel zum Speichern, Übertragen, Verbreiten oder Transportieren des Programms zur Verwendung durch oder in Verbindung mit dem Befehlsausführungssystem, einer solchen Vorrichtung oder einer solchen Einheit enthalten kann.
-
Diese und weitere Merkmale und Vorteile werden aus der nachstehenden ausführlichen Beschreibung veranschaulichender Ausführungsformen ersichtlich, die in Zusammenschau mit den begleitenden Zeichnungen zu lesen ist.
-
Figurenliste
-
In der nachfolgenden Beschreibung bevorzugter Ausführungsformen werden Einzelheiten zur Erfindung unter Bezugnahme auf die nachfolgenden Figuren angegeben, wobei:
- 1 ein Blockschaubild bzw. Ablaufplan eines beispielhaften Robotersystems gemäß einer Ausführungsform der vorliegenden Erfindung ist;
- 2 ein Blockschaubild bzw. Ablaufplan eines beispielhaften Robotersystems in einer Fertigungszelle gemäß einer Ausführungsform der vorliegenden Erfindung ist;
- 3 ein Blockschaubild bzw. Ablaufplan einer zur Beschreibung des Robotersystems eingesetzten beispielhaften „Peg in Hole“-Fügung gemäß einer Ausführungsform der vorliegenden Erfindung ist;
- 4 eine Querschnittsansicht eines erfolgreichen Einfügens einer ersten Komponente in eine zweite Komponente über einen Roboterarm des Robotersystems gemäß einer Ausführungsform der vorliegenden Erfindung ist;
- 5 ein Blockschaubild bzw. Ablaufplan einer beispielhaften Trainingsphase und Testphase gemäß einer Ausführungsform der vorliegenden Erfindung ist;
- 6 ein Blockschaubild bzw. Ablaufplan beispielhafter Schätzungsergebnisse der Neigungsrichtung gemäß einer Ausführungsform der vorliegenden Erfindung ist;
- 7 ein Blockschaubild bzw. Ablaufplan eines beispielhaften Verfahrens zum Durchführen eines Positionssuchprozesses in einer Fügeaufgabe gemäß einer Ausführungsform der vorliegenden Erfindung ist; und
- 8 ein Blockschaubild bzw. Ablaufplan eines beispielhaften Verfahrens zum Manipulieren von Trainingsproben und Testproben zum Erfüllen der „Peg in Hole“-Aufgabe gemäß einer Ausführungsform der vorliegenden Erfindung ist.
-
In den Zeichnungen bezeichnen gleiche oder ähnliche Bezugszeichen gleiche oder ähnliche Elemente.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Ausführungsformen gemäß der vorliegenden Erfindung stellen Verfahren und Einheiten zum Einsetzen eines Robotersystems bereit. Das Robotersystem wird gesteuert, um Fügeprozesse anzuwenden. Ein Fügeprozess umfasst Fügen einer ersten Komponente an eine zweite Komponente. Der Fügeprozess kann allgemein zwei Hauptphasen umfassen. Bei der ersten Phase handelt es sich um eine Suchphase und bei der zweiten Phase um eine Einfügungsphase. In der Suchphase wird die erste Komponente in einen Passbereich gebracht. In der Einfügungsphase erfolgt ein Zusammenfügen der ersten Komponente und der zweiten Komponente. Robotersysteme sind dynamische Systeme. Die meisten dynamischen Systeme sind komplex, nichtlinear und zeitvariant. Für dynamische Systeme kann eine Vielfalt von Steuermethoden eingesetzt werden. Eine solche Methode umfasst Einsetzen von Trainingsproben, die mit Testproben verglichen werden, um eine „Peg in Hole“-Aufgabe zu erfüllen.
-
Ausführungsformen gemäß der vorliegenden Erfindung stellen Verfahren und Einheiten zum Implementieren von Robotersystemen mit bestmöglichen Betriebsbedingungen auf der Grundlage von Lern- oder Trainingsmethoden bereit. Das Robotersystem kann „Learning by Doing“ betreiben, indem es Lern- oder Trainingsrückmeldungen einsetzt, die im Speicher abgelegt und aktuellen Bedingungen entsprechend zur Verfügung gestellt werden. Wenn beispielsweise zwei Teile zusammengefügt werden sollen, werden die beiden Teile zusammen mit ihren besten Bedingungen identifiziert, um eine bestmögliche Fügestrategie zu ermitteln.
-
Es wird angemerkt, dass die vorliegende Erfindung hinsichtlich einer gegebenen veranschaulichenden Architektur beschrieben wird, jedoch innerhalb des Umfangs der vorliegenden Erfindung Abweichungen hiervon durch andere Architekturen, Strukturen, Substratmaterialien und Prozessmerkmale und Schritte/Blöcke möglich sind. Es ist zu beachten, dass bestimmte Merkmale aus Gründen der Klarheit nicht in allen Figuren gezeigt werden können. Dies ist nicht als Einschränkung einer jeweiligen Ausführungsform oder Darstellung oder des Umfangs der Ansprüche auszulegen.
-
Es wird nun auf die Zeichnungen Bezug genommen, in welchen gleiche Bezugszeichen gleiche oder ähnliche Elemente bezeichnen, wobei zunächst 1 ein Blockschaubild bzw. einen Ablaufplan eines beispielhaften Robotersystems gemäß einer Ausführungsform der vorliegenden Erfindung zeigt.
-
Das Blockschaubild 10 zeigt ein Robotersystem 12, das mit einem Steuersystem 14 in Datenübertragungsverbindung steht. Das Robotersystem 12 kann einen oder mehrere Roboter umfassen. Das Steuersystem 14 steht mit einem Trainings-/Lernsystem 15 und Sensoren 16 in Datenübertragungsverbindung. Das Steuersystem 14 tauscht ferner Daten mit Eingabeeinheiten 18 und Anzeigen 19 aus.
-
In einer beispielhaften Ausführungsform enthält das Steuersystem 14 eine dedizierte Robotersteuereinheit und eine Datenverarbeitungseinheit oder -steuereinheit 2.
-
Die Robotersteuereinheit und die Eingabeeinheiten 18 können mit der Datenverarbeitungssteuereinheit in Datenübertragungsverbindung stehen. In einer beispielhaften Ausführungsform betreibt die Robotersteuereinheit das Robotersystem 12 auf Grundlage von Daten, die durch die Datenverarbeitungssteuereinheit bereitgestellt werden, die Steuereingaben von einem weiteren System oder einer weiteren Einheit empfängt, z.B. den Eingabeeinheiten 18 und dem Trainings-/Lernsystem 15. Das Trainings-/Lernsystem 15 kann Betriebsbedingungen des Robotersystems 12 einstellen, damit das Robotersystem auf Grundlage von aus Lernmethoden abgeleiteten bestmöglichen Betriebsbedingungen eine optimale Leistung erbringen kann.
-
Das Steuersystem 14 kann auf Mikroprozessoren beruhen, und die durch dieses ausgeführten Programmanweisungen liegen in Form von in einem Arbeitsspeicher 4 gespeicherter Software vor. Alternativ ist es jedoch denkbar, dass einzelne oder alle Steuereinheiten und Programmanweisungen in Form einer beliebigen Kombination aus Software, Firmware und Hardware, einschließlich Zustandsmaschinen, vorliegen können und die Ausgabe diskreter Einheiten und/oder integrierter Schaltungen widerspiegeln können, die sich gemeinsam an einem bestimmten Ort befinden oder auf mehrere Orte verteilt sein können, darunter jegliche digitale und/oder analoge Einheiten, die so konfiguriert sind, dass sie dieselben oder ähnliche Ergebnisse erzielen wie eine auf Prozessoren beruhende Steuereinheit, die auf Software und/oder Firmware und/oder Hardware beruhende Anweisungen ausführt.
-
In einigen Ausführungsformen kann das Robotersystem 12 einen oder mehrere Sensoren 16 umfassen, z.B. zur Verwendung zum lokalen oder aus der Ferne erfolgenden Betreiben des Robotersystems 12, zum Erhöhen der Sicherheit und/oder für andere Zwecke. Die Sensoren 16 können in jeder geeigneten Form vorliegen, darunter z.B. visuelle Sensoren wie Kameras, akustische Sensoren, Infrarotsensoren oder eine oder mehrere andere Arten von Näherungssensoren, Mikrofone, Positionssensoren, Translations- und Rotationsgeschwindigkeitssensoren, Kraftsensoren und/oder beliebige andere Arten von Sensoren. Die Sensoren 16 stehen mit dem Steuersystem 14 in Datenübertragungsverbindung. In einigen Ausführungsformen kann das Steuersystem 14 eine Steuereinheit umfassen, die mit einem oder mehreren Sensoren 16 in Datenübertragungsverbindung steht, um die Ausgaben des einen oder der mehreren Sensoren 16 zu verarbeiten.
-
In einer beispielhaften Ausführungsform handelt es sich bei der Eingabeeinheit 18 um einen Joystick. In weiteren Ausführungsformen kann die Eingabeeinheit 18 in anderen Formen vorliegen, z.B. als Eingabestift. Die Eingabeeinheit 18 kann so konstruiert sein, dass der Benutzer die Bewegungen des Robotersystems 12 z.B. über das Steuersystem 14 steuern oder auslösen kann. In einigen Ausführungsformen kann die Eingabeeinheit 18 so konstruiert sein, dass sie eine Position, Richtung und/oder Geschwindigkeit von Dreh- und Verschiebebewegungen des Robotersystems 12, z.B. des Endeffektors 28 (2), auf Grundlage von Rückmeldungen steuert oder auslöst, die von dem Trainings-/Lernsystem 15 empfangen werden, um für das Robotersystem 12 bestmögliche Betriebsbedingungen zu erzielen.
-
In einigen Ausführungsformen umfasst das Robotersystem 12 eine oder mehrere Anzeigeeinheiten 19, die mit der Datenverarbeitungssteuereinheit des Steuersystems 14 in Datenübertragungsverbindung stehen. In einer beispielhaften Ausführungsform handelt es sich bei den Anzeigeeinheiten 19 gleichzeitig um Eingabeeinheiten, z.B. eine berührungsempfindliche Bildschirmanzeige. Die Anzeigeeinheiten 19 zeigen beispielsweise Roboterbewegungsdaten an und können zur Einstellung oder Feinabstimmung von Parametern oder Variablen eingesetzt werden, um auf Grundlage des Trainings-/Lernsystems 15 bestmögliche Betriebsbedingungen zu erhalten.
-
Das Trainings-/Lernsystem 15 lernt, das physische Interaktionsmodell besser zu verstehen und die Fügeaufgabe auszuführen. Das physische Interaktionsmodell betrifft z.B. zwischen dem Robotersystem 12 und der Umgebung ausgetauschte Kräfte und/oder Bewegungen. Das auf Gedächtnis beruhende System wird somit unter Verwendung von bestärkendem Lernen trainiert. Bestärkendes Lernen erfolgt durch Auswählen einer Aktion unter zerlegten Aktionen und Fügebewegungsaktionen in jedem Schritt des Positionssuchprozesses auf Grundlage von z.B. entsprechenden Kraft-Drehmoment-Daten, die von mindestens einem dem Robotersystem 12 zugehörigen Sensor 16 empfangen werden.
-
Die Problemstellung des verstärkenden Lernens kann betrachtet werden wie folgt:
-
Das Robotersystem 12 beobachtet den Umgebungszustand, um eine Aktion zu ermitteln, die das Robotersystem 12 ausführen möchte. Die Umgebung kann sich gemäß einer bestimmten Regel ändern, und ein Mensch kann die Umgebung durch eigenes Handeln ändern. Jedes Mal, wenn eine Aktion ausgeführt wird, wird ein Belohnungssignal zurückgesendet. Die Summe der künftigen Belohnungen gilt es zu maximieren. Das Lernen beginnt in einem Zustand, in dem ein durch die Aktion herbeizuführendes Ergebnis gänzlich unbekannt oder nur teilweise bekannt ist. Mit anderen Worten, das Robotersystem 12 kann das Ergebnis einer Aktion als Daten erst dann erhalten, wenn das Robotersystem 12 die Aktion tatsächlich ausführt. Dies bedeutet, dass eine optimale Aktion z.B. durch Versuch und Irrtum gesucht werden kann. Das Lernen kann von einem guten Ausgangspunkt aus begonnen werden, indem von einem Anfangszustand ausgegangen wird, in dem vorab bereits ein Lernen erfolgte. Beim bestärkenden Lernen erfolgt zusätzlich zu Bestimmung und Klassifizierung ein Lernen einer Aktion zur Aneignung eines Verfahrens zum Lernen einer geeigneten Aktion unter Berücksichtigung durch die Aktion verursachter Interaktionen mit der Umgebung, z.B. Lernen des Maximierens der künftig zu erzielenden Belohnung.
-
In einem Beispiel kann das bestärkende Lernen durch das Trainings-/Lernsystem 15 eingesetzt und beispielsweise durch Verfahren des Deep Machine Learning umgesetzt werden. Die beispielhaften Ausführungsformen der vorliegenden Erfindung können grundsätzlich auf Verfahren und Vorrichtungen des Deep Machine Learning gerichtet sein, die eine Manipulation eines Objekts durch einen Endeffektor eines Roboters betreffen. Einige Implementierungen sind darauf gerichtet, ein tiefes neuronales Netz wie beispielsweise ein neuronales Faltungsnetz (convolutional neural network, vorliegend auch als „CNN“ bezeichnet) dafür zu trainieren, eine Wahrscheinlichkeit vorherzusagen, mit der Bewegungsdaten für einen Endeffektor eines Roboters im erfolgreichen Fügen einer ersten Komponente an eine zweite Komponente durch den Endeffektor resultieren. Beispielsweise ermöglichen einige Implementierungen Anwenden zumindest der Folgenden als Eingabe in ein trainiertes tiefes neuronales Netz: (1) eines Bewegungsvektors, der eine in Frage kommende Bewegung eines Einfüge-Endeffektors eines Roboters definiert, und (2) eines Bilds, das zumindest einen Abschnitt des Arbeitsraums des Roboters erfasst; und auf Grundlage des Anwendens erfolgendes Erzeugen zumindest eines Maßes, das unmittelbar oder mittelbar eine Wahrscheinlichkeit angibt, mit der der Bewegungsvektor in erfolgreicher Einfügung der ersten Komponente in die zweite Komponente resultiert. Die vorhergesagte Wahrscheinlichkeit kann dann beim Ermitteln bestmöglicher Betriebsbedingungen und Überwachen der Leistung von Einfügungsversuchen durch das einen Einfüge-Endeffektor aufweisende Robotersystem verwendet werden, wodurch die Fähigkeit des Robotersystems verbessert wird, die erste Komponente erfolgreich in die zweite Komponente einzufügen.
-
Einige Implementierungen des Trainings-/Lernsystems 15 können z.B. auf die Nutzung des trainierten tiefen neuronalen Netzes zur Servosteuerung eines Endeffektors eines Roboters gerichtet sein, um eine erfolgreiche Einfügung der ersten Komponente in die zweite Komponente zu erreichen. Beispielsweise kann das trainierte tiefe neuronale Netz beim iterativen Aktualisieren von Bewegungssteuerbefehlen für einen oder mehrere Aktoren eines Roboters genutzt werden, die eine Position eines Einfüge-Endeffektors des Roboters steuern, und um zu ermitteln, wann Einfügungssteuerbefehle erzeugt werden sollen, um einen Einfügungsversuch durch den Einfüge-Endeffektor zu bewirken. In verschiedenen Implementierungen kann die Nutzung des trainierten tiefen neuronalen Netzes zur Servosteuerung des Einfüge-Endeffektors eine schnelles Feedback auf Roboterstörungen und/oder Bewegungen eines oder mehrerer Umgebungsobjekte und/oder Robustheit gegenüber ungenauen Roboterstellbewegungen ermöglichen. Das trainierte tiefe neuronale Netz kann zudem eine Verringerung der Anzahl an Störungen ermöglichen, um bestmögliche Betriebsbedingungen des Robotersystems 12 zu erzielen.
-
In einigen Implementierungen des Trainings-/Lernsystems 15 kann ein Verfahren bereitgestellt werden, das z.B. Erzeugen eines in Frage kommenden Endeffektor-Bewegungsvektors umfasst, der eine Bewegung definiert, um einen Einfüge-Endeffektor eines Roboters aus einer aktuellen Position in eine anschließende Position zu bewegen, die effizientere Fügestrategien ermöglicht. In einem Beispiel kann das Verfahren ferner Identifizieren eines aktuellen Bilds umfassen, das durch einen dem Robotersystem 12 zugehörigen visuellen Sensor aufgenommen wird und das den Einfüge-Endeffektor und mindestens ein Objekt in einer Umgebung des Robotersystems 12 erfasst. Das Verfahren kann ferner Anwenden des aktuellen Bilds und des in Frage kommenden Endeffektor-Bewegungsvektors als Eingabe in ein trainiertes neuronales Faltungsnetz und über das trainierte neuronale Faltungsnetz erfolgendes Erzeugen eines Maßes erfolgreicher Einfügungen des Objekts bei Anwendung der Bewegung umfassen. Das Maß wird auf Grundlage der Anwendung des Bilds und des Endeffektor-Bewegungsvektors auf das trainierte neuronale Faltungsnetz erzeugt.
-
In einigen Implementierungen des Trainings-/Lernsystems 15 kann ein Verfahren bereitgestellt werden, das z.B. Identifizieren einer Mehrzahl von Trainingsbeispielen umfasst, die auf Grundlage von Sensorausgaben eines oder mehrerer Roboter während einer Mehrzahl von Einfügungsversuchen der Roboter erzeugt wurden. Jedes der Trainingsbeispiele umfasst Trainingsbeispieleingabe und Trainingsbeispielausgabe. Die Trainingsbeispieleingabe jedes der Trainingsbeispiele umfasst: ein Bild für eine entsprechende Zeitinstanz eines entsprechenden Einfügungsversuchs der Einfügungsversuche, wobei das Bild einen Roboter-Endeffektor und ein oder mehrere Umgebungsobjekte zu der entsprechenden Zeitinstanz erfasst, und einen Endeffektor-Bewegungsvektor, der Bewegung des Endeffektors definiert, um sich von einer Zeitinstanzposition des Endeffektors zu der entsprechenden Zeitinstanz in eine Endposition des Endeffektors für den entsprechenden Einfügungsversuch zu bewegen. Die Trainingsbeispielausgabe jedes der Trainingsbeispiele kann z.B. eine Einfügungserfolg-Kennzeichnung umfassen, die den Erfolg des entsprechenden Einfügungsversuchs anzeigt. Das Verfahren umfasst ferner Trainieren des neuronalen Faltungsnetzes auf Grundlage der Trainingsbeispiele, um bestmögliche Betriebsbedingungen für das Robotersystem 12 zu erzielen.
-
In einigen Implementierungen des Trainings-/Lernsystems 15 umfasst das Trainieren des neuronalen Faltungsnetzes Anwenden der Trainingsbeispieleingabe eines bestimmten Trainingsbeispiels der Trainingsbeispiele auf das neuronale Faltungsnetz. In einigen dieser Implementierungen umfasst das Anwenden der Trainingsbeispieleingabe des bestimmten Trainingsbeispiels: Anwenden des Bilds des bestimmten Trainingsbeispiels als Eingabe auf eine Anfangsschicht (initial layer) des neuronalen Faltungsnetzes und Anwenden des Endeffektor-Bewegungsvektors des bestimmten Trainingsbeispiels auf eine zusätzliche Schicht (additional layer) des neuronalen Faltungsnetzes. Die zusätzliche Schicht kann der Anfangsschicht nachfolgen. In einigen dieser Implementierungen umfasst das Anwenden des Endeffektor-Bewegungsvektors auf die zusätzliche Schicht: Durchleiten des Endeffektor-Bewegungsvektors durch eine voll verbundene Schicht (fully connected layer), um eine Endeffektor-Bewegungsvektorausgabe zu erzeugen, und Verketten der Endeffektor-Bewegungsvektorausgabe mit einer vorhergehenden Ausgabe. Die vorhergehende Ausgabe kann von einer unmittelbar vorhergehenden Schicht des neuronalen Faltungsnetzes stammen, die der zusätzlichen Schicht unmittelbar vorhergeht und die der Anfangsschicht und einer oder mehreren Zwischenschichten (intermediary layer) des neuronalen Faltungsnetzes nachfolgt. Bei der Anfangsschicht kann es sich um eine Faltungsschicht (convolutional layer) und bei der unmittelbar vorhergehenden Schicht um eine Pooling-Schicht (pooling layer) handeln.
-
In einigen Implementierungen umfasst das Training Durchführen von Rückwärtspropagierung (backpropagation) an dem neuronalen Faltungsnetz auf Grundlage der Trainingsbeispielausgabe der Mehrzahl von Trainingsbeispielen. Die Funktion des Lern-/Trainingssystems 15 kann somit im Extrahieren z.B. einer nützlichen Regel, einer Wissensrepräsentation und eines Bestimmungskriteriums durch Analyse aus einem in das Lern-/Trainingssystem 15 eingegebenen Datensatz, Ausgeben von Bestimmungsergebnissen und Erlernen von Wissen (maschinelles Lernen) bestehen. Es wird angemerkt, dass verschiedenste Methoden des maschinellen Lernens zur Verfügung stehen, die sich grob in z.B. „überwachtes Lernen“ (supervised learning), „unüberwachtes Lernen“ (unsupervised learning) und „bestärkendes Lernen“ (reinforcement learning) klassifizieren lassen. Zur Implementierung dieser Methoden kann „tiefes Lernen“ (deep learning) eingesetzt werden, wie vorstehend erläutert wurde.
-
2 ist ein Blockschaubild bzw. Ablaufplan eines beispielhaften Robotersystems in einer Fertigungszelle gemäß einer Ausführungsform der vorliegenden Erfindung.
-
In einer beispielhaften Ausführungsform kann es sich bei dem Robotersystem 12 um einen mehrachsigen Industrieroboter handeln, der z.B. in einer Arbeitszelle 20 angeordnet sein kann. Die Fügearbeit kann automatisiert sein und durch einen Nutzer initiiert werden. Beispielsweise kann das Robotersystem 12 durch Verwenden der Eingabeeinheiten 18 von einem beliebigen Ort außerhalb der Arbeitszelle 20 aus initiiert oder ausgelöst werden, um eine erste Komponente, generisch als Komponente 25 dargestellt, an eine zweite Komponente, generisch als Komponente 32 dargestellt, zu fügen, die z.B. auf einem Arbeitstisch oder einer Halterung 30 angeordnet ist. Beispielsweise kann das Robotersystem 12 betrieben werden, um die Komponente 25 in eine Öffnung 34 der Komponente 32 einzufügen. Das Robotersystem 12 kann erlernte Methoden verwenden, um auf Grundlage bestmöglicher Betriebsbedingungen optimal programmiert zu werden. Beispielsweise setzt das Robotersystem 12 aus dem Lernen/Training stammende Rückmeldungen, die im Arbeitsspeicher 4 gespeichert sind und entsprechend den gegebenen Bedingungen verfügbar gemacht werden, für kontinuierliche Einstellung oder Feinabstimmung von Arbeitsschritten auf ein optimales Niveau ein. In verschiedenen Ausführungsformen kann das Robotersystem 12 eine beliebige Form annehmen, die für die Anwendung, für die es eingesetzt wird, geeignet ist, und kann eine beliebige Art von Roboter sein, die dafür konstruiert ist, eine beliebige Art von Fertigungsarbeit oder andere Arbeitsschritte auszuführen.
-
In einer beispielhaften Ausführungsform kann das Robotersystem 12 einen Standfuß 26, eine mit dem Standfuß 26 verbundene und um diesen drehbare Schulter 24 und einen mit der Schulter 24 verbundenen Oberarm oder drehbaren Arm 22 umfassen. Der drehbare Arm 22 endet in einem drehbaren Endeffektor 28. In weiteren beispielhaften Ausführungsformen kann das Robotersystem 12 eine größere oder kleinere Anzahl an Gliedern und/oder Freiheitsgraden besitzen. In einer beispielhaften Ausführungsform ist der Endeffektor 28 so konfiguriert, dass er die Komponente 25 zur Fügung mit der Komponente 32 auf Grundlage von dem Trainings-/Lernsystem 15 empfangener Eingaben greift und manipuliert. In weiteren beispielhaften Ausführungsformen kann der Endeffektor 28 in anderen Formen vorliegen und kann so konfiguriert sein, dass er andere Arbeitsschritte durchführt, z.B. beliebige Arbeitsschritte, die mit der Komponente 25 zusammenhängen oder nicht zusammenhängen. Das Robotersystem 12 kann so konstruiert sein, dass es die Komponente 25 mit einer minimalen Anzahl an Schritten in und um die X-, Y- und Z-Achse wie z.B. in 3 veranschaulicht verschiebt und dreht.
-
In einigen beispielhaften Ausführungsformen kann zu dem Robotersystem 12 ein haptischer Feeback-Sensor 27 gehören. Der Sensor 27 kann in der Lage sein, Interaktionen zwischen der Komponente 25 und allem anderen in der unmittelbaren Umgebung zu erfassen, z.B. physische Interaktionen zwischen der Komponente 25 (z.B. während diese vom Robotersystem 12 gehalten wird) und der Komponente 32 oder zwischen der Komponente 25 und allem, was sich in Reichweite des Robotersystems 12 befindet. In einer beispielhaften Ausführungsform handelt es sich bei dem haptischen Feedback-Sensor 27 um einen Kraftsensor. In weiteren Ausführungsformen kann der haptische Feedback-Sensor 27 in anderen Formen vorliegen. Der Kraftsensor 27 kann mit dem Steuersystem 14 in Datenübertragungsverbindung stehen. In einer beispielhaften Ausführungsform kann der Sensor 27 an dem Robotersystem 12 gelagert sein, z.B. am Endeffektor 28. In weiteren Ausführungsformen kann der Sensor 27 an einem beliebigen geeigneten Ort oder an einem beliebigen geeigneten Merkmal des Robotersystems 12 oder der Komponente 25 gelagert sein.
-
3 ist ein Blockschaubild bzw. Ablaufplan einer zur Beschreibung des Robotersystems eingesetzten beispielhaften „Peg in Hole“-Fügung gemäß einer Ausführungsform der vorliegenden Erfindung.
-
Einige Aspekte eines nichteinschränkenden Beispiels einer „Peg in Hole“-Fügung werden zur Beschreibung eines nichteinschränkenden Beispiels einer Ausführungsform der vorliegenden Erfindung eingesetzt. In 3 soll eine erste Komponente, nämlich ein Bolzen 25, in eine Bohrung 34 in einem Block 32 eingefügt werden. Bei schwierigen Fügeaufgaben, z.B. wenn das Passspiel zwischen dem Bolzen 25 und der Bohrung 34 gering ist und Schrägkanten am Bolzen 25 und der Bohrung 34 klein sind, kann manuelle Einfügung allein mittels teleoperierter Bewegung selbst mit haptischem Feedback schwierig sein. Beispielsweise kann schon eine geringfügige Fehlausrichtung zwischen den Komponenten zu einem Verkanten oder Verklemmen führen.
-
4 ist eine Querschnittsansicht eines erfolgreichen Einfügens einer ersten Komponente in eine zweite Komponente über einen Roboterarm des Robotersystems gemäß einer Ausführungsform der vorliegenden Erfindung.
-
Es wird gezeigt, wie die erste Komponente 25 erfolgreich in der Bohrung 34 der zweiten Komponente 32 aufgenommen wird. Die erste Komponente 25 ist so konfiguriert, dass sie mit den Innenwänden der zweiten Komponente 32 bündig abschließt. Dies wird durch das Trainings-/Lernsystem 15 erreicht. Einige Implementierungen des Trainings-/Lernsystems 15 können darauf gerichtet sein, ein tiefes neuronales Netz wie beispielsweise ein CNN so zu trainieren, dass das trainierte tiefe neuronale Netz dafür genutzt werden kann, ein Maß vorherzusagen, das die Wahrscheinlichkeit angibt, mit der Bewegungsdaten für einen Einfüge-Endeffektor eines Roboters in erfolgreicher Einfügung der ersten Komponente 25 in die zweite Komponente 32 resultieren. In einigen Implementierungen akzeptiert das trainierte tiefe neuronale Netz ein durch einen visuellen Sensor erzeugtes Bild und akzeptiert einen Endeffektor-Bewegungsvektor. Die Anwendung des Bilds und des Endeffektor-Bewegungsvektors auf das trainierte tiefe neuronale Netz kann verwendet werden, um über das tiefe neuronale Netz ein vorhergesagtes Maß zu erzeugen, dass ein Ausführen eines oder mehrerer Befehle zum Implementieren der per Bewegungsvektor definierten Bewegung und anschließendes Einfügen eine erfolgreiche Einfügung der ersten Komponente 25 in die zweite Komponente 32 bewirken werden. Einige Implementierungen sind auf die Nutzung des trainierten tiefen neuronalen Netzes zur Servosteuerung des Endeffektors eines Roboters gerichtet, um eine erfolgreiche Einfügung der ersten Komponente 25 in die zweite Komponente 32 mit einer minimalen Anzahl an Schritten auf Grundlage der von dem Trainings-/Lernsystem 15 empfangenen Rückmeldungen zu erreichen.
-
5 ist ein Blockschaubild bzw. Ablaufplan einer beispielhaften Trainingsphase und Testphase gemäß einer Ausführungsform der vorliegenden Erfindung.
-
Für die Dateneigenschaften werden folgende Annahmen getroffen:
-
Bei Daten handelt es sich um eine Zeitreihe von Daten, die durch Ausüben zufälliger xy-Kräfte für eine bestimmte Zeitspanne erhalten werden. Die Kräfte können durch eine Mehrzahl von Kraftsensoren gemessen werden.
-
Eine Trainingsprobe kann sechsdimensionale Zeitreihendaten enthalten, und die richtige Neigungsrichtung (θ) kann erhalten werden wie folgt:
- Daten: inFx, inFy: Eingabekräfte in xy-Richtung.
- Daten: Fx, Fy: Kraftsensorwerte zu xy-Richtungen.
- Daten: Mx, My: Kraftsensormomente um xy-Achsen.
-
Falls eine Neigungsgröße geschätzt werden muss, kann auch eine richtige Neigungsgröße (ϕ) hinzugefügt werden.
-
In der Trainingsphase:
-
Für jede Trainingsprobe normalisiert das Verfahren Zeitreihendaten durch Anwenden einer Variablentransformation um die richtige Neigungsrichtung (θ) wie folgt:
-
Die gleiche Variablentransformation wird für (Fx, Fy)- und (Mx, My)-Paare angewendet.
-
Nun kann ein Zeitreihenmodell aus transformierten Trainingsdaten aufgebaut oder erstellt werden.
-
Für ein Zeitreihen-Vorhersagemodell kann Vektorautoregression (VAR) verwendet werden.
-
Die transformierten Zeitreihendaten sollten dieselben oder ähnliche Eigenschaften wie Zeitreihendaten haben.
-
In der Testphase:
-
Für eine Testprobe wird die Variablentransformation mit unterschiedlichen Richtungen angewendet. (z.B. 10 Grad, 20 Grad, 30 Grad usw.).
-
Anschließend wird das Übereinstimmungsverhältnis zwischen dem in der Trainingsphase erstellten Modell und den jeweiligen transformierten Testdaten berechnet.
-
Für das Übereinstimmungsverhältnis kann die Summe der Quadrate jedes Zeitpunkts und jeder Dimension verwendet werden.
-
Als Ergebnis kann der Richtungswert mit dem besten Übereinstimmungswert als Schätzungsergebnis (Schätzung zur Neigungsrichtung) ausgegeben werden.
-
In der Trainingsphase 40 kann ein Satz Proben 42, 44, 46, 48 verarbeitet werden, um ein Zeitreihen-Vorhersagemodell aus transformierten Trainingsdaten 50 zu erstellen. Solche transformierten Trainingsdaten 50 werden mit mindestens einer Testprobe verglichen. In einer Testphase 60 wird somit eine Testprobe ausgewählt und eine Variablentransformationen mit unterschiedlichen Richtungen auf die ausgewählte Testprobe angewendet, um Schätzungsergebnisse 62, 64, 66, 68 auszugeben. Die Schätzungsergebnisse werden für unterschiedliche Neigungsrichtungen bereitgestellt (z.B. 10 Grad, 30 Grad, 350 Grad).
-
Die beispielhaften Ausführungsformen betreffen somit einen Steueralgorithmus für einen Roboter. Der Steueralgorithmus steuert die Einfügung eines Bolzens in eine Bohrung. Die „Peg in Hole“-Aufgabe verwendet Zeitreihen-Kraftsensorinformationen. Der Steueralgorithmus verarbeitet Zeitreihendaten durch Anwenden von Variablentransformation mit unterschiedlichen Richtungen auf Testproben und berechnet ein Übereinstimmungsverhältnis zwischen einem in der Trainingsphase aufgebauten Vorhersagemodell und den jeweiligen transformierten Testdaten. Mit anderen Worten, in einer Trainingsphase werden Trainingsdaten gewonnen und ein Zeitreihen-Vorhersagemodell erstellt. In einer Testphase wird anschließend eine Testprobe ausgewählt und eine Variablentransformationen mit unterschiedlichen Richtungen auf die ausgewählte Testprobe angewendet. Nun kann ein Übereinstimmungsverhältnis zwischen dem Zeitreihen-Vorhersagemodell und der Probe mit den transformierten Daten berechnet werden, um ein Schätzungsergebnis (Schätzung der Neigungsrichtung) zu erhalten.
-
6 ist ein Blockschaubild bzw. Ablaufplan beispielhafter Schätzungsergebnisse der Neigungsrichtung gemäß einer Ausführungsform der vorliegenden Erfindung.
-
Bei dem Schaubild 70 handelt es sich um eine Seitenansicht und bei dem Schaubild 72 um eine Draufsicht auf ein Objekt 25, an dem z.B. durch einen Roboterarm eines Robotersystems ein Einfügungsversuch in eine durch die Komponente 32 definierte Bohrung 34 unternommen wird. Das Schaubild 70 veranschaulicht die Neigungsgröße (ϕ) und das Schaubild 72 die Neigungsrichtung (θ).
-
Das Schaubild 80 zeigt den Übereinstimmungsfehler als Funktion des relativen Winkels zur richtigen Richtung.
-
Die Tabelle 90 gibt den mittleren Schätzfehler für die Neigungsrichtung an. Selbst im ungünstigsten Fall beträgt die mittlere Vorhersagegenauigkeit weniger als 20 %.
-
7 ist ein Blockschaubild bzw. Ablaufplan eines beispielhaften Verfahrens zum Durchführen eines Positionssuchprozesses in einer Fügeaufgabe gemäß einer Ausführungsform der vorliegenden Erfindung.
-
In Block 102 erfolgt für jede Trainingsprobe ein Normalisieren von Zeitreihendaten durch Anwenden einer Variablentransformation um eine richtige Neigungsrichtung (θ). Die Zeitreihendaten können von einer Mehrzahl von Kraftsensoren erhalten werden, die eine in verschiedenen Zeitspannen auf z.B. einen Bolzen ausgeübte Kraft messen.
-
In Block 104 erfolgt ein Aufbauen oder Erstellen eines Zeitreihen-Vorhersagemodells aus transformierten Trainingsdaten.
-
In Block 106 erfolgt für eine Testprobe ein Anwenden der Variablentransformation mit unterschiedlichen Richtungen.
-
In Block 108 erfolgt ein Berechnen eines Übereinstimmungsverhältnisses zwischen dem in der Trainingsphase erstellten Modell und den jeweiligen transformierten Testdaten.
-
8 ist ein Blockschaubild bzw. Ablaufplan eines beispielhaften Verfahrens zum Manipulieren von Trainingsproben und Testproben zum Erfüllen der „Peg in Hole“-Aufgabe gemäß einer Ausführungsform der vorliegenden Erfindung.
-
Trainingsproben 110 werden in das Trainingsphasenmodul 120 eingegeben, welches mit einem Prozessor 122 und einem Arbeitsspeicher 124 Daten austauschen kann. Das Trainingsphasenmodul 120 gibt ein Zeitreihenmodell aus transformierten Trainingsdaten 130 aus, die anschließend dem Testphasenmodul 140 bereitgestellt werden. Das Testphasenmodul 140 kann mit einem Prozessor 142 und einem Arbeitsspeicher 144 Daten austauschen. Das Testphasenmodul 140 gibt Daten an eine Übereinstimmungsverhältnis-Berechnungseinheit 150 aus, die ihrerseits Schätzungsergebnisse 160 (zur Neigungsrichtung) an ein Robotersystem 170 ausgibt.
-
Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung wurden für Zwecke der Veranschaulichung dargelegt, sind jedoch nicht als abschließend oder auf die beschriebenen Ausführungsformen beschränkt zu verstehen. Für den Fachmann sind viele Abwandlungen und Variationen ersichtlich, ohne vom Umfang und Grundgedanken der beschriebenen Ausführungsformen abzuweichen. Die vorliegend verwendete Terminologie wurde gewählt, um bestmöglich die eine oder die mehreren Ausführungsformen, die praktische Anwendung oder technische Verbesserung gegenüber den auf dem Markt befindlichen Technologien zu erklären oder um dem Fachmann das Verständnis der vorliegend beschriebenen Ausführungsformen zu ermöglichen.
-
Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) umfassen, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
-
Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch eine Einheit zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder gehobene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. ein Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
-
Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server umfassen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
-
Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter eine objektorientierte Programmiersprache wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
-
Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern mittels durch einen Computer lesbarer Programmanweisungen ausgeführt werden können.
-
Diese durch einen Computer lesbaren Programmanweisungen können mindestens einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken oder Modulen der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt umfasst, darunter Anweisungen, die Aspekte der/des in dem Block bzw. den Blöcken oder Modulen des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder angegebenen Funktion/Schritts umsetzen.
-
Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Arbeitsblöcken/-schritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken oder Modulen der Ablaufpläne und/oder der Blockschaltbilder festgelegten Funktionen/Schritte umsetzen.
-
Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) enthalten. In einigen alternativen Ausführungen können die in den Blöcken angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
-
Bezugnahmen in der Spezifikation auf „(genau) eine Ausführungsform“ oder „(irgend)eine Ausführungsform“ der vorliegenden Grundgedanken ebenso wie weitere Variationen davon bedeuten, dass ein bestimmtes Merkmal, eine Struktur, Eigenschaft und so weiter, das bzw. die in Verbindung mit der Ausführungsform beschrieben wird, in mindestens einer Ausführungsform der vorliegenden Grundgedanken enthalten ist. Die an verschiedener Stelle der Spezifikation zu lesende Formulierung „in (genau) einer Ausführungsform“ oder „in (irgend)einer Ausführungsform“ sowie jegliche weiteren Variationen davon beziehen sich somit nicht unbedingt alle auf dieselbe Ausführungsform.
-
Es versteht sich, dass die Verwendung von „/“, „und/oder“ und „mindestens eine/r/s von“, beispielsweise in den Fällen „A/B“, „A und/oder B“ und „mindestens eines von A und B“, die Auswahl nur der ersten aufgeführten Option (A), die Auswahl nur der zweiten aufgeführten Option (B) oder die Auswahl beider Optionen (A und B) umfassen soll. Als weiteres Beispiel soll in den Fällen „A, B, und/oder C“ und „mindestens eines von A, B und C“ diese Formulierung die Auswahl nur der ersten aufgeführten Option (A) oder die Auswahl nur der zweiten aufgeführten Option (B) oder die Auswahl nur der dritten aufgeführten Option (C) oder die Auswahl nur der ersten und der zweiten aufgeführten Option (A und B) oder nur die Auswahl der ersten und der dritten aufgeführten Option (A und C) oder die Auswahl nur der zweiten und der dritten aufgeführten Option (B und C) oder die Auswahl aller drei Optionen (A und B und C) umfassen. Wie ein Fachmann erkennt, kann dies auf beliebig viele aufgeführte Elemente erweitert werden.
-
Nachdem bevorzugte Ausführungsformen eines Systems und Verfahrens zum Ausführen einer „Peg in Hole“-Aufgabe mit unbekannter Neigung (welche als veranschaulichend und nicht einschränkend aufzufassen sind) beschrieben wurden, wird angemerkt, dass ein Fachmann angesichts der vorstehenden Lehre Modifikationen und Variationen vornehmen kann. Es ist daher zu beachten, dass an den konkret beschriebenen Ausführungsformen Änderungen vorgenommen werden können, die im Umfang der Erfindung wie durch die beiliegenden Ansprüche umrissen enthalten sind. Nach den patentrechtlichen Anforderungen entsprechend ausführlicher und konkreter Beschreibung von Aspekten der Erfindung ist somit der beanspruchte Gegenstand, für den Patentschutz angestrebt wird, in den beiliegenden Ansprüchen dargelegt.