DE202017106506U1 - Einrichtung für tiefes Maschinenlernen zum Robotergreifen - Google Patents

Einrichtung für tiefes Maschinenlernen zum Robotergreifen Download PDF

Info

Publication number
DE202017106506U1
DE202017106506U1 DE202017106506.5U DE202017106506U DE202017106506U1 DE 202017106506 U1 DE202017106506 U1 DE 202017106506U1 DE 202017106506 U DE202017106506 U DE 202017106506U DE 202017106506 U1 DE202017106506 U1 DE 202017106506U1
Authority
DE
Germany
Prior art keywords
effector
gripping
measure
additional
robot
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
DE202017106506.5U
Other languages
English (en)
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.)
Google LLC
Original Assignee
Google 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
Priority claimed from US15/448,013 external-priority patent/US9914213B2/en
Application filed by Google LLC filed Critical Google LLC
Publication of DE202017106506U1 publication Critical patent/DE202017106506U1/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/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1612Programme controls characterised by the hand, wrist, grip control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • 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/39Robotics, robotics to robotics hand
    • G05B2219/39295Learn position correction values to be added to reference values
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition

Abstract

Nichttransitorisches computerlesbares Speichermedium, das Anweisungen speichert, die durch einen oder mehrere Prozessoren ausführbar sind, um diese Schritte auszuführen:Erzeugen eines Kandidateneffektorbewegungsvektors, der eine Bewegung definiert, um einen Greifeffektor eines Roboters von einer aktuellen Stellung zu einer zusätzlichen Stellung zu bewegen;Identifizieren eines aktuellen Bilds, das durch einen Vision-Sensor, der dem Roboter zugeordnet ist, aufgenommen ist, wobei das aktuelle Bild den Greifeffektor und wenigstens ein Objekt in einer Umgebung des Roboters aufnimmt;Anwenden des aktuellen Bilds und des Kandidateneffektorbewegungsvektors als Eingabe für ein trainiertes neuronales Greif-Faltungsnetz;Erzeugen über das trainierte neuronale Greif-Faltungsnetz eines Maßes für erfolgreiches Greifen des Objekts mit der Anwendung der Bewegung, wobei das Maß basierend auf der Anwendung des Bilds und des Effektorbewegungsvektors auf das trainierte neuronale Greif-Faltungsnetz erzeugt wird;Identifizieren eines gewünschten Objekt-Semantikmerkmals;Anwenden als Eingabe für ein neuronales Semantik-Faltungsnetz einer räumlichen Transformation des aktuellen Bilds oder eines zusätzlichen Bilds, das durch den Vision-Sensor aufgenommen wird;Erzeugen über das neuronale Semantik-Faltungsnetz basierend auf der räumlichen Transformation eines zusätzlichen Maßes, das angibt, ob das gewünschte Objekt-Semantikmerkmal in der räumlichen Transformation vorhanden ist;Erzeugen eines Effektorbefehls basierend auf dem Maß für erfolgreiches Greifen und dem zusätzlichen Maß, das angibt, ob das gewünschte Objekt-Semantikmerkmal vorhanden ist; undBereitstellen des Effektorbefehls für einen oder mehrere Aktuatoren des Roboters.

