DE102013203381B4 - Verfahren und system zum trainieren eines roboters unter verwendung einer von menschen unterstützten aufgabendemonstration - Google Patents

Verfahren und system zum trainieren eines roboters unter verwendung einer von menschen unterstützten aufgabendemonstration Download PDF

Info

Publication number
DE102013203381B4
DE102013203381B4 DE102013203381.8A DE102013203381A DE102013203381B4 DE 102013203381 B4 DE102013203381 B4 DE 102013203381B4 DE 102013203381 A DE102013203381 A DE 102013203381A DE 102013203381 B4 DE102013203381 B4 DE 102013203381B4
Authority
DE
Germany
Prior art keywords
robot
ecu
task
manipulator
features
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE102013203381.8A
Other languages
English (en)
Other versions
DE102013203381A1 (de
Inventor
Leandro G. Barajas
Eric Martinson
David W. Payton
Ryan M. Uhlenbrock
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
GM Global Technology Operations LLC
Original Assignee
GM Global Technology Operations LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by GM Global Technology Operations LLC filed Critical GM Global Technology Operations LLC
Publication of DE102013203381A1 publication Critical patent/DE102013203381A1/de
Application granted granted Critical
Publication of DE102013203381B4 publication Critical patent/DE102013203381B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40512Real time path planning, trajectory generation

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Manipulator (AREA)

Abstract

Verfahren (100) zum Trainieren eines Roboters (10), um eine Roboteraufgabe in einem Arbeitsumfeld auszuführen, wobei das Verfahren (100) umfasst, dass: der Roboter (10) über seinen Konfigurationsraum hinweg durch mehrere Zustande der Roboteraufgabe bewegt wird, um dadurch dem Roboter (10) die Roboteraufgabe zu demonstrieren, wobei der Konfigurationsraum der Satz aller möglichen Konfigurationen für den Roboter (10) ist; Motorschemata (28) durch eine elektronische Steuerungseinheit (ECU) (22) aufgezeichnet werden, die eine Verhaltenssequenz des Roboters (10) beschreiben; sensorische Daten (15) durch die ECU (22) aufgezeichnet werden, die Leistungs- und Zustandswerte des Roboters (10) beschreiben, während der Roboter (10) über seinen Konfigurationsraum hinweg bewegt wird; wahrnehmbare Merkmale von Objekten (21, 23), die in der Umgebung angeordnet sind, detektiert werden; virtuelle deiktische Markierungen den detektierten wahrnehmbaren Merkmalen über die ECU (22) zugewiesen werden; und die zugewiesenen virtuellen deiktischen Markierungen und die aufgezeichneten Motorschemata (28) verwendet werden, um durch Nachahmung der demonstrierten Roboteraufgabe die Steuerung des Roboters (10) anschließend bei einer automatisierten Ausführung einer anderen Roboteraufgabe durch die ECU (22) zu ermöglichen.

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Offenbarung betrifft ein Verfahren und ein System zum Trainieren eines Roboters unter Verwendung einer von Menschen unterstützten Aufgabendemonstration.
  • HINTERGRUND
  • Roboter sind elektromechanische Vorrichtungen, die Objekte unter Verwendung einer Reihe von Robotergliedern manipulieren können. Die Roboterglieder sind miteinander durch Gelenke verbunden, wobei jedes von diesen von einem Gelenkmotor und/oder einem anderen geeigneten Aktor unabhängig oder voneinander abhängig angetrieben werden kann. Jedes Robotergelenk stellt eine unabhängige Steuerungsvariable oder einen Freiheitsgrad dar. Greiforgane, die auch als Manipulatoren bezeichnet werden, sind die speziellen Endglieder, die verwendet werden, um eine gegebene Arbeitsaufgabe oder Fertigkeit direkt auszuführen, etwa das Ergreifen eines Arbeitswerkzeugs, das Stapeln eines Teils auf ein anderes usw. Eine präzise Bewegungssteuerung durch die verschiedenen Freiheitsgrade des Roboters kann durch eine Aufgabenebene organisiert werden: eine Steuerung auf Objektebene, d. h. das Vermögen, das Verhalten eines ergriffenen Objekts zu steuern, eine Greiforgansteuerung, und eine Steuerung auf Gelenkebene. Die verschiedenen Steuerungsebenen arbeiten miteinander zusammen, um die benötigte Geschicklichkeit und die die Arbeitsaufgabe betreffende Funktionalität des Roboters zu erreichen.
  • Eine Modifikation an einem Objekt, das bei der Ausführung einer Aufgabensequenz von einem Roboter gehandhabt wird, erfordert typischerweise ein relativ kostspieliges erneutes Training der zugehörigen Steuerungshardware. Dies trifft tendenziell selbst dann zu, wenn die Oberflächen des ergriffenen Objekts selbst nicht verändert wurden. Auf ähnliche Weise können auch Veränderungen bei der Positionierung des Objekts in dem Arbeitsumfeld, das den Roboter umgibt, als Folge eines Fehlers und/oder einer nachlässigen Betriebsstabilität ein kostspieliges erneutes Training benötigen. Es ist jedoch nicht leicht, eine existierende Steuerungssoftware für Robotermanipulatoren umzurüsten, um Anforderungen durch eine sich verändernde Flexibilität zu erfüllen.
  • Die Druckschrift US 2008/0 312 772 A1 offenbart ein Bewegungssteuerungssystem für einen Roboter, bei dem ein Bewegungsablauf für den Roboter erlernt wird, indem ein entsprechender Bewegungsablauf eines Menschen analysiert und nur notwendige Teile davon extrahiert und vom Roboter gelernt werden, um den Bewegungsablauf durch den Roboter nachzubilden.
  • In der Druckschrift US 2010/0 114 807 A1 ist ein Lernsystem für Roboter mit mehreren Lernvorrichtungen offenbart, bei dem Lernergebnisse der mehreren Lernvorrichtungen zusammengeführt werden, um zu ermöglichen, dass der Roboter das Ausführen komplexer Aufgaben schnell erlernen kann.
  • Die Druckschrift JP 2003-089 082 A offenbart ein Verfahren zum Detektieren einer Begrenzungskraft zwischen Objekten, die sich wechselseitig beeinflussen, bei dem eine Kontaktfläche zwischen den Objekten und eine jeweilige Eindringtiefe bestimmt wird und daraus die Begrenzungskraft zwischen den Objekten bestimmt wird.
  • In der Druckschrift US 2009/0 326 679 A1 ist ein Verhaltensschätzsystem zum Schätzen des Verhaltens eines Instruktors offenbart, bei dem mit Hilfe eines zweiten Modells und der Position eines charakteristischen Punkts auf einer Referenztrajektorie eine geschätzte Trajektorie des Instruktors erzeugt wird und die Verhaltensweise, die einem von mehreren ersten Modellen von Referenztrajektorien entspricht, das die geringste Schwankung und die größte Stabilität aufweist, als Verhaltensweise des Instruktors geschätzt wird.
  • Die Druckschrift US 2012/0 053 728 A1 offenbart einen Roboter, der Objekte erlernen kann, und ein zugehöriges Verfahren. Der Roboter umfasst einen Greifer zum Ergreifen des zu erlernenden Objekts und ein optisches System zum Beobachten des Objekts und des Greifers. Ein Controller steuert die Greiferbewegung und ein Bildverarbeitungsmittel analysiert die Daten vom optischen System, um das Objekt zu identifizieren.
  • In der Druckschrift JP H09-325 806 A ist ein Teachverfahren für Roboter offenbart, bei dem verschiedenartige zu behandelnde Objekte, die geteacht werden, anhand von Gleichungen/Ungleichungen definiert und gespeichert werden. Bei der Reproduktion der geteachten Abläufe wird das jeweilige Objekt anhand der gespeicherten Gleichungen/Ungleichungen erkannt und eine passende Trajektorie für den Roboter erzeugt.
  • Die Aufgabe der Erfindung besteht darin, Verfahren und Systeme bereitzustellen, die ein dynamisches Zuweisen von Arbeitsaufgaben für Manipulatoren auf einfache und schnelle Weise ermöglichen.
  • Diese Aufgabe wird durch das Verfahren nach Anspruch 1 sowie das System nach Anspruch 7 gelöst.
  • ZUSAMMENFASSUNG
  • Es werden hier ein Verfahren und ein System zum Trainieren eines Roboters unter Verwendung einer von Menschen unterstützten Aufgabendemonstration und von virtuellen deiktischen bzw. hinweisenden Markierungen, die wahrnehmbaren Merkmalen des Arbeitsumfelds des Roboters zugewiesen werden, offenbart. Herkömmliche Manipulatoren sind typischerweise so konstruiert, dass sie in einem hochgradig strukturierten Umfeld mit einem Minimum an Variabilität arbeiten, das oft spezielle Bewegungstrajektorien erfordert. Diese Trajektorien müssen für jede neue Roboteraufgabe manuell programmiert werden. Selbst Systeme, die eine Sensorrückkopplung für eine autonome Trajektorienplanung beinhalten, benötigen eine erhebliche Interaktion mit einem Programmierer, um die Roboteraufgabe zu identifizieren, die erforderlichen Bewegungsparameter zu justieren, die benötigten Greifpositionen des Manipulators festzulegen und Trajektorien an kritischen Stellen zu justieren. Der vorliegende Ansatz beabsichtigt, einen speziellen Mechanismus zum dynamischen Zuweisen von Arbeitsaufgaben für derartige Manipulatoren bereitzustellen, beispielsweise für Greifer mit zwei Fingern oder mehreren Fingern.
  • Im Speziellen umfasst das vorliegende Verfahren, dass der Roboter durch den Konfigurationsraum des Roboters hindurch bewegt wird, um eine Arbeitsaufgabe zu demonstrieren, und dass Motorschemata aufgezeichnet werden, die eine benötigte Verhaltenssequenz des Roboters während der Bewegung beschreiben. Das Verfahren umfasst außerdem, dass sensorische Daten aufgezeichnet werden, die Leistungs- und Zustandswerte des Roboters beschreiben, während er sich über den Konfigurationsraum hinweg bewegt, und dass wahrnehmbare Merkmale von Objekten detektiert werden, die in der Umgebung angeordnet sind. Zudem umfasst das Verfahren, dass die virtuellen deiktischen Markierungen diesen detektierten wahrnehmbaren Merkmalen zugewiesen werden, z. B. Objekten, Stellen, Zeitpunkten, Orten usw., wobei die Markierungen später verwendet werden, um das automatisierte Verhalten des Roboters zu lenken. Die zugewiesenen Markierungen und die aufgezeichneten Motorschemata werden verwendet, um anschließend den Roboter bei der Ausführung einer anderen Roboteraufgabe zu steuern.
  • Bei einer anderen Ausführungsform umfasst das Verfahren, dass Datensequenzen von sich verändernden Positionen eines Manipulators des Roboters aus Bewegungen des Roboters, die von einem Bediener gesteuert werden, erfasst werden und Datensegmente aus den erfassten Datensequenzen extrahiert werden. Die Datensegmente stellen Aktionen des Roboters während der Ausführung einer gegebenen Aufgabe dar. Das Verfahren kann umfassen, dass Objekte in der Arbeitsumgebung des Roboters detektiert werden und mindestens einigen der detektierten Objekte eine virtuelle deiktische Markierung und/oder andere wahrnehmbare Daten wie etwa ein Zeitpunkt, ein Ort, Stellen usw. zugewiesen werden. Dies stellt eine Assoziation der räumlichen Orientierung eines beobachteten Objekts in der Umgebung zu Bewegungen her, die vom Roboter mit Bezug auf dieses Objekt durchgeführt werden. Danach werden die Markierungen kombiniert, um eine allgemeine Markierung zu erzeugen. Die allgemeine Markierung führt einen Datensatz mit visuellen Merkmalen mit, die den Markierungen gemeinsam sind, zusammen mit rotatorischen und translatorischen Versätzen, die benötigt werden, damit diese Markierungen übereinstimmen.
  • Der vorliegende Ansatz teacht eine Roboterarbeitsaufgabe für einen Roboter unter Verwendung einer Reihe von gelernten Beispielen, wobei jedes in gewisser Weise von Menschen demonstriert wurde, und von zugehörigen primitiven Bewegungen oder ”Aufgabenprimitiven”. Beispielhafte Aufgabenprimitive umfassen das Bewegen von Punkt A zu Punkt B, das Öffnen eines Greifers, das Schließen eines Greifers, usw. Kontextbasierte Aktionsauswahlsequenzen lenken mit Hilfe der Wahrnehmung eine Bewegung zwischen den Primitiven in einem dynamischen Umfeld. Der vorliegende Ansatz kann mit minimalem Trainieren oder Umprogrammieren des Roboters schnell auf neue und andere Arbeitsaufgaben angewendet werden.
  • Die vorstehend erwähnten Markierungen werden vom Roboter durch eine direkte Demonstration von Menschen gelernt. Beispielsweise kann ein Bediener bei einem einfachen Ergreifen eines Objekts durch einen Greifer mit zwei Fingern den Greifer physisch handhaben und ihn in eine Position derart bewegen, dass er das Objekt bei einem Punkt A ergreift, oder eine Eingabevorrichtung, etwa einen Joystick, verwenden, um den Roboter mit dem gleichen Effekt rückwärts zu verfahren. Dann bewegt der Bediener den Roboterarm und den Greifer zu einem Punkt B und öffnet den Greifer, wodurch das Objekt bei Punkt B abgestellt wird.
  • Währenddessen zeichnet der Roboter wahrnehmbare Daten auf, die beispielsweise den Annäherungswinkel, den Abrückwinkel, die Position und die Orientierung des Objekts beschreiben, z. B. unter Verwendung einer oder mehrerer 3D-Kameras, Gelenkwinkelsensoren usw. Der Roboter zeichnet auch die Kräfte oder Drehmomente, die vom Greifer auf das ergriffene Objekt aufgebracht werden, Gelenkwinkel und möglicherweise andere Informationen auf. Der Roboter lernt genau, wo das Quellenobjekt platziert war, ohne tatsächlich die genaue Strecke zu lernen, die der Greifer genommen hat. Diese Informationen werden während einer Nachverarbeitung und Ausführung aus Motorschemata und den aufgezeichneten Markierungen eingefüllt.
  • Es wird auch ein System offenbart, das einen Roboter mit einem Arm und einem mit dem Arm verbundenen Manipulator, ein Sensorfeld, das sensorische Daten misst, welche Leistungs- und Zustandswerte des Roboters beschreiben, und einen Wahrnehmungssensor umfasst, der Bilder von Objekten aufnimmt, die im Umfeld angeordnet sind. Das System umfasst außerdem eine elektronische Steuerungseinheit (ECU) in Verbindung mit dem Roboter, dem Sensorfeld und den Wahrnehmungssensoren. Die ECU enthält aufgezeichnete Motorschemata, die eine Verhaltenssequenz des Roboters beschreiben. Die ECU ist ausgestaltet, um das vorstehende Verfahren auszuführen.
  • 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 Roboters und einer elektronischen Steuerungseinheit (ECU), die virtuelle deiktische Markierungen Merkmalen des Arbeitsumfelds des Roboters zuweist, die mithilfe einer Demonstration von Menschen gelernt wurden.
  • 2 ist ein Flussdiagramm, das ein Verfahren zum Teachen des Roboters von 1 mithilfe einer Demonstration von Menschen und einer Markierungszuweisung beschreibt.
  • 3 ist ein Flussdiagramm, das die Fertigkeitserkennung und Markierungszuweisung beschreibt, die im Verfahren von 2 verwendet werden.
  • 4 ist ein Blockdiagramm von verschiedenen Logikelementen, die in der in 1 gezeigten ECU verwendet werden.
  • 5 ist ein Flussdiagramm, das eine Robotergrifferkennung beschreibt, die als Teil des Verfahrens von 2 verwendet wird.
  • 6 ist ein Flussdiagramm, das eine Kostenschätzung beschreibt, wie sie im Verfahren von 2 verwendet wird.
  • GENAUE BESCHREIBUNG
  • Mit Bezug auf die Zeichnungen, bei denen gleiche Bezugszeichen in den mehreren Ansichten gleiche oder ähnliche Komponenten bezeichnen, ist in 1 ein beispielhafter Roboter 10 gezeigt. Der Roboter 10 kann eine Basis 14 enthalten, die auf einer Oberfläche 11 positioniert ist. Der Roboter 10 kann einen Arm 16 enthalten, der ein oder mehrere Armsegmente 18 aufweist. Ein Greiforgan oder Manipulator 20 ist an einem Ende des mit Bezug auf die Basis 14 am weitesten distalen Segments 18 des Arms 16 positioniert. Der Manipulator 20 kann bei einer beispielhaften Ausführungsform ein Greifer sein, der mehrere Finger 27 zum Ergreifen eines Objekts 23 aufweist.
  • Robotergelenke 17 können die verschiedenen Armsegmente 18 verbinden. Jedes Robotergelenk 17 kann von einem Gelenkaktor, etwa einem Motor 19, angetrieben werden, um den Manipulator 20 während der Ausführung einer Arbeitsaufgabe an gewünschte Positionen zu bewegen. Sensor-Rohdaten (Pfeil 15), die Roboterleistungswerte beschreiben, werden an eine elektronische Steuerungseinheit (ECU) 22 weitergeleitet und von dieser verwendet, um die Aktionen des Roboters 10 zu steuern. Die Sensor-Rohdaten (Pfeil 15) beschreiben Leistungs- und Zustandswerte des Roboters 10. Beispielhafte Sensor-Rohdaten (Pfeil 15) können ein Drehmoment, eine Kraft, eine Geschwindigkeit und eine Beschleunigung des Manipulators 20 umfassen.
  • Zur Sammlung derartiger Daten, kann ein Sensorfeld 33 mit dem Roboter 10 verbunden sein, das in 1 der Einfachheit halber mit der Basis 14 verbunden gezeigt ist. Das Sensorfeld 33 kann Kraftaufnehmer, Drehmomentsensoren, Beschleunigungsmesser, Positionssensoren und dergleichen umfassen. Das Sensorfeld 33 kann ”weiche” Sensoren umfassen, die bestimmte Werte aus anderen direkt gemessenen Werten berechnen, wie in der Technik gut verstanden wird. Zudem kann ein Wahrnehmungssensor 25 mit Bezug zum Roboter 10 positioniert und ausgestaltet sein, um das Verhalten des Roboters 10 in seinem Arbeitsumfeld wie nachstehend erläutert zu filmen, auf Video aufzuzeichnen, Bilder davon zu erfassen und/oder es auf andere Weise aufzuzeichnen.
  • Auf die ECU 22 kann mit Hilfe einer Anwenderschnittstelle 24 zugegriffen werden. Die ECU 22 kann Logikelemente 40 enthalten, wie nachstehend mit Bezug auf 4 erläutert ist, und beliebige benötigte Prozessanweisungen, die zum Ausführen des vorliegenden Verfahrens 100 geeignet sind, wie nachstehend mit Bezug auf 2 beschrieben ist. Die ECU 22 kann als ein oder mehrere digitale Computer oder Trägermaschinen ausgeführt sein, die jeweils einen oder mehrere Prozessoren, Festwertspeicher (ROM), Speicher mit wahlfreiere Zugriff (RAM), 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 notwendige Eingabe/Ausgabe-Schaltungen (I/O-Schaltungen), I/O-Vorrichtungen und Kommunikationsschnittstellen sowie Signalaufbereitungs- und Pufferelektronik aufweisen. Eine Eingabevorrichtung 13 kann von der Anwenderschnittstelle 24 getrennt oder darin eingebaut sein. Die Eingabevorrichtung 13 kann eine 3D-Maus, ein Joystick oder eine andere Steuerungsvorrichtung sein, die geeignet ist, um den Roboter 10 durch eine von Menschen demonstrierte Aufgabe wie nachstehend erläutert zu bewegen oder rückwärts zu verfahren.
  • Jeder von einem Computer lesbare Speicher, der in Verbindung mit der ECU 22 verwendet wird, kann einen nicht vorübergehenden/konkreten Speicher umfassen, der nicht flüchtig oder flüchtig sein kann. 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 umfassen eine Diskette, eine flexible Platte, 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 Roboter 10 von 1 wird durch eine von Menschen unterstützte Demonstration und Lernen geteacht, um eine spezielle Aufgabensequenz auszuführen. Die ECU 22 führt dies durch, indem sie virtuelle deiktische Markierungen aufzeichnet, die wahrnehmbare Merkmale des Arbeitsumfelds anzeigen, in dem der Roboter 10 arbeitet, d. h. das physische Umfeld, das den Roboter 10 umgibt. Die Markierungen können mit Objekten in dem Umfeld in Beziehung stehen, z. B. dem Objekt 23 oder einem anderen Objekt 21 wie gezeigt, Stellen, Zeitpunkten, Orten usw. Außerdem zeichnet die ECU 22 Motorschemata 28 im Speicher auf, wobei die Motorschemata 28 die benötigten Aktionen oder Fertigkeiten des Roboters 10 beschreiben. Diese Motorschemata 28 werden durch die Markierungen bei der automatisierten Ausführung einer Arbeitsaufgabe geleitet, um das tatsächliche Umfeld des Roboters 10 zu berücksichtigen, das von den Wahrnehmungssensoren 25 wahrgenommen wird, wie nachstehend beschrieben ist.
  • Der Roboter 10 lernt benötigte Greifpositionen und Annäherungsrichtungen, wenn er das Ergreifen eines Objekts lernt, z. B. des Beispielobjekts 23. Diese Informationen werden an die Markierungen angehängt, die von der ECU 22 zur Laufzeit beliebigen wahrnehmbaren Merkmalen zugewiesen werden, die in dem Umfeld detektiert wurden, in dem der Roboter 10 arbeitet. Wie nachstehend im Detail erläutert wird, lernt der Manipulator 20 zuerst die benötigten Markierungen mit Hilfe einer Demonstration von Menschen und zeichnet diese auf und weist dann auf dynamische Weise die gelernten Markierungen detektierten wahrnehmbaren Merkmalen zu. Dies wiederum ermöglicht eine schnelle Anpassung an ein sich veränderndes Umfeld, wobei dennoch mehrstufige Montageprozesse abgeschlossen werden.
  • Lerntheorie
  • Die Wiederholung einer beliebigen neuen Montageaufgabe kann in drei verschiedene Teile unterteilt werden: die Demonstration der Aufgabe durch einen menschlichen Bediener, etwa das Ergreifen des Objekts 23 und das Stapeln des ergriffenen Objekts 23 auf ein anderes Objekt 21, einen Satz von Roboterfertigkeiten und zugehörigen Funktionen, und ein Unterstützungsbezugssystem zum Extrahieren der benötigten Markierungen und zum Zuweisen dieser Markierungen zur Laufzeit zu beliebigen anderen Objekten, die von den Wahrnehmungssensoren 25 detektiert werden, z. B. von einer 3D-Stereokamera, einer Kamera mit hoher Auflösung und/oder anderen Sensoren, die über einen drahtgebundenen oder drahtlosen Kommunikationskanal 26 mit der ECU 22 in Verbindung stehen.
  • Mit der Demonstration durch Menschen beginnend betrachtet der vorliegende Ansatz, dass ein menschlicher Bediener den Roboter 10 von 1 physikalisch durch oder über den Konfigurationsraum hinweg bewegt, indem er beispielsweise den Arm 16 und/oder den Manipulator 20 durch alle Schritte einer benötigten Aufgabe hindurch bewegt. Dies kann umfassen, dass die Eingabevorrichtung 13 verwendet wird, um den Roboter 10 zu bewegen, den Roboter 10 rückwärts zu verfahren usw. Für eine einfache Ergreifen- und Aufheben-Aufgabe, d. h. wenn der Roboter 10 den Manipulator 20 verwendet, um ein Objekt 23 wie gezeigt zu ergreifen, bewegt der Bediener zuerst den Manipulator 20 mit Bezug auf das Objekt 23 an Ort und Stelle und ergreift dann das Objekt 23 auf korrekte Weise unter Verwendung des Manipulators 20, z. B., indem die Finger 27 mit ausreichend Kraft zusammendrückt werden, um eine geeignete Griffpose herzustellen. Dann bewegt der Bediener den Arm 16 und den Manipulator 20, um das Objekt 23 dadurch aufzuheben und zu bewegen. Wie in der Technik verstanden wird, beschreibt der Begriff ”Konfiguration” eine Pose des Roboters 10, während der Begriff ”Konfigurationsraum” den Satz aller möglichen Konfigurationen für den Roboter 10 bezeichnet. Der Konfigurationsraum kann in Abhängigkeit von der Komplexität des Roboters 10 von einer einfachen Ebene bis zu einer speziellen euklidischen Gruppe reichen. Wenn der Roboter 10 ein Manipulator mit einer feststehenden Basis mit N Drehgelenken und ohne geschlossene Kreise bzw. Regelkreise ist, ist der Konfigurationsraum (C) für diesen Roboter N-dimensional.
  • Obwohl der Roboter 10 von 1 potentiell Aufgabensequenzen und einige relevante wahrnehmbare Daten identifizieren kann, indem einfach ein menschlicher Bediener beobachtet wird, der die Aufgabe durchführt, besteht einer der kompliziertesten Teile der Handhabung neuer Objekte und der Schaffung neuer Anordnungen im Bestimmen, wo der Manipulator 20 platziert werden soll und wie der Werkzeugmittelpunkt (TCP, TCP von tool center point) an den korrekten Ort gebracht werden soll. Indem ein menschlicher Bediener den Arm 16 und den Manipulator 20 manuell durch jede Aufgabe bewegt, während der Roboter 10 mit Hilfe der ECU 22 seine eigenen Sensor-Rohdaten (Pfeil 15) aufzeichnet, liefert jede Demonstration einen Datenstrom von Erfahrungen (T), mit deren Hilfe der Roboter 10 diese schwierigen Probleme mit einer Nachverarbeitung lösen kann, d. h. dem Schritt unmittelbar im Anschluss an das von Menschen unterstützte Lernen.
  • Hinsichtlich der Roboterfertigkeiten beruht die Nachahmung des Verhaltens einer demonstrierten Arbeitsaufgabe auf dem Erkennen und Wiederholen bekannter Roboterfertigkeiten, etwa dem Ergreifen des Objekts 23, dem Absetzen des Objekts 23 usw. Jede Fertigkeit im Repertoire des Roboters 10, die als von der ECU 22 aufgezeichnete Motorschemata 28 ausgeführt sein kann, kann durch vier allgemeine Funktionen definiert werden: eine Recognizer- oder Erkennungsfunktion, eine Predictor- oder Vorhersagefunktion, eine Kostenschätzungsfunktion und Motorschemata 28. Für die Nachahmung ist der Ursprung jeder Fertigkeit ohne Bedeutung. Sie kann entweder erlernt oder vorprogrammiert sein. Die zuvor erwähnten vier allgemeinen Funktionen können wie folgt dargestellt werden:
    Figure DE102013203381B4_0002
  • Die Recognizer-Funktion, d. h. recognizeri(T) identifiziert 1) den frühesten Zeitschritt ts im aufgezeichneten Datenstrom T, an dem die Fertigkeit abgeschlossen ist; 2) eine freie Markierung Ma, die Informationen enthält, die für die aufgabenspezifische Ausführung der Fertigkeit i notwendig sind; und 3) einen erkannten Endzustand E für das manipulierte Objekt, z. B. das Objekt 23, welches vom Roboter 10 ergriffen und auf einem anderen Objekt, z. B. dem Objekt 21, platziert werden kann. Die in der freien Markierung Ma enthaltenen Informationen sind für jede Fertigkeit spezifisch, können aber einen Manipulationsobjekttyp, einen Annäherungsvektor, eine Griffposition, einen Abrücken- oder Ausgangsvektor usw. enthalten. Im Allgemeinen enthält jede Markierung Ma alles Wissen, das notwendig ist, damit die Motorschemata 28 von 1 die Aufgabe abgesehen von einem spezifischen Manipulationsziel wiederholen können. Unter Verwendung der Daten in der Markierung wird dieses Ziel zur Laufzeit relevanten wahrnehmbaren Objekten zugewiesen.
  • Die Vorhersagefunktion, d. h. predictor (Ma, Pb, Wt) identifiziert den erwarteten Endzustand als Folge des Zuweisens einer Markierung (Ma) zu einem speziellen visuell detektierten Objekt. Der aktuelle Zustand der Welt Wt kann definiert sein als: Wt = {P(t), J(t), sensors(t)} wobei P(t) der Satz aller Objekte ist, die im Zeitschritt t visuell identifiziert und lokalisiert sind, J(t) die aktuellste Gelenkwinkelkonfiguration des Roboters 10 ist und sensors(t) der Satz von Daten ist, die von allen anderen verfügbaren Sensoren, die in Verbindung mit dem Roboter 10 verwendet werden, zurückgegeben wurden. Die Vorhersagefunktion identifiziert dann Wt+1. Dies ermöglicht, dass eine von der ECU 22 durchgeführte Markierungszuweisung zur Laufzeit Markierungszuweisungen benachteiligt, die in der Zukunft nicht zu einer weiteren Markierungszuweisung führen werden.
  • Die Kostenschätzungsfunktion, d. h. estimatori(Ma, E, Wt) ist dann der Laufzeitmechanismus zum Identifizieren des besten wahrgenommenen Objekts, dem eine Markierung (Ma) zugewiesen werden soll. Diese Funktion gibt die Kosten des Zuweisens der extrahierten Markierung Ma zu allen Objekten im Satz P zurück, wenn Wt und der Satz aus allen erkannten Endzuständen E gegeben sind. Wenn das Wissen verfügbar ist, kann die Kostenschätzungsfunktion Strafen für schwer zu erreichende oder unmöglich zu erreichende Positionen enthalten, wenn die Position des Manipulators und/oder Hindernisplatzierungen in dem Umfeld gegeben sind.
  • Schließlich verwenden die deiktischen Motorschemata 28 von 1, d. h. motor_schemai(Ma, Pb, Wt) die extrahierte Markierung Ma, ein zugewiesenes Objekt Pb und den aktuellen Zustand der Welt Wt, um die nächsten Gelenkwinkel J(t+1) zu bestimmen, die an den Roboter 10 gesandt werden sollen. Im Allgemeinen nimmt diese Endfunktion an, dass die ECU 22 ein relativ schnell aktualisierender reagierender Controller ist, sodass er schnell auf beliebige Veränderungen im Umfeld oder im Zuweisungsobjekt reagiert. Die tatsächliche Konfiguration der ECU 22 ist nicht wichtig, sofern es einen Weg gibt, um die aktuellen Gelenkwinkel des Roboters 10 zu schätzen, um eine Roboterbewegung zu verändern, wenn Markierungen (Ma) zur Laufzeit neu zugewiesen werden.
  • Unterstütztes Lernen
  • Mit Bezug auf 2 ist das vorliegende Verfahren 100 mit Bezug auf das Lernen einer einfachen Aufheben- und Absetzenoperation beschrieben, zum Beispiel einer Aufgabe, bei der das Objekt 23 von 1 auf dem Objekt 21 gestapelt werden soll. Das Verfahren 100 beginnt mit Schritt 102, bei dem der menschliche Bediener ein Quellenobjekt, bei diesem Beispiel das Objekt 23, und ein Zielobjekt, welches in diesem Fall das Objekt 21 ist, wählt.
  • Bei Schritt 104 wird die Position und Orientierung des Objekts 21 mithilfe der Wahrnehmungssensoren 25 von 1 aufgezeichnet. Schritt 104 kann umfassen, dass ein oder mehrere 3D-Kameras oder andere Vorrichtungen aktiviert werden, um die Position und Orientierung in Echtzeit aufzuzeichnen. Wie in der Technik verstanden wird, kann eine Bildverarbeitungssoftware verwendet werden, um eine Merkmalserkennung bereitzustellen.
  • Bei Schritt 106 bewegt der Bediener den Roboter dann physikalisch über seinen Konfigurationsraum (C) hinweg. Beispielsweise können der Arm 16 und/oder der Manipulator 20 entweder manuell durch einen direkten Kontakt und eine aufgebrachte Kraft oder indirekt mithilfe der Eingabevorrichtung 13 von 1 oder unter Verwendung einer Kombination dieser beiden bewegt werden. Dies bewegt den Arm 16 und den Manipulator 20 zu der gewünschten Position.
  • Bei Schritt 108 werden die Sensor-Rohdaten (Pfeil 15) von 1 der ECU 22 zugeführt, um Leistungs- und Zustandswertinformationen zu liefern, welche möglicherweise die Kraft und das Drehmoment, die auf den Manipulator 20 aufgebracht werden, umfassen, aber nicht darauf beschränkt sind. Die Wahrnehmungssensoren 25 können auch verwendet werden, um Annäherungs- und Abrückwinkel zu bestimmen, d. h. den Winkel, mit dem sich der Manipulator 20 jeweils bei den Ergreifen- und Loslassen-Stufen der Aufgabe dem Objekt 23 nähert und davon weg bewegt. Schritt 108 kann umfassen, dass Datensequenzen von Positionen des Manipulators 20 aus den bedienergesteuerten Bewegungen des Roboters 10 möglicherweise auch unter Verwendung der Wahrnehmungssensoren 25 erfasst werden.
  • Bei Schritt 110 führt die ECU 22 eine Nachverarbeitung aus, um Markierungen zu Objekten im Umfeld zuzuweisen, welche die bei Schritt 108 detektierten wahrnehmbaren Merkmale beschreiben. Wie vorstehend erwähnt wurde, sind die Markierungen virtuell und werden daher mithilfe der ECU 22 aufgezeichnet, um die wahrgenommenen Merkmale beispielsweise mit Objektmerkmalen, Stellen, Orten, Start/Stopp-Zeitpunkten und dergleichen in Beziehung zu setzen.
  • Bei Schritt 112 steuert die ECU 22 den Roboter 10 in einer nachfolgenden Aufgabe unter Verwendung der Markierungen von Schritt 110, um die aufgezeichneten Motorschemata 28 zu lenken. Der Roboter 10 kann daher das gelernte Manöver unter Verwendung der aufgezeichneten Markierungen und Schemata wiederholen, wobei die Schemata Aufgabenprimitive definieren, wie etwa ”Objekt aufheben”, ”Objekt absetzen”, ”von Punkt A zu Punkt B bewegen” usw.
  • Schritt 112 kann umfassen, dass eine Kostenfunktion und eine Grifferkennungsanalyse verwendet werden, um zu bestimmen, wie die Motorschemata 28 mithilfe der Markierungen auf die beste Weise gelenkt werden sollen, wenn eine aktuelle Kenntnis des Umfelds vorhanden ist, in dem der Roboter 10 arbeitet. Daher kann Schritt 112 in mehrere Teilaufgaben unterteilt werden, wie nachstehend mit Bezug auf 36 beschrieben ist.
  • Das vorliegende Problem des Lernens durch Nachahmung fokussiert sich auf die Unterstützung der Erkennung von Roboterfertigkeiten und der Zuweisung von Markierungen in Echtzeit zu detektierten Objekten im Umfeld des Roboters 10. Dieses Problem ist in zwei verschiedene Bereiche unterteilt: Fertigkeitenerkennung und Markierungszuweisung. Jeder von diesen wird nun nacheinander mit Bezug auf 3 erörtert.
  • Fertigkeitenerkennung
  • Wenn ein Satz von bekannten Fertigkeiten mit Erkennungsfunktionen R gegeben ist, wobei R den frühesten Zeitschritt zurückgibt, bei dem eine Fertigkeit abgeschlossen ist, analysiert das folgende iterative Verfahren 200, welches als Teil des Verfahrens 100 verwendet werden kann, den Trainingsdatenstrom T, um Roboterfertigkeiten zu identifizieren. Nach dem Start (*) umfasst Schritt 202, dass die ECU 22 von 1 verwendet wird, um alle Erkennungsfunktionen R ablaufen zu lassen, um die speziellen Motorschemata 28 zu finden, d. h. die Fertigkeit i, die zuerst stattfindet, und außerdem den Zeitpunkt tsa, an dem die erkannte Fertigkeit beendet ist. Zum Beispiel kann ein Roboter 10 für ein Objekt in der Form eines Würfels drei verschiedene Grifftypen kennen und damit repräsentieren die drei Griffe drei Schemata oder Fertigkeiten.
  • Bei Schritt 204 wird die von der Erkennungsfunktion Ri erzeugte gelernte Markierung Ma in einem Satz aus gültigen Markierungen m gespeichert. Beispielsweise kann es drei gültige Markierungen geben, die den drei Grifftypen in dem Beispiel von Schritt 202 entsprechen.
  • Bei Schritt 206 entfernt die ECU 22 alle Trainingsdaten bis zu tsa aus dem Datenstrom T.
  • Bei Schritt 208 stellt die ECU 22 fest, ob im Datenstrom T irgendwelche zusätzlichen Aktionen detektiert werden. Wenn zusätzliche Aktionen detektiert werden, wiederholt das Verfahren 200 Schritt 202. Andernfalls ist das Verfahren 200 beendet (**).
  • Das Endergebnis des iterativen Prozesses, der hier als das beispielhafte Verfahren 200 verkörpert ist, ist ein Satz aus Markierungen m, die aus einer einzigen Trainingssitzung T gelernt wurden. Wenn es mehr als eine Trainingssitzung gibt, welche die gleiche Demonstration behandelt, dann kann das Verfahren 200 für alle Trainingssitzungen wiederholt werden, wobei der Satz von Markierungen m jedes Mal vergrößert wird. Eine verallgemeinerte Kenntnis der Aufgabensequenz kann aus mehreren Beispielen abgeleitet werden, wie hier nachstehend später erläutert ist.
  • Markierungszuweisung
  • Der vorstehend erwähnte Markierungszuweisungsschritt 204 tritt zur Laufzeit auf, nachdem alle Markierungen extrahiert worden sind und der Roboter 10 von 1 angewiesen worden ist, eine spezielle Aufgabe zu wiederholen. Dieser Schritt geht von einer Wahrnehmungsfunktion aus, welche den Typ, die Position und die Orientierungen von allen detektierten Objekten im Umfeld in einer Schleife mit regelmäßigen Aktualisierungen zurückgibt. Ausgehend von bekannten Objektmodellen, etwa CAD-Zeichnungen von Fahrzeugteilen, ist eine modellbasierte Objekterkennung und Positionsidentifikation durch zwei oder mehr Kameras, z. B. die Wahrnehmungssensoren 25 von 1, machbar und robust im Hinblick auf vorhandenes Rauschen. Sofern derartige objektbezogene Informationen verfügbar sind, ist die Zuweisung von Markierungen zu einem speziellen Objekt eine Suche, um diejenige Kombination aus Markierung Ma und Objekt Pk mit den geringsten Kosten da,k unter Verwendung der Wahrnehmungszuweisungsfunktion für die geeignete Fertigkeit zu finden.
  • Bei Schritt 204 findet die ECU 22 von 1 für jede Markierung Ma das wahrnehmbare Objekt Pk mit den minimalen Abschlusskosten. Die Kosten zur Berücksichtigung einer zukünftigen Markierungszuweisung können durch Vorhersagen von Wt+1 justiert werden, zum Beispiel wie folgt:
    Figure DE102013203381B4_0003
  • Dann identifiziert die ECU 22 die Kombination {Ma, Pk} mit den geringsten Gesamtkosten, wobei zu der Kombination, die beim vorherigen Zeitschritt verwendet wurde, ein kleiner negativer Wert als Hysteresewert addiert wird, um eine Schwingung zu verhindern. Die ECU 22 sendet dann die identifizierte Markierung/die zugewiesene Objektposition zu einer Verhaltensschleife zur Ausführung durch ein deiktisches Motorschema Si, das der Markierung Ma zugeordnet ist, die im Speicher aufgezeichnet sein kann. Die Markierung mit den geringsten Ausführungskosten kann an das Verhaltenssteuerungsmodul von 4 weitergeleitet werden. Die Logikelemente 40 von 4 werden nun in weiterem Detail beschrieben.
  • Implementierung
  • 4 veranschaulicht beispielhafte Logikelemente 40 der ECU 22 von 1. Der vorliegende Ansatz kann beispielsweise auf der Microsoft Roboter Entwickler Software (MRDS) implementiert werden. Die in 4 schematisch gezeigten Logikelemente 40 sind diejenigen, die speziell auf das Lernen durch Nachahmung gerichtet sind und folglich sind andere nicht damit in Beziehung stehende Hardware- und Softwareelemente der ECU 22 der Einfachheit und Klarheit halber weggelassen.
  • Die Wahrnehmung in der ECU 22 von 1 ist eine Mischung aus Kapazitäten, die jeweils eine Rückmeldung in Echtzeit von verschiedenen Robotersensoren zur aktiven Steuerung, Bilder von simulierten Kameras, und Objektpositionen, die von der ECU 22 direkt geholt werden, verwenden. Die folgende Beschreibung bezieht sich auf eine einzige Roboterfertigkeit, d. h. einen einfachen Griff. Im Allgemeinen stellt die Greiffertigkeit eine gute Vorlage zur Implementierung von Roboterfertigkeiten bereit, da das Lösen des Griffs eine ähnliche Aufgabe ist und da andere Fertigkeiten, etwa Verbundaktionen, als eine Erweiterung des Ergreifens und Loslassens konstruiert werden können.
  • Auf einer Ebene enthalten die Logikelemente 40 verschiedene Hardwaretreiber 50 für den Roboter 10 von 1. Beispielhafte Hardwaretreiber 50 können einen Armtreiber 52, einen Manipulator/Greifer-Treiber 54, einen 3D-Bewegung-Bedienelementetreiber 56, z. B. einen Treiber für eine 3D-Maus, einen Joystick usw. der in 1 gezeigten Eingabevorrichtung 13, und beliebige benötigte Simulationstreiber 58 umfassen. Die Treiber 50 stehen in Verbindung mit einer Anzahl von Steuerungsmodulen, welche die benötigten Aufgaben des in 1 gezeigten Roboters 10 steuern. Diese Steuerungsmodule können ein Objektwahrnehmungsmodul 46 umfassen, das Aufgaben wie etwa Datensammlung, Merkmalsextraktion, und Synchronisation möglicherweise unter Verwendung beliebiger Kameras bereitstellt, die in den Wahrnehmungssensoren 25 von 1 enthalten sind. Ein Verfolgungsmodul 47 kann Objektverfolgungsaufgaben durchführen, z. B. des Objekts 23 von 1, wenn es sich bei der Ausführung einer Aufgabensequenz in einem Arbeitsgebiet bewegt. Das Verfolgungsmodul 47 sucht nach Objekten und/oder Merkmalen in und extrahiert diese aus den wahrgenommenen Daten, die durch Lernen gelenkt sind. Ein Verhaltenssteuerungsmodul 48 bewegt den Roboter 10 an eine Zielstelle oder ein Ziel, wobei Hindernisse vermieden werden, und koppelt außerdem mit dem Manipulator 20.
  • Jedes dieser Steuerungsmodule 46, 47 und 48 steht mit einem Lernmodul 41 auf oberster Ebene in Verbindung. Das Lernmodul 41 zeichnet während des Trainings wahrnehmbare Daten in einer Datenbank 44 auf und verwendet die aufgezeichneten wahrnehmbaren Daten in der Zukunft, um eine Wahrnehmungsaufmerksamkeit und Verhaltenssteuerung durch Zuweisung von Markierungen und Aufgaben zu lenken. Das Lernmodul 41 kann ein Modul 42 für passive Dienste und ein Modul 43 für aktive Dienste enthalten. Das Modul 42 für passive Dienste kann das Aufgabenlernen und die Verallgemeinerung handhaben, z. B. die Kernschritte des Beobachtens von Start- und Stopppositionen, die von einem menschlichen Bediener gelenkt werden, von Annäherungs- und Abrückwinkeln usw. Das Modul 43 für aktive Dienste kann zum Planen eines Trainings, zur Fehlerdetektion, zur Markierungszuweisung und dergleichen verwendet werden. Die Anwenderschnittstelle 24 stellt bei der beispielhaften Ausführungsform von 4 einen Zugriffspunkt auf das Lernmodul 41 und das Verhaltenssteuerungsmodul 48 bereit.
  • Grifferkennung
  • Mit Bezug auf 5 ist ein beispielhaftes Verfahren 300 gezeigt, um Schritte dazustellen, die für die Grifferkennung bei der Ausführung einer nachfolgenden automatisierten Aufgabe benötigt werden, zum Beispiel wenn Schritt 112 von 3 ausgeführt wird.
  • Mit Schritt 302 beginnend, wird eine Trainingssitzung in den Speicher der ECU 22 geladen.
  • Bei Schritt 304 werden dann die zugehörigen Erkennungsfunktionen wie vorstehend beschrieben für alle bekannten Motorschemata/Fertigkeiten für die geladene Sitzung von der ECU 22 von 1 ablaufen gelassen.
  • Bei Schritt 306 wird dann die Markierung, die der am frühsten abgeschlossenen erkannten Fertigkeit zugeordnet ist, beispielsweise in der Datenbank 44 von 4 gespeichert. Eine beispielhafte Implementierung einer Erkennungsfunktion ist hier für eine einfache Greiffertigkeit mit zwei Fingern beschrieben. Die Implementierung der Erkennungsfunktion für eine grundlegende Greiffertigkeit ist unkompliziert, da es einen speziellen detektierbaren Zeitpunkt ist, an dem der Roboter 10 von einem geöffneten Greifer zu einem geschlossenen Greifer wechselt. Wenn eine Rückmeldung vom Manipulator 20 verfügbar ist, dann kann die detektierte Anwesenheit eines Objekts im Manipulator 20 in die Erkennungsfunktion integriert sein. Der Zeitschritt, bei dem dieser Übergang im Datenstrom T auftritt, wird als der Greifpunkt tsgrasp dargestellt. Dieser Zeitpunkt plus ein konstanter Versatz wird an das Lernmodul 41 von 4 zurückgegeben, um den detektierten Abschluss einer erkannten Fertigkeit anzuzeigen.
  • Die Erkennungsfunktion gibt außerdem eine Markierung Ma zurück, die zur Laufzeit wahrnehmbaren Objekten zugewiesen werden soll. Diese Markierung sollte genügend Informationen enthalten, damit die Kostenschätzungsfunktion die Kosten zum Ergreifen des Objekts vorhersagen kann, und damit die allgemeinen Motorschemata den demonstrierten Griff an einem Objekt duplizieren können, dem die Markierung zugewiesen worden ist. Für eine Greiffertigkeit sind die eindeutigen Informationen, die aus der Demonstration durch Menschen extrahiert werden sollen, der Objekttyp, die Endposition des Roboters 10 relativ zum Objekt, d. h. die Griffposition, und die Richtung relativ zum Objekt, aus der die Griffposition angenähert werden soll.
  • Schritt 308 umfasst, dass die Griffposition identifiziert wird. Diese Position ist am einfachsten zu identifizieren, da der Punkt im Datenstrom T, bei dem der Roboter 10 mit dem Ergreifen des Objekts, z. B. des Objekts 23 von 1, beginnt, bekannt ist. Das Identifizieren der Griffposition kann umfassen, dass die globale Position Xrobot und die Orientierungsmatrix relativ zur Basis Rrobot des Robotergreiforgans, d. h. des Manipulators 20, identifizieren werden, indem die Gelenkwinkel, die zum Zeitschritt tsgrasp aufgezeichnet sind, extrahiert werden und Vorwärtskinematikmodelle, etwa das Denavit-Hartenberg-Modell, angewendet werden. Das Objekt 23 und damit der Objekttyp O wird identifiziert, indem das Objekt gewählt wird, das beim Zeitschritt tsgrasp eine aufgezeichnete Position aufweist, die dem geschlossenen Manipulator 20 am nächsten liegt. Falls verfügbar, kann außerdem eine visuelle Rückmeldung, die das ergriffene Objekt identifiziert, später im Datenstrom extrahiert werden, um die Wahrscheinlichkeit für Fehler zu reduzieren.
  • Bei Schritt 310 von 5 wandelt die ECU 22 von 1 Bewegungsparameter in einen Bezugsrahmen relativ zu dem Objekt zur Identifikation von Bewegungszielen um, wenn eine zugewiesene deiktische Markierungsposition gegeben ist: mtarget_rotation = Rrobot(tsgrasp)·R –1 / object(tsgrasp) m -target = (X -robot(tsgrasp) – X -object(tsgrasp))·R –1 / object(tsgrasp)
  • Das Identifizieren der Richtung, von der aus man sich dem Greifpunkt nähern soll, ist schwieriger, weil nicht bekannt ist, wie die ”Annäherung” in T beginnt. Eine Kenntnis der Annäherungsrichtung ist wichtig, um ein Umwerfen des Objekts mit dem befestigten Werkzeug zu verhindern, wenn sich der Manipulator 20 in Position bewegt. Eine Option zum Identifizieren dieses Startpunkts für die Annäherungsstrecke besteht darin, einen früheren Zeitschritt in dem aufgezeichneten Datenstrom zu suchen, bei dem der Roboter immer noch einen minimalen Abstand zurücklegen muss, um die gewünschte Greifstelle zu erreichen: X -app = X -robot(tsapp) – X -robot(tsgrasp), so dass |X -app| > travel_distmin
  • Wenn die bekannten Objektmodelle, die mit dem Wahrnehmungssystem verwendet werden, gegeben sind, kann dieses einfache Minimaldistanzmodell verbessert werden, indem die Größe des ergriffenen Objekts D in drei Dimensionen mit aufgenommen wird, um variable Größen zu berücksichtigen. Box = k - + D -original(O)·Robject(tsgrasp)
  • Dies gibt eine gedrehte Begrenzungsbox zurück, die den Greifpunkt umgibt, außerhalb welcher sich das Robotergreiforgan bewegen muss, um ein Stoßen an das Zielobjekt zu vermeiden. Der Vektor k ist ein konstanter Versatz, mit typischerweise dem gleichen Wert für alle Dimensionen, um einen zusätzlichen Fehler zuzulassen, etwa eine Greifergröße oder einen Manövrierraum.
  • Ein Problem bei diesem Verfahren zum Identifizieren einer Annäherungsrichtung besteht darin, dass es annimmt, dass der menschliche Demonstrator eine gerade Linie zum Erreichen des Ziels zurückgelegt hat. Obwohl dies oft zutrifft, ist es nicht immer der Fall. Auch erfahrene Anwender müssen gelegentlich neu justieren, wenn die Position des Manipulators 20 falsch eingeschätzt wurde, wobei manchmal zurückgefahren wird und man sich dem Zielobjekt wieder nähert. Ein willkürlicher Distanzschwellenwert, von dem aus eine geradlinige Annäherung berechnet werden soll, ignoriert diese Korrekturen und kann möglicherweise einen sicheren Annäherungsvektor an den Greifpunkt nicht korrekt erfassen. Aus diesem Grund kann ein Filter verwendet werden, das mit der aktuellen Geschwindigkeit bis zum ersten Punkt außerhalb der Begrenzungsbox gewichtet ist. Bei dieser Annäherung kann es weniger wahrscheinlich sein, ein willkürlich dimensioniertes Objekt umzuwerfen.
  • Figure DE102013203381B4_0004
  • Das Identifizieren der Annäherungsstrecke bei Schritt 310 umfasst das Umwandeln der Annäherungsstrecke in einen objektbezogenen Bezugsrahmen, um ihre Verwendung mit zugewiesenen deiktischen Markierungen in willkürlichen Positionen zu vereinfachen: m -approach = (F -app(tsapp) + X -robot(tsgrasp) – X -object)·R –1 / object(tsgrasp)
  • Die objektbezogene Greiforganposition (mtarget), Rotation (mtarget_rotation) und Annäherungsrichtung (mapproach) werden in der erzeugten deiktischen Markierung zusammen mit dem Greifobjekttyp, der bei der Markierungszuweisung verwendet werden soll, und Motorschemafunktionen in Echtzeit gespeichert.
  • Greifkosten schätzen
  • Wenn ein Satz von Markierungen gegeben ist, die aus den Trainingsdaten extrahiert wurden, ist der nächste wichtige Aspekt des Lernmoduls 41 von 4 das dynamische Zuweisen von Markierungen zu realen Objekten und damit das reaktive Wählen einer auszuführenden Fertigkeit in Ansprechen auf den aktuellen Zustand des Umfelds. Um diese Bemühung zu unterstützen, kann das Objektwahrnehmungsmodul 46 von 4 einen aktualisierten Weltzustand Wt zum Lernen in einer Schleife mit regelmäßiger Aktualisierung liefern, bei dem alle wahrnehmbaren Daten analysiert worden sind, um bekannte Objekttypen und ihre Positionen zu extrahieren sowie die aktuellste Roboterkonfiguration (d. h. Gelenkwinkel und Sensorinformationen) anzuzeigen. Unter Verwendung von Wt identifiziert das Lernmodul 41 von 4 dann die Kosten aller möglichen Zuweisungen von Markierungen zu detektierten Objekten, indem es die geeignete Kostenschätzungsfunktion für jede Markierung aufruft, und die Zuweisung mit den geringsten Gesamtkosten wählt. Die Markierung mit den geringsten Gesamtkosten wird an das Verfolgungsmodul 47 und das Verhaltenssteuerungsmodul 48 von 4 weitergeleitet.
  • Ein Beispiel für eine Implementierung einer Kostenschätzungsfunktion wird in der Form einer Greiffertigkeitsschätzung bereitgestellt. Die Kostenschätzungsfunktionen oder Werte von der ECU 22 von 1, die als Eingänge empfangen werden, umfassen: 1) eine Greifmarkierung, die von der vorstehend beschriebenen Erkennungsfunktion erzeugt wurde; 2) einen Satz gültiger Endzustände, der einen gewünschten Positions- und Rotationsversatz zwischen zwei Objekten, z. B. den Objekten 21 und 23 von 1, angibt; und 3) den aktuellen Zustand der Welt, der die aktuelle Gelenkwinkelkonfiguration des Roboters 10 und den Satz aller Objekte umfasst, die bei diesem Zeitschritt visuell erkannt und lokalisiert sind. Das Ziel der Greiffertigkeitsschätzungsfunktion besteht in der Quantifizierung der Kosten für das Aufheben des spezifizierten Objekts. Im Allgemeinen identifiziert dieser Kostenschätzungsprozess die zum Ergreifen eines bekannten Objekts benötigte Abstandsveränderung, wobei er Strafen für nicht erreichbare Zielpunkte oder schwierig zu erreichende Objekte zuweist.
  • Mit Bezug auf 6 ist die Kostenschätzungsfunktion, die bei der Ausführung des Verfahrens 100 von 2 verwendet wird, mithilfe eines beispielhaften Verfahrens 400 dargestellt. Mit Schritt 402 beginnend kann die ECU 22 Objekte des falschen Typs ausfiltern und kann unendliche Kosten für Objekte zuweisen, die von einem anderen Objekttyp als demjenigen Objekttyp sind, der in der bereitgestellten Markierung verwendet wird.
  • Schritt 404 kann umfassen, dass Objekte ausgefiltert werden, die sich bereits in einem gültigen Endzustand befinden, und dass Objekten in dem Umfeld, die bereits korrekt platziert sind, unendliche Kosten zugewiesen werden.
  • Schritt 406 kann umfassen, dass der benötigte Griffpunkt in globaler Koordination für jedes verbleibende Objekt, das ergriffen werden soll, identifiziert wird: Rgrasp = mtarget_rotation·Robject X -grasp = X -object + m -target·Robject X -approach = X -object + m -approach·Robject wobei mtargetrotation, mtarget und mapproach aus der Eingabemarkierung M entnommen sind und Rgrasp und Xgrasp die Zielrotationsmatrix und Griffposition für dieses Objekt sind. Xapproach ist der Endpunkt der Linie, entlang welcher das Robotergreiforgan die Annäherung an den Greifort versuchen sollte, um ein Umwerfen des Zielobjekts zu vermeiden.
  • Bei Schritt 408 kann die ECU 22 ein inverses Kinematikmodell des Roboters 10 verwenden, um den Satz von Gelenkwinkeln mit der minimal notwendigen Veränderung pro Gelenk zum Erreichen von Xgrasp und Xapproach zu identifizieren. Die Kosten da,b zum Zuweisen der Markierung Ma zum Objekt Pb ohne Strafen ist der euklidische Abstand von der aktuellen Greiforganposition zur Zielposition Xgrasp.
  • Die Wahl der Kostenschätzungsfunktion ist willkürlich. Die Veränderung der Gelenkwinkel wurde vorstehend anstelle des euklidischen Abstands beschrieben, aber dieser Ansatz zeigte potentielle Probleme beim Erreichen aller Zielobjekte. Obwohl in der Praxis einige Objekte nah genug sind, damit ein reaktives Motorschema ein Ergreifen dieses Objekts versucht, kann der tatsächliche Zielpunkt gemäß der inversen Kinematik des Roboters 10 gerade außerhalb der Reichweite liegen, und kann somit zu einem falschen unendlichen Wert führen. Eine weitere Lösung dafür besteht darin, für Griffe, von denen angenommen wird, dass sie außerhalb der Reichweite liegen, endliche Strafen zuzuweisen, und die reaktiven Motorschemata, die den Roboter 10 steuern, diese Griffe versuchen zu lassen, wenn andere leichter zu ergreifende Objekte bereits aufgehoben worden sind und in einen korrekten Endzustand platziert wurden.
  • Immer noch mit Bezug auf 6 kann Schritt 410 umfassen, dass Strafen für nicht erreichbare Gelenkwinkelkonfigurationen zugewiesen werden. Wenn die inverse Kinematikfunktion nahelegt, dass entweder der Greifpunkt oder der Annäherungspunkt nicht erreichbar sind, kann da,b eine kalibrierte Strafe zugewiesen werden.
  • Bei Schritt 412 kann die ECU 22 Strafen für Objekte zuweisen, die aufgrund von Hindernissen in der Strecke des Annäherungsvektors nicht erreichbar sind. Derartige Hindernisse können durch verschiedene Mittel detektiert werden, etwa mithilfe des Hinderniswahrnehmungsmoduls 46, das in 4 gezeigt ist.
  • Visuelle Merkmale Aufnehmen
  • Die vorstehende Beschreibung nimmt an, dass alle Objekte P unabhängige physikalische Objekte sind, die von einem externen visuellen Erkennungssystem erkannt und lokalisiert werden. Dieses System ermöglicht das Lernen aus einer Demonstration von Manipulationsaufgaben durch Menschen, die derartige Objekte betreffen, vorausgesetzt, sie sind sichtbar. Jedoch kann ein derartiges Wahrnehmungssystem Probleme verursachen, wenn teilmontierte Objekte manipuliert werden oder wenn Objekte mit einer gewissen Rotationssymmetrie gehandhabt werden.
  • Im ersten Fall kann es sein, dass der Roboter 10 von 1 nicht in der Lage ist, korrekt zu identifizieren, was er gerade manipuliert, weil der Roboter 10 nicht über ein vollständiges Modell der Teilanordnung verfügt. Zum Beispiel kann es sein, dass eine Tür mit eingeführten Schrauben unmöglich von einer Tür ohne derartige Schrauben unterschieden werden kann, wenn für die Kombination aus Tür und Schrauben kein Wahrnehmungsmodell verfügbar ist. Im letzteren Fall kann ein Objekt mit einer gewissen Rotationssymmetrie, sei es visuell symmetrisch, d. h. es führt zu willkürlichen Richtungsergebnissen von einem visuellen Erkennungssystem, oder funktionssymmetrisch, d. h. visuell eindeutig orientiert, aber während einer Manipulation drehbar, ohne die Anordnung zu beeinflussen, bewirken, dass der Roboter 10 gültige Markierungen fälschlich bestraft oder sie als unerreichbar aussondert, wodurch erreichbare Objekte im Arbeitsraum zurückgelassen werden.
  • Die Antwort auf dieses Problem ist zweifach. Erstens werden mehr visuelle Merkmale benötigt, um den visuellen Raum besser darzustellen. Menschen können zwischen vielen derartigen Problemen unter Verwendung allgemeiner Merkmale wie etwa Ecken, Farben oder Ränder unterscheiden, und daher benötigt ein Roboter diese Merkmale zusätzlich zu Objekterkennungskapazitäten. Zweitens braucht der Roboter 10 die Kapazität zur Verallgemeinerung über mehrere Versuche hinweg, um diejenigen Merkmale zu identifizieren, die sich zwischen Beispielen nicht verändern, und sie zu einem existierenden Wahrnehmungsmodell hinzuzufügen. Auf diese Weise lernt der Roboter 10, welche visuellen Merkmale neben dem Basisobjektmodell für die Montagaufgabe kritisch sind.
  • Verallgemeinerung einer Markierung
  • Der vorliegende Ansatz kann unter Verwendung eines simulierten visuellen 3D-Bildgebungssystems, das über dem Roboterarbeitsraum montiert ist, implementiert werden. Dieses stellt ein Farbbild und Bereichsinformationen bereit, aus denen Ecken und Farb-Blobs in einem Bild gefunden und in 3D lokalisiert werden können. Standardmäßig ist die Höhe eines detektierten Merkmals der höchste Punkt im Arbeitsraum innerhalb eines Pixels des visuellen Mittelpunkts. Während des Trainings werden diese allgemeinen Merkmale zu dem Datenstrom T hinzugefügt, der an die geeigneten Erkennungsfunktionen weitergeleitet werden soll, sobald die Aufgabendemonstration abgeschlossen ist.
  • Fertigkeitenerkennung
  • Um die Anwesenheit neuer visueller Merkmale im Datenstrom zuzulassen, werden Erkennungsfunktionen justiert, um alle visuellen Merkmale aufzuzeichnen, welche interessierende Objekte bei kritischen Zeitpunkten umfassen, wie etwa dem Ergreifen des Objekts oder dem Absetzen desselben. Alle Merkmale enthalten einen Typ und eine 3D-Stelle sowie eine Drehung, sofern verfügbar. Um die Rechenlast zu minimieren, kann der Satz der interessierenden visuellen Merkmale auf einen kalibrierten Bereich um den Greif/Loslasspunkt herum begrenzt werden.
  • Markierungsverallgemeinerung
  • Eine neue Verallgemeinerungsfunktion ist dann für die Feststellung verantwortlich, dass zwei Markierungen gleich sind, und für das Suchen der Schnittmenge der Merkmalssätze dieser beiden. Die Verallgemeinerungsfunktion empfängt zwei Markierungen als Eingabe und gibt eine einzige neue Markierung des gleichen Typs wie die Eingaben aus. Aufgrund von Variationen in der Praxis zwischen Szenarien kann man wählen, die Eingaben nicht zu löschen, sondern stattdessen die neue verallgemeinerte Markierung parallel zu verwenden. generalizor(Ma, Mb) ⇒ Mnew
  • Die Verallgemeinerungsfunktion löst ein Gleichungssystem für die Greiffertigkeit. Wenn zwei Markierungen Ma und Mb tatsächlich das gleiche Beispiel sind, dann sollte es irgendeine Translation Xtransf und Rotation Rtransf geben, die Ma in Mb umformen wird. Die Herausforderung besteht darin, den Satz von Übereinstimmungsmerkmalen in beiden Markierungen zu identifizieren, für welche diese Transformation gültig ist. X -feature,b = (X -feature,a – X -robot,a)·Rtransf + X -transf Rfeature,b = Rtransf·Rfeature,a
  • Xfeature,b Rfeature,b sind die Stelle und die Rotation eines einzelnen aufgezeichneten Merkmales, wobei implementierte Merkmale Ecken, Farb-Blobs und interessierende Objekte umfassen. Wenn Ma und Mb Variationen der gleichen allgemeinen Markierung sind, dann sollte unter Verwendung eines Levenberg-Marquardt(LM)-Lösers zum Auflösen nach Xtransf und Rtransf der Gesamtfehler zwischen der Position/Rotation der gelösten Merkmale und den in Mb aufgezeichneten Positionen kleiner als ein Schwellenwert sein. Es wird angemerkt, dass die Rotationskomponente dieser Gleichungen nur enthalten ist, wenn ein Merkmal, das eine Objektstelle umfasst, zur Aufnahme in Betracht gezogen wird. Darüber hinaus kann die Rotationskomponente eines Merkmals mit bekannter Orientierung unter Verwendung dieser Trennung unabhängig von der Relativposition fallen gelassen werden, was Symmetrieuntersuchungen praktikabel macht. Das Ergreifen eines Würfels benötigt daher vier nicht ebene Merkmale, welche drei Ecken und ein Objektmittelpunkt oder vier Ecken usw. sein können.
  • Die vorstehenden Gleichungen lösen nicht nach der Rotation des Robotergreifers, z. B. des Manipulators 20 von 1, relativ zu der Merkmalssammlung auf. Nach dem Identifizieren eines möglichen Satzes von übereinstimmenden Merkmalen kann ein zusätzliches Filter verwendet werden, um zu verifizieren, dass Robotergreiferrotationen relativ zum ergriffenen Objekt für beide Markierungen übereinstimmen.
  • Figure DE102013203381B4_0005
  • Kostenschätzung mit Verallgemeinerten Markierungen
  • Die vorstehend beschriebene Kostenschätzung verändert sich nicht, sobald eine Sammlung übereinstimmender Merkmale im aktuellen Wahrnehmungsraum identifiziert wurde. Um diese übereinstimmenden Merkmale zu finden, kann man den gleichen LM-basierten Problemlöser verwenden, um Merkmalssätze zu identifizieren, welche mit einem Minimum an zusätzlichem Fehler übereinstimmen. Deren zugehörige Drehung wird dann die Drehung des ”Objekts”, das der Roboter aufnehmen soll. Unter Verwendung der Drehung dieses neuen ”Objekts” bleiben die vorstehend beschriebenen Kostenschätzungsgleichungen gleich.
  • Suchmodellraum
  • Ein Hauptnachteil dieses auf visuellen Merkmalen beruhenden Ansatzes ist die Auswirkung der Überdeckung. Beispielsweise können an der Unterseite eines Objekts angeordnete Ecken für eine Deckenkamera aufgrund des Blickwinkels nicht an allen Stellen im Arbeitsraum sichtbar sein. Auf ähnliche Weise können andere Objekte sichtbare Merkmale vor einer einzigen Kamera verbergen. Daher können allgemeine Modelle erheblich beeinträchtigt werden, wenn ein spezieller Satz mit visuellen Merkmalen verwendet wird, die nicht immer sichtbar sind. Im Fall von objektspezifischen Merkmalen im Gegensatz zu Merkmalen, die durch die Kombination von zwei Objekten erzeugt werden, ist eine mögliche Lösung, eine a-priori-Kenntnis von Merkmalstellen, die aus dem Objektmodell erhalten wurden, in Verbindung mit Echtzeitinformationen von Objektposition und Rotation, welche durch die Objektverfolgung zurückgegeben werden, zu verwenden.
  • Im Gegensatz zu verallgemeinerten Markierungen, die von der Sichtbarkeit von Merkmalen abhängen, kann das Objektverfolgungssystem, z. B. das Verfolgungsmodul 47 von 4, eine Wolke aus sichtbaren Merkmalen verwenden, um das Objekt aus einem beliebigen Winkel zu identifizieren. Diese Wolke von Merkmalen kann a priori entweder aus einer detaillierten Abtastung des Objekts oder durch Drehen des Objekts vor der Kamera, d. h. einem Teil der Wahrnehmungssensoren 25 von 1, extrahiert werden. Wenn man zur gleichen Zeit die relativen Positionen von biologisch plausiblen Merkmalen wie etwa Ecken, Rändern und/oder Farb-Blobs extrahiert, kann man die 3D-Positionen aller derartigen Merkmale als eine Transformation vom Mittelpunkt des Objekts aus in Echtzeit schätzen, ob diese Merkmale nun sichtbar sind oder nicht. Nun sind diese Merkmale zu Abgleichszwecken immer sichtbar.
  • Das Lernen durch Nachahmung mithilfe der ECU 22 von 1, welche die Logikelemente 40 von 4 aufweist, stellt ein leistungsfähiges Werkzeug zum schnellen Neutrainieren einer Roboterarbeitskraft bereit. Es ist daher für die Entwicklung flexibler Anlagen und Montagelinien von Bedeutung. Ohne eine Repräsentation des flexiblen Lernens jedoch kann eine Demonstration durch Menschen nicht korrekt auf einen Roboterpartner übertragen werden. Deiktische Markierungen wie vorstehend beschrieben stellen eine derartige flexible Repräsentation bereit. Diese um Fertigkeiten, die der Roboter sehr gut kennt, herum organisierten Markierungen können zunächst bei der Demonstration durch Menschen erkannt und dann ankommenden wahrnehmbaren Daten in Echtzeit zugewiesen werden, wodurch der Roboter durch sich verändernde Umfelder und sogar mehrstufige Montageaufgaben geführt wird.
  • Dieser Ansatz kann bei verschiedenen auf einem Manipulator basierenden Szenarien verwendet werden, welche Stapel-, Bestückungs- und Stift-in-Loch-Aufgaben umfassen. Darüber hinaus können, wie vorstehend angemerkt, mehrere Demonstrationen durch logische Ableitung kombiniert werden, um deiktische Markierungen mit komplexen Zielen und Symmetriebedingungen auf der Grundlage von allgemeinen visuellen Merkmalen wie etwa Ecken und Farb-Blobs zu identifizieren. Ein schnelles Training von Robotern wird somit durch die Verwendung von vorbestimmten Aufgabenprimitiven für komplexe Montageaufgaben ermöglicht, ohne ein kostspieliges erneutes Training von Robotern und ohne auf CAD-Modelle zuzugreifen.
  • Obwohl die besten Arten zum Ausführen der Erfindung im Detail beschrieben wurden, werden Fachleute auf dem Gebiet, das dieses Erfindung betrifft, verschiedene alternative Konstruktionen und Ausführungsformen zum Umsetzen der Erfindung in die Praxis im Umfang der beigefügten Ansprüche erkennen.

