-
AUSSAGE HINSICHTLICH STAATLICH GEFÖRDERTER FORSCHUNG ODER ENTWICKLUNG
-
Diese Erfindung wurde mit Regierungsunterstützung unter dem NASA Space Act Agreement mit der Nummer SAA-AT-07-003 durchgeführt. Die hier beschriebene Erfindung kann von der oder für die US-Regierung zu Zwecken der US-Regierung (d. h. nicht kommerzielle Zwecke) hergestellt und verwendet werden, ohne dass darauf oder dafür Gebühren zu entrichten sind.
-
TECHNISCHES GEBIET
-
Die vorliegende Offenbarung betrifft die automatische Steuerung eines geschickten Roboters.
-
HINTERGRUND
-
Roboter sind elektromechanische Vorrichtungen, die verwendet werden können, um Objekte mit Hilfe einer Reihe von Gliedern zu manipulieren. Die Glieder sind durch Gelenkverbindungen oder stellgliedgetriebene Robotergelenke verbunden. Jedes Gelenk in einem typischen Roboter stellt eine unabhängige Steuervariable oder einen Freiheitsgrad (DOF) dar. Greiforgane sind die speziellen Glieder, die verwendet werden, um eine gegebene Arbeitsaufgabe auszuführen, wie etwa das Ergreifen eines Arbeitswerkzeugs oder ein anderweitiges Einwirken auf ein Objekt. Eine präzise Bewegungssteuerung eines Roboters durch seine verschiedenen Freiheitsgrade kann durch die Aufgabenebene organisiert sein: Eine Steuerung auf Objektebene, d. h. die Fähigkeit zum Steuern des Verhaltens eines Objekts, das in einem einzelnen oder zusammenwirkenden Griff des Roboters gehalten wird, eine Greiforgansteuerung, und eine Steuerung auf Gelenkebene. Die verschiedenen Steuerungsebenen arbeiten zusammen, um gemeinsam die erforderliche Geschicklichkeit und aufgabenbezogene Funktionalität des Roboters zu erreichen.
-
Die strukturelle Komplexität eines geschickten Roboters hängt in großem Maß vom Wesen der Arbeitsaufgabe ab. Während einer Objektmanipulation ist es notwendig, den Manipulator mit Bezug auf seine Umgebung, d. h. den Systemzustand, zu verfolgen. Ohne eine derartige Nachverfolgung weiß der Roboter nichts über das Ergebnis seiner Aktionen während einer gegebenen Arbeitssequenz. Bei geschickten Robotern, die eine relativ hohe Anzahl von Freiheitsgraden aufweisen, ist das Überwachen und Nachverfolgen des Systemzustands jedoch eine hochkomplizierte Aufgabe. Es treten üblicherweise Hunderte von einzelnen Sensorsignalen auf, wobei bei der Verarbeitung und Bestimmung der Relevanz der verschiedenen Sensorsignale zur letztendlichen Bestimmung des gegenwärtigen Systemzustands Schwierigkeiten auftreten. Daher können existierende Robotersteuerungssysteme und Steuerungsverfahren nicht optimal sein, wenn sie zur Nachverfolgung und Überwachung des Zustands eines geschickten Roboters mit relativ vielen Freiheitsgraden verwendet werden.
-
Die Druckschrift
DE 10 2010 045 528 A1 offenbart ein Steuerungsgrundgerüst zur Steuerung eines geschickten Roboters unter Verwendung eines verteilten Rechnernetzwerks, das eine hierarchische Struktur verwendet, in der Sensoreingaben von lokalen, in Robotergelenke eingebetteten Controllern verarbeitet werden, welche von einem übergeordneten Controller koordiniert werden, der wiederum Signale zum Ausführen einer Aufgabe von einem Hauptcontroller erhält.
-
In der Druckschrift
US 2004/0 117 063 A1 sind ein Roboter und ein Steuerungsverfahren offenbart, bei denen Sensormesswerte asynchron eintreffen, gesammelt und an ein Verhaltensmodul weitergeleitet werden. Durch Störungen und Sensorrauschen temporär fehlende Sensormesswerte wirken sich nicht stark aus, da in diesem Fall gespeicherte Sensormesswerte verwendet werden, sodass die Systemsteuerung nicht vom Zeitpunkt des Eintreffens von Informationen abhängt.
-
Die Druckschrift
US 6 556 892 B2 offenbart eine Steuerungsvorrichtung und ein Steuerungsverfahren für einen Roboter, der auf den Empfang von Befehlen hin ein Verhaltensmuster ausführt, durch das Gelenkaktoren des Roboters betätigt werden. Die Implementierung des Verhaltensmusters wird überwacht und protokolliert.
-
In der Druckschrift
US 5 813 406 A sind belastungserfassende Winkelmesser und zugehörige Systeme zur Kommunikation von tauben, taubstummen und blinden Menschen mit hörenden Menschen offenbart, die zur Detektion von komplexen Glied- und Gelenkbewegungen verwendet werden können, um z. B. in Gebärdensprache zu kommunizieren.
-
Die Druckschrift
JP 2007-265 103 A offenbart einen Robotercontroller, der Störungen in einem Servosteuerungsabschnitt eines Roboters schnell und genau detektieren kann, indem zwei arithmetische Verarbeitungsabschnitte parallel eine Roboterposition schätzen und miteinander vergleichen und bei Übereinstimmung einen Vergleich mit einer erfassten Roboterposition ausführen. Bei einer zu großen Abweichung zwischen Schätzwert und Messwert oder bei einer fehlenden Übereinstimmung der Schätzwerte wird der für die Roboterposition zuständige Servomotor ausgeschaltet.
-
In der Druckschrift
JP 2003-346 152 A ist ein Verfahren zur dreidimensionalen Objekterkennung offenbart, bei dem ein zu detektierendes Objekt von einem Roboter relativ zu einem Bilderfassungsgerät an einer vorbestimmten Stelle gehalten und anhand einer Ausgabe des Bilderfassungsgeräts detektiert wird. Wenn das Objekt nicht erkannt wird, wird es erlernt.
-
Die Aufgabe der Erfindung besteht darin, die bei der Steuerung eines geschickten Roboters mit vielen Freiheitsgraden anfallende Verarbeitung von Sensorsignalen so zu optimieren, dass der Roboter bei der Ausführung einer gegebenen Arbeitsaufgabe oder Sequenz adaptiv gesteuert werden kann.
-
Diese Aufgabe wird durch die Gegenstände der unabhängigen Ansprüche gelöst.
-
ZUSAMMENFASSUNG
-
Entsprechend wird hier ein Robotersystem offenbart, das einen geschickten Roboter und einen Controller aufweist. Der Roboter weist eine relativ hohe Anzahl von Freiheitsgraden (DOF) auf, bei einer beispielhaften Ausführungsform beispielsweise mindestens 42 Freiheitsgrade. Der Controller ist ausgestaltet, um einen taktilen Rückmeldungskreis bereitzustellen, der verwendet werden kann, um eine automatisierte Sequenz des Roboters anzupassen. Das heißt, dass der Controller den Zustand des Roboters und seiner Betriebsumgebung während einer Manipulation unter Verwendung einer Logikschicht nachverfolgt. Die Logikschicht ermöglicht, dass der Roboter auf der Grundlage des Ergebnisses der aktuellen Maßnahmen eine willkürliche Anzahl von Ausführungsstrecken ausführt. Dieses Wissen wird dann verwendet, um eine gegebene Aufgabe oder Sequenz in eine adaptive Steuerung einzubetten.
-
Die Zustandssequenz wird während einer Lernphase ermittelt, während der tatsächliche Sensormessungen, die während der Ausführung einer Aufgabe durchgeführt wurden, in einem konkreten nicht vorübergehenden Speicher des Controllers gespeichert werden. Diese Messungen werden dann von einer Support Vector Machine (SVM) verarbeitet. Eine Bewertung des Systemzustands während der Ausführung einer Aufgabe kann vom Controller als eine Abschlussbedingung für nachfolgende Aufgabenschritte verwendet werden, oder um alternative Maßnahmen zu ergreifen.
-
Insbesondere enthält ein Robotersystem einen geschickten Roboter und einen Controller. Der Roboter enthält eine Vielzahl von Robotergelenken, Stellgliedern, die zum Bewegen der Robotergelenke ausgestaltet sind, und Sensoren, die zum Messen einer Eigenschaft eines zugehörigen der Robotergelenke, z. B. einer Position, und zum Senden der Eigenschaften als Sensorsignale ausgestaltet sind. Der Controller enthält einen konkreten nicht vorübergehenden Speicher, in dem von einem Computer ausführbare Anwendungen aufgezeichnet sind, die ein Zustandsklassifizierungsmodul enthalten, einen Prozessor, der ausgestaltet ist, um die Anweisungen aus dem konkreten nicht vorübergehenden Speicher auszuführen, um die Sensorsignale in mindestens zwei verschiedene Klassen unter Verwendung des Zustandsklassifizierungsmoduls zu klassifizieren, z. B. einer Support Vector Machine (SVM), um einen Systemzustand des Roboters unter Verwendung der Klassen zu überwachen, und um den Roboter bei der Ausführung von alternativen Arbeitsaufgaben auf der Grundlage des Systemzustands zu steuern.
-
Ein Verfahren zum Steuern des vorstehend erwähnten geschickten Roboters umfasst, dass unter Verwendung des Controllers die Sensorsignale empfangen werden, dass unter Verwendung des Zustandsklassifizierungsmoduls die Sensorsignale in mindestens zwei verschiedene Klassen klassifiziert werden, dass unter Verwendung der Klassen ein gegenwärtiger Systemzustand des Roboters überwacht wird, und dass der Roboter bei der Ausführung alternativer Arbeitsaufgaben auf der Grundlage des gegenwärtigen Systemzustands gesteuert wird.
-
Es wird hier auch ein Controller offenbart, der ausgestaltet ist, um das vorstehende Verfahren auszuführen. Der Controller enthält eine Trägermaschine, die mit dem Roboter in Verbindung steht und ausgestaltet ist, um die Sensorsignale zu empfangen. Der Controller enthält außerdem einen Prozessor und einen konkreten nicht vorübergehenden Speicher, in dem von einem Computer ausführbare Anweisungen, welche das Zustandsklassifizierungsmodul umfassen, aufgezeichnet sind. Der Prozessor führt die Anweisungen aus, um dadurch das vorliegende Verfahren auszuführen, wie hier im Detail offengelegt wird.
-
Die vorstehenden Merkmale und Vorteile und andere Merkmale und Vorteile der vorliegenden Erfindung ergeben sich leicht aus der folgenden genauen Beschreibung der besten Arten, um die Erfindung auszuführen, wenn sie in Verbindung mit den beiliegenden Zeichnungen gelesen wird.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
1 ist eine schematische Darstellung eines Robotersystems mit einem Controller, der Zustandsklassifizierungsdaten bei der Steuerung eines geschickten Roboters während der Ausführung einer Arbeitsaufgabe oder Sequenz verwendet.
-
2 ist eine schematische Zeichnung von parallelen Hyperebenen, die von einer Support Vector Machine bei der Klassifizierung von Sensoreingaben innerhalb des in 1 gezeigten Systems erzeugt werden.
-
3 ist ein Flussdiagramm, das einen beispielhaften Steuerungsansatz zum Nachverfolgen des Systemzustands innerhalb des Robotersystems von 1 beschreibt.
-
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
-
Mit Bezug auf die Zeichnungen, in denen gleiche Bezugszeichen gleiche oder ähnliche Komponenten in den mehreren Ansichten bezeichnen, ist in 1 ein beispielhaftes Robotersystem 10 gezeigt. Das Robotersystem 10 enthält einen geschickten Roboter 110 und einen Controller 24. Wie nachstehend mit Bezug auf 2 und 3 im Detail erläutert wird, ist der vorliegende Controller 24 ausgestaltet, um das Verhalten des Roboters 110 zu steuern, wenn der Roboter eine gegebene Arbeitsaufgabe oder Sequenz ausführt. Der Controller 24 erledigt dies teilweise, indem er Zustandsklassifizierungsdaten verwendet, die unter Verwendung eines Zustandsklassifizierungsmoduls 23 erzeugt werden, zum Beispiel einer Support Vector Machine (SVM) oder einer anderen geeigneten Zustandsschätztechnik.
-
Der in 1 gezeigte Roboter 110 kann bei einer möglichen Ausführungsform als ein Humanoide ausgestaltet sein. Die Verwendung von Humanoiden kann dort vorteilhaft sein, wo eine direkte Interaktion zwischen dem Roboter 110 und beliebigen Vorrichtungen oder Systemen benötigt wird, die speziell zur menschlichen Verwendung oder Bedienung gedacht sind. Derartige Roboter weisen typischerweise eine annähernd menschliche Struktur oder ein annähernd menschliches Erscheinungsbild in der Form eines vollständigen Körpers oder eines Torsos, eines Arms und/oder einer Hand in Abhängigkeit von den benötigten Arbeitsaufgaben auf.
-
Der Roboter 110 kann eine Vielzahl von unabhängig und voneinander abhängig bewegbaren nachgiebigen Robotergelenken enthalten, wie etwa ein Schultergelenk (allgemein durch Pfeil A angezeigt), ein Ellenbogengelenk (Pfeil B), ein Handgelenk (Pfeil C), ein Nackengelenk (Pfeil D) und ein Taillengelenk (Pfeil E) sowie die verschiedenen Fingergelenke (Pfeil F), die zwischen den Fingergliedern jedes Roboterfingers 19 positioniert sind, ohne jedoch darauf beschränkt zu sein. Jedes Robotergelenk kann einen oder mehrere Freiheitsgrade (DOF) aufweisen.
-
Beispielsweise können bestimmte Gelenke wie etwa ein Schultergelenk (Pfeil A), ein Ellenbogengelenk (Pfeil B) und ein Handgelenk (Pfeil C) mindestens zwei Freiheitsgrade in der Form von Nicken und Rollen aufweisen. Auf ähnliche Weise kann das Nackengelenk (Pfeil D) mindestens drei Freiheitsgrade aufweisen, während die Taille und das Handgelenk (Pfeile E bzw. C) einen oder mehrere Freiheitsgrade aufweisen können. In Abhängigkeit vom Niveau der Aufgabenkomplexität kann sich der Roboter 110 mit mehr als 42 Freiheitsgraden bewegen, wie es mit der in 1 gezeigten beispielhaften Ausführungsform möglich ist. Eine derart hohe Anzahl von Freiheitsgraden ist charakteristisch für einen geschickten Roboter, was bei der Verwendung hierin einen Roboter mit menschenähnlichen Geschicklichkeitsniveaus bezeichnet, beispielsweise mit Bezug auf die menschenähnlichen Geschicklichkeitsniveaus in den Finger 19 und den Händen 18.
-
Obwohl es der Klarheit der Darstellung halber in 1 nicht gezeigt ist, enthält jedes Robotergelenk ein oder mehrere Gelenkstellglieder und wird von diesen angetrieben, z. B. Motoren, lineare Stellglieder, rotatorische Stellglieder, elektrisch gesteuerte einander entgegenwirkende Sehnen und dergleichen. Jedes Gelenk enthält außerdem einen oder mehrere Sensoren 29, wobei der Einfachheit halber in 1 nur die Schulter- und Ellenbogensensoren gezeigt sind. Die Sensoren 29 messen und übertragen Sensorsignale (Pfeile 22) an den Controller 24, wo sie in einem computerlesbaren Speicher 25 aufgezeichnet werden und zur Überwachung und Nachverfolgung von sich verändernden Systemzuständen während der Ausführung einer gegebenen Arbeitsaufgabensequenz verwendet werden.
-
Wenn der Roboter 110 als ein Humanoide ausgestaltet ist, kann er einen Kopf 12, einen Torso 14, eine Taille 15, Arme 16, Hände 18, Finger 19 und Daumen 21 enthalten. Der Roboter 110 kann außerdem eine für die Aufgabe geeignete Halterung oder Basis (nicht gezeigt) enthalten, wie etwa Beine, Laufflächen oder eine andere bewegbare oder stationäre Basis in Abhängigkeit von der speziellen Anwendung oder der beabsichtigten Verwendung des Roboters 110. Eine Stromversorgung 13 kann bezüglich des Roboters 110 einstückig montiert sein, z. B. kann ein wiederaufladbarer Batteriestapel, der an dem Torso 14 getragen oder mitgeführt wird, oder eine andere geeignete Energieversorgung, verwendet werden, um ausreichend elektrische Energie für die verschiedenen Gelenke bereitzustellen, um beliebige elektrisch angetriebene Stellglieder, die darin verwendet werden, mit Leistung zu versorgen. Die Stromversorgung 13 kann über einen Satz von Leistungssteuerungs- und Rückmeldungssignalen (Pfeil 27) gesteuert werden.
-
Immer noch mit Bezug auf 1 stellt der vorliegende Controller 24 eine präzise Bewegungssteuerung und Steuerung auf Systemebene der verschiedenen integrierten Systemkomponenten des Roboters 110 über Steuerungs- und Rückmeldesignale (Pfeil 11) bereit, entweder in einem geschlossenen oder einem offenen Kreis. Derartige Komponenten können die verschiedenen nachgiebigen Gelenke, Relais, Laser, Lichter, elektromagnetische Klemmvorrichtungen, und/oder andere Komponenten umfassen, die verwendet werden, um eine präzise Steuerung des Verhaltens des Roboters 110 herzustellen, welche eine Steuerung der feinen und groben Bewegungen umfasst, die benötigt werden, um ein Objekt 20 zu manipulieren, das von den Fingern 19 und dem Daumen 21 von einer oder mehreren Händen 18 ergriffen wird. Der Controller 24 ist ausgestaltet, um jedes Robotergelenk isoliert von den anderen Gelenken zu steuern, sowie, um die Aktionen von mehreren Gelenken beim Ausführen einer komplexeren Arbeitsaufgabe vollständig zu koordinieren.
-
Der Controller 24 kann als ein oder mehrere digitale Computer oder Trägermaschinen ausgeführt sein, die jeweils einen oder mehrere Prozessoren 17, einen Festwertspeicher (ROM), einen Speicher mit wahlfreiem Zugriff (RAM), einen elektrisch programmierbaren Festwertspeicher (EPROM), optische Laufwerke, magnetische Laufwerke usw., einen Hochgeschwindigkeits-Taktgeber, Analog/Digital-Schaltungen (A/D-Schaltungen), Digital/Analog-Schaltungen (D/A-Schaltungen) und beliebige benötigte Eingabe/Ausgabe-Schaltungen (E/A-Schaltungen), E/A-Geräte und Kommunikationsschnittstellen sowie Signalaufbereitungs- und Pufferelektronik aufweisen.
-
Der computerlesbare Speicher 25 kann ein beliebiges nicht vorübergehendes/konkretes Medium enthalten, das an der Bereitstellung von Daten oder computerlesbaren Anweisungen teilnimmt. Der Speicher 25 kann nicht flüchtig oder flüchtig sein. Nichtflüchtige Medien können beispielsweise optische oder magnetische Platten und anderen dauerhaften Speicher umfassen. Beispielhafte flüchtige Medien können einen dynamischen Speicher mit wahlfreiem Zugriff (DRAM) umfassen, der einen Hauptspeicher bilden kann. Andere Beispiele von Ausführungsformen für den Speicher 25 umfassen eine Diskette, eine flexible Platte oder eine Festplatte, ein Magnetband oder ein anderes magnetisches Medium, eine CD-ROM, eine DVD und/oder ein beliebiges anderes optisches Medium sowie andere mögliche Speichervorrichtungen, etwa einen Flash-Speicher.
-
Der Controller 24 enthält ein Zustandsklassifizierungsmodul 23. Das Modul 23 kann beispielsweise als eine Support Vector Machine (SVM) oder eine andere Logikschicht ausgeführt sein, die zur Bestimmung des gegenwärtigen Zustands des Robotersystems 10 aus gemessenen Sensorsignalen (Pfeile 22) geeignet ist, wie nachstehend erläutert wird. Computerlesbare Anweisungen zum Implementieren des vorliegenden Verfahrens 100 können im Speicher 25 aufgezeichnet sein und sind von dem bzw. den Prozessoren 17 des Controllers 24 unter Verwendung zugehöriger Hardwareelemente des Controllers 24 ausführbar. Eine beispielhafte Ausführungsform des vorliegenden Verfahrens 100 ist in 3 zu sehen und wird nachstehend im Detail beschrieben.
-
Das Zustandsklassifizierungsmodul 23 kann als eine Logikschicht ausgeführt sein und von dem Controller 24 während einer oder mehrerer Phasen eines überwachten Maschinenlernens selektiv ausgeführt werden, wie in der Technik gut verstanden wird. Die Verwendung des Moduls 23 ermöglicht dem Controller 24, auf effektive Weise Daten zu analysieren und Muster zu erkennen, die durch Eingabedaten dargestellt werden, etwa die verschiedenen Sensorsignale (Pfeile 22), die vom Roboter 110 im Verlauf des Ausführens einer Arbeitsaufgabe oder Sequenz empfangen werden.
-
Bei einer Ausführungsform ist das Zustandsklassifizierungsmodul 23 als eine SVM konfiguriert, welche häufig auch als ein nicht probabilistischer binärer linearer Klassifikator beschrieben wird. Der Fachmann auf dem Gebiet wird jedoch feststellen, dass andere Ansätze verwendet werden können, ohne den beabsichtigten erfinderischen Umfang zu verlassen. Zum Beispiel kann das Zustandsklassifizierungsmodul 23 alternativ als ein neuronales Netz, ein logistisches Regressionsmodell, ein Naïve-Bayes-Klassifikator, ein Perceptron-Netz und ein Algorithmus mit k nächsten Nachbarn usw. ausgeführt sein, wobei jeder Begriff in der Technik gut bekannt ist. Zur Konsistenz der Darstellung wird hier nachstehend die Ausführungsform mit SVM verwendet.
-
Für jede Eingabe kann die SVM vorhersagen, in welche von mindestens zwei Datenklassen oder Kategorien ein spezieller Eingabewert korrekt passt. Wenn ein ausreichend großer und informativer Satz von Trainingsmustern jeweils mit einer zugeordneten Klassifizierung gegeben ist, kann der Controller 24 anschließend die SVM verwenden, um jeden neuen Abtastwert der Sensorsignale (Pfeile 22) genau zu klassifizieren, wenn eine gegebene Arbeitssequenz ausgeführt wird.
-
Mit Bezug auf 2 ist eine Zeichnung 50 gezeigt, um den Klassifizierungsprozess einer SVM-Ausführungsform des Zustandsklassifizierungsmodul 23 weiter zu erläutern. Eine beispielhafte Klasse von 1 könnte sein ”Roboter 110 hält das Objekt 20”. Eine weitere beispielhafte Klasse könnte sein ”Roboter 110 hält das Objekt 20 nicht”. Die Achsen x1 und x2 stellen Eingaben von den Sensoren 29 dar, von denen zwei in 1 gezeigt sind. Folglich ist in 2 eine erste Klasse durch eine Gruppe 40 repräsentiert, und eine zweite Klasse ist durch eine Gruppe 42 repräsentiert.
-
Die SVM trennt Klassen, indem sie Werte w und b sucht, so dass die Linie, die durch die Gleichungen w·x – b = 0 (Linie 43) definiert ist, welche in der Technik auch als eine Hyperebene bezeichnet wird, die Distanz (Linie 47) zwischen den Klassen 40, 42 maximiert. Es wird darauf hingewiesen, dass w und x Vektoren sind, bei dem in 1 dargestellten Beispiel beispielsweise zweidimensionale Vektoren, und w·x das Vektorskalarprodukt ist. In einigen Fällen kann es sein, dass es keine Linie w·x – b gibt, welche die Klassen trennt. In diesem Fall kann der Controller 24 eine Koordinatentransformation auf die Sensoreingaben x = (x1, x2) anwenden, so dass die Klassen durch eine Linie im transformierten Raum getrennt werden können, wie in der Technik verstanden wird. Eine derartige Koordinatentransformation kann verwendet werden, um die Leistung des SVM-Ansatzes zu optimieren. Eine mögliche Transformation ist der Kern der radialen Basisfunktion (RBF-Kern).
-
Der Controller 24 kann zu Beginn eine Trainings/Lernphase ausführen, in der tatsächliche Sensormesswerte (Pfeile 22 in 1) von der SVM verarbeitet und im Speicher 25 aufgezeichnet werden. Die SVM berechnet zunächst eine Hyperebene, d. h. eine Linie 43. Dann werden parallele Linien oder Hyperebenen 41 und 45 von dem Controller 24 unter Verwendung jeweiliger Gleichungen (w·x – b = 1) und (w·x – b = –1) definiert. Die Werte für w und b sollen so gewählt werden, dass der Abstand oder die Trennung zwischen Hyperebenen oder den Linien 41 und 45 maximiert wird, um die Möglichkeit für Fehler bei der Klassifizierung eines gegebenen Sensorwerts zu minimieren.
-
Mit Bezug auf 3 in Verbindung mit der in 2 gezeigten Zeichnung 50 beginnt eine beispielhafte Ausführungsform des vorliegenden Verfahrens 100 bei Schritt 102, bei dem der Roboter 110 von 1 eine Arbeitsaufgabe ausführt, sei es in einer Teach/Lern-Phase oder bei der Ausführung einer tatsächlichen Arbeitsaufgabe. Nach dem Ausführen der Aufgabe bei Schritt 102 geht der Controller 24 von 1 zu Schritt 104 weiter.
-
Bei Schritt 104 zeichnet der Controller 24 einen Satz von Sensormesswerten, beispielsweise durch Aufzeichnen der verschiedenen Sensorsignale (Pfeile 22) von 1, im Speicher 25 auf. Der Controller 24 kann dann den Satz von Sensorsignalen (Pfeile 22) unter Verwendung des Moduls 23 verarbeiten, zum Beispiel der vorstehend beschriebenen SVM, oder unter Verwendung eines beliebigen anderen geeigneten alternativen Vorhersagemittels.
-
Schritt 104 kann umfassen, dass die Sensormesswerte mit zuvor aufgezeichneten Klassen oder Klassifizierungen verglichen werden, wie etwa den Beispielklassen 40 und 42, die in 2 gezeigt sind, und dass dann die Messwerte in eine dieser verschiedenen Klassen unter Verwendung existierenden Wissens aus den vorherigen Trainingsphasen gestellt werden. Nachdem der Systemstatus korrekt identifiziert wurde, geht der Controller 24 zu Schritt 106 oder 108 weiter, welche zwei mögliche divergente Arbeitsaufgaben darstellen, die in Abhängigkeit vom gegenwärtigen Systemzustand verfügbar sein können oder nicht.
-
Beispielsweise kann Schritt 106 umfassen, dass das Objekt 20 von 1 in einem gemeinsamen Griff in eine vorbestimmte Position gedreht wird, und Schritt 108 kann umfassen, dass das gleiche Objekt 20 an eine stationäre Oberfläche geschweißt wird. Bei diesem hypothetischen Beispiel kann Schritt 106 nur auftreten, wenn sich der Roboter 110 in einem ersten Systemzustand befindet und Schritt 108 kann nur auftreten, wenn sich der Roboter 110 in einem zweiten Systemzustand befindet. Folglich ist die korrekte Zustandsklassifizierung bei Schritt 104 essentiell, um zu ermöglichen, dass der Roboter 110 auf der Grundlage des Ergebnisses seiner aktuellen Aktionen durch eine willkürliche Anzahl von Ausführungsstrecken hindurchläuft.
-
Obwohl die besten Arten zum Ausführen der Erfindung im Detail beschrieben wurden, werden Fachleute auf dem Gebiet, das diese Erfindung betrifft, verschiedene alternative Konstruktionen und Ausführungsformen zum Umsetzen der Erfindung in die Praxis im Schutzumfang der beigefügten Ansprüche erkennen.