Description

  • Hintergrund
  • Viele Roboter sind programmiert, einen oder mehrere Effektoren zu benutzen, um ein oder mehrere Objekte zu greifen. Beispielsweise kann ein Roboter einen Greif-Effektor wie z. B. einen „auftreffenden“ Greifer oder einen „eindringenden“ Greifer (der z. B. physikalisch in ein Objekt eindringt unter Verwendung von Stiften, Nadeln usw.) benutzen, um ein Objekt von einem ersten Ort aufzunehmen, das Objekt zu einem zweiten Ort zu bewegen und das Objekt an dem zweiten Ort abzusetzen. Einige zusätzliche Beispiele von Roboter-Effektoren, die Objekte greifen können, enthalten „astriktive“ Effektoren (die z. B. Augen oder Vakuum verwenden, um ein Objekt aufzunehmen) und einen oder mehrere „kontigutive“ Effektoren (die z. B. Oberflächenspannung, Frieren oder Klebemittel verwenden, um ein Objekt aufzunehmen), um nur einige wenige zu nennen.
  • Zu schützen als Gebrauchsmuster und Gegenstand des Gebrauchsmusters sind in Übereinstimmung mit den Anforderungen des Gebrauchsmustergesetzes nur Einrichtungen, wie sie in den beigefügten Ansprüchen definiert sind, jedoch keine Verfahren. In dem Fall, in dem sich die Beschreibung auf Verfahren bezieht, dienen diese Bezugnahmen lediglich dazu, die Einrichtung oder Einrichtungen zu veranschaulichen, für die Schutz mit den beigefügten Ansprüchen gesucht wird.
  • Zusammenfassung
  • Diese Spezifikation richtet sich allgemein auf Verfahren und Einrichtungen zum tiefen Maschinenlernen, die sich auf die Manipulation eines Objekts durch einen Effektor eines Roboters beziehen. Einige Implementierungen richten sich auf Trainieren eines tiefen neuronalen Netzes zum Greifen, wie z. B. ein neuronales Faltungsnetz (hier auch als ein „CNN“ bezeichnet), um die Wahrscheinlichkeit vorherzusagen, dass Kandidatenbewegungsdaten für einen Effektor eines Roboters in einem erfolgreichen Greifen eines oder mehrere Objekte durch den Effektor führen werden, und/oder um Parameter für eine räumliche Transformation für ein Netz zum räumlichen Transformieren (hier auch als ein „STN“ bezeichnet) vorherzusagen. Beispielsweise ermöglichen einige Implementierungen das Anwenden als Eingabe für ein trainiertes tiefes neuronales Netz zum Greifen wenigstens: (1) eines Kandidatenbewegungsvektors, der eine Kandidatenbewegung (falls vorhanden) eines Greifeffektors eines Roboters definiert, und (2) eines Bilds, das wenigstens einen Abschnitt des Arbeitsbereichs des Roboters aufnimmt; und Erzeugen basierend auf dem Anwenden: (1) eines Maßes, das direkt oder indirekt die Wahrscheinlichkeit angibt, dass der Kandidatenbewegungsvektor zu einem erfolgreichen Greifen führen wird; und/oder (2) von Parametern für eine räumliche Transformation, die einen Ort in dem Bild (oder einem zusätzlichen Bild) angeben, zu dem sich der Greifeffektor bewegen wird. Das Maß, das die Wahrscheinlichkeit und/oder die Parameter für die räumliche Transformation angibt, kann dann verwendet werden zum Stellen [engl: servoing] der Ausführung der Greifversuche durch einen Roboter, der einen Greifeffektor aufweist, und dadurch die Fähigkeit des Roboters verbessern, erfolgreich Objekte in seiner Umgebung zu greifen.
  • Einige dieser Implementierungen richten sich ferner auf das Trainieren eines Netzes zum räumlichen Transformieren, um eine räumliche Transformation eines Bilds basierend auf empfangenen Parametern für räumliche Transformation zu erzeugen, und/oder auf das Trainieren eines tiefen neuronalen Semantik-Netzes (z. B. Semantik-CNN), um basierend auf der räumlichen Transformation eine Klasse (und/oder andere Semantikmerkmal(e)) eines Objekts in der räumlichen Transformation vorherzusagen. In einigen Versionen dieser Implementierungen kann das tiefe neuronale Semantik-Netz trainiert werden basierend auf: sowohl Trainingsbeispielen, die basierend auf Greifversuchen durch einen oder mehrere Roboter erzeugt werden; als auch auf Trainingsbeispielen aus anderen Computer-Vision-Datenmengen, die Trainingsbeispiele enthalten, die nicht basierend auf Greifversuchen durch einen oder mehrere Roboter erzeugt werden (z. B. Trainingsbeispiele aus der IMNAGENET-Bilddatenbank). Das Verwenden von Trainingsbeispielen aus anderen Computer-Vision-Datenmenge kann die Genauigkeit und/oder Breite des Semantik-Verstehens des tiefen neuronalen Semantik-Netzes erhöhen.
  • Einige Implementierungen richten sich auf die Nutzung des trainierten tiefen neuronalen Greif-Netzes, des trainierten Netzes zum räumlichen Transformieren und/oder des trainierten tiefen neuronalen Semantik-Netzes, um einen Greifeffektor eines Roboters zu stellen, um ein erfolgreiches Greifen eines Objekts, das die gewünschten Semantik-Objektmerkmale aufweist, durch den Greifeffektor zu erreichen. Beispielsweise können die verschiedenen trainierten Netze zum iterativen Aktualisieren von Bewegungssteuerbefehlen für einen oder mehrere Aktuatoren eines Roboters benutzt werden, die die Stellung eines Greifeffektors des Roboters steuern, und um zu bestimmen, wann Greifsteuerbefehle erzeugt werden sollen, um ein versuchtes Greifen durch den Greifeffektor zu bewirken. Beispielsweise können Greifsteuerbefehle nur erzeugt und für die entsprechenden Aktuatoren bereitgestellt werden, wenn eine Ausgabe, die durch das tiefe neuronale Greif-netz erzeugt wird, angibt, dass eine Wahrscheinlichkeit für ein erfolgreiches Greifen einen Schwellenwert erfüllt, und wenn eine Ausgabe, die über das tiefe neuronale Semantik-Netz erzeugt wird, angibt, dass das Greifen wahrscheinlich für ein Objekt sein wird, das gewünschte Semantik-Objektmerkmal(e) aufweist.
  • Das Verwenden von trainierten Netz(en), um ein erfolgreiches Greifen eines Objekts, das gewünschte Semantik-Objektmerkmale aufweist, zu erreichen, kann es einem Roboter ermöglichen, verschiedene Aktionen auszuführen, die sich auf Objekte richten, die spezielle Objektmerkmal(e) aufweisen, wobei diese speziellen Objektmerkmal(e) durch eine von einem Menschen erzeugte Anwenderschnittstelleneingabe oder durch eine weitere Komponente (z. B. eine Aufgabenplanungseinheit höherer Ebene) vorgegeben werden. Beispielsweise kann ein Anwender eine Anwenderschnittstelleneingabe (z. B. gesprochen, getippt) bereitstellen, die einen Wunsch angibt, ein Objekt zu greifen, das ein oder mehrere spezielle Objektmerkmal(e) aufweist, und der Roboter kann die trainierten Netze benutzen, um ein Greifen nur dann zu versuchen, wenn: das Greifen wahrscheinlich erfolgreich ist und es wahrscheinlich für ein Objekt ist, das die speziellen Objektmerkmal(e) aufweist. Beispielsweise kann der Anwender eine Anwenderschnittstelleneingabe als „Nimm den Löffel auf“ bereitstellen, und der Roboter kann ein Greifen versuchen basierend auf einer Ausgabe, die über das tiefe neuronale Greif-Netz erzeugt wird, die angibt, dass ein Greifen wahrscheinlich erfolgreich ist, und basierend auf einer Ausgabe, die über das tiefe neuronale Semantik-Netz erzeugt wird, die angibt, dass das Greifen wahrscheinlich für ein Objekt ist, das eine Klassifikation „Löffel“ aufweist.
  • In einigen Implementierungen ist ein Verfahren geschaffen, das enthält: Erzeugen eines Kandidateneffektorbewegungsvektors, der eine Bewegung definiert, um einen Greifeffektor eines Roboters von einer aktuellen Stellung zu einer zusätzlichen Stellung zu bewegen; und Identifizieren eines aktuellen Bilds, das durch einen Vision-Sensor, der dem Roboter zugeordnet ist, aufgenommen wird. Das aktuelle Bild nimmt den Greifeffektor und wenigstens ein Objekt in einer Umgebung des Roboters auf. Das Verfahren enthält ferner: Anwenden des aktuellen Bilds und des Kandidateneffektorbewegungsvektors als Eingabe für ein trainiertes neuronales Greif-Faltungsnetz; Erzeugen über das trainierte neuronale Greif-Faltungsnetz eines Maßes für erfolgreiches Greifen des Objekts mit der Anwendung der Bewegung. Das Maß wird basierend auf der Anwendung des Bilds und des Effektorbewegungsvektors auf das trainierte neuronale Greif-Faltungsnetz erzeugt. Das Verfahren enthält ferner Identifizieren eines gewünschten Objekt-Semantikmerkmals; Anwenden als Eingabe für ein neuronales Semantik-Faltungsnetz einer räumlichen Transformation des aktuellen Bilds oder eines zusätzlichen Bilds, das durch den Vision-Sensor aufgenommen wird; und Erzeugen über das neuronale Semantik-Faltungsnetz basierend auf der räumlichen Transformation eines zusätzlichen Maßes, das angibt, ob das gewünschte Objekt-Semantikmerkmal in der räumlichen Transformation vorhanden ist. Das Verfahren enthält ferner Erzeugen eines Effektorbefehls basierend auf dem Maß für erfolgreiches Greifen und dem zusätzlichen Maß, das angibt, ob das gewünschte Objekt-Semantikmerkmal vorhanden ist; und Bereitstellen des Effektorbefehls für einen oder mehrere Aktuatoren des Roboters.
  • Diese und andere Implementierungen können eines oder mehrere aus den folgenden Merkmalen enthalten.
  • In einigen Implementierungen enthält das Verfahren ferner: Erzeugen über das trainierte neuronale Greif-Faltungsnetz basierend auf der Anwendung des Bilds und des Effektorbewegungsvektors auf das trainierte neuronale Greif-Faltungsnetz von Parametern für eine räumliche Transformation; und Erzeugen der räumlichen Transformation über ein Netz für räumliche Transformation basierend auf den Parametern für räumliche Transformation.
  • In einigen Implementierungen definiert das gewünschte Objekt-Semantikmerkmal eine Objekt-Klassifizierung.
  • In einigen Implementierungen enthält das Verfahren ferner Empfangen einer Anwenderschnittstelleneingabe von einer Anwenderschnittstelleneingabevorrichtung und Identifizieren des gewünschten Objekt-Semantikmerkmals basierend auf der Anwenderschnittstelleneingabe. In einigen Implementierungen ist die Anwenderschnittstelleneingabevorrichtung ein Mikrofon wie z. B. ein Mikrofon des Roboters.
  • In einigen Implementierungen ist die räumliche Transformation die des aktuellen Bilds, wie z. B. eine räumliche Transformation, die einen Abschnitt des aktuellen Bilds ausschneidet.
  • In einigen Implementierungen enthält das Verfahren ferner: Bestimmen eines aktuellen Maßes für erfolgreiches Greifen des Objekts ohne Anwendung der Bewegung. In einigen dieser Implementierungen enthält das Erzeugen des Effektorbefehls basierend auf dem Maß das Erzeugen des Effektorbefehls basierend auf einem Vergleich des Maßes mit dem aktuellen Maß. In einigen Versionen dieser Implementierungen ist der Effektorbefehl ein Greifbefehl, und das Erzeugen des Greifbefehls findet statt in Reaktion auf: Bestimmen, dass das zusätzliche Maß angibt, dass das gewünschte Objektmerkmal in der räumlichen Transformation vorhanden ist; und Bestimmen, dass der Vergleich des Maßes mit dem aktuellen Maß ein oder mehrere Kriterien erfüllt.
  • In einigen Implementierungen ist der Effektorbefehl ein Effektorbewegungsbefehl, und das Erzeugen des Effektorbewegungsbefehls enthält das Erzeugen des Effektorbewegungsbefehls, um mit dem Kandidateneffektorbewegungsvektor konform zu sein.
  • In einigen Implementierungen ist der Effektorbefehl ein Effektorbewegungsbefehl und ist mit dem Kandidateneffektorbewegungsvektor konform. In einigen dieser Implementierungen bewegt das Bereitstellen des Effektorbewegungsbefehls für den einen oder die mehreren Aktuatoren den Effektor zu einer neuen Stellung, und das Verfahren enthält ferner: Erzeugen eines zusätzlichen Kandidateneffektorbewegungsvektors, der eine neue Bewegung definiert, um den Greifeffektor von der neuen Stellung zu einer weiteren zusätzliche Stellung zu bewegen; Identifizieren eines neuen Bilds, das durch einen Vision-Sensor, der dem Roboter zugeordnet ist, aufgenommen ist, wobei das neue Bild den Effektor an der neuen Stellung aufnimmt und die Objekte in der Umgebung aufnimmt; Anwenden des neuen Bilds und des zusätzlichen Kandidateneffektorbewegungsvektors als Eingabe für das trainierte neuronale Greif-Faltungsnetz; Erzeugen über das trainierte neuronale Greif-Faltungsnetz eines neuen Maßes für erfolgreiches Greifen des Objekts mit der Anwendung der neuen Bewegung, wobei das neue Maß basierend auf der Anwendung des neuen Bilds und des zusätzlichen Effektorbewegungsvektors auf das trainierte neuronale Greif-Faltungsnetz erzeugt wird; Anwenden als Eingabe für ein neuronales Semantik-Faltungsnetz einer zusätzlichen räumlichen Transformation des neuen Bilds oder eines neuen zusätzlichen Bilds, das durch den Vision-Sensor aufgenommen wird; Erzeugen über das neuronale Semantik-Faltungsnetz basierend auf der zusätzlichen räumlichen Transformation eines neuen zusätzlichen Maßes, das angibt, ob das gewünschte Objektmerkmal in der räumlichen Transformation vorhanden ist; Erzeugen eines neuen Effektorbefehls basierend auf dem neuen Maß für erfolgreiches Greifen und dem neuen zusätzlichen Maß, das angibt, ob das gewünschte Objektmerkmal vorhanden ist. und Bereitstellen des neuen Effektorbefehls für einen oder mehrere Aktuatoren des Roboters.
  • In einigen Implementierungen enthält das Anwenden des Bilds und des Kandidateneffektorbewegungsvektors als Eingabe für das trainierte neuronale Greif-Faltungsnetz: Anwenden des Bilds als Eingabe für eine Anfangsschicht des trainierten neuronalen Greif-Faltungsnetzes; und Anwenden des Kandidateneffektorbewegungsvektors auf eine zusätzliche Schicht des trainierten neuronalen Greif-Faltungsnetzes. Die zusätzliche Schicht kann der Anfangsschicht nachgelagert sein.
  • In einigen Implementierungen enthält das Erzeugen des Kandidateneffektorbewegungsvektors: Erzeugen von mehreren Kandidateneffektorbewegungsvektoren; und Ausführen einer oder mehrerer Iterationen von Kreuzentropieoptimierung auf den mehreren Kandidateneffektorbewegungsvektoren, um den Kandidateneffektorbewegungsvektor aus den mehreren Kandidateneffektorbewegungsvektoren auszuwählen.
  • In einigen Implementierungen ist ein Verfahren geschaffen, das enthält: Identifizieren eines aktuellen Bilds, das durch einen Vision-Sensor, der einem Roboter zugeordnet ist, aufgenommen wird; und Erzeugen über ein neuronales Greif-Faltungsnetz basierend auf der Anwendung des aktuellen Bilds auf das neuronale Greif-Faltungsnetz: eines Maßes für erfolgreiches Greifen durch einen Greifeffektor des Roboters eines Objekts, das in dem aktuellen Bild aufgenommen ist; und von Parametern für räumliche Transformation. Das Verfahren enthält ferner: Erzeugen über ein Netz zum räumlichen Transformieren einer räumlichen Transformation basierend auf den Parametern für räumliche Transformation. Die räumliche Transformation ist für das aktuelle Bild oder ein zusätzliches Bild, das durch den Vision-Sensor aufgenommen wird. Das Verfahren enthält ferner: Anwenden der räumlichen Transformation als Eingabe für ein neuronales Semantik-Faltungsnetz; Erzeugen über das neuronale Semantik-Faltungsnetz basierend auf der räumlichen Transformation eines zusätzlichen Maßes, das angibt, ob ein gewünschtes Objekt-Semantikmerkmal in der räumlichen Transformation vorhanden ist; Erzeugen eines Effektorbefehls basierend auf dem Maß und dem zusätzlichen Maß; und Bereitstellen des Effektorbefehls für einen oder mehrere Aktuatoren des Roboters.
  • In einigen Implementierungen ist ein Verfahren geschaffen, das enthält: Identifizieren eines aktuellen Bilds, das durch einen Vision-Sensor eines Roboters aufgenommen wird; und Erzeugen über einen Abschnitt eines Semantikgreifmodells basierend auf der Anwendung des aktuellen Bilds auf den Abschnitt: eines Maßes für erfolgreiches Greifen durch einen Greifeffektor des Roboters eines Objekts, das in dem aktuellen Bild aufgenommen ist; und von Parametern für räumliche Transformation. Das Verfahren enthält ferner: Erzeugen einer räumlichen Transformation des aktuellen Bilds basierend auf den Parametern für räumliche Transformation; Anwenden der räumlichen Transformation als Eingabe für einen zusätzlichen Abschnitt des Semantikgreifmodells; Erzeugen über den zusätzlichen Abschnitt basierend auf der räumlichen Transformation eines zusätzlichen Maßes, das angibt, ob ein gewünschtes Objekt-Semantikmerkmal in der räumlichen Transformation vorhanden ist; Erzeugen eines Effektorbefehls basierend auf dem Maß und dem zusätzlichen Maß; und Bereitstellen des Effektorbefehls.
  • In einigen Implementierungen ist ein Verfahren geschaffen, das Identifizieren von mehreren Trainingsbeispielen, die basierend einer Sensorausgabe aus dem einen oder den mehreren Robotern während mehreren Greifversuchen durch die Roboter erzeugt werden, enthält. Jedes aus den Trainingsbeispielen enthält eine Trainingsbeispieleingabe, die enthält: ein Bild für eine entsprechende Instanz der Zeit eines entsprechenden Greifversuchs aus den Greifversuchen, wobei das Bild einen Robotereffektor und ein oder mehrere Umgebungsobjekte an der entsprechenden Instanz der Zeit aufnimmt; und einen Effektorbewegungsvektor, der die Bewegung des Effektors definiert, um sich von einer Stellung des Effektors an der Instanz der Zeit an der entsprechenden Instanz der Zeit zu einer Endstellung des Effektors für den entsprechenden Greifversuch zu bewegen. Jedes aus den Trainingsbeispielen enthält ferner eine Trainingsbeispielausgabe, die enthält: wenigstens ein Etikett eines gegriffenen Objekts, das ein Semantikmerkmal eines Objekts, das durch den entsprechenden Greifversuch gegriffen wird, angibt. Das Verfahren enthält ferner Trainieren durch einen oder mehrere aus den Prozessoren eines neuronalen Semantik-Faltungsnetzes basierend auf den Trainingsbeispielen.
  • Diese und andere Implementierungen können eines oder mehrere aus den folgenden Merkmalen enthalten.
  • In einigen Implementierungen enthält das Trainieren des neuronalen Semantik-Faltungsnetzes basierend auf den Trainingsbeispielen: Anwenden auf ein neuronales Greif-Faltungsnetz der Trainingsbeispieleingabe eines gegebenen Trainingsbeispiels aus den Trainingsbeispielen; Erzeugen über das neuronale Greif-Faltungsnetz basierend auf der Trainingsbeispieleingabe des gegebenen Trainingsbeispiels von Parametern für das Netz für räumliche Transformation; Verwenden der Parameter für das Netz für räumliche Transformation, um eine räumliche Transformation des Bilds des gegebenen Trainingsbeispiels zu erzeugen; Erzeugen einer Ausgabe über das neuronale Semantik-Faltungsnetz basierend auf dem räumlichen Transformationsbild; und Ausführen von Rückpropagierung auf dem neuronalen Semantik-Faltungsnetz basierend auf der Ausgabe und der Trainingsbeispielausgabe des gegebenen Trainingsbeispiels. In einigen dieser Implementierungen enthält das Verfahren ferner Trainieren des neuronalen Semantik-Faltungsnetzes basierend auf zusätzlichen Trainingsbeispielen, die nicht basierend auf Greifversuchen erzeugt sind. In einigen dieser Implementierungen enthält das Anwenden der Trainingsbeispieleingabe des gegebenen Trainingsbeispiels auf das neuronale Greif-Faltungsnetz: Anwenden des Bilds des gegebenen Trainingsbeispiels als Eingabe für eine Anfangsschicht des neuronalen Greif-Faltungsnetzes; und Anwenden des Effektorbewegungsvektors des gegebenen Trainingsbeispiels auf eine zusätzliche Schicht des neuronalen Greif-Faltungsnetzes, die der Anfangsschicht nachgelagert ist.
  • In einigen Implementierungen enthält das Verfahren ferner Trainieren des neuronalen Semantik-Faltungsnetzes basierend auf zusätzlichen Trainingsbeispielen, die nicht basierend auf Greifversuchen erzeugt sind. In einigen dieser Implementierungen enthält das Verfahren ferner Trainieren des neuronalen Greif-Faltungsnetzes basierend auf den Trainingsbeispielen. In einigen Versionen dieser Implementierungen enthält das Trainieren des neuronalen Greif-Faltungsnetzes basierend auf den Trainingsbeispielen: Erzeugen über das neuronale Greif-Faltungsnetz basierend auf der Trainingsbeispieleingabe des gegebenen Trainingsbeispiels eines Vorhersagemaßes für das Greifen; und Ausführen von Rückpropagierung auf dem neuronalen Greif-Faltungsnetz basierend auf dem Vorhersagemaß für das Greifen und der Trainingsbeispielausgabe des gegebenen Trainingsbeispiels.
  • In einigen Implementierungen enthalten die Trainingsbeispiele: eine erste Gruppe von Trainingsbeispielen, die basierend auf Ausgaben aus mehreren ersten Robotersensoren eines ersten Roboters während mehrerer Greifversuche durch den ersten Roboter erzeugt werden; und eine zweite Gruppe von Trainingsbeispielen, die basierend auf Ausgaben aus mehreren zweiten Robotersensoren eines zweiten Roboters während mehrerer Greifversuche durch den zweiten Roboter erzeugt werden. In einigen dieser Implementierungen enthalten die ersten Robotersensoren einen ersten Vision-Sensor, der die Bilder für die Trainingsbeispiele der ersten Gruppe erzeugt, die zweiten Robotersensoren enthalten einen zweiten Vision-Sensor, der die Bilder für die Trainingsbeispiele der zweiten Gruppe erzeugt, und eine erste Stellung des ersten Vision-Sensors relativ zu einer ersten Basis des erste Roboters ist von einer zweiten Stellung des zweiten Vision-Sensors relativ zu einer zweiten Basis des zweiten Roboters verschieden.
  • In einigen Implementierungen enthalten die Greifversuche, auf denen mehrere Trainingsbeispiele basieren, jeweils mehrere zufällige Aktuatorbefehle, die den Effektor von einer Startstellung des Effektors zu der Endstellung des Effektors zufällig bewegen und dann mit dem Effektor an der Endstellung greifen.
  • In einigen Implementierungen ist ein Verfahren bereitgestellt, das Identifizieren eines neuronalen Semantik-Faltungsnetzes, das basierend auf Trainingsbeispielen trainiert ist, die nicht basierend auf Robotergreifversuchen basieren; Identifizieren von mehreren Trainingsbeispielen, die basierend auf Sensorausgaben aus einem oder mehreren Robotern während mehrerer Greifversuche durch die Roboter erzeugt werden; und Trainieren des neuronalen Semantik-Faltungsnetzes basierend auf den Trainingsbeispielen enthält.
  • Diese und andere Implementierungen können eines oder mehrere aus den folgenden Merkmalen enthalten.
  • In einigen Implementierungen enthält das Verfahren ferner Trainieren eines neuronalen Greif-Faltungsnetzes basierend auf den Trainingsbeispielen.
  • In einigen Implementierungen enthalten die Trainingsbeispiele: eine erste Gruppe der Trainingsbeispiele, die basierend auf Ausgaben aus mehreren ersten Robotersensoren eines ersten Roboters während mehrerer Greifversuche durch den ersten Roboter erzeugt werden; und eine zweite Gruppe von Trainingsbeispielen, die basierend auf Ausgaben aus mehreren zweiten Robotersensoren eines zweiten Roboters während mehrerer Greifversuche durch den zweiten Roboter erzeugt werden. In einigen dieser Implementierungen enthalten die ersten Robotersensoren einen ersten Vision-Sensor, der die Bilder für die Trainingsbeispiele der ersten Gruppe erzeugt, die zweiten Robotersensoren enthalten einen zweiten Vision-Sensor, der die Bilder für die Trainingsbeispiele der zweiten Gruppe erzeugt, und eine erste Stellung des ersten Vision-Sensors relativ zu einer ersten Basis des erste Roboters ist von einer zweiten Stellung des zweiten Vision-Sensors relativ zu einer zweiten Basis des zweiten Roboters verschieden.
  • In einigen Implementierungen enthalten die Greifversuche, auf denen mehrere Trainingsbeispiele basieren, jeweils mehrere zufällige Aktuatorbefehle, die den Effektor von einer Startstellung des Effektors zu der Endstellung des Effektors zufällig bewegen und dann mit dem Effektor an der Endstellung greifen.
  • Andere Implementierungen können ein nichttransitorisches computerlesbares Speichermedium enthalten, das Anweisungen speichert, die durch einen Prozessor (z. B eine zentrale Verarbeitungseinheit (CPU) oder eine Grafikverarbeitungseinheit (GPU)) ausführbar sind, um ein Verfahren wie z. B. eines oder mehrere der vorstehend und/oder hier an anderer Stelle beschriebenen Verfahren auszuführen. Noch andere Implementierungen können ein System aus einem oder mehreren Computern und/oder einem oder mehreren Robotern enthalten, die einen oder mehrere Prozessoren enthalten, die arbeiten, um gespeicherte Anweisungen ablaufen zu lassen, um ein Verfahren wie z. B. eines oder mehrere der vorstehend und/oder hier an anderer Stelle beschriebenen Verfahren auszuführen.
  • Es wird darauf hingewiesen, dass alle Kombinationen des vorstehenden Konzepts und zusätzlicher Konzepte, die hier genauer beschrieben sind, als Teil des hier offenbarten Gegenstands betrachtet werden. Beispielsweise sind alle Kombinationen des beanspruchten Gegenstands, der an Ende dieser Offenbarung erscheint, als Teil des hier offenbarten Gegenstands betrachtet.
  • Figurenliste
    • 1A stellt eine Beispielumgebung dar, in der Greifversuche durch Roboter ausgeführt werden können, Daten, die den Greifversuchen zugeordnet sind, benutzt werden können, um Trainingsbeispiele zu erzeugen, und/oder die Trainingsbeispiele benutzt werden können, um ein oder mehrere Netze eines Semantikgreifmodells zu trainieren.
    • 1B stellt das Netz des Semantikgreifmodells von 1A und Beispieldaten, die auf die Netze angewandt und über sie erzeugt werden können, dar.
    • 2 stellt einen der Roboter von 1 und ein Beispiel für die Bewegung eines Greifeffektors des Roboters entlang eines Pfads dar.
    • 3 ist ein Ablaufplan, der ein Beispielverfahren zum Ausführen von Greifversuchen und Speichern von Daten, die den Greifversuchen zugeordnet sind, darstellt.
    • 4 ist ein Ablaufplan, der ein Beispielverfahren zum Erzeugen von Trainingsbeispielen basierend auf Daten, die Greifversuchen von Robotern zugeordnet sind, darstellt.
    • 5 ist ein Ablaufplan, der ein Beispielverfahren zum Trainieren eines oder mehrerer Netze eines Semantikgreifmodells basierend auf Trainingsbeispielen darstellt.
    • 6A und 6B stellen eine Architektur eines beispielhaften neuronalen Greif-Faltungsnetzes, Beispieleingaben, die auf das neuronale Greif-Faltungsnetz angewandt werden können, und Beispielausgaben, die über das neuronale Greif-Faltungsnetz erzeugt werden können, dar.
    • 6C stellt ein Netz zum räumlichen Transformieren und ein neuronales Semantik-Faltungsnetz, Beispieleingaben, die auf die Netze angewandt werden können, und Beispielausgaben, die über die Netze erzeugt werden können, dar.
    • 7 ist ein Ablaufplan, der ein Beispielverfahren zum Nutzen eines Semantikgreifmodells, um einen Greifeffektor zu stellen, darstellt.
    • 8 bildet schematisch eine Beispielarchitektur eines Roboters ab.
    • 9 bildet schematisch eine Beispielarchitektur eines Computersystems ab.
  • Ausführliche Beschreibung
  • Einige Implementierungen der hier beschriebenen Technologie richten sich auf Trainieren eines Semantikgreifmodells, das ein tiefes neuronales Greif-Netz, ein Netz zum räumlichen Transformieren und ein tiefes neuronales Semantik-Netz enthält.
  • In einigen dieser Implementierungen kann das trainierte tiefe neuronale Greif-Netz benutzt werden, um basierend auf einem aktuellen Bild, das durch einen Vision-Sensor, der einem Roboter zugeordnet ist, aufgenommen wird, zu erzeugen: 1) ein Maß, das eine Wahrscheinlichkeit für erfolgreiches Greifen eines oder mehrerer Objekte durch den Effektor angibt; und 2) Parameter für räumliche Transformation. Ferner kann das trainierte Netz zum räumlichen Transformieren benutzt werden, basierend auf den Parametern für räumliche Transformation und dem aktuellen Bild (und/oder einem zusätzlichen Bild) zu erzeugen: eine räumliche Transformation des aktuellen Bilds (und/oder des zusätzlichen Bilds). Ferner noch kann das trainierte tiefe neuronale Semantik-Netz benutzt werden, um basierend auf der räumlichen Transformation zu erzeugen: zusätzliche Maß(e), die ein oder mehrere Semantikmerkmal(e) der räumlichen Transformation angeben, wie z. B. eine oder mehrere Klassen von Objekt(en), die in der räumlichen Transformation vorhanden sind.
  • In einigen Versionen dieser Implementierungen kann der Roboter ein Greifen mit dem Effektor basierend darauf, dass das Maß (das die Wahrscheinlichkeit für erfolgreiches Greifen angibt) einen Schwellenwert erfüllt, und basierend auf den zusätzlichen Maßen, die angeben, dass gewünschte Semantikmerkmale in der räumlichen Transformation vorhanden sind, versuchen. Die gewünschten Objekt-Semantikmerkmale können beispielsweise auf Anwenderschnittstelleneingabe und/oder Eingabe von einer oder mehreren separaten Komponenten basieren. Dementsprechend kann das trainierte Semantikgreifmodell ermöglichen, dass ein Greifversuch auf einem Objekt basierend auf dem Bestimmen, dass eine Wahrscheinlichkeit für den Erfolg des Greifversuchs einen Schwellenwert erfüllt, und basierend auf dem Bestimmen, dass es wahrscheinlich ist, dass das Objekt die gewünschten Objekt-Semantikmerkmale aufweist, ausgeführt wird.
  • Wie hier genauer beschrieben ist kann in verschiedenen Implementierungen eine Ausgabe, die über das tiefe neuronale Greif-Netz erzeugt wird, als „dorsal“ darin betrachtet werden, dass sie weitgehend auf räumlichen Schlussfolgerungen basiert und vorhersagt, ob ein Greifen erfolgreich sein wird und/oder welcher Teil eines Bildes verarbeitet werden soll, ohne semantisches Verstehen dessen, was gegriffen werden wird. Außerdem kann in verschiedenen Implementierungen eine Ausgabe, die über dem Netz zum räumlichen Transformieren und dem tiefen neuronalen Semantik-Netz erzeugt wird, als „ventral“ darin betrachtet werden, dass sie weitgehend auf semantischen Schlussfolgerungen basiert und semantische Merkmal(e) eines Objekts, das zum Greifen erwogen wird, vorhersagt.
  • In einigen Implementierungen akzeptiert das trainierte tiefe neuronale Greif-Netz Bild(er) (It und optional Io) und akzeptiert einen Effektorbewegungsvektor (νt), wie z. B. eien Aufgaben-Raum-Bewegungsvektor. Die Bild(er) werden durch einen Vision-Sensor erzeugt und können ein „aktuelles“ Bild (It) und ein zusätzliches Bild (Io), das die Szene ohne Vorhandensein des Greifeffektors (oder mit dem Effektor in einer anderen Stellung als er in dem aktuellen Bild (It) ist) aufnimmt. Die Anwendung der Bild(er) (It und optional Io) und des Effektorbewegungsvektors (νt) auf das trainierte tiefe neuronale Greif-Netz kann verwendet werden, um über das tiefe neuronale Greif-Netz zu erzeugen: ein Vorhersagemaß, dass das Ausführen von Befehl(en), um die durch den Bewegungsvektor (νt) definiert ist, zu implementieren, und nachfolgendes Greifen ein erfolgreiches Greifen produzieren wird; und vorhergesagte Parameter für räumliche Transformation. Die erzeugten Parameter für räumliche Transformation können benutzt werden, um eine räumliche Transformation (z. B. des aktuellen Bilds) über das trainierte Netz zum räumlichen Transformieren zu erzeugen. Die räumliche Transformation kann auf das tiefe neuronale Semantik-Netz angewandt werden, um über dieses Netz Maß(e) zu erzeugen, die Merkmal(e) eines Objekts angeben, das in der räumlichen Transformation vorhanden ist. Ob ein Greifen durch einen Greifeffektor versucht wird, kann auf einem Vorhersagemaß eines erfolgreichen Greifens und/oder darauf, welche Merkmal(e) als in der räumlichen Transformation vorhanden angegeben werden, basieren. Eine zusätzliche Beschreibung dieser und anderer Implementierungen der Technologien ist nachstehend bereitgestellt.
  • Mit Bezug auf die 1A-6B sind verschiedene Implementierungen des Trainierens verschiedener Netze 125, 126 und/oder 127 eines Semantikgreifmodells 124 beschrieben. 1A stellt eine Beispielumgebung dar, in der Greifversuche durch Roboter (z. B. die Roboter 180A, 180B und/oder andere Roboter) ausgeführt werden können, Daten, die den Greifversuchen zugeordnet sind, benutzt werden können, um Trainingsbeispiele zu erzeugen, und/oder die Trainingsbeispiele benutzt werden können, um verschiedene Netze 125, 126 und/oder 127 des Semantikgreifmodells 124 zu trainieren.
  • Die Beispiel-Roboter 180A und 180B sind in 1A dargestellt. Die Roboter 180A und 180B sind „Roboterarme“, die mehrere Freiheitsgrade aufweisen, um Traversierung von Greifeffektoren 182A und 182B entlang irgendeines aus mehreren potentiellen Pfaden zur Positionierung des Greifeffektors 182A und 182B an gewünschten Orten zu ermöglichen. Beispielsweise ist mit Bezug auf 2 ein Beispiel des Roboters 180A dargestellt, der seinen Effektor entlang einem Pfad 201 traversiert. 2 enthält ein Phantom- und ein Nichtphantom-Bild des Roboters 180A, die zwei unterschiedliche Stellungen einer Menge von Stellungen, die durch den Roboter 180A und seinen Effektor beim Traversieren entlang dem Pfad 201 überstrichen werden, zeigen. Wieder Bezug nehmend auf 1A steuern die Roboter 180A und 180B jeweils ferner die zwei gegenüberliegenden „Greifer“ ihrer entsprechenden Greifeffektoren 182A, 182B, um die Greifer zwischen wenigstens einer offenen Position und einer geschlossenen Position (und/oder optional mehreren „teilweise geschlossenen“ Positionen) zu betätigen.
  • Beispiel-Vision-Sensoren 184A und 184B sind ebenfalls in 1A dargestellt. In 1A ist der Vision-Sensor 184A in einer festen Stellung relativ zu der Basis oder einem anderen stationären Referenzpunkt des Roboters 180A montiert. Der Vision-Sensor 184B ist ebenfalls in einer festen Stellung relativ zu der Basis oder einem anderen stationären Referenzpunkt des Roboters 180B montiert. Wie in 1A dargestellt ist die Stellung des Vision-Sensors 184A relativ zu dem Roboter 180A anders als die Stellung des Vision-Sensors 184B relativ zu dem Roboter 180B. Wie hier beschrieben kann das in einigen Implementierungen nützlich sein, um die Erzeugung variierender Trainingsbeispiele zu ermöglichen, die benutzt werden können, um ein neuronales Netz zu trainieren, das gegen Kamerakalibrierung robust und/oder davon unabhängig ist. Die Vision-Sensoren 184A und 184B sind Sensoren, die Bilder erzeugen können, die sich auf Form, Farbe, Tiefe und/oder andere Merkmale von Objekt(en) beziehen, die in der Sichtlinie der Sensoren sind. Die Vision-Sensoren 184A und 184B können beispielsweise monografische Kameras, stereografische Kameras und/oder 3D-Laserscanner sein. Ein 3D-Laserscanner enthält einen oder mehrere Laser, die Licht emittieren, und einen oder mehrere Sensoren, die Daten sammeln, die zu Reflexionen des emittierten Lichts gehören. Ein 3D-Laserscanner kann beispielsweise ein Flugzeit-3D-Laserscanner oder ein triangualationsbasierter 3D-Laserscanner sein und kann einen positionsempfindlichen Detektor (PSD) oder einen anderen optischen Positionssensor enthalten.
  • Der Vision-Sensor 184A hat ein Gesichtsfeld von wenigstens einem Abschnitt des Arbeitsbereichs des Roboters 180A, wie z. B. dem Abschnitt des Arbeitsbereichs, der die Beispielobjekte 191A enthält. Obwohl die Ablagefläche(n) für Objekte 191A in 1A nicht dargestellt sind, können diese Objekte auf einem Tisch, einem Tablett und/oder anderen Oberfläche(n) liegen. Die Objekte 191A enthalten einen Pfannenwender, einen Hefter und einen Stift. In anderen Implementierungen können mehr Objekte, weniger Objekte, zusätzliche Objekte und/oder alternative Objekte während aller oder eines Teils der Greifversuche des Roboters 180A, wie sie hier beschrieben sind, bereitgestellt sein. Beispielsweise können in einigen Implementierungen Objekte, die eines oder mehrere der Merkmale aufweisen, die gleich sind (z. B. Objekte, die alle eine erste Klassifizierung aufweisen), während einiger Greifversuche des Roboters 180A bereitgestellt werden, Objekte, die ein oder mehrere andere Merkmale aufweisen, die gleich sind (z. B. Objekte, die alle eine zweite Klassifizierung aufweisen) können während einiger anderer Greifversuchen des Roboters 180A bereitgestellt werden, usw.
  • Der Vision-Sensor 184B hat ein Gesichtsfeld von wenigstens einem Abschnitt des Arbeitsbereichs des Roboters 180B, wie z. B. dem Abschnitt des Arbeitsbereichs, der die Beispielobjekte 191B enthält. Obwohl die Ablagefläche(n) für Objekte 191B in 1A nicht dargestellt sind, können sie auf einem Tisch, einem Tablett und/oder anderen Oberfläche(n) liegen. Die Objekte 191B enthalten einen Stift, einen Hefter und eine Brille. In anderen Implementierungen können mehr Objekte, weniger Objekte, zusätzliche Objekte und/oder alternative Objekte während aller oder eines Teils der Greifversuche des Roboters 180B, wie sie hier beschrieben sind, bereitgestellt sein. Beispielsweise können in einigen Implementierungen Objekte, die eines oder mehrere der Merkmale aufweisen, die gleich sind (alle z. B. Objekte besitzen eine erste Klassifizierung), während einiger Greifversuche des Roboters 180B bereitgestellt werden, Objekte, die ein oder mehrere unterschiedliche Merkmale aufweisen, die gleich sind (z. B. alle Objekte besitzen alle eine zweite Klassifizierung) können während einigen anderen Greifversuchen des Roboters 180B bereitgestellt werden, usw.
  • Obwohl spezielle Roboter 180A und 180B in 1A dargestellt sind, können zusätzliche und/oder alternative Roboter benutzt werden, die zusätzliche Roboterarme enthalten, die ähnlich den Robotern 180A und 180B sind, Roboter, die andere Roboterarmformen aufweisen, Roboter, die eine menschenähnliche Form aufweisen, Roboter, die eine Tierform aufweisen, Roboter, die sich über ein oder mehrere Räder bewegen (z. B. selbstausgleichende Roboter), Tauchfahrzeugroboter, ein unbemanntes Luftfahrzeug („UAV“) und so weiter. Außerdem können, obwohl spezielle Greifeffektoren in 1A dargestellt sind, zusätzliche und/oder alternative Effektoren benutzt werden, wie z. B. alternative auftreffende Greifeffektoren (z. B. diejenigen mit Greif-„Platten“, diejenigen mit mehr oder weniger „Fingern“/„Greifern“), „eindringende“ Greifeffektoren, „astriktive“ Greifeffektoren oder „kontigutive“ Greifeffektoren oder nicht greifende Effektoren. Zusätzlich können, obwohl spezielle Montagearten von Vision-Sensoren 184A und 184B in 1A dargestellt sind, zusätzliche und/oder alternative Montagearten benutzt werden. Beispielsweise können in einigen Implementierungen die Vision-Sensoren direkt an Robotern montiert sein, wie z. B. auf nicht beweglichen Komponenten der Roboter oder auf zu betätigenden Komponenten der Roboter (z. B. auf dem Effektor oder auf einer Komponente nahe dem Effektor). Außerdem kann beispielsweise in einigen Implementierungen ein Vision-Sensor auf einer nicht stationären Struktur montiert sein, die von seinem zugeordneten Roboter separat ist, und/oder kann auf eine nicht stationäre Weise auf einer Struktur montiert sein, die von seinem zugeordneten Roboter separat ist.
  • Die Roboter 180A, 180B und/oder andere Roboter können benutzt werden, um eine große Menge von Greifversuchen auszuführen, und Daten, die den Greifversuchen zugeordnet sind, können durch das Trainingsbeispielerzeugungssystem 110 benutzt werden, um Trainingsbeispiele der Trainingsbeispieldatenbank 117 zu erzeugen. In einigen Implementierungen kann das gesamte oder Aspekte des Trainingsbeispielerzeugungssystems 110 auf dem Roboter 180A und/oder dem Roboter 180B implementiert sein (z. B. über einen oder mehrere Prozessoren der Roboter 180A und 180B). Beispielsweise können die Roboter 180A und 180B jeweils eine Instanz des Trainingsbeispielerzeugungssystems 110 enthalten. In einigen Implementierungen kann das gesamte oder Aspekte des Trainingsbeispielerzeugungssystems 110 auf einem oder mehreren Computersystemen implementiert sein, die von den Robotern 180A und 180B separat sind, jedoch in Netzkommunikation mit ihnen sind.
  • Jeder Greifversuch durch den Roboter 180A, 180B und/oder andere Roboter besteht aus T separaten Zeitstufen oder Instanzen. An jeder Zeitstufe wird ein aktuelles Bild ( I t i )
    Figure DE202017106506U1_0001
    das durch den Vision-Sensor des Roboters, der den Greifversuch ausführt, aufgenommen wird, gespeichert, die aktuelle Stellung ( p t i )
    Figure DE202017106506U1_0002
    des Effektors wird ebenfalls gespeichert, und der Roboter wählt einen Pfad (Translation und/oder Rotation), entlang dem der Greifer als nächstes bewegt werden soll. In der letzten Zeitstufe T betätigt der Roboter (z. B. schließt) den Greifer und speichert zusätzliche Daten und/oder führt eine oder mehrere zusätzliche Aktionen aus, um die Auswertung des Erfolgs des Greifens zu ermöglichen. Die Greifen-Erfolgs-Engine 116 des Trainingsbeispielerzeugungssystems 110 wertet den Erfolg des Greifens aus, erzeugt ein Greifen-Erfolgs-Etikett (sli) und/oder Etikett(en) des gegriffenen Objekts (oℓi), wobei Etikett(e) des gegriffenen Objekts Merkmal(e) eines gegriffenen Objekts angeben (falls tatsächlich irgendein Objekt gegriffen ist).
  • Jeder Greifversuch führt zu T Trainingsbeispielen, die durch ( I t i , p T i p t i , s l i , o l i )
    Figure DE202017106506U1_0003
    oder ( I t i , p T i p t i , s l i , o l i )
    Figure DE202017106506U1_0004
    repräsentiert sind. Das heißt, jedes Trainingsbeispiel enthält wenigstens das Bild, das an dieser Zeitstufe ( I t i )
    Figure DE202017106506U1_0005
    beobachtet wird, den Effektorbewegungsvektor ( p T i p t i )
    Figure DE202017106506U1_0006
    aus der Stellung an dieser Zeitstufe zu einer, die schließlich erreicht wird (der Endstellung des Greifversuchs), und das Greifen-Erfolgs-Etikett (ℓi) und/oder Etikett(e) des gegriffenen Objekts (oℓi) des Greifversuchs. Jeder Effektorbewegungsvektor kann durch die Effektorbewegungsvektor-Engine 114 des Trainingsbeispielerzeugungssystems 110 bestimmt werden. Beispielsweise kann die Effektorbewegungsvektor-Engine 114 eine Transformation zwischen der aktuellen Stellung und der Endstellung des Greifversuchs bestimmen und die Transformation als den Effektorbewegungsvektor verwenden. Die Trainingsbeispiele für die mehreren Greifversuche von mehreren Robotern werden durch das Trainingsbeispielerzeugungssystem 110 in der Trainingsbeispieldatenbank 117 gespeichert.
  • Die Daten, die durch die Sensor(en), die einem Roboter zugeordnet sind, erzeugt werden, und/oder die Daten, die aus den erzeugten Daten abgeleitet werden, können in einem oder mehreren nichttransitorischen computerlesbaren Medien lokal an dem Roboter und entfernt von dem Roboter gespeichert werden. In einigen Implementierungen kann das aktuelle Bild mehrere Kanäle enthalten, wie z. B, einen roten Kanal, einen blauen Kanal, einen grünen Kanal und/oder einen Tiefenkanal. Jeder Kanal eines Bilds definiert einen Wert für jedes aus mehreren Pixeln des Bilds, wie z. B. einen Wert von 0 bis 255 für jedes aus den Pixeln des Bilds. In einigen Implementierungen kann jedes der Trainingsbeispiele das aktuelle Bild und ein zusätzliches Bild für den entsprechenden Greifversuch enthalten, wobei das zusätzliche Bild den Greifeffektor nicht enthält oder den Effektor in einer unterschiedlichen Stellung enthält (z. B. einer, die nicht mit der Stellung des aktuellen Bilds überlappt). Beispielsweise kann das zusätzliche Bild nach irgendeinem vorhergehenden Greifversuch, jedoch bevor die Effektorbewegung für den Greifversuch beginnt, und wenn der Greifeffektor aus dem Gesichtsfeld des Vision-Sensors bewegt wird, aufgenommen werden. Die aktuelle Stellung und die Effektorbewegungsvektor von der aktuellen Stellung zu der Endstellung des Greifversuchs können in dem Aufgabenraum, dem Gelenkraum oder einem anderen Raum repräsentiert sein. Beispielsweise kann der Effektorbewegungsvektor durch fünf Werte im Aufgabenraum repräsentiert sein: drei Werte, die den dreidimensionalen (3D-) Translationsvektor definieren, und zwei Werte, die eine Sinus-Cosinus-Codierung der Änderung der Orientierung des Effektors um eine Achse des Effektors repräsentieren.
  • In einigen Implementierungen ist das Greifen-Erfolgs-Etikett ein binäres Etikett, wie z. B. ein „0/erfolgreich“ oder „1/nicht erfolgreich“-Etikett. In einigen Implementierungen kann das Greifen-Erfolgs-Etikett aus mehr als zwei Optionen wie z. B. 0, 1 und einem oder mehreren Werten zwischen 0 und 1 ausgewählt sein. Beispielsweise kann „0“ ein bestätigtes „nicht erfolgreiches Greifen“ angeben, „1“ kann ein bestätigtes erfolgreiches Greifen angeben, „0,25“ kann ein „höchstwahrscheinlich nicht erfolgreiches Greifen“ angeben, und „0,75“ kann ein „höchstwahrscheinlich erfolgreiches Greifen“ angeben.
  • In einigen Implementierungen geben die Etikett(e) des gegriffenen Objekts jeweils an, ob ein entsprechendes Merkmal in einem entsprechenden gegriffenen Objekt vorhanden ist. Beispielsweise kann ein Etikett des gegriffenen Objekts für ein gegriffenes Objekt angeben, zu welcher aus einer oder mehreren Objektklassen das Objekt gehört. Objektklassen verschiedener Granularitäten können benutzt werden. Die Etikette der gegriffenen Objekte können jeweils binär (z. B. Merkmal vorhanden oder nicht vorhanden) sein oder aus mehr als zwei Optionen ausgewählt sein (z. B. Merkmal wahrscheinlich nicht vorhanden, höchstwahrscheinlich nicht vorhanden, wahrscheinlich vorhanden, höchstwahrscheinlich vorhanden). Wie hier beschrieben kann die Greifen-Erfolgs-Engine 116 eine oder mehrere Techniken benutzen, um einem Greifversuch ein Etikett des gegriffenen Objekts zuzuweisen. Beispielsweise kann die Greifen-Erfolgs-Engine 116 ein Etikett des gegriffenen Objekts einem Greifversuch basierend darauf zuweisen, dass dieser Greifversuch aus einer Sammlung von Objekten ist, die alle dieses Etikett aufweisen (z. B. ein „Zahnbürste“-Etikett, wenn ein Objekt aus mehreren Objekten, die alle „Zahnbürsten“ sind, gegriffen wird). Außerdem kann beispielsweise die Greifen-Erfolgs-Engine 116 ein Bild eines Objekts, das in einem Greifversuch gegriffen wird, aufnehmen (z. B. durch Bewegen des Greifeffektors vor einem Vision-Sensor, während es noch das Objekt greift) und das aufgenommene Bild benutzen, um das Etikett des gegriffenen Objekts zu bestimmen. Beispielsweise kann die Greifen-Erfolgs-Engine 116 das aufgenommene Bild für Berechnungsvorrichtungen eines oder mehrerer menschlicher Prüfer bereitstellen und Eingaben von dem einen oder den mehreren menschlichen Prüfern (über ihre entsprechenden Berechnungsvorrichtungen) benutzen, um das Etikett des gegriffenen Objekts zu bestimmen. Außerdem kann beispielsweise die Greifen-Erfolgs-Engine 116 das aufgenommene Bild (oder eine räumliche Transformation davon) auf ein trainiertes Semantik-CNN (optional separat von dem Semantik-CNN 127) und eine Ausgabe, die über das trainierte Semantik-CNN erzeugt wird, anwenden, um das Etikett des gegriffenen Objekts zu bestimmen. In einigen dieser Fälle kann das trainierte Semantik-CNN optional basierend auf den durch den menschlichen Prüfer etikettierten aufgenommenen Bildern (z. B. Trainingsbeispiele, die Trainingsbeispieleingabe basierend auf den aufgenommenen Bildern und Trainingsbeispielausgabe basierend auf den Etiketten des menschlichen Prüfers aufweisen) und/oder zusätzlichen Trainingsbeispielen (z. B. Trainingsbeispielen aus IMAGENET) trainiert werden.
  • Die Trainings-Engine 120 trainiert eines oder mehrere aus den Netzen 125, 126 und 127 des Semantikgreifmodells 124 basierend auf den Trainingsbeispielen der Trainingsbeispieldatenbank 117. Die Trainings-Engine 120 kann einige Trainingsbeispiele der Trainingsbeispieldatenbank 117 benutzen, um nur das Greif-CNN 125 zu trainieren. Beispielsweise können einige Trainingsbeispiele der Trainingsbeispieldatenbank 117 ein Bild, das an einer entsprechenden Zeitstufe ( I t i )
    Figure DE202017106506U1_0007
    beobachtet wir, einen Effektorbewegungsvektor ( p T i p t i )
    Figure DE202017106506U1_0008
    von der Stellung an der Zeitstufe zu derjenigen, die schließlich erreicht wird (der Endstellung des Greifversuchs), und das Greifen-Erfolgs-Etikett (ℓi) enthalten -, jedoch nicht Etikett(e) eines gegriffenen Objekts (oℓi) des Greifversuchs enthalten (z. B. weil das Greifen nicht erfolgreich war und/oder weil kein Etikett auf ein erfolgreiches Greifen angewandt wurde).
  • Die Trainings-Engine 120 kann außerdem einige andere Trainingsbeispiele der Trainingsbeispieldatenbank 117 benutzen, um zusätzlich oder alternativ das Greif-CNN und das STN 126 und/oder das Semantik-CNN 127 zu trainieren. Beispielsweise können einige Trainingsbeispiele der Trainingsbeispieldatenbank 117 ein Bild, das an einer entsprechenden Zeitstufe ( I t i )
    Figure DE202017106506U1_0009
    beobachtet wird, einen Effektorbewegungsvektor ( p T i p t i )
    Figure DE202017106506U1_0010
    von der Stellung an der Zeitstufe bis zu derjenigen, die schließlich erreicht wird (die Endstellung des Greifversuchs), das Greifen-Erfolgs-Etikett (ℓi) enthalten und außerdem Etikett(e) eines gegriffenen Objekts (oℓi) des Greifversuchs enthalten.
  • In einigen Implementierungen benutzt die Trainings-Engine 120 außerdem zusätzliche Trainingsbeispiele aus der Semantiktrainingsbeispieldatenbank 110, um das Semantik-CNN 127 zu trainieren. Die Trainingsbeispiele der Datenbank 119 können Trainingsbeispiele aus anderen Computer-Vision-Datenmengen enthalten, die Trainingsbeispiele enthalten, die nicht basierend auf Greifversuchen durch einen oder mehrere Roboter erzeugt werden (z. B. Trainingsbeispiele aus der IMNAGENET-Bilddatenbank). In einigen dieser Implementierungen können die zusätzlichen Trainingsbeispiele der Datenbank 119 benutzt werden, um das Semantik-CNN 127 zu trainieren vor irgendeinem Trainieren basierend auf Trainingsbeispielen, die basierend auf Greifversuchen erzeugt werden. Ferner kann in einigen Implementierungen das Semantik-CNN 127 unter Nutzung solcher zusätzlicher Trainingsbeispiele vortrainiert werden. Beispielsweise kann das Semantik-CNN 127 ein vortrainiertes Objekterkennungsnetz wie z. B. ein Startnetz, das mit IMAGENET-Daten trainiert ist, sein. Das Verwenden der zusätzlichen Trainingsbeispiele aus anderen Computer-Vision-Datenmengen kann die Genauigkeit und/oder Breite des Semantik-Verstehens des Semantik-CNN 127 erhöhen. Die Trainings-Engine 120 kann optional verschiedene Domänenanpassungstechniken zum Trainieren des Semantik-CNN 127 basierend auf den zusätzlichen Trainingsbeispielen und/oder basierend auf den Trainingsbeispielen, die basierend auf Greifversuchen erzeugt werden, benutzen.
  • Eine zusätzliche Beschreibung von Implementierungen zum Ausführen von Greifversuchen, Erzeugen von Trainingsdaten basierend auf Greifversuchen und Trainieren des Semantikgreifnetzes 124 ist nachstehend mit Bezug auf die 3-5 bereitgestellt.
  • 1B stellt die Netze 125, 126 und 127 des Semantikgreifmodells 124 von 1A und Beispieldaten, die auf trainierte Versionen der Netze 125, 126 und 127 angewandt und über sie erzeugt werden, dar. Beispielsweise können ein oder mehrere Prozessoren eines Roboters die Daten von 1B basierend auf den Netzen 125, 126 und 127 anwenden und/oder erzeugen. Beispielsweise können der eine oder die mehreren Prozessoren die Daten von 1B während einer gegebenen Iteration (z. B. Steuerzyklus), der andere Iterationen vorausgehen und/oder nachfolgen, wo entsprechende Daten auf gleiche Weise erzeugt und/oder angewandt werden, erzeugen und/oder anwenden.
  • Ein oder mehrere Bilder 161 werden als Eingabe für das Greif-CNN 125 angewandt, wie z. B. ein aktuelles Bild oder optional ein zusätzliches Bild (z. B. ein Bild, das die gleiche Szene wie das aktuelle Bild aufnimmt, jedoch den Greifeffektor weglässt). Ein Effektorbewegungsvektor 162 wird ebenfalls auf das Greif-CNN 125 angewandt. In einigen Implementierungen werden die Bild(er) 161 auf eine Anfangsschicht des Greif-CNN 125 angewandt, und der Effektorbewegungsvektor 162 wird auf eine nachgelagert Schicht des Greif-CNN 125 angewandt.
  • Ein Greif-Maß 177 und STN-Parameter 178 werden über das Greif-CNN 125 basierend auf den angewandten Bild(ern) 161 und dem Effektorbewegungsvektor 162 erzeugt. In einigen Implementierungen können die STN-Parameter Transformationsparameter für das STN 126 sein, wie z. B. Translationskoeffizienten einer affinen Transformation, optional mit einem festen Maßstab für einen ausgeschnittenen Bereich (z. B. einem festen Maßstab von 128,0/472,0).
  • Die STN-Parameter 178 und wenigstens eines aus den Bild(ern) 161 (z. B. das aktuelle Bild) werden als Eingabe für das STN 126 angewandt. Das STN 126 wird benutzt, um eine räumliche Transformation 179 zu erzeugen, die eine räumliche Transformierte der angewandten Bild(er) 161 basierend auf den STN-Parametern 178 ist. In einigen Implementierungen ist das räumlich transformierte Bild 179 ein Ausschnitt eines Abschnitts der angewandten Bild(er) 161, wobei dieser Abschnitt basierend auf den bestätigten STN-Parametern 178 ausgewählt wird. In einigen Implementierungen können zusätzliche und/oder alternative Transformationen über das STN 126 erzeugt werden.
  • Die räumliche Transformation 179 wird als Eingabe für das Semantik-CNN 127 angewandt, und Semantikmerkmal(e) 180 werden über das Semantik-CNN 127 basierend auf dem angewandten räumlich transformierten Bild 179 erzeugt. Beispielsweise können die Semantikmerkmal(e) 180 angeben, zu welcher aus einer oder mehreren Klassen ein Objekt in dem räumlich transformierten Bild 179 gehört, wie z. B. Klassen aus „Radierer“, „Schere“, „Kamm“, „Schaufel“, „Taschenlampe“, „Spielzeug“, „Haarbürste“ und/oder anderen Klasse(n) größerer oder kleinerer Granularität.
  • Ein oder mehrere Prozessoren eines Roboters können bestimmen, ob der Effektorbewegungsvektor 162 ausgeführt werden soll, ein Greifen versucht werden soll oder eine Korrekturtrajektorie basierend auf dem Greif-Maß 177 und den Semantikmerkmal(en) 180 ausgeführt werden soll. Beispielsweise können ein oder mehrere gewünschte Objekt-Semantikmerkmale bereitgestellt sein (z. B. über eine Anwenderschnittstelleneingabe), und ein Greifen basierend auf den Semantikmerkmal(en), die diese Semantikmerkmale angeben, und basierend auf dem Greif-Maß 177 und/oder einem Greif-Maß einer vorherigen Iteration, das eines oder mehrere Kriterien erfüllt, kann versucht werden. Eine zusätzliche Beschreibung von Implementierungen zum Nutzen eines Semantikgreifmodells ist nachstehend mit Bezug auf 7 bereitgestellt.
  • 3 ist ein Ablaufplan, der ein Beispielverfahren 300 zum Ausführen von Greifversuchen und Speichern von Daten, die den Greifversuchen zugeordnet sind, darstellt. Zur Vereinfachung sind die Operationen des Ablaufplans mit Bezug auf ein System beschrieben, das die Operationen ausführt. Dieses System kann eine oder mehrere Komponenten eines Roboters enthalten, wie z. B. einen Prozessor und/oder ein Robotersteuersystem des Roboters 180A, 180B, 825, und/oder einen anderen Roboter. Außerdem ist, obwohl die Operationen des Verfahrens 300 in einer speziellen Reihenfolge gezeigt sind, das nicht als einschränkend gemeint. Eine oder mehrere Operationen können umgeordnet, weggelassen oder hinzugefügt werden.
  • Bei Block 352 startet das System einen Greifversuch. Bei Block 354 speichert das System ein Bild einer Umgebung, ohne dass ein Effektor in dem Bild vorhanden ist. Beispielsweise kann das System den Greifeffektor aus dem Gesichtsfeld des Vision-Sensors bewegen (d. h. so dass er die Ansicht der Umgebung nicht verdeckt) und ein Bild an einer Instanz aufnehmen, wenn der Greifeffektor außerhalb des Gesichtsfelds ist. Das Bild kann dann gespeichert und dem Greifversuch zugeordnet werden.
  • Bei Block 356 bestimmt und implementiert das System eine Effektorbewegung. Beispielsweise kann das System einen oder mehrere Bewegungsbefehle erzeugen, um zu bewirken, dass sich der eine oder die mehreren der Aktuatoren, die die Stellung des Effektors steuern, im Bewegung setzen und dadurch die Stellung des Effektors zu ändern.
  • In einigen Implementierungen und/oder Iterationen von Block 356 können die Bewegungsbefehl(e) innerhalb eines gegeben Raums zufällig sein, wie z. B. des Arbeitsbereichs, der durch den Effektor erreicht werden kann, eines eingeschränkten Raums, auf den der Effektor für die Greifversuche beschränkt ist, und/oder eines Raums, der durch Positions- und/oder Drehmomentbegrenzungen von Aktuator(en), die die Stellung des Effektors steuern, definiert ist. Beispielsweise können, bevor das Anfangstraining eines neuronalen Netzes fertiggestellt ist, die Bewegungsbefehl(e), die durch das System bei Block 356 erzeugt werden, um die Effektorbewegung zu implementieren, innerhalb eines gegebenen Raums zufällig sein. Zufall, wie es hier verwendet ist, kann echten Zufall oder Pseudo-Zufall enthalten.
  • In einigen Implementierungen können die Bewegungsbefehl(e), die durch das System bei Block 356 erzeugt werden, um eine Effektorbewegung zu implementieren, wenigstens teilweise auf einer aktuellen Version eines trainierten Greif-CNN basieren und/oder auf anderen Kriterien basieren. In einigen Implementierungen kann in der ersten Iteration von Block 356 für jeden Greifversuch der Effektor „in Fehlstellung“ sein basierend darauf, dass er bei Block 354 aus dem Gewichtsfeld bewegt wird. In einigen dieser Implementierungen kann vor der ersten Iteration des Blocks 356 der Effektor zufällig oder auf andere Weise „zurück in Position“ bewegt werden. Beispielsweise kann der Effektor zurück zu einer eingestellten „Startposition“ bewegt werden oder zu einer zufällig ausgewählten Position innerhalb eines gegebenen Raums bewegt werden.
  • Bei Block 358 speichert das System: (1) ein Bild, das den Effektor und die Umgebung an der aktuellen Instanz des Greifversuchs aufnimmt, und (2) die Stellung des Effektors an der aktuellen Instanz. Beispielsweise kann das System ein aktuelles Bild, das durch einen Vision-Sensor erzeugt wird, der dem Roboter zugeordnet ist, speichern und das Bild der aktuellen Instanz zuordnen (z. B. mit einem Zeitstempel). Außerdem kann beispielsweise das System die aktuelle Stellung des Effektors basierend auf Daten von einem oder mehreren Gelenkpositionssensoren von Gelenken des Roboters, deren Positionen die Stellung des Roboters beeinflussen, bestimmen, und das System kann diese Stellung speichern. Das System kann die Stellung des Effektors in dem Aufgabenraum, dem Gelenkraum oder einem anderen Raum bestimmen und speichern.
  • Bei Block 360 bestimmt das System, ob die aktuelle Instanz die letzte Instanz für den Greifversuch ist. In einigen Implementierungen kann das System einen Instanzzähler bei Block 352, 354, 356 oder 358 inkrementieren und/oder einen Zeitzähler mit dem Verlauf der Zeit inkrementieren - und bestimmen, ob die aktuelle Instanz die letzte Instanz ist, basierend auf dem Vergleich eines Werts des Zählers mit einem Schwellenwert. Beispielsweise kann der Zähler ein Zeitzähler sein, und der Schwellenwert kann 3 Sekunden, 4 Sekunden, 5 Sekunden und/oder ein anderer Wert sein. In einigen Implementierungen kann der Schwellenwert zwischen einer oder mehreren Iterationen des Verfahrens 300 variieren.
  • Falls das System bei Block 360 bestimmt, dass die aktuelle Instanz nicht die letzte Instanz für den Greifversuch ist, kehrt das System zu Block 356 zurück, wo es eine weitere Effektorbewegung bestimmt und implementiert, fährt dann zu Block 358 fort, wo es ein Bild und die Stellung an der aktuellen Instanz speichert. Durch mehrere Iterationen der Blöcke 356, 358 und 360 für einen gegebenen Greifversuch wird die Stellung des Effektors durch mehrere Iterationen von Block 356 verändert, und ein Bild und die Stellung werden an jeder dieser Instanzen gespeichert. In vielen Implementierungen können die Blöcke 356, 358, 360 und/oder andere Blöcke mit einer relativ hohen Frequenz ausgeführt werden und dadurch eine relativ große Menge von Daten für jeden Greifversuch speichern.
  • Falls das System bei Block 360 bestimmt, dass die aktuelle Instanz die letzte Instanz für den Greifversuch ist, fährt das System zu Block 362 fort, wo es den Greifer des Effektors betätigt. Beispielsweise kann das System für einen Effektor mit auftreffendem Greifer bewirken, dass sich einige oder mehrere Platten, Finger und/oder andere Elemente schließen. Beispielsweise kann das System bewirken, dass sich die Elemente schließen, bis sie entweder in einer vollständig geschlossenen Position sind oder ein Drehmomentmessergebnis, das durch Drehmomentsensor(en), die den Elementen zugeordnet sind, gemessen wird, einen Schwellenwert erfüllt.
  • Bei Block 364 speichert das System zusätzliche Daten und führt optional eine oder mehrere zusätzliche Aktionen aus, um die Bestimmung des Erfolgs des Greifens von Block 360 zu ermöglichen und/oder um die Bestimmung von Merkmalen des gegriffenen Objekts für ein bei Block 360 gegriffenes Objekt (falls vorhanden) zu ermöglichen. In einigen Implementierungen sind die zusätzlichen Daten, die gespeichert werden, um die Bestimmung des Erfolgs des Greifens zu ermöglichen, ein Positionsmessergebnis, ein Drehmomentmessergebnis und/oder ein anderes Messergebnis aus dem Greifeffektor. Beispielsweise kann ein Positionsmessergebnis, das größer ist als ein Schwellenwert (z. B. 1 cm), nachfolgend Block 362 ein erfolgreiches Greifen angeben (z. B. kann angeben, dass der Greifeffektor ein Objekt greift, da er sich über den Schwellenwert hinaus schließen kann). In einigen Implementierungen sind die zusätzlichen Daten, die gespeichert sind, um die Bestimmung von Merkmalen eines gegriffenen Objekts für ein gegriffenes Objekt bei Block 360 zu bestimmen, eine Angabe eines oder mehrerer Objektmerkmale, die allen Objekten gemeinsam sind, die zum Greifen während des Greifversuchs verfügbar sind. Beispielsweise können in dem Greifversuch nur Malerpinsel in dem Arbeitsbereich des Roboters verfügbar sein, und ein Objektmerkmal, das eine Klassifizierung eines „Malerpinsels“ angibt, kann gespeichert sein. Die Objektmerkmal(e), die allen Objekten in dem Greifversuch gemeinsam sind, können basierend auf einer durch einen Bediener bereitgestellten Angabe und/oder einer abgefühlten Angabe bestimmt werden (z. B. kann ein maschinenlesbarer Code in dem Arbeitsbereich bereitgestellt und durch den Vision-Sensor aufgenommen werden, der die Objektmerkmal(e) angibt).
  • In einigen Implementierungen führt das System bei Block 364 zusätzlich und/oder alternativ aus: (1) hält den Effektor in der betätigten (z. B. geschlossenen) Position und bewegt den Effektor und das Objekt, das durch den Effektor gegriffen worden sein kann, zu einer Position nahe einem Vision-Sensor; und (2) nimmt ein Bild mit dem Vision-Sensor auf, wenn der Effektor (und irgendein gegriffenes Objekt) in der Position nahe dem Vision-Sensor sind. In einigen dieser Implementierungen kann das System nur dann den Effektor bewegen und/oder ein solches Bild aufnehmen, wenn zuerst basierend auf anderen Daten bestimmt wird, dass ein Greifen potentiell erfolgreich ist (z. B. falls ein Positionsmessergebnis ein erfolgreiches Greifen angibt). Wie hier beschrieben kann ein solches aufgenommenes Bild nachfolgend benutzt werden, um zu bestimmen, ob ein Greifversuch erfolgreich war, und/oder um ein oder mehrere Merkmale des gegriffenen Objekts des durch den Effektor gegriffenen Objekts zu bestimmen. Beispielsweise kann das aufgenommene Bild für Berechnungsvorrichtungen eines oder mehrerer menschlicher Prüfer bereitgestellt werden, die ihre Berechnungsvorrichtungen nutzen können, um basierend auf dem aufgenommenen Bild anzugeben, ob das Greifen erfolgreich war, und/oder um ein oder mehrere Merkmale des gegriffenen Objekts des Objekts, das in dem aufgenommenen Bild gegriffen wird, anzugeben. Außerdem kann beispielsweise das aufgenommen Bild (oder eine räumliche Transformation davon) auf ein trainiertes Semantik-CNN (optional separat von dem Semantik-CNN 127) und eine Ausgabe, die über das trainierte Semantik-CNN erzeugt wird, angewandt werden, um ein oder mehrere Merkmale des gegriffenen Objekts des Objekts, das gegriffen wird, zu bestimmen.
  • Bei Block 366 setzt das System den Zähler (z. B. den Instanzzähler und/oder den Zeitzähler) zurück und kehrt zu Block 352 zurück, um einen weiteren Greifversuch zu starten.
  • In einigen Implementierungen kann das Verfahren von 3 auf jedem aus mehreren Robotern implementiert sein, optional parallel arbeitend während einer oder mehrerer (z. B. aller) ihrer jeweiligen Iterationen des Verfahrens 300. Das kann ermöglichen, dass mehr Greifversuche in einer gegebenen Zeitspanne erreicht werden können als dann, wenn nur ein Roboter mit dem Verfahren 300 arbeitet. Außerdem können in Implementierungen, in denen einer oder mehrere aus den mehreren Robotern einen zugeordneten Vision-Sensor mit einer Stellung relativ zu dem Roboter, die von der Stellung eines oder mehrerer Vision-Sensoren, die anderen der Roboter zugeordnet sind, eindeutig ist, Trainingsbeispiele, die basierend auf Greifversuchen von den mehreren Robotern Robustheit gegen die Stellung des Vision-Sensors in einem neuronalen Netz, das basierend auf diesen Trainingsbeispielen trainiert wird, bereitstellen. Außerdem können in Implementierungen, in denen Greifeffektoren und/oder andere Hardware-Komponenten der mehreren Roboter variieren und/oder unterschiedlich verschleißen und/oder in denen unterschiedliche Roboter (z. B. die gleiche Bauart und/oder Modell und/oder unterschiedliche Bauarten) und/oder Modell(e)) mit unterschiedlichen Objekten (z. B. Objekten von unterschiedlicher Größe, unterschiedlichem Gewicht, unterschiedlicher Form, unterschiedlicher Durchsichtigkeit, unterschiedlichen Materialien) und/oder in unterschiedlicher Umgebung (z. B. unterschiedliche Oberfläche, unterschiedliche Beleuchtung, unterschiedliche Hindernisse in der Umgebung) zusammenwirken, Trainingsbeispiele, die basierend auf Greifversuchen von den mehreren Robotern erzeugt werden, Robustheit gegen verschiedene Roboter- und/oder Umgebungs-Konfigurationen bereitstellen.
  • In einigen Implementierungen können Objekte, die durch einen gegebenen Roboter erreichbar sind und auf denen Greifversuche vorgenommen werden können, während unterschiedlicher Iterationen des Verfahrens 300 unterschiedlich sein. Beispielsweise können ein menschlicher Bediener und/oder ein weiterer Roboter Objekte zu dem Arbeitsbereich eines Roboters zwischen einem oder mehreren Greifversuchen des Roboters hinzufügen und/oder daraus entfernen. Außerdem kann beispielsweise der Roboter selbst ein oder mehrerer Objekte aus einem Arbeitsbereich fallen lassen nachfolgend dem erfolgreichen Greifen dieser Objekte. Das kann die Verschiedenartigkeit der Trainingsdaten erhöhen. In einigen Implementierungen können Umgebungsfaktoren wie z. B. Beleuchtung, Oberfläche(n), Hindernisse usw. zusätzlich und/oder alternativ während unterschiedlicher Iterationen des Verfahrens 300 unterschiedlich sein, was ebenfalls die Verschiedenartigkeit der Trainingsdaten erhöhen kann.
  • 4 ist ein Ablaufplan, der ein Beispielverfahren 400 zum Erzeugen von Trainingsbeispielen basierend auf Daten, die Greifversuchen von Robotern zugeordnet sind, darstellt. Zur Vereinfachung sind die Operationen des Ablaufplans mit Bezug auf ein System beschrieben, das die Operationen ausführt. Das System kann eine oder mehrere Komponenten eines Roboters und/oder eines weiteren Computersystems wie z. B. einen Prozessor und/oder das Robotersteuersystem des Roboters 180A, 180B, 825 und/oder einen Prozessor des Trainingsbeispielerzeugungssystems 110 und/oder ein anderes System, das optional getrennt von einem Roboter implementiert sein kann, enthalten. Außerdem ist, obwohl die Operationen des Verfahrens 400 in einer speziellen Reihenfolge gezeigt sind, das nicht als einschränkend gemeint. Eine oder mehrere Operationen können umgeordnet, weggelassen oder hinzugefügt werden.
  • Bei Block 452 startet das System die Trainingsbeispielerzeugung. Bei Block 454 wählt das System einen Greifversuch aus. Beispielsweise kann das System auf eine Datenbank zugreifen, die Daten enthält, die mehreren gespeicherten Greifversuchen zugeordnet sind, und einen aus den gespeicherten Greifversuchen auswählen. Der ausgewählte Greifversuch kann beispielsweise ein Greifversuch sein, der basierend auf dem Verfahren 300 von 3 erzeugt ist.
  • Bei Block 456 bestimmt das System ein Greifen-Erfolgs-Etikett und optional Etikett(e) des gegriffenen Objekts für den ausgewählten Greifversuch basierend auf gespeicherten Daten für den ausgewählten Greifversuch. Beispielsweise können, wie mit Bezug auf Block 364 des Verfahrens 300 beschrieben ist, zusätzliche Daten für den Greifversuch gespeichert sein, um die Bestimmung eines Greifen-Erfolgs-Etiketts und/oder von Etiketten für gegriffene Objekte für den Greifversuch zu ermöglichen. Die gespeicherten Daten können Daten aus einem oder mehreren Sensoren enthalten, wo die Daten während und/oder nach dem Greifversuch erzeugt werden.
  • Als ein Beispiel können die Daten ein Positionsmessergebnis, ein Drehmomentmessergebnis und/oder ein anderes Messergebnis aus dem Greifeffektor sein. In einem solchen Beispiel kann das System ein Greifen-Erfolgs-Etikett basierend auf den Messergebnis(sen) bestimmen. Beispielsweise wenn das Messergebnis ein Positionsmessergebnis ist, kann das System ein „erfolgreiches Greifen“-Etikett bestimmen, falls das Messergebnis größer als ein Schwellenwert ist (z. B. 1 cm) - und kann ein „nicht erfolgreiches Greifen“-Etikett bestimmen, falls das Messergebnis kleiner als ein Schwellenwert (z. B. 1 cm) ist.
  • Als ein weiteres Beispiel können die Daten ein Bild des Effektors sein, der ein Objekt greift, das in dem Greifversuch gegriffen wird. Beispielsweise kann das Bild durch einen Vision-Sensor aufgenommen werden, nachdem der Effektor und irgendein Objekt, das durch den Effektor gegriffen sein kann, zu einer Position nahe dem Vision-Sensor bewegt worden sind. In einem solchen Beispiel kann das System das aufgenommen Bild benutzen, um zu bestimmen, ob der Greifversuch erfolgreich war, und/oder um ein oder mehrere Merkmale des gegriffen Objekts des durch den Effektor gegriffenen Objekts zu bestimmen. Beispielsweise kann das System das aufgenommene Bild für Berechnungsvorrichtungen eines oder mehrerer menschlicher Prüfer bereitstellen, der ihre Berechnungsvorrichtungen nutzen kann, um basierend auf dem aufgenommenen Bild anzugeben, ob das Greifen erfolgreich war, und/oder um ein oder mehrere Merkmale des gegriffenen Objekts des Objekts, das in dem aufgenommenen Bild gegriffen wird, anzugeben. Als ein weiteres Beispiel kann das System das aufgenommene Bild auf ein trainiertes Semantik-CNN anwenden, eine Ausgabe über das trainierte Semantik-CNN erzeugen und die Ausgabe benutzen, um ein oder mehrere Merkmale des gegriffen Objekts des Objekts, das gegriffen wird, zu bestimmen.
  • Als ein Beispiel der Etikette des gegriffenen Objekts, die bestimmt werden können, können die Etikette des gegriffenen Objekts angeben, ob das gegriffene Objekt jede aus einer oder mehrere aus einer Gruppe von Klassifizierungen aufweist. Beispielsweise können die Etikette der gegriffenen Objekte angegeben, dass das gegriffene Objekt eine „Stift“-Klassifizierung der Gruppe aufweist, jedoch keine anderen Klassifizierungen der Gruppe aufweist.
  • In einigen Iterationen von Block 456 bestimmt das System nur ein Greifen-Erfolgs-Etikett für den Greifversuch. In einigen anderen Iterationen von Block 456 bestimmt das System zusätzlich oder alternativ Etikett(e) für das gegriffene Objekt für den Greifversuch. Ob das System in einer gegebenen Iteration ein Greifen-Erfolgs-Etikett und/oder Etikett(e) für das gegriffene Objekt für den Greifversuch bestimmt, kann auf verschiedenen Faktoren basieren. Beispielsweise wird in einigen Iterationen von Block 456 nur ein Greifen-Erfolgs-Etikett bestimmt, falls der Greifversuch nicht erfolgreich ist. Außerdem kann es beispielsweise in einigen Iterationen von Block 456 wünschenswert sein, Trainingsbeispiele zum Trainieren nur eines Greif-CNN zu erzeugen, und es wird nur das Greifen-Erfolgs-Etikett bestimmt. Außerdem kann es beispielsweise in einigen Iterationen von Block 456 wünschenswert sein, Trainingsbeispiele zum Trainieren sowohl eines Greif-CNN als auch eines Semantik-CNN zu bestimmen, und es werden sowohl das Greifen-Erfolgs-Etikett als auch die Etikett(e) für das gegriffene Objekt bestimmt. Außerdem können beispielsweise in einigen Situationen Berechnung und/oder andere Aufwände berücksichtigt werden beim Bestimmen, ob es wünschenswert ist, auch die Etikett(e) für das gegriffene Objekt in einer gegebenen Iteration zu bestimmen.
  • Bei Block 458 wählt das System eine Instanz für den Greifversuch aus. Beispielsweise kann das System Daten auswählen, die der Instanz zugeordnet sind, basierend auf einem Zeitstempel und/oder einer anderen Abgrenzung, die den Daten zugeordnet ist, die sie von anderen Instanzen des Greifversuchs unterscheidet.
  • Bei Block 460 erzeugt das System einen Effektorbewegungsvektor für die Instanz basierend auf der Stellung des Effektors an der Instanz und der Stellung des Effektors an der letzten Instanz des Greifversuchs. Beispielsweise kann das System eine Transformation zwischen der aktuellen Stellung und der Endstellung des Greifversuchs bestimmen und die Transformation als den Effektorbewegungsvektor verwenden. Die aktuelle Stellung und der Effektorbewegungsvektor von der aktuellen Stellung zu der Endstellung des Greifversuchs können in dem Aufgabenraum, dem Gelenkraum oder einem anderen Raum repräsentiert sein. Beispielsweise kann der Effektorbewegungsvektor durch fünf Werte im Aufgabenraum repräsentiert sein: drei Werte, die den dreidimensionalen (3D-) Translationsvektor definieren, und zwei Werte, die eine Sinus-Cosinus-Codierung der Änderung der Orientierung des Effektors um eine Achse des Effektors repräsentieren.
  • Bei Block 462 erzeugt das System ein Trainingsbeispiel für die Instanz, das enthält: (1) das gespeicherte Bild für die Instanz, (2) den Effektorbewegungsvektor, der für die Instanz bei Block 460 erzeugt wird, und (3) das Greifen-Erfolgs-Etikett und/oder die Etikett(e) des gegriffenen Objekts, die bei Block 456 bestimmt werden. In einigen Implementierungen erzeugt das System ein Trainingsbeispiel, das außerdem ein gespeichertes zusätzliches Bild für den Greifversuch enthält, wie z. B. eines, das den Effektor wenigstens teilweise weglässt und das vor dem Greifversuch aufgenommen wurde. In einigen dieser Implementierungen verkettet das System das gespeicherte Bild für die Instanz und das gespeicherte zusätzliche Bild für den Greifversuch, um ein verkettetes Bild für das Trainingsbeispiel zu erzeugen. Das verkettete Bild enthält sowohl das gespeicherte Bild für die Instanz als auch das gespeicherte zusätzliche Bild. Beispielsweise wenn beide Bilder X mal Y Pixel und drei Kanäle (z. B. rot blau, grün) enthalten, kann das verkettete Bild X mal Y Pixel und sechs Kanäle (drei aus jedem Bild) enthalten. Wie hier beschrieben ist, können das aktuelle Bild, das zusätzliche Bild und der Vektor von der aktuellen Stellung zu der Endstellung des Greifversuchs des Trainingsbeispiels als Trainingsbeispieleingabe(n) verwendet werden; und das Greifen-Erfolgs-Etikett und/oder die Etikett(e) des gegriffenen Objekts können als Trainingsbeispielausgabe(n) verwendet werden.
  • In einigen Implementierungen kann bei Block 462 das System optional die Bild(er) verarbeiten. Beispielsweise kann das System optional die Größe des Bilds ändern, um zu einer definierten Größe einer Eingangsschicht eines oder mehrerer Netze zu passen, einen oder mehrere Kanäle aus dem Bild entfernen und/oder die Werte für einen Tiefenkanal/Tiefenkanäle (in Implementierungen, in denen die Bilder einen Tiefenkanal enthalten) normalisieren.
  • Bei Block 464 bestimmt das System, ob die ausgewählte Instanz die letzte Instanz des Greifversuchs ist. Falls das System bestimmt, dass die ausgewählte Instanz nicht die letzte Instanz des Greifversuchs ist, kehrt das System zu Block 458 zurück und wählt eine weitere Instanz aus.
  • Falls das System bestimmt, dass die ausgewählte Instanz die letzte Instanz des Greifversuchs ist, fährt das System zu Block 466 fort und bestimmt, ob zusätzliche Greifversuche zum Verarbeiten vorhanden sind. Falls das System bestimmt, dass zusätzliche Greifversuche zum Verarbeiten vorhanden sind, kehrt das System zu Block 454 zurück und wählt einen weiteren Greifversuch aus. In einigen Implementierungen kann das Bestimmen, ob zusätzliche Greifversuche zum Verarbeiten vorhanden sind, das Bestimmen enthalten, ob irgendwelche verbleibenden unverarbeiteten Greifversuche vorhanden sind. In einigen Implementierungen kann das Bestimmen, ob zusätzliche Greifversuche zur Verarbeitung vorhanden sind, zusätzlich und/oder alternativ das Bestimmen enthalten, ob eine Schwellenwertanzahl von Trainingsbeispielen bereit erzeugt worden ist und/oder andere Kriterien erfüllt worden sind.
  • Falls das System bestimmt, dass keine zusätzlichen Greifversuche zum Verarbeiten vorhanden sind, fährt das System zu Block 466 fort, und das Verfahren 400 endet. Eine weitere Iteration des Verfahrens 400 kann erneut ausgeführt werden. Beispielsweise kann das Verfahren 400 erneut ausgeführt werden in Reaktion auf wenigstens eine Schwellenwertanzahl zusätzlicher Greifversuche, die ausgeführt werden.
  • Obwohl das Verfahren 300 und das Verfahren 400 in hier zur Verdeutlichung in separaten Figuren dargestellt sind, ist zu verstehen, dass ein oder mehrere Blöcke von Verfahren 400 durch die gleichen Komponente(n) ausgeführt werden können, die einen oder mehrere Blöcke des Verfahrens 300 ausführen. Beispielsweise können ein oder mehrere (z. B. alle) der Blöcke von Verfahren 300 und des Verfahrens 400 durch Prozessor(en) eines Roboters ausgeführt werden. Außerdem ist zu verstehen, dass ein oder mehrere Blöcke von Verfahren 400 in Kombination mit oder vorausgehend oder nachfolgend einem oder mehreren Blöcken von Verfahren 300 ausgeführt werden können.
  • 5 ist ein Ablaufplan, der ein Beispielverfahren 500 zum Trainieren eines oder mehrerer Netze eines Semantikgreifmodells basierend auf Trainingsbeispielen darstellt. Zur Vereinfachung sind die Operationen des Ablaufplans mit Bezug auf ein System beschrieben, das die Operationen ausführt. Dieses System kann eine oder mehrere Komponenten eines Computersystems enthalten, wie z. B. einen Prozessor (z. B. eine GPU) der Trainings-Engine 120 und/oder ein anderes Computersystem, das über die Netze 125, 126 und 127 des Semantikgreifmodells 124 arbeitet. Außerdem ist, obwohl die Operationen des Verfahrens 500 in einer speziellen Reihenfolge gezeigt sind, das nicht als einschränkend gemeint. Eine oder mehrere Operationen können umgeordnet, weggelassen oder hinzugefügt werden.
  • Bei Block 552 startet das System das Trainieren. Bei Block 554 wählt das System ein Trainingsbeispiel aus. Beispielsweise kann das System ein Trainingsbeispiel auswählen, das basierend auf dem Verfahren 400 von 4 erzeugt ist.
  • Bei Block 556 wendet das System ein Bild für die Instanz des Trainingsbeispiels und ein zusätzliches Bild des ausgewählten Trainingsbeispiels auf eine Anfangsschicht eines Greif-CNN an. Beispielsweise kann das System die Bilder auf eine Anfangsfaltungsschicht des Greif-CNN anwenden. Wie hier beschrieben kann das zusätzliche Bild den Effektor wenigstens teilweise weglassen. In einigen Implementierungen verkettet das System das Bild und das zusätzliche Bild und wendet das verkettete Bild auf die Anfangsschicht an. In einigen anderen Implementierungen sind das Bild und das zusätzliche Bild bereits in dem Trainingsbeispiel verkettet.
  • Bei Block 558 wendet das System den Effektorbewegungsvektor des ausgewählten Trainingsbeispiels auf eine zusätzliche Schicht des Greif-CNN an. Beispielsweise kann das System den Effektorbewegungsvektor auf eine zusätzliche Schicht des Greif-CNN anwenden, die der Anfangsschicht, auf die die Bilder bei Block 556 angewandt werden, nachgelagert ist. In einigen Implementierungen leitet das System, um den Effektorbewegungsvektor auf die zusätzliche Schicht anzuwenden, den Effektorbewegungsvektor durch eine vollständig verbundene Schicht, um eine Effektorbewegungsvektorausgabe zu erzeugen, und verkettet die Effektorbewegungsvektorausgabe mit einer Ausgabe aus einer unmittelbar vorgelagerten Schicht des Greif-CNN. Die unmittelbar vorgelagerte Schicht ist der zusätzlichen Schicht, auf die der Effektorbewegungsvektor angewandt wird, unmittelbar vorgelagert und kann optional eine oder mehrere der Schichten sein, die der Anfangsschicht, auf die die Bilder bei Block 556 angewandt werden, nachgelagert sind. In einigen Implementierungen ist die Anfangsschicht eine Faltungsschicht, die unmittelbar vorgelagerte Schicht ist eine Pooling-Schicht und die zusätzliche Schicht ist eine Faltungsschicht.
  • Bei Block 560 führt das System Rückpropagierung auf einer oder mehreren Schichten des Greif-CNN basierend dem Greifen-Erfolgs-Etikett des Trainingsbeispiels aus. Beispielsweise kann das System über dem Greif-CNN basierend auf dem Anwenden von Block 558 ein Vorhersagemaß für erfolgreiches Greifen erzeugen, einen Fehler basierend auf dem Vergleich des Vorhersagemaßes für erfolgreiches Greifen mit dem Greifen-Erfolgs-Etikett des Trainingsbeispiels bestimmen und den Fehler durch eine oder mehrere Schichten des Greif-CNN rückpropagieren.
  • Die Blöcke 562, 564 und 566 sind jetzt beschrieben. Diese Blöcke sind in 5 in gestrichelten Linien angegeben, da sie nicht in allen Iterationen des Verfahrens 500 ausgeführt werden können. Beispielsweise kann in einigen Iterationen des Verfahrens 500 nur das Greif-CNN trainiert werden und kann in diesen Iterationen basierend auf der Ausführung der Blöcke 554, 556, 558 und 560 (ohne Ausführung der Blöcke 562, 564, 566) trainiert werden. Beispielsweise können einige bei Block 554 ausgewählte Trainingsbeispiele keine Etikette des gegriffenen Objekts enthalten, und als ein Ergebnis kann das Trainieren eines Greif-CNN basierend auf diesen Trainingsbeispielen ohne die Ausführung der Blöcke 562, 564 und 566 basierend auf diesen Trainingsbeispielen ausgeführt werden.
  • Bei Block 562 wendet das System das Bild des Trainingsbeispiels und die STN-Parameter auf ein STN an, um eine räumliche Transformation des Bilds zu erzeugen. Die STN-Parameter werden über das Greif-CNN durch das System basierend auf dem Anwenden von Block 558 erzeugt. Beispielsweise können basierend auf dem Anwenden von Block 558 sowohl das Vorhersagemaß des erfolgreichen Greifens als auch die STN-Parameter erzeugt werden.
  • Bei Block 564 wendet das System die bei Block 562 erzeugte räumliche Transformation auf ein Semantik-CNN an.
  • Bei Block 566 führt das System Rückpropagierung des Semantik-CNN und/oder des STN basierend auf den Etikett(en) des gegriffenen Objekts des Trainingsbeispiels aus. Beispielsweise kann das System über das Semantik-CNN basierend auf dem Anwenden von Block 564 vorhergesagte Semantik-Objekt-Merkmal(e) von Objekt(en), die in dem räumlich transformierten Bild vorhanden sind, erzeugen, einen Fehler basierend auf dem Vergleich der vorhergesagten Semantik-Objekt-Merkmal(e) von Objekt(en) und den Etikett(en) des gegriffenen Objekts des Trainingsbeispiels bestimmen und den Fehler durch eine oder mehrere Schichten des Semantik-CNN rückpropagieren. In einigen Implementierungen kann der Fehler ferner durch die STN-Parameter-Schicht(en) des Greif-CNN rückpropagiert werden (jedoch optional nicht durch die anderen Schichten des Greif-CNN). Die Rückpropagierung des STN und/oder der STN-Parameter-Schicht(en) kann über mehrere Iterationen während des Trainierens ermöglichen, dass sich die STN-Parameter und/oder das STN anpassen, um zu bewirken, dass räumlich transformierte Bilder erzeugt werden, die zu einem Ort/Bereich gehören, der gegriffen werden soll.
  • Bei Block 558 bestimmt das System, ob zusätzliche Trainingsbeispiele vorhanden sind. Falls das System bestimmt, dass zusätzliche Trainingsbeispiele vorhanden sind, kehrt das System zu Block 554 zurück und wählt ein weiteres Trainingsbeispiel aus. In einigen Implementierungen kann das Bestimmen, ob zusätzliche Trainingsbeispiele vorhanden sind, Bestimmen enthalten, ob irgendwelche verbleibenden Trainingsbeispiele vorhanden sind, die nicht benutzt worden sind, um ein oder mehrere Netze des Semantikgreifmodells zu trainieren. In einigen Implementierungen kann das Bestimmen, ob zusätzliche Trainingsbeispiele vorhanden sind, zusätzlich und/oder alternativ das Bestimmen enthalten, ob eine Schwellenwertanzahl von Trainingsbeispielen benutzt worden ist und/oder andere Kriterien erfüllt worden sind.
  • Falls das System bestimmt, dass keine zusätzlichen Trainingsbeispiele vorhanden sind und/oder dass einige andere Kriterien erfüllt worden sind, fährt das System zu Block 570 oder 572 fort.
  • Bei Block 572 kann das Trainieren des Semantikgreifmodells enden. Das Semantikgreifmodell kann dann zum Gebrauch durch einen oder mehrere Roboter zum Stellen eines Greifeffektors bereitgestellt werden, um ein erfolgreiches Greifen eines Objekts durch den Greifeffektor zu erreichen. Beispielsweise kann ein Roboter das Semantikgreifmodell zum Ausführen des Verfahrens 700 von 7 nutzen.
  • Bei Block 572 kann das System zusätzlich und/oder alternativ das trainierte Greif-CNN bereitstellen, um zusätzliche Trainingsbeispiele basierend auf dem trainierten Greif-CNN zu erzeugen. Beispielsweise können ein oder mehrere Roboter das trainierte Greif-CNN zum Ausführen von Greifversuchen nutzen, und Daten aus diesen Greifversuchen werden benutzt, um zusätzliche Trainingsbeispiele zu erzeugen. Beispielsweise können ein oder mehrere Roboter das trainierte Greif-CNN zum Ausführung der Greifversuche basierend auf einigen Blöcken des Verfahrens 700 von 7 nutzen, und Daten aus diesen Greifversuchen werden benutzt, um zusätzliche Trainingsbeispiele basierend auf dem Verfahren 400 von 4 zu erzeugen. Die Roboter, deren Daten benutzt werden, um zusätzliche Trainingsbeispiele zu erzeugen, können Roboter in einem Labor/Trainingsaufbau und/oder Roboter im tatsächlichen Gebrauch durch einen oder mehrere Verbraucher sein.
  • Bei Block 574 kann das System weiteres Trainieren eines oder mehrerer Netze des Semantikgreifmodells basierend auf den zusätzlichen Trainingsbeispielen, die in Reaktion auf das Bereitstellen des trainierten Greif-CNN bei Block 572 erzeugt werden, ausführen. Beispielsweise kann das System zusätzliche Iterationen der Blöcke 554, 556, 558 und 560 (und optional der Blöcke 562, 564 und 566) basierend auf zusätzlichen Trainingsbeispielen ausführen.
  • Wie durch den Pfeil, der sich von Block 574 zu Block 572 erstreckt, angegeben ist, kann das aktualisierte Greif-CNN wieder bei Block 572 bereitgestellt werden, um weitere Trainingsbeispiele zu erzeugen, und diese Trainingsbeispiele bei Block 574 benutzt werden, um eines oder mehrere Netze des Semantikgreifmodells weiter zu trainieren. In einigen Implementierungen können Greifversuche, die im Zusammenhang mit zukünftigen Iterationen von Block 572 ausgeführt werden, zeitlich längere Greifversuche sein als diejenigen, die in früheren Iterationen ausgeführt wurden, und/oder diejenigen, die ohne Nutzung des trainierten Greif-CNN ausgeführt wurden. Beispielsweise können Implementierungen des Verfahrens 300 von 3, die ohne Benutzung eines trainierten Greif-CNN ausgeführt werden, die zeitlich kürzesten Greifversuche aufweisen, diejenigen, die mit einem anfangs trainierten Greif-CNN ausgeführt werden, können zeitlich längere Greifversuche aufweisen, diejenigen, die mit der nächsten Iteration eines trainierten Greif-CNN ausgeführt werden können zeitlich noch längere Greifversuche aufweisen, usw. Das kann optional über den optionalen Instanzzähler und/oder Zeitzähler von Verfahren 300 implementiert werden.
  • Die 6A und 6B stellen eine Beispielarchitektur eines Greif-CNN 600 in verschiedenen Implementierungen dar. Das Greif-CNN 600 der 6A und 6B ist ein Beispiel für ein Greif-CNN, das basierend auf dem Verfahren 500 von 5 trainiert werden kann. Das Greif-CNN 600 der 6A und 6B ist ferner ein Beispiel eines Greif-CNN, das, sobald es trainiert ist, zum Stellen eines Greifeffektors basierend auf dem Verfahren 700 von 7 benutzt werden kann. Allgemein ist ein neuronales Faltungsnetz ein mehrschichtiges lernendes Gerüst, das eine Eingabeschicht, eine oder mehrere Faltungsschichten, optionale Gewichts- und/oder andere Schichten und eine Ausgabeschicht enthält. Während des Trainierens wird ein neuronales Faltungsnetz trainiert, um eine Hierarchie von Merkmalsrepräsentationen zu lernen. Faltungsschichten des Netzes sind mit Filtern gefaltet und optional durch Pooling-Schichten downgesampled. Allgemein aggregieren die Pooling-Schichten Werte in einem kleineren Bereich durch eine oder mehrere Downsampling-Funktionen wie z. B. Max-, Min- und/oder Normalisierungs-Sampling.
  • Das Greif-CNN 600 enthält eine Anfangseingabeschicht 663, die eine Faltungsschicht ist. In einigen Implementierungen ist die Anfangseingabeschicht 663 eine 6x6-Faltungsschicht mit einer Schrittweite von 2 und 64 Filtern. Ein Bild mit einem Effektor 661A und ein Bild ohne einen Effektor 661B sind ebenfalls in 6A dargestellt. Die Bilder 661A und 661B sind ferner so dargestellt, dass sie verkettet sind (repräsentiert durch zusammenfassenden Linien, die sich von jedem erstrecken) und das verkettete Bild in die Anfangseingabeschicht 663 zugeführt wird. In einigen Implementierungen können die Bilder 661A und 661B jeweils 472 Pixel mal 472 Pixel mal 3 Kanäle sein (z. B. können die 3 Kanäle aus dem Tiefenkanal, dem ersten Farbkanal, dem zweiten Farbkanal, dem dritten Farbkanal ausgewählt sein). Dementsprechend kann das verkettete Bild 472 Pixel mal 472 Pixel mal 6 Kanäle sein. Andere Größen können verwendet werden, wie z. B. unterschiedliche Pixelgrößen oder mehr oder weniger Kanäle. Die Bilder 661A und 661B werden für die Anfangseingabeschicht 663 gefaltet. Die Gewichte der Merkmale der Anfangseingabeschicht und anderer Schichten des Greif-CNN 600 werden während des Trainierens des Greif-CNN 600 basierend auf mehreren Trainingsbeispielen gelernt.
  • Der Anfangseingabeschicht 663 folgt eine Max-Pooling-Schicht 664. In einigen Implementierungen ist die Max-Pooling-Schicht 664 eine 3x3-Max-Pooling-Schicht mit 64 Filtern. Der Max-Pooling-Schicht 664 folgen sechs Faltungsschichten, von denen zwei in 6A durch 665 und 666 repräsentiert sind. In einigen Implementierungen sind die sechs Faltungsschichten jeweils 5x5-Faltungsschichten mit 64 Filtern. Der Faltungsschicht 666 folgt eine Max-Pool-Schicht 667. In einigen Implementierungen ist die Max-Pooling-Schicht 667 eine 3x3-Max-Pooling-Schicht mit 64 Filtern.
  • Der Effektorbewegungsvektor 662 ist ebenfalls in 6A dargestellt. Der Effektorbewegungsvektor 662 ist mit der Ausgabe der Max-Pooling-Schicht 667 verkettet (wie durch das „+“ von 6A angegeben) und mit der Ausgabe, die auf eine Faltungsschicht 670 angewandt wird, verkettet (6B). In einigen Implementierungen enthält das Verketten des Effektorbewegungsvektors 662 mit der Ausgabe der Max-Pooling-Schicht 667 Verarbeiten des Effektorbewegungsvektors 662 durch eine vollständig verbundene Schicht 668, deren Ausgabe dann punktweise zu jedem Punkt in der Reaktions-Map der Max-Pooling-Schicht 667 durch Kacheln der Ausgabe über die räumlichen Dimensionen über einen Kachelvektor 669 hinzugefügt wird. Mit anderen Worten wird der Effektorbewegungsvektor 662 durch die vollständig verbundene Schicht geleitet und über den Kachelvektor 669 über die räumlichen Dimensionen der Reaktions-Map der Max-Pooling-Schicht repliziert.
  • Jetzt weiter zu 6B wird die Verkettung des Effektorbewegungsvektors 662 und der Ausgabe der Max-Pooling-Schicht 667 für die Faltungsschicht 670 bereitgestellt, der fünf weitere Faltungsschichten folgen (die letzte Faltungsschicht 671 dieser fünf ist in 6B dargestellt, jedoch nicht die fünf dazwischen liegenden). In einigen Implementierungen sind die Faltungsschichten 670 und 671 und die vier dazwischen liegenden Faltungsschichten jeweils 3x3-Faltungsschichten mit 64 Filtern.
  • Der Faltungsschicht 671 folgt eine Max-Pooling-Schicht 672. In einigen Implementierungen ist die Max-Pooling-Schicht 672 eine 2x2-Max-Pooling-Schicht mit 64 Filtern. Der Max-Pooling-Schicht 672 folgen drei Faltungsschichten, von denen zwei in 6A durch 673 und 674 repräsentiert sind.
  • Die letzte Faltungsschicht 674 des Greif-CNN 600 ist mit einer ersten vollständig verbundenen Schicht 675 vollständig verbunden, die wiederum vollständig mit einer zweiten vollständig verbundenen Schicht 676 vollständig verbunden ist. Die vollständig verbundenen Schichten 675 und 676 können Vektoren sein, wie z. B. Vektoren der Größe 64. Die Ausgabe der zweiten vollständig verbundenen Schicht 676 wird benutzt, um das Maß 677 eines erfolgreichen Greifens zu erzeugen. Beispielsweise kann ein Sigmoid benutzt werden, um das Maß 677 zu erzeugen und auszugeben.
  • Die Ausgabe der zweiten vollständig verbundenen Schicht 676 wird außerdem benutzt, um die STN-Parameter 678 zu erzeugen. Beispielsweise kann ein Sigmoid benutzt werden, um die STN-Parameter 678 zu erzeugen und auszugeben. In einigen Implementierungen können separate vollständig verbundene Schicht(en) mit der letzten Faltungsschicht 674 vollständig verbunden sein, und diese vollständig verbundenen Schicht(en) können STN-Schicht(en) sein, die benutzt werden, um die STN-Parameter 678 zu erzeugen (während die separaten vollständig verbundenen Schichten 675 und 676 separat benutzt werden, um das Maß 677 eines erfolgreichen Greifens zu erzeugen).
  • 6C stellt ein Netz 126 zum räumlichen Transformieren und ein neuronales Semantik-Faltungsnetz 127, Beispieleingaben, die auf die Netze angewandt werden können, und Beispielausgaben, die über die Netze erzeugt werden können, dar. Obwohl nicht ausdrücklich dargestellt ist zu verstehen, dass in vielen Implementierungen das STN 126 und das Semantik-CNN 127 jeweils mehrere Schichten aufweisen werden, wie z. B. Faltungsschichten, Pooling-Schichten und/oder andere Schichten.
  • In 6C werden die STN-Parameter 678, die basierend auf dem Greif-CNN 600 der 6A und 6B erzeugt werden, als Eingabe für das STN 126 angewandt. Ferner wird das Bild mit einem Effektor 661A ebenfalls als Eingabe für das STN 126 angewandt. Eine räumliche Transformation 679 wird über das STN 126 basierend auf den angewandten STN-Parametern 678 und dem Bild 661A erzeugt.
  • Die räumliche Transformation 679 wird als Eingabe für das Semantik-CNN 127 angewandt. Semantikmerkmal(e) 680 werden basierend auf der Ausgabe erzeugt, die über das Semantik-CNN 127 basierend auf der Anwendung des transformierten Bilds 679 erzeugt wird. Beispielsweise kann die Ausgabe des Semantik-CNN 127 ein Vektor mit N Werten sein, wobei jeder der Werte angibt, ob ein Objekt des transformierten Bilds 679 eine Klassifizierung aufweist, die dem Wert entspricht.
  • In einigen Implementierungen des Trainierens des Greif-CNN 600, des STN 126 und/oder des Semantik-CNN 127 können verschiedene Werte für Epochen, Lernrate, Gewichtszerfall, Abbruchwahrscheinlichkeit und/oder andere Parameter benutzt werden. In einigen Implementierungen können eine oder mehrere GPUs zum Trainieren und/oder Nutzen des Greif-CNN 600, des STN 126 und/oder des Semantik-CNN 127 benutzt werden. Obwohl spezielle Architekturen und Anordnungen des Greif-CNN 600, des STN 126 und des Semantik-CNN 127 in den 6A, 6B und 6C darstellt sind, sind Variationen möglich. Beispielsweise können mehr oder weniger Faltungsschichten in dem Greif-CNN 600 bereitgestellt sein, eine oder mehrere Schichten des Greif-CNN 600 können von anderer Größe als diejenigen, die in den Beispielen bereitgestellt sind, sein, usw.
  • Sobald ein Semantikgreifmodell gemäß den hier beschriebenen Techniken trainiert ist, kann es benutzt werden, um einen Greifeffektor zu steuern. Mit Bezug auf 7 ist ein Ablaufplan dargestellt, der ein Beispielverfahren 700 zum Nutzen eines Semantikgreifmodells, um einen Greifeffektor zu stellen, darstellt. Zur Vereinfachung sind die Operationen des Ablaufplans mit Bezug auf ein System beschrieben, das die Operationen ausführt. Dieses System kann eine oder mehrere Komponenten eines Roboters enthalten, wie z. B. einen Prozessor (z. B. CPU und/oder GPU) und/oder ein Robotersteuersystem des Roboters 180A, 180B, 825 und/oder einen anderen Roboter. Beim Implementieren eines oder mehrerer Blöcke des Verfahrens 700 kann das System über ein trainiertes Semantikgreifmodell arbeiten, das beispielsweise lokal in einem Roboter gespeichert sein kann und/oder von dem Roboter entfernt gespeichert sein kann. Außerdem ist, obwohl die Operationen des Verfahrens 700 in einer speziellen Reihenfolge gezeigt sind, das nicht als einschränkend gemeint. Eine oder mehrere Operationen können umgeordnet, weggelassen oder hinzugefügt werden.
  • Bei Block 752 erzeugt das System einen Kandidateneffektorbewegungsvektor. Der Kandidateneffektorbewegungsvektor kann im Aufgabenraum, Gelenkraum oder einem anderen Raum definiert sein, abhängig von den Eingabeparametern des trainierten CNN, die in weiteren Blöcken benutzt werden sollen.
  • In einigen Implementierungen erzeugt das System einen Kandidateneffektorbewegungsvektor, der innerhalb eines gegeben Raums zufällig ist, wie z. B. des Arbeitsbereichs, der durch den Effektor erreicht werden kann, eines eingeschränkten Raums, auf den der Effektor für die Greifversuche beschränkt ist, und/oder eines Raums, der durch Positions- und/oder Drehmomentbegrenzungen von Aktuator(en), die die Stellung des Effektors steuern, definiert ist.
  • In einigen Implementierungen kann das System eine oder mehrere Techniken verwenden, um eine Gruppe von Kandidateneffektorbewegungsvektoren auszuprobieren und eine Untergruppe aus der ausprobierten Gruppe auszuwählen. Beispielsweise kann das System eine Optimierungstechnik benutzen, wie z. B. das Kreuzentropieverfahren (CEM). CEM ist ein ableitungsfreier Optimierungsalgorithmus, der einen Stapel von N Werten an jeder Iteration ausprobiert, eine Gauß-Verteilung an M<N dieser Proben anpasst und dann einen neuen Stapel von N aus dieser Gaußverteilung ausprobiert. Beispielsweise kann das System das CEM und Werte M = 64 und N = 6 benutzen und drei Iterationen des CEM ausführen, um einen besten verfügbaren (gemäß dem CEM) Kandidateneffektorbewegungsvektor zu bestimmen.
  • In einigen Implementierungen können eine oder mehrere Beschränkungen für den Kandidateneffektorbewegungsvektor der bei Block 752 erzeugt werden kann, auferlegt werden. Beispielsweise können die durch das CEM oder eine andere Technik bewerteten Kandidateneffektorbewegungen basierend auf den Beschränkungen beschränkt sein. Ein Beispiel für Beschränkungen sind computererzeugte und/oder durch einen Menschen eingegebene Beschränkungen (z. B. über eine Anwenderschnittstelleneingabevorrichtung eines Computersystems), die Beschränkungen auf Bereich(e), in denen das Greifen versucht werden kann, Beschränkungen auf spezielle Objektmerkmal(e), auf die Greifen versucht werden kann, usw. auferlegen. Noch andere Beispiele für Beschränkungen enthalten beispielsweise Beschränkungen basierend auf einem Arbeitsbereich des Roboters, Gelenkgrenzen des Roboters, Drehmomentgrenzen des Roboters, Beschränkungen, die durch ein Kollisionsvereidungssystem bereitgestellt sind, das die Bewegung des Roboters einschränken, um Kollision mit einem oder mehreren Objekten zu vermeiden, usw.
  • Bei Block 754 identifiziert das System ein aktuelles Bild, das den Effektor und ein oder mehrere Umgebungsobjekte aufnimmt. In einigen Implementierungen identifiziert das System außerdem ein zusätzliches Bild, das den Effektor wenigstens teilweise weglässt, wie z. B. ein zusätzliches Bild der Umgebungsobjekte, das durch einen Vision-Sensor aufgenommen wurde, als der Effektor wenigstens teilweise für den Vision-Sensor nicht zu sehen war. In einigen Implementierungen verkettet das System das Bild und das zusätzliche Bild, um ein verkettetes Bild zu erzeugen. In einigen Implementierungen führt das System optional das Verarbeiten der Bild(er) und/oder des verketteten Bilds aus (z. B. um die Größe an eine Eingabe des Greif-CNN anzupassen).
  • Bei Block 756 wendet das System das aktuelle Bild und den Kandidateneffektorbewegungsvektor auf ein trainiertes Greif-CNN an. Beispielsweise kann das System das verkettete Bild, das das aktuelle Bild und das zusätzliche Bild enthält, auf eine Anfangsschicht des trainierten Greif-CNN anwenden. Das System kann außerdem den Kandidateneffektorbewegungsvektor auf eine zusätzliche Schicht des trainierten Greif-CNN, die der Anfangsschicht nachgelagert ist, anwenden. In einigen Implementierungen leitet das System beim Anwenden des Effektorbewegungsvektors auf die zusätzliche Schicht den Effektorbewegungsvektor durch eine vollständig verbundene Schicht des Greif-CNN, um eine Effektorbewegungsvektorausgabe zu erzeugen, und verkettet die Effektorbewegungsvektorausgabe mit einer vorgelagerten Ausgabe des Greif-CNN. Die vorgelagerte Ausgabe ist aus einer unmittelbar vorgelagerten Schicht des Greif-CNN, die der zusätzlichen Schicht unmittelbar vorgelagert ist und die der Anfangsschicht und der einen oder den mehreren Zwischenschichten des Greif-CNN nachgelagert ist.
  • Bei Block 758 erzeugt das System über das trainierte Greif-CNN ein Maß für erfolgreiches Greifen und STN-Parameter. Das Maß und die STN-Parameter werden basierend auf dem Anwenden des aktuellen Bilds (und optional des zusätzlichen Bilds) und des Kandidateneffektorbewegungsvektors auf das trainierte Greif-CNN bei Block 756 und Bestimmen des Maßes und der STN-Parameter basierend auf den gelernten Gewichten des trainierten Greif-CNN erzeugt.
  • Bei Block 760 erzeugt das System über ein STN eine räumliche Transformation des aktuellen Bilds von Block 754 basierend auf den STN-Parametern aus Block 758.
  • Bei Block 762 erzeugt das System über ein Semantik-CNN Semantikmerkmal(e) basierend auf der räumlichen Transformation aus Block 760.
  • Bei Block 764 erzeugt das System einen Effektorbefehl basierend auf dem Maß für erfolgreiches Greifen von Block 758 und den Semantikmerkmal(en) von Block 762. Allgemein erzeugt das System bei Block 764 einen Effektorbefehl, der ein erfolgreiches Greifen erreichen möchte (durch eine oder mehrere Iterationen des Verfahrens 700), das zu einem Objekt gehört, das gewünschte Objekt-Semantikmerkmale aufweist. Die gewünschten Objekt-Semantikmerkmale können beispielsweise auf Anwenderschnittstelleneingabe, die für das System bereitgestellt ist, und/oder Eingabe von einer oder mehreren separaten Komponenten basieren. Als ein Beispiel kann, falls das Maß für erfolgreiches Greifen von Block 758 einen Schwellenwert erfüllt, der ein erfolgreiches Greifen angibt, und die Semantikmerkmal(e) von Block 762 die gewünschten Semantik-Objektmerkmal(e) angeben, der Effektorbefehl einen Effektorbefehl erzeugen, der dem Effektorbewegungsvektor von Block 752 entspricht (dann wird optional ein Greifen ausgeführt).
  • In einigen Implementierungen werden mehrere Kandidateneffektorbewegungsvektoren in einer gegebenen Iteration des Verfahrens 700 betrachtet, und ein Maß für erfolgreiches Greifen und Semantikmerkmal(e) für jeden aus den Kandidateneffektorbewegungsvektoren bestimmt (alle basierend auf demselben aktuellen Bild). In einigen dieser Implementierungen bestimmt das System bei Block 764 den Effektorbewegungsvektor mit einem bestimmten entsprechenden Maß für erfolgreiches Greifen, das den Erfolg am meisten angibt, und mit bestimmten entsprechenden Semantikmerkmal(en), die mit den gewünschten Semantik-Objektmerkmal(en) konform sind, und erzeugt einen Effektorbefehl, der diesem Effektorbewegungsvektor entspricht.
  • Als ein Beispiel dieser Implementierungen kann das System einen oder mehrere zusätzliche Kandidateneffektorbewegungsvektoren bei Block 752 erzeugen und erzeugen: Maße für erfolgreiches Greifen für diese zusätzlichen Kandidateneffektorbewegungsvektoren an zusätzlichen Iterationen von Block 758 (basierend auf dem Anwendung des aktuellen Bilds und der zusätzlichen Kandidateneffektorbewegungsvektoren auf das Greif-CNN); und Semantikmerkmal(e) für diese zusätzlichen Kandidateneffektorbewegungsvektoren an zusätzlichen Iterationen von Block 762. Die zusätzlichen Iterationen der Blöcke 758 und 762 können optional durch das System parallel ausgeführt werden. In einigen dieser Implementierungen kann das System den Effektorbefehl bei Block 764 basierend auf einer Analyse aller erzeugten Maße für erfolgreiches Greifen und entsprechenden Semantikmerkmal(en) erzeugen. Beispielsweise kann das System den Effektorbefehl erzeugen, so dass er vollständig oder im Wesentlichen mit dem Kandidateneffektorbewegungsvektor konform ist, mit: dem Maß für erfolgreiches Greifen, das ein erfolgreiches Greifen am meisten angibt; und entsprechenden Semantikmerkmal(en), die mit den gewünschten Objekt-Semantikmerkmal(en) übereinstimmen. Beispielsweise kann ein Steuersystem eines Roboters des Systems Bewegungsbefehl(e) erzeugen, um einen oder mehrere Aktuatoren des Roboters zu betätigen, um den Effektor basierend auf dem Effektorbewegungsvektor zu bewegen.
  • In einigen Iterationen von Block 764 erzeugt das System zusätzlich und/oder alternativ den Effektorbefehl basierend auf einem aktuellen Maß für erfolgreiches Greifen und aktuellen Semantikmerkmal(en), falls kein Kandidateneffektorbewegungsvektor benutzt wird, um neue Bewegungsbefehle zu erzeugen. Beispielsweise falls ein oder mehrere Vergleiche des aktuellen Maßes für erfolgreiches Greifen mit dem Maß für erfolgreiches Greifen, das bei Block 758 bestimmt wird, einen Schwellenwert nicht erfüllen und die die aktuellen Semantikmerkmal(e) die gewünschten Objekt-Semantikmerkmale angeben, dann kann der Effektorbewegungsbefehl ein „Greifbefehl“ sein, der bewirkt, dass der Effektor ein Greifen versucht (z. B. die Finger eines auftreffenden Greifeffektor schließt). Beispielsweise falls das Ergebnis des aktuellen Maßes für erfolgreiches Greifen geteilt durch das Maß für erfolgreiches Greifen, das bei Block 758 für den Kandidateneffektorbewegungsvektor bestimmt wird, der ein erfolgreiches Greifen am meisten angibt, größer als ein oder gleich einem ersten Schwellenwert ist (z. B. 0,9), kann der Effektorbefehl ein Greifbefehl sein (unter der Grundannahme, dass das Greifen früh angehalten wird, falls das Schließen des Greifers fast so wahrscheinlich ist, ein erfolgreiches Greifen zu produzieren, wie sein Bewegen). Außerdem, falls beispielsweise das Ergebnis kleiner als oder gleich einem zweiten Schwellenwert ist (z. B. 0,5), kann der Effektorbefehl ein Bewegungsbefehl sein, um eine Korrektur der Trajektorie zu bewirken (z. B. den Greifeffektor um wenigstens X Meter nach „oben“ zu heben) (unter der Grundannahme, dass der Greifeffektor höchstwahrscheinlich nicht in einer guten Konfiguration positioniert ist und eine relativ große Bewegung erforderlich ist). Außerdem kann, falls beispielsweise das Ergebnis zwischen dem ersten und dem zweiten Schwellenwert ist, ein Bewegungsbefehl erzeugt werden, der im Wesentlichen oder vollständig mit dem Kandidateneffektorbewegungsvektor konform ist, wobei das Maß für erfolgreiches Greifen, das bei Block 758 erzeugt wird, das erfolgreiches Greifen am meisten angibt, und das außerdem entsprechende Semantikmerkmal(e) enthält, die den gewünschten Objekt-Semantikmerkmal(en) entsprechen. Der Effektorbefehl, der durch das System erzeugt wird, kann eine einzige Gruppe aus einem oder mehreren Befehlen oder eine Folge von Gruppen aus einem oder mehreren Befehlen sein.
  • Das Maß für erfolgreiches Greifen kann, falls kein Kandidateneffektorbewegungsvektor benutzt wird, um neue Bewegungsbefehle zu erzeugen, auf dem Maß für dem Kandidateneffektorbewegungsvektor basieren, der in einer früheren Iteration des Verfahrens 700 benutzt wurde, und/oder auf Anwenden eines „Null“-Bewegungsvektors und des aktuellen Bilds (und optional des zusätzlichen Bilds) auf das trainierte Greif-CNN an einer zusätzlichen Iteration von Block 758 und/oder Erzeugen des Maßes basierend auf einer zusätzlichen Iteration von Block 758 basieren.
  • Bei Block 762 bestimmt das System, ob der Effektorbefehl ein Greifbefehl ist. Falls das System bei Block 762 bestimmt, dass der Effektorbefehl ein Greifbefehl ist, fährt das System zu Block 764 fort und implementiert den Greifbefehl. In einigen Implementierungen kann das System optional bestimmen, ob der Greifbefehl zu einem erfolgreichen Greifen führt (z. B. unter Verwendung von hier beschriebenen Techniken), und, falls es nicht erfolgreich ist, kann das System optional die Stellung des Effektors anpassen und zu Block 752 zurückkehren. Selbst wenn das Greifen erfolgreich ist, kann das System zu Block 752 zu einer späteren Zeit zurückkehren, um ein weiteres Objekt zu greifen.
  • Falls das System bei Block 762 bestimmt, dass der Effektorbefehl kein Greifbefehl ist (z. B. ein Bewegungsbefehl ist), fährt das System zu Block 766 fort und implementiert den Effektorbefehl, kehrt dann zu Block 752 zurück, wo es einen weiteren Kandidateneffektorbewegungsvektor erzeugt. Beispielsweise kann das System bei Block 766 einen Effektorbewegungsbefehl implementieren, der im Wesentlichen oder vollständig mit dem Kandidateneffektorbewegungsvektor konform ist mit dem Maß für das Greifen, das erfolgreiches Greifen am meisten angibt, und das auch Semantikmerkmal(e) enthält, die mit den gewünschten Objekt-Semantikmerkmal(en) konform sind.
  • In vielen Implementierungen können die Blöcke des Verfahrens 700 mit einer relativ hohen Frequenz ausgeführt werden, und dadurch wird iteratives Aktualisieren von Effektorbefehlen ermöglicht und Stellen des Effektors entlang einer Trajektorie die durch das trainierte CNN informiert wird, ermöglicht, um zu einer relativ hohen Wahrscheinlichkeit für erfolgreiches Greifen eines Objekts, das die gewünschten Objektmerkmal(e) aufweist, zu führen.
  • 8 bildet schematisch eine Beispielarchitektur eines Roboters 825 ab. Der Roboter 825 enthält ein Robotersteuersystem 860, eine oder mehrere optionale Komponenten 825a-825n und einen oder mehrere Sensoren 842a-842m. Die Sensoren 842a-842m können beispielsweise Vision-Sensoren, Lichtsensoren, Drucksensoren, Druckwellensensoren (z. B. Mikrofone), Näherungssensoren, Beschleunigungsmesser, Gyroskope, Thermometer, Barometer und so weiter enthalten. Obwohl die Sensoren 842a-m so abgebildet sind, dass sie in den Roboter 825 integriert sind, ist das nicht einschränkend gemeint. In einigen Implementierungen können sich die Sensoren 842a-m außerhalb des Roboters 825 befinden, z. B. als eigenständige Einheiten.
  • Die Betriebskomponenten 825a-825n können beispielsweise einen oder mehrere Effektoren und/oder einen oder mehrere Stellmotoren oder andere Aktuatoren enthalten, um die Bewegung einer oder mehrerer Komponenten des Roboters zu bewirken. Beispielsweise kann der Roboter 825 mehrere Freiheitsgrade aufweisen, und jeder aus den Aktuatoren kann das Betätigen des Roboters 825 innerhalb eines oder mehrerer Freiheitsgrade in Reaktion auf die Steuerbefehle steuern. Wie hier verwendet umfasst der Begriff Aktuator eine mechanische oder elektrische Vorrichtung, die Bewegung erzeugt (z. B. ein Motor), zusätzlich zu irgendwelchen Treiber(n), die dem Aktuator zugeordnet sein können und die empfangene Steuerbefehle in ein oder mehrere Signale zum Ansteuern des Aktuators umsetzen. Dementsprechend kann das Bereitstellen eines Steuerbefehls für einen Aktuator Bereitstellen des Steuerbefehls für einen Treiber enthalten, der den Steuerbefehl in geeignete Signale zum Ansteuern einer elektrischen oder mechanischen Vorrichtung, um die gewünschte Bewegung zu erzeugen, umsetzt.
  • Das Robotersteuersystem 860 kann in einem oder mehreren Prozessoren wie z. B. einer CPU, GPU, und/oder anderen Steuereinheit(en) des Roboters 815 implementiert sein. In einigen Implementierungen kann der Roboter 825 eine „Brain Box“ enthalten, die das gesamte oder Aspekte des Steuersystems 860 enthalten kann. Beispielsweise kann die Brain-Box Echtzeit-Bursts von Daten für die Betriebskomponenten 825a-n bereitstellen, wobei jeder aus den Echtzeit-Bursts eine Menge aus einem oder mehreren Befehlen umfasst, die unter anderem die Bewegungsparameter (falls vorhanden) für jede aus der einen oder den mehreren Betriebskomponenten 825a-n vorgeben. In einigen Implementierungen kann das Robotersteuersystem 860 einen oder mehrere Aspekte der hier beschriebenen Verfahren 300, 400, 500 und/oder 700 ausführen.
  • Wie hier beschrieben können in einigen Implementierungen alle oder einige Aspekte der Steuerbefehle, die durch das Steuersystem 860 zum Positionieren eines Effektors erzeugt werden, um ein Objekt zu greifen, auf Effektorbefehlen basieren, die basierend auf der Nutzung des Semantikgreifmodells erzeugt werden. Beispielsweise kann ein Vision-Sensor aus den Sensoren 842a-m ein aktuelles Bild und ein zusätzliches Bild aufnehmen, und das Robotersteuersystem 860 kann einen Kandidatenbewegungsvektor erzeugen. Das Robotersteuersystem 860 kann das aktuelle Bild, das zusätzliche Bild und den Kandidatenbewegungsvektor für ein trainiertes Semantikgreifmodell bereitstellen und ein Maß für erfolgreiches Greifen und Semantikmerkmal(e), die basierend auf das Anwenden erzeugt werden, benutzen, um einen oder mehrere Effektorsteuerbefehle zum Steuern der Bewegung und/oder des Greifens eines Effektors des Roboters erzeugen. Obwohl das Steuersystem 860 in 8 als ein integraler Bestandteil des Roboters 825 dargestellt ist, kann in einigen Implementierungen das gesamte oder Aspekte des Steuersystems 860 in einer Komponente implementiert sein, die separat von dem Roboter 825 ist, jedoch in Kommunikation mit ihm ist. Beispielsweise kann das gesamte oder einige Aspekte des Steuersystems in einer oder mehreren Berechnungsvorrichtungen implementiert sein, die in drahtgebundener oder drahtloser Kommunikation mit dem Roboter 825 sind, wie z. B. in der Berechnungsvorrichtung 910.
  • 9 ist ein Blockdiagramm einer beispielhaften Berechnungsvorrichtung 910, die optional benutzt werden kann, um einen oder mehrere Aspekte der hier beschriebenen Techniken auszuführen. Beispielsweise kann ein einigen Implementierungen die Berechnungsvorrichtung 910 benutzt werden, um gewünschte Objekt-Semantikmerkmal(e) zum Greifen durch den Roboter 815 und/oder andere Roboter bereitzustellen. Die Berechnungsvorrichtung 910 enthält typischerweise wenigstens einen Prozessor 914, der mit einer Anzahl peripherer Vorrichtungen über das Busteilsystem 912 kommuniziert. Die peripheren Vorrichtungen können ein Speicherteilsystem 924, das beispielsweise ein Datenspeicherteilsystem 925 und ein Dateispeicherteilsystem 926 enthält, Anwenderschnittstellenausgabevorrichtungen 920, Anwenderschnittstelleneingabevorrichtungen 922 und ein Netzschnittstellenteilsystem 916 enthält. Die Eingabe- und Ausgabevorrichtungen ermöglichen Anwenderinteraktion mit der Berechnungsvorrichtung 910. Das Netzschnittstellenteilsystem 916 stellt eine Schnittstelle zu äußeren Netzen bereit und ist mit entsprechenden Schnittstellenvorrichtungen in anderen Berechnungsvorrichtungen gekoppelt.
  • Die Anwenderschnittstelleneingabevorrichtungen 922 können eine Tastatur, Zeigevorrichtungen wie z. B. eine Maus, einen Trackball, ein Touchpad oder ein Grafik-Tablet, einen Scanner, einen in die Anzeigevorrichtung integrierten berührungssensitiven Bildschirm, Audio-Eingabevorrichtungen wie z. B. ein Spracherkennungssystem, Mikrofone und/oder andere Typen von Eingabevorrichtungen enthalten. Im Allgemeinen soll der Gebrauch des Begriffs „Eingabevorrichtung“ alle möglichen Typen von Vorrichtungen und Arten enthalten, um Informationen in die Berechnungsvorrichtung 910 oder auf ein Kommunikationsnetz einzugeben.
  • Die Anwenderschnittstellenausgabevorrichtungen 920 können ein Anzeigeteilsystem, einen Drucker, ein Faxgerät oder nicht-visuelle Anzeigevorrichtungen wie z. B. eine Audio-Ausgabevorrichtung enthalten. Das Anzeigeteilsystem kann eine Kathodenstrahlröhre (CRT), eine Flachbildschirmvorrichtung wie z. B. eine Flüssigkristallanzeigevorrichtung (LCD), eine Projektionsvorrichtung oder einen anderen Mechanismus zum Erzeugen eines sichtbaren Bilds enthalten. Das Anzeigeteilsystem kann außerdem eine nicht-visuelle Anzeige wie z. B. über Audio-Ausgabevorrichtungen bereitstellen. Im Allgemeinen soll der Gebrauch des Begriffs „Ausgabevorrichtung“ alle möglichen Typen von Vorrichtungen und Arten enthalten, um Informationen aus der Berechnungsvorrichtung 910 für den Anwender oder eine weitere Maschine oder Berechnungsvorrichtung auszugeben.
  • Das Speicherteilsystem 924 speichert Programme und Datenkonstrukte, die die Funktionalität einiger der oder aller hier beschriebener Module bereitstellen. Beispielsweise kann das Speicherteilsystem 924 die Logik enthalten, um ausgewählte Aspekte des Verfahrens der 3, 4, 5 und/oder 7 auszuführen.
  • Diese Software-Module werden allgemein durch den Prozessor 914 allein oder in Kombination mit anderen Prozessoren ausgeführt. Der Datenspeicher 925, der in dem Speicherteilsystem 924 verwendet ist, kann eine Anzahl von Datenspeichern enthalten, die einen Haupt-Direktzugriffsspeicher (Haupt-RAM) 930 zum Speichern von Anweisungen und Daten während der Programmausführung und einen Festwertspeicher (ROM) 932, in dem feste Anweisungen gespeichert sind, enthalten. Ein Datenspeicherteilsystem 926 stellt persistentes Speichern für Programm- und Datendateien bereit und kann ein Festplattenlaufwerk, ein Diskettenlaufwerk zusammen mit zugeordneten herausnehmbaren Medien, ein CD-ROM-Laufwerk, ein optisches Laufwerk oder herausnehmbare Medienkassetten enthalten. Die Module, die die Funktionalität spezieller Implementierungen implementieren, können durch das Dateispeicherteilsystem 926 in dem Speicherteilsystem 924 oder in anderen Maschinen, die durch den/die Prozessor(en) 914 zugreifbar sind, gespeichert sein.
  • Das Busteilsystem 912 stellt einen Mechanismus bereit zum Ermöglichen, dass die verschiedenen Komponenten und Teilsysteme der Berechnungsvorrichtung 910 bei Bedarf miteinander kommunizieren. Obwohl das Busteilsystem 912 schematisch als ein einzelner Bus gezeigt ist, können alternative Implementierungen des Busteilsystems mehrere Busse verwenden.
  • Die Berechnungsvorrichtung 910 kann von variierenden Typen sein, die eine Workstation, einen Server, ein Computer-Cluster, einen Blade-Server, eine Server-Farm und irgendein/e andere/s Datenverarbeitungssystem oder Berechnungsvorrichtung enthalten. Aufgrund der sich ständig ändernden Beschaffenheit von Computern und Netzen ist die Beschreibung der in 9 abgebildeten Berechnungsvorrichtung 910 nur als ein spezifisches Beispiel zum Zweck der Erläuterung einiger Implementierungen vorgesehen. Viele andere Konfigurationen der Berechnungsvorrichtung 910 sind möglich, die weniger oder mehr Komponenten als die in 9 abgebildete Berechnungsvorrichtung aufweisen.
  • Gemäß einer beispielhaften Ausführungsform Verfahren und Einrichtungen zum tiefen Maschinenlernen, die sich auf die Manipulation eines Objekts durch einen Effektor eines Roboters beziehen. Einige Implementierungen beziehen sich auf das Trainieren eines Semantikgreifmodells, um ein Maß vorherzusagen, das angibt, ob Bewegungsdaten für einen Effektor eines Roboters zu einem erfolgreichen Greifen eines Objekts führen werden; und um ein zusätzliches Maß vorherzusagen, das angibt, ob das Objekt die gewünschten Semantikmerkmal(e) aufweist. Einige Implementierungen richten sich auf Nutzen des trainierten Semantikgreifmodells, um einen Greifeffektor eines Roboters zu stellen, um ein erfolgreiches Greifen eines Objekts, das gewünschte Semantikmerkmal(e) aufweist, zu erreichen.
  • Obwohl verschiedene Implementierungen hier beschrieben und dargestellt worden sind, können eine Vielzahl anderer Mittel und/oder Strukturen zum Ausführen der Funktion und/oder Erhalten der Ergebnisse und/oder eines oder mehrerer Vorteile, die hier beschrieben sind, benutzt werden, und jede solcher Variationen und/oder Modifikationen ist als innerhalb des Schutzbereichs der hier beschriebenen Implementierungen anzusehen. Allgemeiner sind alle Parameter, Dimensionen, Materialien und Konfigurationen, die hier beschrieben sind, als beispielhaft gemeint, und dass die tatsächlich Parameter, Dimensionen, Materialien und/oder Konfigurationen von der spezifischen Anwendungen oder Anwendungen, für die die Lehren verwendet werden, abhängen. Fachleute werden viele Äquivalente der spezifischen hier beschriebenen Implementierungen erkennen oder imstande sein, sie unter Verwendung von wenig mehr als Routineexperimenten herauszufinden. Es ist deshalb zu verstehen, dass die vorstehenden Implementierungen nur als Beispiel präsentiert sind und dass Implementierungen innerhalb des Schutzbereichs der beigefügten Ansprüche und deren Äquivalente auf andere Weise als die spezifisch beschriebene und beanspruchte praktiziert werden können. Implementierungen der vorliegenden Offenbarung richten sich auf jedes einzelne hier beschriebene Merkmal, System, Artikel, Material, Ausrüstung und/oder Verfahren. Zusätzlich ist jede Kombination aus zwei oder mehreren solcher Merkmale, Artikel, Materialien, Ausrüstungen und/oder Verfahren, falls solche Merkmale, Artikel, Materialien, Ausrüstungen und/oder Verfahren nicht wechselseitig inkonsistent sind, in dem Schutzbereich der vorliegenden Offenbarung enthalten.