Claims (10)

  1. Verfahren (100) zum Trainieren eines Roboters (10), um eine Roboteraufgabe in einem Arbeitsumfeld auszuführen, wobei das Verfahren (100) umfasst, dass: der Roboter (10) über seinen Konfigurationsraum hinweg durch mehrere Zustande der Roboteraufgabe bewegt wird, um dadurch dem Roboter (10) die Roboteraufgabe zu demonstrieren, wobei der Konfigurationsraum der Satz aller möglichen Konfigurationen für den Roboter (10) ist; Motorschemata (28) durch eine elektronische Steuerungseinheit (ECU) (22) aufgezeichnet werden, die eine Verhaltenssequenz des Roboters (10) beschreiben; sensorische Daten (15) durch die ECU (22) aufgezeichnet werden, die Leistungs- und Zustandswerte des Roboters (10) beschreiben, während der Roboter (10) über seinen Konfigurationsraum hinweg bewegt wird; wahrnehmbare Merkmale von Objekten (21, 23), die in der Umgebung angeordnet sind, detektiert werden; virtuelle deiktische Markierungen den detektierten wahrnehmbaren Merkmalen über die ECU (22) zugewiesen werden; und die zugewiesenen virtuellen deiktischen Markierungen und die aufgezeichneten Motorschemata (28) verwendet werden, um durch Nachahmung der demonstrierten Roboteraufgabe die Steuerung des Roboters (10) anschließend bei einer automatisierten Ausführung einer anderen Roboteraufgabe durch die ECU (22) zu ermöglichen.
  2. Verfahren (100) nach Anspruch 1, wobei das Bewegen des Roboters (10) über seinen Konfigurationsraum hinweg umfasst, dass ein Roboterarm (16) und/oder ein Manipulator (20) des Roboters (10) manuell rückwärts verfahren werden.
  3. Verfahren (100) nach Anspruch 1, wobei der Roboter (10) mit einer Eingabevorrichtung (13) in Verbindung steht, und wobei das Bewegen des Roboters (10) über seinen Konfigurationsraum hinweg umfasst, dass die Bewegung mithilfe der Eingabevorrichtung (13) befohlen wird.
  4. Verfahren (100) nach Anspruch 1, wobei das Aufzeichnen sensorischer Daten (15) umfasst, dass eine Kraft und ein Drehmoment aufgezeichnet werden, die von dem Manipulator (20) auf ein Objekt (23) aufgebracht werden, das von dem Manipulator (20) während der Demonstration der Aufgabe ergriffen wird.
  5. Verfahren (100) nach Anspruch 1, wobei das Detektieren von wahrnehmbaren Merkmalen eines Objekts (21, 23), das in dem Umfeld angeordnet ist, das Verwenden einer Kamera (25) umfasst, um die wahrnehmbaren Merkmale visuell zu detektieren.
  6. Verfahren (100) nach Anspruch 1, wobei das Verwenden einer Kamera (25), um die wahrnehmbaren Merkmale visuell zu detektieren, das visuelle Detektieren eines Oberflächenmerkmals des Objekts (23) umfasst.
  7. System, das umfasst: einen Roboter (10) mit einem Arm (16) und einem Manipulator (20), der mit dem Arm (16) verbunden ist; ein Sensorfeld (33), das sensorische Daten (15) misst, welche Leistungs- und Zustandswerte des Roboters (10) beschreiben; einen Wahrnehmungssensor (25), der Bilder von Objekten (21, 23) aufnimmt, die im Umfeld angeordnet sind; und eine elektronische Steuerungseinheit (ECU) (22) in Verbindung mit dem Roboter (10), dem Sensorfeld (33) und den Wahrnehmungssensoren (25), die aufgezeichnete Motorschemata (28) enthält, welche eine Verhaltenssequenz des Roboters (10) beschreiben, wobei die ECU (22) ausgestaltet ist, um: die sensorischen Daten (15) aufzuzeichnen, wenn der Arm (16) und der Manipulator (20) von einem menschlichen Bediener über den Konfigurationsraum des Roboters (10) hinweg durch mehrere Zustände einer Roboteraufgabe bewegt werden; wahrnehmbare Merkmale und die von Wahrnehmungssensoren (25) aufgenommenen Bilder zu detektieren; den detektierten wahrnehmbaren Merkmalen virtuelle deiktische Markierungen zuzuweisen; und die zugewiesenen virtuellen deiktischen Markierungen und die aufgezeichneten Motorschemata (28) zu verwenden, um den Roboter (10) durch Nachahmung der demonstrierten Roboteraufgabe bei einer automatisierten Ausführung einer anderen Roboteraufgabe zu steuern.
  8. System nach Anspruch 7, wobei die ECU (22) ferner ausgestaltet ist, um: einzelne deiktische Markierungen selektiv zu kombinieren, um eine verallgemeinerte Markierung zu erzeugen, die einen Datensatz von wahrnehmbaren Merkmalen mitführt, die den kombinierten einzelnen Markierungen gemeinsam sind, zusammen mit rotatorischen und translatorischen Versätzen, die benötigt werden, damit die einzelnen Markierungen übereinstimmen.
  9. System nach Anspruch 7, wobei die ECU (22) ausgestaltet ist, um Datensequenzen von Positionen des Manipulators (20) aus bedienergesteuerten Bewegungen des Roboters (10) zu erfassen.
  10. System nach Anspruch 7, ferner umfassend: eine Eingabevorrichtung (13) in Verbindung mit der ECU (22), wobei der Arm (16) und der Manipulator (20) von einem menschlichen Bediener während der Aufzeichnung der sensorischen Daten (15) unter Verwendung der Eingabevorrichtung (13) bewegt werden.