Claims (19)

  1. Nichttransitorisches computerlesbares Speichermedium, das Anweisungen speichert, die durch einen oder mehrere Prozessoren ausführbar sind, um diese Schritte auszuführen: Erzeugen eines Kandidateneffektorbewegungsvektors, der eine Bewegung definiert, um einen Greifeffektor eines Roboters von einer aktuellen Stellung zu einer zusätzlichen Stellung zu bewegen; Identifizieren eines aktuellen Bilds, das durch einen Vision-Sensor, der dem Roboter zugeordnet ist, aufgenommen ist, wobei das aktuelle Bild den Greifeffektor und wenigstens ein Objekt in einer Umgebung des Roboters aufnimmt; Anwenden des aktuellen Bilds und des Kandidateneffektorbewegungsvektors als Eingabe für ein trainiertes neuronales Greif-Faltungsnetz; Erzeugen über das trainierte neuronale Greif-Faltungsnetz eines Maßes für erfolgreiches Greifen des Objekts mit der Anwendung der Bewegung, wobei das Maß basierend auf der Anwendung des Bilds und des Effektorbewegungsvektors auf das trainierte neuronale Greif-Faltungsnetz erzeugt wird; Identifizieren eines gewünschten Objekt-Semantikmerkmals; Anwenden als Eingabe für ein neuronales Semantik-Faltungsnetz einer räumlichen Transformation des aktuellen Bilds oder eines zusätzlichen Bilds, das durch den Vision-Sensor aufgenommen wird; Erzeugen über das neuronale Semantik-Faltungsnetz basierend auf der räumlichen Transformation eines zusätzlichen Maßes, das angibt, ob das gewünschte Objekt-Semantikmerkmal in der räumlichen Transformation vorhanden ist; Erzeugen eines Effektorbefehls basierend auf dem Maß für erfolgreiches Greifen und dem zusätzlichen Maß, das angibt, ob das gewünschte Objekt-Semantikmerkmal vorhanden ist; und Bereitstellen des Effektorbefehls für einen oder mehrere Aktuatoren des Roboters.
  2. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 1, das ferner umfasst: Erzeugen über das trainierte neuronale Greif-Faltungsnetz basierend auf der Anwendung des Bilds und des Effektorbewegungsvektors auf das trainierte neuronale Greif-Faltungsnetz von Parametern für eine räumliche Transformation; und Erzeugen der räumlichen Transformation über ein Netz für räumliche Transformation basierend auf den Parametern für eine räumliche Transformation.
  3. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 1, wobei das gewünschte Objekt-Semantikmerkmal eine Objekt-Klassifizierung definiert.
  4. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 1, das ferner umfasst: Empfangen von Anwenderschnittstelleneingabe von einer Anwenderschnittstelleneingabevorrichtung; wobei das Identifizieren des gewünschten Objekt-Semantikmerkmals auf der Anwenderschnittstelleneingabe basiert.
  5. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 4, wobei die Anwenderschnittstelleneingabevorrichtung ein Mikrofon des Roboters ist.
  6. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 1, wobei die räumliche Transformation für das aktuelle Bild ist.
  7. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 6, wobei die räumliche Transformation einen Abschnitt des aktuellen Bilds ausschneidet.
  8. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 1, das ferner umfasst: Bestimmen eines aktuellen Maßes für erfolgreiches Greifen des Objekts ohne Anwendung der Bewegung; wobei das Erzeugen des Effektorbefehls basierend auf dem Maß das Erzeugen des Effektorbefehls basierend auf einem Vergleich des Maßes mit dem aktuellen Maß umfasst.
  9. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 8, wobei der Effektorbefehl ein Greifbefehl ist und wobei das Erzeugen des Greifbefehls in Reaktion ist auf: Bestimmen, dass das zusätzliche Maß angibt, dass das gewünschte Objektmerkmal in der räumlichen Transformation vorhanden ist; und Bestimmen, dass der Vergleich des Maßes mit dem aktuellen Maß ein oder mehrere Kriterien erfüllt.
  10. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 1, wobei der Effektorbefehl ein Effektorbewegungsbefehl ist und wobei das Erzeugen des Effektorbewegungsbefehls Erzeugen des Effektorbewegungsbefehls, um mit dem Kandidateneffektorbewegungsvektor konform zu sein, umfasst.
  11. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 1, wobei der Effektorbefehl ein Effektorbewegungsbefehl ist und wobei das Erzeugen des Effektorbewegungsbefehls Erzeugen des Effektorbewegungsbefehls, um eine Korrektur der Trajektorie des Effektors zu bewirken, umfasst.
  12. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 1, wobei der Effektorbefehl ein Effektorbewegungsbefehl ist und mit dem Kandidateneffektorbewegungsvektor konform ist, wobei das Bereitstellen des Effektorbewegungsbefehls für den einen oder die mehreren Aktuatoren den Effektor zu einer neuen Stellung bewegt, und das ferner umfasst: Erzeugen durch einen oder mehrere Prozessoren eines zusätzlichen Kandidateneffektorbewegungsvektors, der eine neue Bewegung definiert, um den Greifeffektor von der neuen Stellung zu einer weiteren zusätzliche Stellung zu bewegen; Identifizieren durch den einen oder die mehreren der Prozessoren eines neuen Bilds, das durch einen Vision-Sensor, der dem Roboter zugeordnet ist, aufgenommen ist, wobei das neue Bild den Effektor an der neuen Stellung aufnimmt und die Objekte in der Umgebung aufnimmt; Anwenden durch den einen oder die mehreren der Prozessoren des neuen Bilds und des zusätzlichen Kandidateneffektorbewegungsvektors als Eingabe für das trainierte neuronale Greif-Faltungsnetz; Erzeugen über das trainierte neuronale Greif-Faltungsnetz eines neuen Maßes für erfolgreiches Greifen des Objekts mit der Anwendung der neuen Bewegung, wobei das neue Maß basierend auf der Anwendung des neuen Bilds und des zusätzlichen Effektorbewegungsvektors auf das trainierte neuronale Greif-Faltungsnetz erzeugt wird; Anwenden als Eingabe für ein neuronales Semantik-Faltungsnetz einer zusätzlichen räumlichen Transformation des neuen Bilds oder eines neuen zusätzlichen Bilds, das durch den Vision-Sensor aufgenommen wird; Erzeugen über das neuronale Semantik-Faltungsnetz basierend auf der zusätzlichen räumlichen Transformation eines neuen zusätzlichen Maßes, das angibt, ob das gewünschte Objektmerkmal in der räumlichen Transformation vorhanden ist; Erzeugen eines neuen Effektorbefehls basierend auf dem neuen Maß für erfolgreiches Greifen und dem neuen zusätzlichen Maß, das angibt, ob das gewünschte Objektmerkmal vorhanden ist. und Bereitstellen des neuen Effektorbefehls für einen oder mehrere Aktuatoren des Roboters.
  13. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 1, wobei das Anwenden des Bilds und des Kandidateneffektorbewegungsvektors als Eingabe für das trainierte neuronale Greif-Faltungsnetz umfasst: Anwenden des Bilds als Eingabe für eine Anfangsschicht des trainierten neuronalen Greif-Faltungsnetzes; und Anwenden des Kandidateneffektorbewegungsvektors auf eine zusätzliche Schicht des trainierten neuronalen Greif-Faltungsnetzes, wobei die zusätzliche Schicht der Anfangsschicht nachgelagert ist.
  14. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 1, wobei das Erzeugen des Kandidateneffektorbewegungsvektors umfasst: Erzeugen von mehreren Kandidateneffektorbewegungsvektoren; und Ausführen einer oder mehrerer Iterationen von Kreuzentropieoptimierung auf den mehreren Kandidateneffektorbewegungsvektoren, um den Kandidateneffektorbewegungsvektor aus den mehreren Kandidateneffektorbewegungsvektoren auszuwählen.
  15. Nichttransitorisches computerlesbares Speichermedium, das Anweisungen speichert, die durch einen oder mehrere Prozessoren ausführbar sind, um diese Schritte auszuführen: Identifizieren eines aktuellen Bilds, das durch einen Vision-Sensor, der einem Roboter zugeordnet ist, aufgenommen wird; Erzeugen über ein neuronales Greif-Faltungsnetz basierend auf der Anwendung des aktuellen Bilds auf das neuronale Greif-Faltungsnetz: eines Maßes für erfolgreiches Greifen durch einen Greifeffektor des Roboters eines Objekts, das in dem aktuellen Bild aufgenommen ist, und Parameter für räumliche Transformation; Erzeugen über ein Netz zum räumlichen Transformieren einer räumlichen Transformation basierend auf den Parametern für räumliche Transformation, wobei die räumliche Transformation für das aktuelle Bild oder ein zusätzliches Bild ist, das durch den Vision-Sensor aufgenommen ist; Anwenden der räumlichen Transformation als Eingabe für ein neuronales Semantik-Faltungsnetz; Erzeugen über das neuronale Semantik-Faltungsnetz basierend auf der räumlichen Transformation eines zusätzlichen Maßes, das angibt, ob ein gewünschtes Objekt-Semantikmerkmal in der räumlichen Transformation vorhanden ist; Erzeugen eines Effektorbefehls basierend auf dem Maß und dem zusätzlichen Maß; und Bereitstellen des Effektorbefehls für einen oder mehrere Aktuatoren des Roboters.
  16. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 15, wobei das Erzeugen des Maßes für erfolgreiches Greifen und der Parameter für räumliche Transformation über das neuronale Greif-Faltungsnetz ferner auf einer Anwendung eines Kandidateneffektorbewegungsvektors auf das neuronale Greif-Faltungsnetz basiert.
  17. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 16, wobei das Erzeugen des Maßes für erfolgreiches Greifen und der Parameter für räumliche Transformation über das neuronale Greif-Faltungsnetz basiert auf einer Anwendung: des Bilds als Eingabe für eine Anfangsschicht des trainierten neuronalen Greif-Faltungsnetzes; und des Kandidateneffektorbewegungsvektors auf eine zusätzliche Schicht des trainierten neuronalen Greif-Faltungsnetzes, wobei die zusätzliche Schicht der Anfangsschicht nachgelagert ist.
  18. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 15, das ferner umfasst: Bestimmen eines aktuellen Maßes für erfolgreiches Greifen des Objekts; wobei das Erzeugen des Effektorbefehls basierend auf dem Maß das Erzeugen des Effektorbefehls basierend auf einem Vergleich des Maßes mit dem aktuellen Maß umfasst.
  19. System, das umfasst: einen Vision-Sensor, der eine Umgebung sieht; ein Semantikgreifmodell, das in einem oder mehreren nichttransitorischen computerlesbaren Medien gespeichert ist; wenigstens einen Prozessor, der konfiguriert ist: ein aktuelles Bild, das durch den Vision-Sensor aufgenommen wird, zu identifizieren; über einen Abschnitt des Semantikgreifmodells basierend auf der Anwendung des aktuellen Bilds auf den Abschnitt zu erzeugen: ein Maß für erfolgreiches Greifen durch einen Greifeffektor des Roboters eines Objekts, das in dem aktuellen Bild aufgenommen ist, und Parameter für räumliche Transformation; eine räumliche Transformation des aktuellen Bilds basierend auf den Parametern für räumliche Transformation zu erzeugen; die räumliche Transformation als Eingabe für einen zusätzlichen Abschnitt des Semantikgreifmodells anzuwenden; über den zusätzlichen Abschnitt basierend auf der räumlichen Transformation ein zusätzliches Maß zu erzeugen, das angibt, ob ein gewünschtes Objekt-Semantikmerkmal in der räumlichen Transformation vorhanden ist; einen Effektorbefehl basierend auf dem Maß und dem zusätzlichen Maß zu erzeugen; und den Effektorbefehl bereitzustellen.
DE202017106506.5U 2016-11-15 2017-10-26 Einrichtung für tiefes Maschinenlernen zum Robotergreifen Active DE202017106506U1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662422549P 2016-11-15 2016-11-15
US62/422,549 2016-11-15
US15/448,013 US9914213B2 (en) 2016-03-03 2017-03-02 Deep machine learning methods and apparatus for robotic grasping
US15/448,013 2017-03-02

Publications (1)

Publication Number Publication Date
DE202017106506U1 true DE202017106506U1 (de) 2018-04-03

Family

ID=62003377

Family Applications (1)

Application Number Title Priority Date Filing Date
DE202017106506.5U Active DE202017106506U1 (de) 2016-11-15 2017-10-26 Einrichtung für tiefes Maschinenlernen zum Robotergreifen

Country Status (1)

Country Link
DE (1) DE202017106506U1 (de)

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102019201045A1 (de) * 2019-01-28 2020-07-30 Robert Bosch Gmbh Verfahren, Vorrichtung und Computerprogramm zum Ermitteln einer Aktion oder Trajektorie eines Roboters
DE102019206444A1 (de) * 2019-05-06 2020-11-12 Kuka Deutschland Gmbh Maschinelles Lernen einer Objekterkennung mithilfe einer robotergeführten Kamera
DE102019121889B3 (de) * 2019-08-14 2020-11-19 Robominds GmbH Automatisierungssystem und Verfahren zur Handhabung von Produkten
DE102019122790B4 (de) * 2018-08-24 2021-03-25 Nvidia Corp. Robotersteuerungssystem
DE102020200165A1 (de) * 2020-01-09 2021-07-15 Robert Bosch Gesellschaft mit beschränkter Haftung Robotersteuereinrichtung und Verfahren zum Steuern eines Roboters
CN113172629A (zh) * 2021-05-06 2021-07-27 清华大学深圳国际研究生院 一种基于时序触觉数据处理的物体抓取方法
DE102020112149A1 (de) 2020-05-05 2021-11-11 Integrated Dynamics Engineering Gesellschaft mit beschränkter Haftung Verfahren zur Kontrolle von Handlingsystemen
DE102020113278A1 (de) 2020-05-15 2021-11-18 Gerhard Schubert Gesellschaft mit beschränkter Haftung Verfahren zur Steuerung des Betriebs eines Industrieroboters
DE102020117318A1 (de) 2020-07-01 2022-01-05 Broetje-Automation Gmbh Verfahren zur Desinfektion einer Bearbeitungsumgebung
CN114728413A (zh) * 2019-11-19 2022-07-08 谷歌有限责任公司 用于控制远程机器人的图形用户界面的方法和系统
DE102021200569A1 (de) 2021-01-22 2022-07-28 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung und Verfahren zum Trainieren eines Gaußprozess-Zustandsraummodells
DE112018000131B4 (de) 2018-07-06 2022-08-25 Mitsubishi Electric Corporation Lernverfahren, das Lernverfahren ausführende numerische Steuervorrichtung, und durch die numerische Steuervorrichtung gesteuerte Werkzeugmaschine
DE102021202759A1 (de) 2021-03-22 2022-09-22 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung und Verfahren zum Trainieren eines neuronalen Netzwerks zum Steuern eines Roboters
DE102021203779A1 (de) 2021-04-16 2022-10-20 Volkswagen Aktiengesellschaft Verfahren und Vorrichtung zum Annotieren von mit Hilfe einer Kamera aufgenommenen Bildern eines Objektes
DE102021103726B4 (de) 2020-03-13 2022-12-29 Omron Corporation Messparameter-Optimierungsverfahren und -vorrichtung sowie Computersteuerprogramm
DE102021209646A1 (de) 2021-09-02 2023-03-02 Robert Bosch Gesellschaft mit beschränkter Haftung Robotervorrichtung, Verfahren zum computerimplementierten Trainieren eines Roboter-Steuerungsmodells und Verfahren zum Steuern einer Robotervorrichtung
US11724401B2 (en) 2019-11-13 2023-08-15 Nvidia Corporation Grasp determination for an object in clutter
DE102022203410A1 (de) 2022-04-06 2023-10-12 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Steuern einer Robotervorrichtung
US11833681B2 (en) 2018-08-24 2023-12-05 Nvidia Corporation Robotic control system
DE102022115662A1 (de) 2022-06-23 2023-12-28 Robominds GmbH Verfahren zum Handhaben eines Objekts mittels eines Roboterarms und Vorrichtung umfassend einen Roboterarm zum Handhaben eines Objekts
DE102022207847A1 (de) 2022-07-29 2024-02-01 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Steuern eines Roboters zum Manipulieren, insbesondere Aufnehmen, eines Objekts
DE102020128653B4 (de) 2019-11-13 2024-03-14 Nvidia Corporation Greifbestimmung für ein Objekt in Unordnung

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112018000131B4 (de) 2018-07-06 2022-08-25 Mitsubishi Electric Corporation Lernverfahren, das Lernverfahren ausführende numerische Steuervorrichtung, und durch die numerische Steuervorrichtung gesteuerte Werkzeugmaschine
DE102019122790B4 (de) * 2018-08-24 2021-03-25 Nvidia Corp. Robotersteuerungssystem
US11833681B2 (en) 2018-08-24 2023-12-05 Nvidia Corporation Robotic control system
DE102019201045A1 (de) * 2019-01-28 2020-07-30 Robert Bosch Gmbh Verfahren, Vorrichtung und Computerprogramm zum Ermitteln einer Aktion oder Trajektorie eines Roboters
DE102019201045B4 (de) * 2019-01-28 2020-11-26 Robert Bosch Gmbh Verfahren, Vorrichtung und Computerprogramm zum Ermitteln einer Aktion oder Trajektorie eines Roboters
DE102019206444A1 (de) * 2019-05-06 2020-11-12 Kuka Deutschland Gmbh Maschinelles Lernen einer Objekterkennung mithilfe einer robotergeführten Kamera
DE102019121889B3 (de) * 2019-08-14 2020-11-19 Robominds GmbH Automatisierungssystem und Verfahren zur Handhabung von Produkten
DE102020128653B4 (de) 2019-11-13 2024-03-14 Nvidia Corporation Greifbestimmung für ein Objekt in Unordnung
US11724401B2 (en) 2019-11-13 2023-08-15 Nvidia Corporation Grasp determination for an object in clutter
CN114728413A (zh) * 2019-11-19 2022-07-08 谷歌有限责任公司 用于控制远程机器人的图形用户界面的方法和系统
DE102020200165B4 (de) 2020-01-09 2022-05-19 Robert Bosch Gesellschaft mit beschränkter Haftung Robotersteuereinrichtung und Verfahren zum Steuern eines Roboters
DE102020200165A1 (de) * 2020-01-09 2021-07-15 Robert Bosch Gesellschaft mit beschränkter Haftung Robotersteuereinrichtung und Verfahren zum Steuern eines Roboters
DE102021103726B4 (de) 2020-03-13 2022-12-29 Omron Corporation Messparameter-Optimierungsverfahren und -vorrichtung sowie Computersteuerprogramm
US11816754B2 (en) 2020-03-13 2023-11-14 Omron Corporation Measurement parameter optimization method and device, and computer control program stored on computer-readable storage medium
DE102020112149A1 (de) 2020-05-05 2021-11-11 Integrated Dynamics Engineering Gesellschaft mit beschränkter Haftung Verfahren zur Kontrolle von Handlingsystemen
DE102020113278A1 (de) 2020-05-15 2021-11-18 Gerhard Schubert Gesellschaft mit beschränkter Haftung Verfahren zur Steuerung des Betriebs eines Industrieroboters
DE102020117318A1 (de) 2020-07-01 2022-01-05 Broetje-Automation Gmbh Verfahren zur Desinfektion einer Bearbeitungsumgebung
DE102021200569A1 (de) 2021-01-22 2022-07-28 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung und Verfahren zum Trainieren eines Gaußprozess-Zustandsraummodells
DE102021202759A1 (de) 2021-03-22 2022-09-22 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung und Verfahren zum Trainieren eines neuronalen Netzwerks zum Steuern eines Roboters
DE102021203779B4 (de) 2021-04-16 2023-12-14 Volkswagen Aktiengesellschaft Verfahren und Vorrichtung zum Annotieren von mit Hilfe einer Kamera aufgenommenen Bildern eines Objektes
DE102021203779A1 (de) 2021-04-16 2022-10-20 Volkswagen Aktiengesellschaft Verfahren und Vorrichtung zum Annotieren von mit Hilfe einer Kamera aufgenommenen Bildern eines Objektes
CN113172629B (zh) * 2021-05-06 2023-08-01 清华大学深圳国际研究生院 一种基于时序触觉数据处理的物体抓取方法
CN113172629A (zh) * 2021-05-06 2021-07-27 清华大学深圳国际研究生院 一种基于时序触觉数据处理的物体抓取方法
DE102021209646A1 (de) 2021-09-02 2023-03-02 Robert Bosch Gesellschaft mit beschränkter Haftung Robotervorrichtung, Verfahren zum computerimplementierten Trainieren eines Roboter-Steuerungsmodells und Verfahren zum Steuern einer Robotervorrichtung
DE102021209646B4 (de) 2021-09-02 2024-05-02 Robert Bosch Gesellschaft mit beschränkter Haftung Robotervorrichtung, Verfahren zum computerimplementierten Trainieren eines Roboter-Steuerungsmodells und Verfahren zum Steuern einer Robotervorrichtung
DE102022203410A1 (de) 2022-04-06 2023-10-12 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Steuern einer Robotervorrichtung
DE102022115662A1 (de) 2022-06-23 2023-12-28 Robominds GmbH Verfahren zum Handhaben eines Objekts mittels eines Roboterarms und Vorrichtung umfassend einen Roboterarm zum Handhaben eines Objekts
DE102022207847A1 (de) 2022-07-29 2024-02-01 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Steuern eines Roboters zum Manipulieren, insbesondere Aufnehmen, eines Objekts