DE102013203381.8A 2012-03-15 2013-02-28 Verfahren und system zum trainieren eines roboters unter verwendung einer von menschen unterstützten aufgabendemonstration Active DE102013203381B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/420,677 2012-03-15
US13/420,677 US8843236B2 (en) 2012-03-15 2012-03-15 Method and system for training a robot using human-assisted task demonstration

Publications (2)

Publication Number Publication Date
DE102013203381A1 DE102013203381A1 (de) 2013-09-19
DE102013203381B4 true DE102013203381B4 (de) 2015-07-16

Family

ID=49044151

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013203381.8A Active DE102013203381B4 (de) 2012-03-15 2013-02-28 Verfahren und system zum trainieren eines roboters unter verwendung einer von menschen unterstützten aufgabendemonstration

Country Status (3)

Country Link
US (1) US8843236B2 (de)
JP (1) JP2013193202A (de)
DE (1) DE102013203381B4 (de)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018207921B3 (de) 2018-05-18 2019-06-19 Kuka Deutschland Gmbh Steuern eines Roboters
US10730183B2 (en) 2017-06-15 2020-08-04 Fanuc Corporation Learning device, controller, and control system
DE102021202340A1 (de) 2021-03-10 2022-09-15 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum steuern eines roboters zum aufnehmen und inspizieren eines objekts und robotersteuereinrichtung

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9119655B2 (en) 2012-08-03 2015-09-01 Stryker Corporation Surgical manipulator capable of controlling a surgical instrument in multiple modes
JP5469216B2 (ja) * 2012-07-31 2014-04-16 ファナック株式会社 バラ積みされた物品をロボットで取出す装置
US9226796B2 (en) 2012-08-03 2016-01-05 Stryker Corporation Method for detecting a disturbance as an energy applicator of a surgical instrument traverses a cutting path
KR102304096B1 (ko) 2012-08-03 2021-09-24 스트리커 코포레이션 로봇 수술을 위한 시스템 및 방법
US9056396B1 (en) * 2013-03-05 2015-06-16 Autofuss Programming of a robotic arm using a motion capture system
US9694495B1 (en) * 2013-06-24 2017-07-04 Redwood Robotics Inc. Virtual tools for programming a robot arm
US9186795B1 (en) * 2013-06-24 2015-11-17 Redwood Robotics, Inc. Programming and execution of force-based tasks with torque-controlled robot arms
DE102013222456A1 (de) * 2013-11-05 2015-05-07 Kuka Laboratories Gmbh Verfahren zum Programmieren von Bewegungsabläufen eines redundanten Industrieroboters und zugehöriger Industrieroboter
US9778650B2 (en) * 2013-12-11 2017-10-03 Honda Motor Co., Ltd. Apparatus, system and method for kitting and automation assembly
US9649764B1 (en) * 2013-12-13 2017-05-16 University Of South Florida Systems and methods for planning a robot grasp that can withstand task disturbances
EP3083160A4 (de) * 2013-12-17 2017-08-23 Syddansk Universitet Vorrichtung zur dynamischen umschaltung von roboterkontrollpunkten
DE102014204475A1 (de) * 2014-03-11 2015-09-17 Kuka Systems Gmbh Verfahren zum Betreiben eines Roboters
US9579799B2 (en) * 2014-04-30 2017-02-28 Coleman P. Parker Robotic control system using virtual reality input
US9737990B2 (en) * 2014-05-16 2017-08-22 Microsoft Technology Licensing, Llc Program synthesis for robotic tasks
US9403273B2 (en) 2014-05-23 2016-08-02 GM Global Technology Operations LLC Rapid robotic imitation learning of force-torque tasks
JP6459227B2 (ja) * 2014-06-02 2019-01-30 セイコーエプソン株式会社 ロボットシステム
DE102015204641B4 (de) * 2014-06-03 2021-03-25 ArtiMinds Robotics GmbH Verfahren und System zur Programmierung eines Roboters
US9630318B2 (en) * 2014-10-02 2017-04-25 Brain Corporation Feature detection apparatus and methods for training of robotic navigation
US10789543B1 (en) * 2014-10-24 2020-09-29 University Of South Florida Functional object-oriented networks for manipulation learning
US9804593B1 (en) 2014-12-12 2017-10-31 X Development Llc Methods and systems for teaching positions to components of devices
JP6582530B2 (ja) * 2015-05-11 2019-10-02 富士通株式会社 支援プログラム、支援方法および支援装置
KR101689627B1 (ko) * 2015-05-18 2016-12-26 국방과학연구소 구동장치의 불균형 토크 보상 제어장치 및 방법
US9925662B1 (en) 2015-06-28 2018-03-27 X Development Llc Generating a trained robot path based on physical manipulation of the robot and based on training user interface input(s) associated with the physical manipulation
US9844877B1 (en) 2015-07-14 2017-12-19 X Development Llc Generating a parameter for a movement characteristic for a waypoint trained path of a robot
US10166680B2 (en) 2015-07-31 2019-01-01 Heinz Hemken Autonomous robot using data captured from a living subject
US9676098B2 (en) 2015-07-31 2017-06-13 Heinz Hemken Data collection from living subjects and controlling an autonomous robot using the data
US10813709B2 (en) * 2015-08-25 2020-10-27 Kawasaki Jukogyo Kabushiki Kaisha Robot system
US11370128B2 (en) 2015-09-01 2022-06-28 Berkshire Grey Operating Company, Inc. Systems and methods for providing dynamic robotic control systems
EP4137280A1 (de) 2015-09-01 2023-02-22 Berkshire Grey Operating Company, Inc. Systeme und verfahren zur bereitstellung von dynamischen robotersteuerungssystemen
EP3347175B1 (de) 2015-09-09 2022-03-02 Berkshire Grey, Inc. Systeme und verfahren zur bereitstellung von dynamischer kommunikativer beleuchtung in einer roboterumgebung
EP4235540A3 (de) 2015-09-11 2023-09-27 Berkshire Grey Operating Company, Inc. Robotersysteme und verfahren zur identifikation und verarbeitung von verschiedenen objekten
US10350766B2 (en) * 2015-09-21 2019-07-16 GM Global Technology Operations LLC Extended-reach assist device for performing assembly tasks
US10327849B2 (en) 2015-11-11 2019-06-25 Mako Surgical Corp. Robotic system and method for backdriving the same
CA3004711C (en) 2015-11-13 2022-01-11 Berkshire Grey, Inc. Sortation systems and methods for providing sortation of a variety of objects
US9937532B2 (en) 2015-12-18 2018-04-10 Berkshire Grey Inc. Perception systems and methods for identifying and processing a variety of objects
CA3009648C (en) 2016-01-08 2022-10-25 Berkshire Grey, Inc. Systems and methods for acquiring and moving objects
ES2949949T3 (es) 2016-02-08 2023-10-04 Berkshire Grey Operating Company Inc Sistemas y métodos para proporcionar el procesamiento de una variedad de objetos empleando planificación de movimiento
TWI805545B (zh) 2016-04-12 2023-06-21 丹麥商環球機器人公司 用於藉由示範來程式化機器人之方法和電腦程式產品
TWI581731B (zh) * 2016-05-05 2017-05-11 Solomon Tech Corp Automatic shopping the method and equipment
CN106444738B (zh) * 2016-05-24 2019-04-09 武汉科技大学 基于动态运动基元学习模型的移动机器人路径规划方法
US10166676B1 (en) * 2016-06-08 2019-01-01 X Development Llc Kinesthetic teaching of grasp parameters for grasping of objects by a grasping end effector of a robot
JP6665040B2 (ja) * 2016-06-20 2020-03-13 三菱重工業株式会社 ロボット制御システム及びロボット制御方法
US10427305B2 (en) * 2016-07-21 2019-10-01 Autodesk, Inc. Robotic camera control via motion capture
JP6514166B2 (ja) 2016-09-16 2019-05-15 ファナック株式会社 ロボットの動作プログラムを学習する機械学習装置,ロボットシステムおよび機械学習方法
JP6534126B2 (ja) * 2016-11-22 2019-06-26 パナソニックIpマネジメント株式会社 ピッキングシステム及びその制御方法
EP3554414A1 (de) 2016-12-16 2019-10-23 MAKO Surgical Corp. Techniken zur modifizierung der werkzeugbedienung in einem chirurgischen robotischen system auf basis des vergleichs von gegenwärtigen und befohlenen zuständen des werkzeugs in bezug auf eine operationsstelle
US11148288B2 (en) 2017-02-25 2021-10-19 Diligent Robotics, Inc. Systems, apparatus, and methods for robotic learning and execution of skills
ES2957271T3 (es) * 2017-02-25 2024-01-16 Diligent Robotics Inc Sistemas, aparatos y métodos para el aprendizaje y la ejecución de habilidades robóticas
US11833684B2 (en) 2017-02-25 2023-12-05 Diligent Robotics, Inc. Systems, apparatus, and methods for robotic learning and execution of skills
US10639787B2 (en) 2017-03-06 2020-05-05 Berkshire Grey, Inc. Systems and methods for efficiently moving a variety of objects
CN106980263B (zh) * 2017-04-07 2020-04-21 西北工业大学 一种针对多项在轨任务的主从优化方法
US10919152B1 (en) 2017-05-30 2021-02-16 Nimble Robotics, Inc. Teleoperating of robots with tasks by mapping to human operator pose
JP6457587B2 (ja) * 2017-06-07 2019-01-23 ファナック株式会社 ワークの動画に基づいて教示点を設定するロボットの教示装置
CN112088070A (zh) * 2017-07-25 2020-12-15 M·奥利尼克 用于操作机器人***并执行机器人交互的***及方法
US10723019B2 (en) 2017-08-02 2020-07-28 Berkshire Grey, Inc. Systems and methods for acquiring and moving objects having complex outer surfaces
US10739774B2 (en) 2017-10-06 2020-08-11 Honda Motor Co., Ltd. Keyframe based autonomous vehicle operation
US10913154B2 (en) 2018-01-02 2021-02-09 General Electric Company Systems and method for robotic learning of industrial tasks based on human demonstration
CN108313715B (zh) * 2018-01-31 2019-12-24 上海理工大学 标记式民用软袋抓取搬运机器人
CN110297697B (zh) * 2018-03-21 2022-02-18 北京猎户星空科技有限公司 机器人动作序列生成方法和装置
EP3566824B1 (de) * 2018-05-11 2023-06-28 Siemens Aktiengesellschaft Verfahren, vorrichtung, computerlesbare speichermedien und computerprogramm zur roboterprogrammierung
GB201809020D0 (en) * 2018-06-01 2018-07-18 Ocado Innovation Ltd Control device and method for item verification
GB2577312B (en) * 2018-09-21 2022-07-20 Imperial College Innovations Ltd Task embedding for device control
US10611026B1 (en) * 2018-10-16 2020-04-07 University Of South Florida Systems and methods for learning and generating movement policies for a dynamical system
JP6895128B2 (ja) * 2018-11-09 2021-06-30 オムロン株式会社 ロボット制御装置、シミュレーション方法、及びシミュレーションプログラム
JP7156916B2 (ja) * 2018-11-14 2022-10-19 東芝テック株式会社 商品取出装置
CN113039499B (zh) * 2018-11-19 2024-06-18 西门子股份公司 通过自主机器支持任务的对象标记
US11957629B2 (en) * 2019-02-14 2024-04-16 Stryker Australia Pty Ltd Systems and methods for assisting surgery
CN110238840B (zh) * 2019-04-24 2021-01-29 中山大学 一种基于视觉的机械臂自主抓取方法
AU2020257165A1 (en) 2019-10-28 2021-05-13 The Raymond Corporation Systems and methods for transferring routes between material handling devices
CN110774269B (zh) * 2019-11-26 2020-11-20 上海节卡机器人科技有限公司 机器人拖动示教方法、装置、电子设备及存储介质
WO2021157104A1 (ja) * 2020-02-03 2021-08-12 国立大学法人東京工業大学 ロボット制御システム、ロボットシステム、操作システム、ロボット制御方法、およびロボット制御プログラム
JP7463777B2 (ja) * 2020-03-13 2024-04-09 オムロン株式会社 制御装置、学習装置、ロボットシステム、および方法
CN111152230B (zh) * 2020-04-08 2020-09-04 季华实验室 机器人的示教方法、***、示教机器人及存储介质
US11724396B2 (en) 2020-04-23 2023-08-15 Flexiv Ltd. Goal-oriented control of a robotic arm
CN112068422B (zh) * 2020-08-04 2023-04-14 广州中国科学院先进技术研究所 一种基于小样本的智能机器人的抓取学习方法及装置
CN112388611B (zh) * 2020-10-15 2022-06-21 南京晨光集团有限责任公司 一种机械臂旋转运动的全液压驱动***
DE102020214231A1 (de) 2020-11-12 2022-05-12 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum steuern einer robotervorrichtung und robotersteuereinrichtung
CN112677155B (zh) * 2020-12-28 2022-07-12 北京配天技术有限公司 机器人单步运动的控制方法及控制设备、存储介质
CA3207607A1 (en) 2021-02-08 2022-08-11 Andrea Lockerd THOMAZ Systems, apparatuses, and methods for robotic learning and execution of skills including navigation and manipulation functions
WO2024025541A1 (en) * 2022-07-28 2024-02-01 Hitachi Vantara Llc Unsupervised multi-target motion profile sequence prediction and optimization
CN117761704A (zh) * 2023-12-07 2024-03-26 上海交通大学 多机器人相对位置的估计方法及***

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09325806A (ja) * 1996-06-06 1997-12-16 Nippon Telegr & Teleph Corp <Ntt> ロボット教示再生方法及び装置
JP2003089082A (ja) * 2001-09-17 2003-03-25 National Institute Of Advanced Industrial & Technology 物体間に働く拘束力検出方法及びシステム
US20080312772A1 (en) * 2007-06-14 2008-12-18 Honda Motor Co., Ltd. Motion control system, motion control method, and motion control program
US20090326679A1 (en) * 2008-06-27 2009-12-31 Honda Motor Co., Ltd. Behavior estimating system
US20100114807A1 (en) * 2008-11-04 2010-05-06 Honda Motor Co., Ltd. Reinforcement learning system
US20120053728A1 (en) * 2009-04-23 2012-03-01 Koninklijke Philips Electronics N.V. Object-learning robot and method

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000218576A (ja) 1999-02-04 2000-08-08 Toshiba Corp マニピュレータ
US7859540B2 (en) * 2005-12-22 2010-12-28 Honda Motor Co., Ltd. Reconstruction, retargetting, tracking, and estimation of motion for articulated systems
US8139067B2 (en) * 2006-07-25 2012-03-20 The Board Of Trustees Of The Leland Stanford Junior University Shape completion, animation and marker-less motion capture of people, animals or characters
KR101494344B1 (ko) * 2008-04-25 2015-02-17 삼성전자주식회사 휴머노이드 로봇의 움직임 제어 시스템 및 그 방법
JP4699572B2 (ja) * 2009-09-28 2011-06-15 パナソニック株式会社 ロボットアームの制御装置及び制御方法、ロボット、ロボットアームの制御プログラム、及び、ロボットアーム制御用集積電子回路
JP2013022705A (ja) * 2011-07-25 2013-02-04 Sony Corp ロボット装置及びロボット装置の制御方法、コンピューター・プログラム、並びにロボット・システム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09325806A (ja) * 1996-06-06 1997-12-16 Nippon Telegr & Teleph Corp <Ntt> ロボット教示再生方法及び装置
JP2003089082A (ja) * 2001-09-17 2003-03-25 National Institute Of Advanced Industrial & Technology 物体間に働く拘束力検出方法及びシステム
US20080312772A1 (en) * 2007-06-14 2008-12-18 Honda Motor Co., Ltd. Motion control system, motion control method, and motion control program
US20090326679A1 (en) * 2008-06-27 2009-12-31 Honda Motor Co., Ltd. Behavior estimating system
US20100114807A1 (en) * 2008-11-04 2010-05-06 Honda Motor Co., Ltd. Reinforcement learning system
US20120053728A1 (en) * 2009-04-23 2012-03-01 Koninklijke Philips Electronics N.V. Object-learning robot and method

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10730183B2 (en) 2017-06-15 2020-08-04 Fanuc Corporation Learning device, controller, and control system
DE102018113656B4 (de) * 2017-06-15 2020-12-10 Fanuc Corporation Lernvorrichtung, steuerung und steuersystem
DE102018207921B3 (de) 2018-05-18 2019-06-19 Kuka Deutschland Gmbh Steuern eines Roboters
DE102021202340A1 (de) 2021-03-10 2022-09-15 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum steuern eines roboters zum aufnehmen und inspizieren eines objekts und robotersteuereinrichtung