Similar Documents

Publication Publication Date Title
DE202017106506U1 (de) Einrichtung für tiefes Maschinenlernen zum Robotergreifen
DE102018215057B4 (de) Maschinelles-Lernen-Vorrichtung, Robotersystem und maschinelles-Lernen-Verfahren
DE102010053002B4 (de) Systeme und Verfahren, die der Handhabung eines Ojekts mit einem Greifer zugeordnet sind
DE102013203381B4 (de) Verfahren und system zum trainieren eines roboters unter verwendung einer von menschen unterstützten aufgabendemonstration
DE102015111080B4 (de) Robotervorrichtung mit maschinellem Sehen
DE102018206208A1 (de) Verfahren, Vorrichtung, Erzeugnis und Computerprogramm zum Betreiben eines technischen Systems
DE112016004535T5 (de) Universelles Übereinstimmungsnetz
DE102014108287A1 (de) Schnelles Erlernen durch Nachahmung von Kraftdrehmoment-Aufgaben durch Roboter
CN110238840B (zh) 一种基于视觉的机械臂自主抓取方法
DE112016004534T5 (de) Nicht überwachtes Abgleichen in feinkörnigen Datensätzen zur Einzelansicht-Objektrekonstruktion
DE102021121063A1 (de) Effiziente datengenerierung für das greifenlernen mit allgemeinen greifern
DE112004002219T5 (de) Verfahren zum Antreiben eines Roboters
DE102021205722A1 (de) System und verfahren für mehrskalenmodelle mit tiefem gleichgewicht
CN113762159B (zh) 一种基于有向箭头模型的目标抓取检测方法及系统
EP4177013A1 (de) Ansteuerung eines industrieroboters für eine greifaufgabe
DE102020209080A1 (de) Bildverarbeitungssystem
DE102020200499A1 (de) Verfahren zum Generieren von gelabelten Daten, insbesondere für das Training eines neuronalen Netzes, unter Verwendung ungelabelter, partitionierter Stichproben
DE102022107228A1 (de) Aufnahme von objekten aus einem behälter (bin picking) mit drehungsausgleich
DE112021005555T5 (de) Multitasking-lernen über gradienteilung zur umfangreichen menschlichen analyse
DE102020211053A1 (de) Annotationsvorrichtung
DE102021209646B4 (de) Robotervorrichtung, Verfahren zum computerimplementierten Trainieren eines Roboter-Steuerungsmodells und Verfahren zum Steuern einer Robotervorrichtung
DE102019202747A1 (de) Verfahren und Vorrichtung zur Klassifizierung von Eingangsdaten
DE102022204009A1 (de) Verfahren und Einrichtung zur Bestimmung der 6D-Geste eines Objekts
DE102021212860B4 (de) Verfahren zum Aufnehmen eines Objekts mittels eines Roboters
EP4064106A1 (de) Verfahren zum erzeugen von trainingsdaten für ein ml-modell

Legal Events

Date Code Title Description
R207 Utility model specification
R150 Utility model maintained after payment of first maintenance fee after three years
R151 Utility model maintained after payment of second maintenance fee after six years