Also Published As

Publication number Publication date
JP2013193202A (ja) 2013-09-30
US8843236B2 (en) 2014-09-23
DE102013203381A1 (de) 2013-09-19
US20130245824A1 (en) 2013-09-19

Similar Documents

Publication Publication Date Title
DE102013203381B4 (de) Verfahren und system zum trainieren eines roboters unter verwendung einer von menschen unterstützten aufgabendemonstration
DE102014103738B3 (de) Visuelle fehlersuche bei roboteraufgaben
DE102014108287B4 (de) Schnelles Erlernen durch Nachahmung von Kraftdrehmoment-Aufgaben durch Roboter
DE102018215057B4 (de) Maschinelles-Lernen-Vorrichtung, Robotersystem und maschinelles-Lernen-Verfahren
DE102019216229B4 (de) Vorrichtung und Verfahren zum Steuern einer Robotervorrichtung
DE112018002565B4 (de) System und Verfahren zum direkten Anlernen eines Roboters
DE102019109624B4 (de) Roboterbewegungseinlernvorrichtung, Robotersystem und Robotersteuerung
DE102021121063A1 (de) Effiziente datengenerierung für das greifenlernen mit allgemeinen greifern
DE202017106506U1 (de) Einrichtung für tiefes Maschinenlernen zum Robotergreifen
DE102021107532A1 (de) System und Verfahren zum Anlernen eines Roboters mittels Demonstration durch einen Menschen
DE102014102943A1 (de) Robotersystem mit Funktionalität zur Ortsbestimmung einer 3D- Kiste
DE102019125117B4 (de) Sichtgeführter Roboterarm und Verfahren zum Betreiben desselben
DE102017108727A1 (de) Verfahren zur Erstellung einer Datenbank mit Greiferposen, Verfahren zum Steuern eines Roboters, computerlesbares Speichermedium und Handhabungssystem
DE102020214633A1 (de) Vorrichtung und Verfahren zum Steuern einer Robotervorrichtung
DE102015111080A1 (de) Robotervorrichtung mit maschinellem Sehen
DE102021204697B4 (de) Verfahren zum Steuern einer Robotervorrichtung
DE102020212658A1 (de) Vorrichtung und Verfahren zum Steuern einer Robotervorrichtung
DE102022130652A1 (de) Anlernen eines roboters durch vorführen mit visualservoing
EP4326500A1 (de) Ansteuerung eines industrieroboters für eine greifaufgabe
Wicaksono et al. Relational tool use learning by a robot in a real and simulated world
Vecerik et al. Robotap: Tracking arbitrary points for few-shot visual imitation
EP3534240A1 (de) Verfahren und vorrichtung zur daten-annotation
DE102021201921A1 (de) Vorrichtung und verfahren zum steuern eines roboters zum aufnehmen eines objekts
DE102021109036A1 (de) Vorrichtung und verfahren zum lokalisieren von stellen von objekten aus kamerabildern der objekte
DE102020211053A1 (de) Annotationsvorrichtung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final