DE202017105598U1 - System zum tiefen Verstärkungslernen für Robotermanipulation - Google Patents

System zum tiefen Verstärkungslernen für Robotermanipulation Download PDF

Info

Publication number
DE202017105598U1
DE202017105598U1 DE202017105598.1U DE202017105598U DE202017105598U1 DE 202017105598 U1 DE202017105598 U1 DE 202017105598U1 DE 202017105598 U DE202017105598 U DE 202017105598U DE 202017105598 U1 DE202017105598 U1 DE 202017105598U1
Authority
DE
Germany
Prior art keywords
robot
policy
robots
given
storage medium
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
DE202017105598.1U
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
Application filed by Google LLC filed Critical Google LLC
Publication of DE202017105598U1 publication Critical patent/DE202017105598U1/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/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/0265Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion
    • G05B13/027Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion using neural networks only
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/04Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators
    • G05B13/042Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric involving the use of models or simulators in which a parameter or coefficient is automatically adjusted to optimise the performance
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/008Artificial life, i.e. computing arrangements simulating life based on physical entities controlled by simulated intelligence so as to replicate intelligent life forms, e.g. based on robots replicating pets or humans in their appearance or behaviour
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • 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/32Operator till task planning
    • G05B2219/32335Use of ann, neural network
    • 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/33Director till display
    • G05B2219/33033Identification neural controller copies weight to system neural controller
    • 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/33Director till display
    • G05B2219/33034Online learning, training
    • 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/39001Robot, manipulator control
    • 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/39298Trajectory learning
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40499Reinforcement learning algorithm

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Robotics (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Automation & Control Theory (AREA)
  • Mechanical Engineering (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • Biomedical Technology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Fuzzy Systems (AREA)
  • Manipulator (AREA)
  • Feedback Control In General (AREA)

Abstract

Nichttransitorisches computerlesbares Speichermedium, auf dem Anweisungen gespeichert sind, wobei die Anweisungen, wenn sie durch einen oder mehrere Prozessoren ausgeführt werden, bewirken, dass der eine oder die mehreren Prozessoren Schritte durchführen, die umfassen:während der Durchführung von mehreren Episoden durch jeden von mehreren Robotern, wobei jede der Episoden eine Untersuchung der Durchführung einer Aufgabe auf der Basis eines neuronalen Richtliniennetzes ist, das eine Verstärkungslernrichtlinie für die Aufgabe darstellt:Speichern von Instanzen von Robotererfahrungsdaten in einem Puffer, die während der Episoden durch die Roboter erzeugt werden, wobei jede der Instanzen der Robotererfahrungsdaten während einer entsprechenden der Episoden erzeugt wird und zumindest teilweise an einer entsprechenden Ausgabe erzeugt wird, die unter Verwendung des neuronalen Richtliniennetzes mit entsprechenden Richtlinienparametern für das neuronalen Richtliniennetz für die entsprechende Episode erzeugt wird;iteratives Erzeugen von aktualisierten Richtlinienparametern des neuronalen Richtliniennetzes, wobei jede der Iterationen des iterativen Erzeugens das Erzeugen der aktualisierten Richtlinienparameter unter Verwendung einer Gruppe von einer oder mehreren Instanzen der Robotererfahrungsdaten im Puffer während der Iteration umfasst; unddurch jeden der Roboter in Verbindung mit einem Start von jeder von mehreren Episoden, die durch den Roboter durchgeführt werden, Aktualisieren des neuronalen Richtliniennetzes, das durch den Roboter in der Episode verwendet werden soll, wobei das Aktualisieren des neuronalen Richtliniennetzes die Verwendung der aktualisierten Richtlinienparameter einer jüngsten Iteration des iterativen Erzeugens der aktualisierten Richtlinienparameter umfasst.

Description

  • Hintergrund
  • Viele Roboter sind programmiert, um einen oder mehrere Endeffektoren zu verwenden, um ein oder mehrere Objekte zu manipulieren. Ein Roboter kann beispielsweise einen Endeffektor verwenden, um eine Kraft auf ein Objekt aufzubringen und eine Bewegung dieses Objekts zu bewirken. Ein Roboter kann beispielsweise einen greifenden Endeffektor oder einen anderen Endeffektor verwenden, um ein Objekt zu verlagern, ohne notwendigerweise dieses Objekt zu ergreifen. Ein Roboter kann beispielsweise auch einen greifenden Endeffektor wie z. B. einen „klemmenden“ Greifer oder „ingressiven“ Greifer (z. B. der physikalisch in ein Objekt unter Verwendung von Stiften, Nadeln usw. eindringt) verwenden, um ein Objekt von einem ersten Ort aufzugreifen, das Objekt zu einem zweiten Ort zu bewegen, und das Objekt am zweiten Ort abzusetzen.
  • Zum Schutz als Gebrauchsmuster und der Gegenstand des Gebrauchsmusters sind gemäß den Anforderungen der Gebrauchsmusterverordnung nur Geräte, wie in den beigefügten Ansprüchen definiert, aber keine Verfahren. Falls in der Beschreibung auf Verfahren Bezug genommen wird, dienen diese Bezugnahmen lediglich zum Erläutern des Geräts oder der Geräte, für die Schutz mit den beigefügten Ansprüchen angestrebt wird.
  • Zusammenfassung
  • Die nachstehend beschriebenen Implementierungen schaffen Verbesserungen an der Betriebsleistung von einem oder mehreren Robotern, wenn sie eine oder mehrere Aufgaben ausführen. Die Leistung des einen oder der mehreren Roboter wird unter Verwendung eines Verstärkungslernprozesses verbessert, wie hier beschrieben, der das schnelle Lernen von optimalen Methoden oder Richtlinien zum Durchführen von speziellen physikalischen Aufgaben unter Verwendung des einen oder der mehreren Roboter erleichtert. Die Roboter können die gelernten Richtlinien verwenden, um Effizienzsteigerungen bei der Durchführung der Aufgaben zu erlangen. Physikalische Aufgaben können beispielsweise durch die Roboter schneller und/oder mit weniger elektrischem Leistungsverbrauch durchgeführt werden, wenn der beschriebene Verstärkungslernprozess stattfindet. Solche physikalischen Aufgaben können zusätzlich oder alternativ sicherer durchgeführt werden oder können weiterhin innerhalb definierter Sicherheitsparameter ausgeführt werden, wenn sich andere Aspekte der Leistung der Roboter mit dem Lernprozess verbessern.
  • Wie aus der folgenden Offenbarung ersichtlich ist, kann der Lernprozess iterativ sein. Der eine oder die mehreren Roboter können gemäß jeder neuen verbesserten Iteration der Richtlinie/Methode für eine spezielle Aufgabe arbeiten, wenn die neuen Iterationen an das Rechengerät (die Rechengeräte) weitergeleitet werden, die für das Steuern der physikalischen Handlungen der Roboter verantwortlich sind. An sich können die vorstehend angeführten Effizienzsteigerungen hinsichtlich der durch die Roboter durchgeführten physikalischen Handlungen häufig stattfinden, wenn der Lernprozess fortfährt. Insgesamt kann die Rate, mit der sich die Leistung der Roboter verbessert, zusammen mit den resultierenden Effizienzsteigerungen besonders schnell sein und kann dazu führen, dass die Roboter physikalische Aufgaben in einer optimalen Weise in weniger Zeit als mit anderen Lerntechniken ausführen. Es ist zu erkennen, dass dies zu den vorstehend erwähnten Vorteilen führt, wie z. B. verbesserter Leistungsverbrauch an den Robotern, die in einer früheren Stufe erfahren werden. Dies wird nachstehend beispielsweise als Teil der Erläuterung einer Entkopplung zwischen Trainings-Threads und Erfahrungs-Threads für den einen oder die mehreren Roboter in verschiedenen Computerprozessoren beschrieben. Insbesondere wird erläutert, dass das Parallelisieren eines Trainingsalgorithmus über mehrere Roboter, die ihre Richtlinienaktualisierungen asynchron zusammenfassen, zu einem neuronalen Richtliniennetz führt, das nach einer gegebenen Anzahl von Trainingsiterationen genauer und/oder robuster ist.
  • Das Ziel beim Verstärkungslernen besteht darin, einen Agenten zu steuern, der versucht, eine Belohnungsfunktion zu maximieren, die im Zusammenhang mit einer Roboterfähigkeit (hier auch als Aufgabe bezeichnet) eine vom Benutzer bereitgestellte Definition dessen bezeichnet, was der Roboter durchzuführen versuchen sollte. Im Zustand xt in der Zeit t wählt der Agent die Handlung ut gemäß seiner Richtlinie π(ut|xt) und führt diese aus, geht in einen neuen Zustand xt gemäß der Dynamik des Roboters p(xt|xt,ut) über und empfängt eine Belohnung r(xt,ut). Das Ziel des Verstärkungslernens besteht darin, die optimale Richtlinie π * zu finden, die die erwartete Summe von Belohnungen von einer anfänglichen Zustandsverteilung maximiert. Die Belohnung wird auf der Basis der Belohnungsfunktion bestimmt, die, wie vorstehend erwähnt, von der durchzuführenden Roboteraufgabe abhängt. Folglich strebt das Verstärkungslernen im Roboterzusammenhang an, eine optimale Richtlinie für die Durchführung einer gegebenen Roboteraufgabe zu lernen.
  • Die hier offenbarten Implementierungen verwenden tiefes Verstärkungslernen, um ein Richtliniennetz zu trainieren, das eine Richtlinie zum Bestimmen einer Roboterhandlung auf der Basis eines aktuellen Zustandes parametrisiert. Der aktuelle Zustand kann den Zustand des Roboters (z. B. Winkel von Gelenken des Roboters, Position(en) von Endeffektor(en) des Roboters und/oder ihre Zeitableitungen) und/oder den aktuellen Zustand von einer oder mehreren Komponenten in der Umgebung des Roboters (z. B. einen aktuellen Zustand von Sensor(en) in der Umgebung des Roboters, aktuelle Stellung(en) von Zielobjekt(en) in der Umgebung des Roboters) umfassen. Das Richtliniennetz kann ein neuronales Netz wie z. B. ein tiefes neuronales Netz sein. Das Richtliniennetz kann beispielsweise ein neuronales Netz sein, das den aktuellen Zustand als Eingabe annimmt und das auf der Basis der Eingabe und von gelernten Richtlinienparametern des neuronalen Netzes eine Ausgabe erzeugt, die eine zu implementierende Handlung angibt. Die Ausgabe kann beispielsweise Geschwindigkeitsbefehle, die zu jedem der Aktuatoren des Roboters geliefert werden sollen, oder Drehmomente, die auf jeden der Aktuatoren des Roboters angewendet werden sollen, angeben. Ein Roboter kann ein neuronales Richtliniennetz durch Anwenden eines aktuellen Zustandes auf das neuronale Richtliniennetz in jedem Steuerzyklus des Roboters, Erzeugen einer Ausgabe durch Verarbeiten des aktuellen Zustandes unter Verwendung des neuronalen Richtliniennetzes und Implementieren von Steuerbefehlen, um die durch die Ausgabe angegebene Handlung zu bewirken, verwenden. Der Zustand nach der Implementierung der Steuerbefehle kann dann als aktueller Zustand im nächsten Steuerzyklus verwendet werden.
  • Die hier offenbarten Implementierungen sammeln Erfahrungsdaten von mehreren Robotern, die gleichzeitig arbeiten. Jeder Roboter erzeugt Instanzen von Erfahrungsdaten während der iterativen Durchführung von Episoden, die jeweils Untersuchungen der Durchführung einer Ausgabe sind, und die jeweils auf der Basis des Richtliniennetzes und der aktuellen Richtlinienparameter für das Richtliniennetz während der Episode geführt werden. Während einer Episode kann ein Roboter beispielsweise eine Instanz von Erfahrungsdaten in jedem Steuerzyklus von mehreren Steuerzyklen des Roboters während der Episode erzeugen. Jede Instanz von Erfahrungsdaten kann einen entsprechenden aktuellen/Anfangszustand, anschließenden Zustand, in den vom Anfangszustand übergegangen wird, eine Roboterhandlung, die ausgeführt wird, um vom Anfangszustand in den anschließenden Zustand überzugehen (wobei die Handlung auf der Anwendung des Anfangszustandes auf das Richtliniennetz und seinen aktuellen Richtlinienparametern basiert) und optional eine Belohnung für die Handlung (wie auf der Basis der Belohnungsfunktion bestimmt) angeben. Die gesammelten Erfahrungsdaten werden während der Episoden erzeugt und werden verwendet, um das Richtliniennetz durch iteratives Aktualisieren von Richtlinienparameteren des Richtliniennetzes auf der Basis eines Stapels von gesammelten Erfahrungsdaten zu trainieren. Vor der Durchführung von jeder von mehreren Episoden, die durch die Roboter durchgeführt werden, können ferner die aktuellen aktualisierten Richtlinienparameter für die Nutzung bei der Durchführung der Episode bereitgestellt (oder abgerufen) werden. Jeder Roboter kann beispielsweise vor der Durchführung von jeder seiner Episoden die aktualisierten Richtlinienparameter von einer jüngsten Iteration des Trainings erhalten und die aktualisierten Richtlinienparameter bei der Durchführung der Episode verwenden. Folglich basieren die Erfahrungsdaten von jeder Episode auf dem Richtliniennetz mit aktualisierten Richtlinienparametern von einer jüngsten (relativ zum Start der Episode) Iteration des Trainings.
  • In vielen Implementierungen ist das Training des Richtliniennetzes asynchron relativ zur Erzeugung und Sammlung der Erfahrungsdaten von den mehreren Robotern. Das heißt, ein Thread (Threads), die das Richtliniennetz trainieren/aktualisieren, werden von dem Thread (den Threads) abgekoppelt, die die Erfahrungsdaten von den mehreren Robotern erzeugen und/oder sammeln. Die Trainings/Aktualisierungs-Threads können beispielsweise auf einem oder mehreren Prozessoren arbeiten und die Erfahrungs-Threads können auf einem oder mehreren zusätzlichen Prozessoren arbeiten, die von dem einen oder den mehreren Prozessoren separat sind, die die Trainings/Aktualisierungs-Threads betreiben. Die Entkopplung zwischen den Trainings- und Erfahrungs-Threads kann sicherstellen, dass eine Differenz der Trainingsgeschwindigkeit und Erfahrungssammelgeschwindigkeit Steuerprogramme der Roboter nicht anhält, die die Erfahrungsdaten erzeugen, die häufig Steuerungen mit festen Frequenzen senden müssen. Mit anderen Worten, die Entkopplung kann ermöglichen, dass die Erfahrungsdatensammlung weiterhin durch entsprechende Erfahrungs-Threads stattfindet, ohne diese Threads für Trainingszwecke anzuhalten. Überdies ermöglicht die Entkopplung, dass die Trainings-Threads parallel mit den Erfahrungs-Threads arbeiten, asynchron und iterativ Richtlinienparameter für das Richtliniennetz aktualisieren und iterativ aktualisierte Richtlinienparameter für Episoden bereitstellen. In vielen Implementierungen kann (können) der Trainings-Thread (die Trainings-Threads) eine Frequenz (z. B. 60 Hz) betreiben, die größer ist als eine oder mehrere (z. B. alle) der Steuerfrequenzen der Roboter (z. B. 20 Hz). In diesen Implementierungen können Trainingszeiten der realen Welt (z. B. Uhr an der Wand) verringert werden (relativ zu Techniken, die keine Erfahrungsdaten von mehreren Robotern verwenden) durch Erhalten von Erfahrungsdaten von mehreren Robotern, die parallel arbeiten, und durch asynchrones Durchführen des Trainings in (einem) separaten Thread (Threads). Das Training kann beispielsweise ohne irgendwelche (oder ohne weniger) Verzögerungen stattfinden, die daran liegen, dass keine neuen Erfahrungsdaten in einem Puffer zur Verfügung stehen. Die separaten Threads können beispielsweise auch den Bedarf verhindern, die Erfahrungsdatensammlung anzuhalten, um zu ermöglichen, dass das Training stattfindet, oder umgekehrt.
  • Überdies können die Verwendung von Erfahrungsdaten von mehreren Robotern und die Entkopplung der Trainings- und Erfahrungssammlungs-Threads zu einem Modell führen, das nach einer gegebenen Anzahl von Trainingsiterationen genauer und/oder robuster ist, als wenn solche Techniken nicht verwendet werden würden. Dies kann beispielsweise an Erfahrungsdaten liegen, die durch einen Roboter in einer gegebenen Episode erzeugt werden, die auf Richtlinienparametern basieren, die aktualisiert werden sowohl auf der Basis von vergangenen Instanzen von Erfahrungsdaten vom Roboter als auch vergangenen Instanzen von Erfahrungsdaten von (einem) anderen Roboter(n), die parallel arbeiten. In einer dritten Episode eines Roboters können beispielsweise die Richtlinienparameter, die in der dritten Episode verwendet werden, nicht nur auf Erfahrungsdaten von der ersten und/oder der zweiten Episode des Roboters, sondern auch auf Erfahrungsdaten von einer ersten und/oder zweiten Episode eines Roboters (von Robotern), die parallel arbeiten, basieren. In dieser Weise basieren die in der dritten Episode erzeugten Erfahrungsdaten auf dem Richtliniennetz mit aktualisierten Richtlinienparametern, die angesichts der Erfahrungsdaten von mehr als nur zwei vorherigen Episoden trainiert werden, die bewirken können, dass Erfahrungsdaten in der dritten Episode erzeugt werden, die zu einer schnelleren Konvergenz führen, als wenn die Aktualisierungsrichtlinienparameter nur angesichts von Erfahrungsdaten von zwei vorherigen Episoden trainiert werden würden.
  • In verschiedenen hier beschriebenen Implementierungen können einer oder mehrere der mehreren Roboter, die Erfahrungsdaten erzeugen, asynchron relativ zueinander arbeiten und/oder die aktualisierten Richtlinienparameter können vor der Episodendurchführung asynchron zu den Robotern geliefert (oder von diesen abgerufen) werden. In dieser Weise können aktualisierte Richtlinienparameter, die zu jedem von mehreren Robotern geliefert werden, relativ zueinander variieren. Zu einer ersten Zeit kann beispielsweise ein erster Roboter aktualisierte Richtlinienparameter für die Verwendung in einer durch den ersten Roboter durchzuführenden Episode erhalten. Zur ersten Zeit kann der zweite Roboter immer noch eine vorherige Episode durchführen. Zu einer zweiten Zeit im Anschluss an die erste Zeit kann der zweite Roboter dann weiter aktualisierte Richtlinienparameter für die Verwendung in einer Episode erhalten, die durch den zweiten Roboter durchgeführt werden soll und die unmittelbar im Anschluss an die vorherige Episode ist. Zur zweiten Zeit können die erhaltenen weiter aktualisierten Richtlinienparameter von den aktualisierten Richtlinienparametern verschieden sein, die durch den ersten Roboter zur ersten Zeit erhalten werden (aufgrund von weiterem Training, das zwischen der ersten und der zweiten Zeit stattgefunden hat). In dieser Weise werden die zur ersten Zeit durch den ersten Roboter erhaltenen aktualisierten Richtlinienparameter nicht zum zweiten Roboter zur Verwendung geliefert. Vielmehr werden die aktuelleren weiter aktualisierten Richtlinienparameter erhalten.
  • In einigen Implementierungen wird ein Verfahren geschaffen, das die Durchführung der folgenden Schritte während der Durchführung von mehreren Episoden durch jeden von mehreren Robotern umfasst, wobei jede der Episoden eine Untersuchung der Durchführung einer Aufgabe auf der Basis eines neuronalen Richtliniennetzes ist, das eine Verstärkungslernrichtlinie für die Aufgabe darstellt: Speichern von Instanzen von Robotererfahrungsdaten, die während der Episoden durch den Roboter erzeugt werden, in einem Puffer, wobei jede der Instanzen der Robotererfahrungsdaten während einer entsprechenden der Episoden erzeugt wird, und zumindest teilweise an einer entsprechenden Ausgabe erzeugt wird, die unter Verwendung des neuronalen Richtliniennetzes mit entsprechenden Richtlinienparametern für das neuronale Richtliniennetz für die entsprechende Episode erzeugt wird; iteratives Erzeugen von aktualisierten Richtlinienparametern des neuronalen Richtliniennetzes, wobei jede der Iterationen des iterativen Erzeugens das Erzeugen der aktualisierten Richtlinienparameter unter Verwendung einer Gruppe von einer oder mehreren der Instanzen der Robotererfahrungsdaten im Puffer während der Iteration umfasst; und durch jeden der Roboter in Verbindung mit einem Start von jeder von mehreren der Episoden, die durch den Roboter durchgeführt werden, Aktualisieren des neuronalen Richtliniennetzes, das vom Roboter in der Episode verwendet werden soll, wobei das Aktualisieren des neuronalen Richtliniennetzes die Verwendung der aktualisierten Richtlinienparameter einer jüngsten Iteration des iterativen Erzeugens der aktualisierten Richtlinienparameter umfasst.
  • Diese und andere Implementierungen, die hier offenbart sind, können eines oder mehrere der folgenden Merkmale umfassen.
  • Jeder der aktualisierten Richtlinienparameter kann einen entsprechenden Wert für einen entsprechenden Knoten einer entsprechenden Schicht des neuronalen Richtliniennetzes definieren.
  • Die Instanzen der Robotererfahrungsdaten für einen gegebenen Roboter der Roboter können in einem Puffer mit einer ersten Frequenz gespeichert werden, die eine niedrigere Frequenz ist als eine Erzeugungsfrequenz des iterativen Erzeugens der aktualisierten Richtlinienparameter.
  • Die Instanzen der Robotererfahrungsdaten für jeden der Roboter können im Puffer mit entsprechenden Frequenzen gespeichert werden, die jeweils niedriger sind als eine Erzeugungsfrequenz des iterativen Erzeugens der aktualisierten Richtlinienparameter.
  • Das Speichern der Instanzen der Robotererfahrungsdaten im Puffer kann durch einen oder mehrere Prozessoren in einem ersten Thread durchgeführt werden und das iterative Erzeugen kann durch einen oder mehrere der Prozessoren in einem zweiten Thread durchgeführt werden, der vom ersten Thread separat ist. Der erste Thread kann beispielsweise durch eine erste Gruppe von einem oder mehreren der Prozessoren durchgeführt werden und der zweite Thread kann durch eine zweite Gruppe von einem oder mehreren der Prozessoren durchgeführt werden, wobei die zweite Gruppe mit der erste Gruppe nicht überlappt.
  • Jede der Iterationen des iterativen Erzeugens kann das Erzeugen der aktualisierten Richtlinienparameter auf der Basis des Minimierens einer Verlustfunktion angesichts einer Gruppe von einer oder mehreren der Instanzen der Robotererfahrungsdaten im Puffer während der Erzeugungsiteration umfassen.
  • Jede der Iterationen des iterativen Erzeugens kann Lernen außerhalb der Richtlinie angesichts einer Gruppe von einer oder mehreren der Instanzen der Robotererfahrungsdaten im Puffer während der Erzeugungsiteration umfassen. Das Lernen außerhalb der Richtlinie kann beispielsweise Q-Lernen wie z. B. Q-Lernen, das einen Algorithmus einer normierten Vorteilsfunktion (NAF) oder einen Algorithmus eines tiefen deterministischen Richtliniengradienten (DDPG) verwendet, sein.
  • Jede der Instanzen der Erfahrungsdaten kann einen entsprechenden Roboteranfangszustand, anschließenden Roboterzustand, in den vom Roboteranfangszustand übergegangen wird, eine Handlung, die ausgeführt wird, um vom Roboteranfangszustand in den anschließenden Roboterzustand überzugehen, und eine Belohnung für die Handlung angeben. Die Handlung, die ausgeführt wird, um vom Roboteranfangszustand in den anschließenden Roboterzustand überzugehen, kann auf der Basis der Verarbeitung des Roboteranfangszustandes unter Verwendung des neuronalen Richtliniennetzes mit den aktualisierten Richtlinienparametern für die entsprechende Episode erzeugt werden. Die Belohnung für die Handlung kann auf der Basis einer Belohnungsfunktion für die Verstärkungslernrichtlinie erzeugt werden.
  • Das Verfahren kann ferner umfassen: Beenden der Durchführung der mehreren Episoden und Beenden des iterativen Erzeugens auf der Basis von einem oder mehreren Kriterien; und Versehen des neuronalen Richtliniennetzes zur Verwendung durch einen oder mehrere zusätzliche Roboter mit einer zuletzt erzeugten Version der aktualisierten Richtlinienparameter.
  • In einigen Implementierungen wird ein Verfahren geschaffen, das durch einen oder mehrere Prozessoren eines gegebenen Roboters umfasst: Durchführen einer gegebenen Episode von Untersuchungen der Durchführung einer Aufgabe auf der Basis eines Richtliniennetzes mit einer ersten Gruppe von Richtlinienparametern; Bereitstellen von ersten Instanzen von Robotererfahrungsdaten, die auf der Basis des Richtliniennetzes während der gegebenen Episode erzeugt werden; und vor der Durchführung einer anschließenden Episode des Durchführens der Aufgabe auf der Basis des Richtliniennetzes durch den gegebenen Roboter: Ersetzen von einem oder mehreren der Richtlinienparameter der ersten Gruppe durch aktualisierte Richtlinienparameter, wobei die aktualisierten Richtlinienparameter auf der Basis von zusätzlichen Instanzen von Robotererfahrungsdaten erzeugt werden, die durch einen zusätzlichen Roboter während einer zusätzlichen Roboterepisode von Untersuchungen der Durchführung der Aufgabe durch den zusätzlichen Roboter erzeugt werden; wobei die anschließende Episode der ersten Episode unmittelbar folgt; und wobei das Durchführen der Aufgabe auf der Basis des Richtliniennetzes in der anschließenden Episode die Verwendung der aktualisierten Richtlinienparameter anstelle der ersetzten Richtlinienparameter umfasst.
  • Diese und andere Implementierungen, die hier offenbart sind, können eines oder mehrere der folgenden Merkmale umfassen.
  • In einigen Implementierungen kann das Verfahren ferner das Erzeugen von weiter aktualisierten Richtlinienparametern auf der Basis von einer oder mehreren der ersten Instanzen der Robotererfahrungsdaten, die während der ersten Episode erzeugt werden, durch einen oder mehrere zusätzliche Prozessoren und während der Durchführung der anschließenden Episode umfassen. Das Verfahren kann ferner das Bereitstellen der weiter aktualisierten Richtlinienparameter zur Verwendung durch den zusätzlichen Roboter bei der Durchführung einer entsprechenden Episode durch den zusätzlichen Roboter umfassen. In einigen dieser Implementierungen startet der zusätzliche Roboter die Durchführung der entsprechenden Episode während der Durchführung der anschließenden Episode durch den gegebenen Roboter und/oder die weiter aktualisierten Richtlinienparameter werden durch den gegebenen Roboter bei der Durchführung von beliebigen Episoden durch den gegebenen Roboter nicht verwendet. In einigen von diesen Implementierungen kann das Verfahren ferner umfassen: Erzeugen von noch weiter aktualisierten Richtlinienparametern durch einen oder mehrere der zusätzlichen Prozessoren, wobei die noch weiter aktualisierten Richtlinienparameter während der Durchführung der anschließenden Episode erzeugt werden und im Anschluss an die Erzeugung der weiter aktualisierten Richtlinienparameter erzeugt werden; und Bereitstellen der noch weiter aktualisierten Richtlinienparameter zur Verwendung durch den gegebenen Roboter bei der Durchführung einer weiteren anschließenden Episode der Durchführung der Aufgabe durch den gegebenen Roboter auf der Basis des Richtliniennetzes. Die weitere anschließende Episode folgt unmittelbar der anschließenden Episode. In einer gewissen Version dieser Implementierungen: startet der gegebene Roboter die Durchführung der weiteren anschließenden Episode während der Durchführung der entsprechenden Episode durch den zusätzlichen Roboter; die aktualisierten Richtlinienparameter und die noch weiter aktualisierten Richtlinienparameter werden durch den zusätzlichen Roboter bei der Durchführung beliebiger Episoden durch den zusätzlichen Roboter nicht verwendet; und/oder die aktualisierten Richtlinienparameter werden durch den zusätzlichen Roboter bei der Durchführung von beliebigen Episoden durch den zusätzlichen Roboter nicht verwendet.
  • Das Richtliniennetz kann ein neuronales Netzmodell umfassen oder daraus bestehen, und jeder der aktualisierten Richtlinienparameter kann einen entsprechenden Wert für einen entsprechenden Knoten einer entsprechenden Schicht des neuronalen Netzmodells definieren.
  • In einigen Implementierungen umfasst das Verfahren ferner während der Durchführung der gegebenen Episode der Durchführung der Aufgabe: Bestimmen einer Verletzung von einem oder mehreren Kriterien für den gegebenen Roboter in einer gegebenen Iteration der Ausgabe aus dem Richtliniennetz; Modifizieren der Ausgabe der gegebenen Iteration, so dass das eine oder die mehreren Kriterien nicht mehr verletzt werden; und Erzeugen einer gegebenen Instanz der Instanzen von Erfahrungsdaten auf der Basis der modifizierten Ausgabe. Die Kriterien können eines oder mehrere von Gelenkpositionsgrenzen; Gelenkgeschwindigkeitsgrenzen und Endeffektorpositionsgrenzen umfassen.
  • In einigen Implementierungen umfasst das Verfahren ferner das Erzeugen einer gegebenen Untersuchung der Untersuchungen während der gegebenen Episode durch: Anwenden einer aktuellen Zustandsdarstellung als Eingabe auf das Richtliniennetz, wobei die aktuelle Zustandsdarstellung einen aktuellen Zustand zumindest des gegebenen Roboters darstellt; Erzeugen einer Ausgabe durch Verarbeiten der Eingabe unter Verwendung des Richtliniennetzes; und Liefern von Steuerbefehlen zu einem oder mehreren Aktuatoren des gegebenen Roboters auf der Basis der Ausgabe. Das Liefern der Steuerbefehle zu den Aktuatoren auf der Basis der Ausgabe kann das Erzeugen einer modifizierten Ausgabe durch Hinzufügen von Rauschen zur Ausgabe; und das Liefern der Steuerbefehle auf der Basis der modifizierten Ausgabe umfassen. Die Ausgabe kann eine Geschwindigkeit oder ein Drehmoment für jeden von mehreren Aktuatoren des Roboters umfassen und das Liefern der Steuerbefehle kann das Liefern der Steuerbefehle so, dass die Aktuatoren die Geschwindigkeiten oder Drehmomente anwenden, umfassen.
  • Jede der ersten Instanzen der Erfahrungsdaten kann einen entsprechenden Roboteranfangszustand, anschließenden Roboterzustand, in den vom Roboteranfangszustand übergegangen wird, eine Handlung, die ausgeführt wird, um vom Roboteranfangszustand in den anschließenden Roboterzustand überzugehen, und eine Belohnung für die Handlung angeben.
  • In einigen Implementierungen wird ein Verfahren geschaffen, das das Empfangen einer gegebenen Instanz von Robotererfahrungsdaten, die durch einen gegebenen Roboter von mehreren Robotern erzeugt werden, umfasst. Die gegebene Instanz der Robotererfahrungsdaten wird während einer gegebenen Episode von Untersuchungen des Durchführens einer Aufgabe auf der Basis einer gegebenen Version von Richtlinienparametern eines Richtliniennetzes erzeugt, das durch den gegebenen Roboter beim Erzeugen der gegebenen Instanz verwendet wird. Das Verfahren umfasst ferner das Empfangen von zusätzlichen Instanzen von Robotererfahrungsdaten von zusätzlichen Robotern der mehreren Roboter. Die zusätzlichen Instanzen werden während Episoden von Untersuchungen der Durchführung der Aufgabe auf der Basis des Richtliniennetzes durch die zusätzlichen Roboter erzeugt. Das Verfahren umfasst ferner, während der gegebene Roboter und die zusätzlichen Roboter die Episoden von Untersuchungen der Durchführung der Aufgabe fortsetzen, das Erzeugen einer neuen Version der Richtlinienparameter des Richtliniennetzes auf der Basis des Trainings des Richtliniennetzes zumindest teilweise auf der Basis der gegebenen Instanz und der zusätzlichen Instanzen. Das Verfahren umfasst ferner das Liefern der neuen Version der Richtlinienparameter zum gegebenen Roboter zum Durchführen einer unmittelbar anschließenden Episode von Untersuchungen der Durchführung der Aufgabe durch den gegebenen Roboter auf der Basis der neuen Version der Richtlinienparameter.
  • Diese und andere Implementierungen, die hier offenbart sind, können eines oder mehrere der folgenden Merkmale umfassen.
  • Das Empfangen der gegebenen Instanz kann in einer Iteration von mehreren Erfahrungsdateniterationen des Empfangens von Instanzen von Erfahrungsdaten vom gegebenen Roboter stattfinden, wobei die mehreren Erfahrungsdateniterationen mit einer ersten Frequenz stattfinden. Das Trainieren des Verstärkungsmodells, um die aktualisierten Parameter zu erzeugen, kann das Durchführen von mehreren Trainingsiterationen umfassen, die umfassen: eine erste Trainingsiteration zum Trainieren des Richtliniennetzes zumindest teilweise auf der Basis der gegebenen Instanz und der zusätzlichen Instanzen; und eine oder mehrere zusätzliche Trainingsiterationen zum Trainieren des Richtliniennetzes auf der Basis von noch weiteren Instanzen von Erfahrungsdaten von mehreren der Roboter. Die Trainingsiterationen können mit einer zweiten Frequenz stattfinden, die eine größere Frequenz ist als die Erfahrungsdateniterationen.
  • In einigen Implementierungen wird ein Verfahren geschaffen, das das iterative Empfangen von Instanzen von Erfahrungsdaten umfasst, die durch mehrere Roboter erzeugt werden, die asynchron und gleichzeitig arbeiten. Jede der Instanzen von Erfahrungsdaten wird durch einen entsprechenden Roboter der mehreren Roboter während einer entsprechenden Episode einer Aufgabenuntersuchung auf der Basis eines neuronalen Richtliniennetzes erzeugt. Das Verfahren umfasst ferner das iterative Trainieren des Richtliniennetzes auf der Basis der empfangenen Erfahrungsdaten von den mehreren Robotern, um einen oder mehrere aktualisierte Parameter des Richtliniennetzes in jeder der Trainingsiterationen zu erzeugen. Das Verfahren umfasst ferner das iterative und asynchrone Liefern von Instanzen der aktualisierten Parameter zu den Robotern zum Aktualisieren der neuronalen Richtliniennetze der Roboter vor den Episoden der Aufgabenuntersuchungen, auf denen die Instanzen von Erfahrungsdaten basieren.
  • Andere Implementierungen können ein nichttransitorisches computerlesbares Speichermedium umfassen, das Anweisungen speichert, die durch einen oder mehrere Prozessoren (z. B. eine oder mehrere Zentraleinheiten (CPUs), eine oder mehrere Graphikverarbeitungseinheiten (GPUs) und/oder eine oder mehrere Tensorverarbeitungseinheiten (TPUs)) ausführbar sind, um ein Verfahren wie z. B. ein oder mehrere der vorstehend und/oder anderswo hier beschriebenen Verfahren durchzuführen. Noch eine andere Implementierung kann ein System von einem oder mehreren Computern und/oder einem oder mehreren Robotern umfassen, die einen oder mehrere Prozessoren umfassen, die betriebsfähig sind, um gespeicherte Anweisungen auszuführen, um ein Verfahren wie z. B. eines oder mehrere der vorstehend und/oder anderswo hier beschriebenen Verfahren durchzuführen.
  • Es sollte erkannt werden, dass alle Kombinationen der vorangehenden Konzepte und zusätzlichen Konzepte, die hier genauer beschrieben werden, als Teil des hier offenbarten Gegenstandes in Betracht gezogen werden. Alle Kombinationen des beanspruchten Gegenstandes, die am Ende dieser Offenbarung erscheinen, werden beispielsweise als Teil des hier offenbarten Gegenstandes in Betracht gezogen.
  • Figurenliste
    • 1 stellt eine Beispielumgebung dar, in der hier offenbarte Implementierungen implementiert werden können.
    • 2 stellt einen der Roboter von 1 und ein Beispiel einer Bewegung eines greifenden Endeffektors des Roboters entlang eines Pfades dar.
    • 3 ist ein Ablaufplan, der ein Beispiel der Durchführung einer Episode durch einen Roboter darstellt.
    • 4 ist ein Ablaufplan, der ein Beispielverfahren zum Speichern von Instanzen von Erfahrungsdaten darstellt.
    • 5 ist ein Ablaufplan, der ein Beispielverfahren zum Trainieren, um Parameter eines Richtliniennetzes zu aktualisieren, darstellt.
    • 6 stellt schematisch eine Beispielarchitektur eines Roboters dar.
    • 7 stellt schematisch eine Beispielarchitektur eines Computersystems dar.
  • Ausführliche Beschreibung
  • Roboteranwendungen von Verstärkungslernen gefährden häufig die Autonomie des Lernprozesses zugunsten des Erreichens von Trainingszeiten, die für reale physikalische Systeme praktisch sind. Dieser Kompromiss des Verstärkungslernprozesses kann an der Einführung von handkonstruierten Richtliniendarstellungen und/oder vom Menschen gelieferten Demonstrationen liegen.
  • Implementierungen dieser Beschreibung sind auf Erweiterungen von tiefen Verstärkungslernverfahren gerichtet, um die Betriebsleistung von einem oder mehreren Robotern zu verbessern. Wie vorher beschrieben, schaffen die Implementierungen Betriebsvorteile, wie z. B. Effizienzsteigerungen in den physikalischen Handlungen, die durch die Roboter ausgeführt werden, und mildern auch Nachteile von früheren Roboteranwendungen des Verstärkungslernens. Diese können das Mildern des Bedarfs an handkonstruierten Richtliniendarstellungen (z. B. Richtliniendarstellungen „auf Modellbasis“) und/oder das Mildern des Bedarfs an vom Menschen gelieferten Demonstrationen umfassen. In einigen hier beschriebenen Implementierungen wird ein neuronales Richtliniennetz, das die Richtlinie parametrisiert, durch tiefes Verstärkungslernen trainiert, was den Bedarf an handkonstruierten Richtliniendarstellungen mildert. Überdies kann das neuronale Richtliniennetz insofern „modellfrei“ sein, als es nicht explizit ein Modell einer Roboterumgebung lernt. Als ein spezielles Beispiel können in einigen Implementierungen Algorithmen von tiefem Verstärkungslernen auf der Basis von Training außerhalb der Richtlinie von tiefen Q-Funktionen auf komplexe 3D-Manipulationsaufgaben skalieren und können Richtlinien des tiefen neuronalen Netzes effizient genug lernen, um auf der Basis von Erfahrungsdaten zu trainieren, die durch reale physikalische Roboter erzeugt werden. In einigen von diesen Implementierungen können Trainingszeiten der realen Welt (z. B. Uhr an der Wand) durch Parallelisieren des Algorithmus über mehrere Roboter verringert werden, die ihre Richtlinienaktualisierungen asynchron zusammenfassen. In einigen von diesen Implementierungen kann das Parallelisieren des Algorithmus über mehrere Roboter, die ihre Richtlinienaktualisierungen asynchron zusammenfassen, zusätzlich und/oder alternativ zu einem neuronalen Richtliniennetz führen, das nach einer gegebenen Anzahl von Trainingsiterationen genauer und/oder robuster ist, als wenn eine solche Parallelisierung nicht verwendet werden würde. Dies kann beispielsweise an Erfahrungsdaten liegen, die durch einen Roboter in einer gegebenen Instanz erzeugt werden, die auf Richtlinienparametern basiert, die auf der Basis von sowohl vergangenen Instanzen von Erfahrungsdaten vom Roboter als auch vergangenen Instanzen von Erfahrungsdaten von (einem) anderen Roboter(n), die parallel arbeiten, aktualisiert werden. Überdies ermöglichen einige Implementierungen von Techniken, die hier offenbart sind, das Lernen von dreidimensionalen („3D“) Robotermanipulationsaufgaben (z. B. eine Türöffnungsaufgabe, eine Bestückungsaufgabe) an realen Robotern, ohne irgendwelche vorherige Demonstrationen oder manuell konstruierte Richtliniendarstellungen (z. B. „auf Modellbasis“) zu benötigen.
  • Wie nachstehend genauer beschrieben, werden in verschiedenen Implementierungen Verstärkungslernverfahren außerhalb der Richtlinie (z. B. Q-Lernen auf der Basis von Training außerhalb der Richtlinie von tiefen Q-Funktionen) erweitert, um komplexe Manipulationsrichtlinien von Grund auf zu erlenen. In einigen von diesen verschiedenen Implementierungen werden die komplexen Manipulationsrichtlinien ohne vom Benutzer bereitgestellte Demonstrationen gelernt und/oder werden unter Verwendung von neuronalen Netzdarstellungen gelernt, die keine aufgabenspezifische Domänenkenntnis erfordern. In einigen von diesen verschiedenen Implementierungen werden auch die Richtlinien unter Verwendung eines tiefen Q-Funktionsalgorithmus außerhalb der Richtlinie, wie z. B. des Algorithmus des tiefen deterministischen Richtliniengradienten (DDPG) oder des Algorithmus der normierten Vorteilsfunktion (NAF), gelernt. Asynchrones tiefes Verstärkungslernen kann beispielsweise verwendet werden, wie z. B. asynchrones tiefes Verstärkungslernen, das einen parallelen NAF-Algorithmus über mehrere reale physikalische Roboter verwendet. Dies kann ein probeneffizientes Training an realen Roboterplattformen ermöglichen, kann eine größere Zeiteffizienz im Training unter Verwendung der geteilten Erfahrung von mehreren Robotern ermöglichen und/oder kann ein robusteres Training aufgrund von Variationen zwischen den mehreren Robotern und/oder ihren Umgebungen ermöglichen. Die verbesserte Zeiteffizienz des Trainings führt beispielsweise dazu, dass die realen physikalischen Roboter die verbesserten Richtlinien verwenden, um physikalische Aufgaben zu einer früheren Zeit auszuführen. Dies führt zu technischen Vorteilen in Form von beispielsweise verbessertem Leistungsverbrauch an den Robotern in einer früheren Stufe und/oder beispielsweise einer niedrigeren Gesamtrate von Verschleiß von Robotergelenken aufgrund von früheren Verbesserungen der Richtlinien und resultierenden physikalischen Handlungen der Roboter.
  • In einigen vergangenen Anwendungen des Zusammenfassens der Erfahrung von mehreren Robotern (kollektives Roboterlernen) streben diese Anwendungen danach, die gesamte Trainingszeit unter der Annahme zu verringern, dass die Simulationszeit teuer ist und das Training durch die Rückpropagierung des neuronalen Netzes dominiert wird. Dagegen streben einige Implementierungen dieser Beschreibung danach, die Trainingszeit zu minimieren, wenn auf der Basis von Daten von realen physikalischen Robotern trainiert wird, wobei die Erfahrung teuer ist und die Rückpropagierung des neuronalen Netzes vergleichsweise preiswert ist. Verschiedene hier offenbarte Implementierungen sammeln beispielsweise Erfahrungsdaten von mehreren Robotern, die asynchron voneinander arbeiten. Überdies verwenden verschiedene Implementierungen die gesammelten Erfahrungsdaten beim Trainieren eines neuronalen Richtliniennetzes asynchron von (aber gleichzeitig mit) dem Betrieb der mehreren Roboter. Ein Puffer der gesammelten Erfahrungsdaten von einer Episode von einem der Roboter kann beispielsweise verwendet werden, um das neuronale Richtliniennetz zu aktualisieren, und aktualisierte Richtlinienparameter vom aktualisierten neuronalen Richtliniennetz, die für die Implementierung durch einen oder mehrere der mehreren Roboter vor der Durchführung von entsprechenden nächsten Episoden bereitgestellt werden. In dieser Weise kann die Sammlung von Erfahrungsdaten unter mehreren Robotern asynchron sein und zur Aktualisierung des neuronalen Richtliniennetzes asynchron sein. Die mehreren Roboter können jedoch jeweils aktualisierte Richtlinienparameter in jeder Episode verwenden, wobei diese aktualisierten Richtlinienparameter auf Erfahrungsdaten von vergangenen Episoden des Roboters und vergangenen Episoden von anderen Robotern basieren. Eine solche asynchrone Ausführung und das Training eines neuronalen Netzes kann eine Beschleunigung in der gesamten Trainingszeit als Ergebnis des gleichzeitigen Sammelns von Erfahrungen über mehrere Roboterplattformen erreichen.
  • In realen Roboterumgebungen, insbesondere jenen mit Kontaktereignissen, steht die Umgebungsdynamik häufig nicht zur Verfügung oder kann nicht genau modelliert werden. Angesichts dessen konzentrieren sich die hier offenbarten Implementierungen auf ein modellfreies Verstärkungslernen, das Richtliniensuchverfahren und Wertiterationsverfahren umfasst. Obwohl Richtliniensuchverfahren eine direkte Weise bieten, um ein wahres Ziel zu optimieren, erfordern sie häufig signifikant mehr Daten als Wertiterationsverfahren aufgrund des Lernens an der Richtlinie. Folglich konzentrieren sich einige hier offenbarte Implementierungen insbesondere auf Wertiterationsverfahren wie z. B. Wertiterationsverfahren auf der Basis von Q-Lernen mit Funktionsnäherung. Zwei Beispiele von Wertiterationsverfahren sind DDPG und NAF, die tiefes Q-Lernen auf einen kontinuierlichen Handlungsraum erweitern und probeneffizienter sind als konkurrierende Richtliniensuchverfahren beispielsweise aufgrund von Lernen außerhalb der Richtlinie durch einen Wiederholungspuffer.
  • Das Ziel beim Verstärkungslernen besteht darin, einen Agenten zu steuern, der versucht, eine Belohnungsfunktion zu maximieren, die im Zusammenhang mit einer Roboterfähigkeit (hier auch als Aufgabe bezeichnet) eine vom Benutzer bereitgestellte Definition dessen bezeichnet, was der Roboter durchzuführen versuchen sollte. Im Zustand xt in der Zeit t wählt der Agent eine Handlung ut gemäß seiner Richtlinie π(ut|xt) und führt diese aus, geht in einen neuen Zustand xt gemäß der Dynamik p(xt|xt, ut) über und empfängt eine Belohnung r(xt, ut). In hier beschriebenen Implementierungen werden diskontierte Rückführungsprobleme mit unendlichem Horizont betrachtet. Das Ziel der diskontierten Rückführungsprobleme mit unendlichem Horizont ist die zukünftige γ-diskontierte zukünftige Rückführung von der Zeit t bis zu T, die durch R t = i = t T γ ( i t ) r ( x j , u i )
    Figure DE202017105598U1_0001
    gegeben ist. Das Ziel besteht darin, die optimale Richtlinie π * zu finden, die die erwartete Summe von Rückführungen von der anfänglichen Zustandsverteilung maximiert, die durch R = E r i 1 , x i 1 E , u i 1 π [ R 1 ]
    Figure DE202017105598U1_0002
    gegeben ist.
  • Unter Verstärkungslernverfahren können Verfahren außerhalb der Richtlinie wie z. B. Q-Lernen Dateneffizienzsteigerungen im Vergleich zu Varianten an der Richtlinie bieten. Dies kann für Roboteranwendungen vorteilhaft sein. Das Q-Lernen lernt eine erfolgshungrige deterministische Richtlinie π(ut|xt) = δ(ut = µ(xt)) durch Iterieren zwischen dem Lernen der Q-Funktion, Q π n ( x t , u t ) = E r i t , x i > t E , u i > t π n [ R t | x t , u t ] ,
    Figure DE202017105598U1_0003
    einer Richtlinie und dem Aktualisieren der Richtlinie durch erfolgshungriges Maximieren der Q-Funktion µn+1(xt) = arg maxuQ πn(xt,ut). θQ parametrisiert die Handlungs-Wert-Funktion, β ist eine beliebige Untersuchungsrichtlinie und pβ ist die Zustandsbesichtigung, die durch β induziert wird, das Lernziel besteht darin, den Bellman-Fehler zu minimieren, wobei die Zielsetzung yt festgelegt ist als: L ( θ Q ) = E x t p β , u t β , x t + 1 , r t E [ ( Q ( x t , u t | θ Q ) y t ) 2 ]
    Figure DE202017105598U1_0004
    y t = r ( x t , u t ) + γ Q ( x t + 1 , μ ( x t + 1 ) )
    Figure DE202017105598U1_0005
  • Für kontinuierliche Handlungsprobleme kann der Richtlinienaktualisierungsschritt für eine Q-Funktion unlösbar sein, die durch tiefe neuronale Netze parametrisiert wird. Folglich können Erweiterungen von Q-Lernen mit Funktionsnäherung in verschiedenen hier beschriebenen Implementierungen verwendet werden. Zwei Beispiele von Erweiterungen des Q-Lernens mit Funktionsnäherung sind DDPG und NAF. DDPG umgeht das Unlösbarkeitsproblem durch Übernehmen eines aktorkritischen Verfahrens, während NAF Klassen von Q-Funktion auf den nachstehenden Ausdruck einschränkt, um eine Aktualisierung in geschlossener Form wie im diskreten Handlungsfall zu ermöglichen. Während der Untersuchung kann ein zeitlich korreliertes Rauschen wahlweise zur Richtliniennetzausgabe hinzugefügt werden. Q ( x , u | θ Q ) = A ( x , u | θ A ) + V ( x | θ V )
    Figure DE202017105598U1_0006
    A ( x , u | θ A ) = 1 2 ( u μ ( x | θ μ ) ) T P ( x | θ P ) ( u μ ( x | θ μ ) )
    Figure DE202017105598U1_0007
  • Diese Verstärkungslernformulierung kann auf Robotersysteme angewendet werden, um eine Vielfalt von Roboterfähigkeiten zu lernen, die durch Belohnungsfunktionen definiert sind. Der Lernprozess ist jedoch typischerweise zeitraubend. Folglich kann in hier offenbarten Implementierungen eine parallelisierte Variante von NAF oder eine parallelisierte Version von DDPG verwendet werden, um eine oder beide dieser Sorgen zu mildern. Dies kann das Lernen einer durch ein neuronales Netz parametrisierten Q-Funktion von Grund auf an komplexen realen Roboteraufgaben ermöglichen. In praktischen tiefen Roboterlernanwendungen wird die Lernzeit durch die Datensammelrate von realen Robotern, die auf Echtzeit begrenzt ist, anstatt die Netztrainingsgeschwindigkeit eingeschränkt. Folglich schlagen verschiedene hier offenbarte Implementierungen die Verwendung von asynchronem NAF vor, um mehrere reale Roboter effektiv für die Datensammlung zu verwenden und die Geschwindigkeit des Lernens in der realen Welt zu erhöhen. Dies erreicht natürlich eine schnellere Verbesserung der Roboterleistung in der realen Welt zusammen mit entsprechenden Effizienzsteigerungen, wie vorher erörtert, wenn die gelernten Richtlinien durch die Roboter implementiert werden, die physikalische Aufgaben ausführen. Überdies erreichen verschiedene hier offenbarte Implementierungen eine aggressive Untersuchung während des Q-Lernens (z. B. durch Hinzufügen von großem zeitlich korreliertem Rauschen zur Richtliniennetzausgabe, um einen Untersuchungsgrad zu erhöhen), was nützlich und/oder erforderlich sein kann, wenn von Grund auf gelernt wird. In einigen von diesen Implementierungen können Techniken auch verwendet werden, um eine aggressive Untersuchung zu erreichen, während die Verletzung von einem oder mehreren Kriterien der Roboter, die die Untersuchung durchführen, minimiert oder verhindert wird (z. B. Sicherheitskriterien und/oder andere Kriterien).
  • In Implementierungen von asynchronem NAF, die hier offenbart werden, sind der Trainer-Thread (die Trainer-Threads) (die das neuronale Richtliniennetz aktualisieren/trainieren) von dem (den) Erfahrungssammler-Thread (Erfahrungssammler-Threads) (die jeweils Erfahrungsdaten von einem oder mehreren Robotern während der Untersuchung sammeln), getrennt. In einigen von diesen Implementierungen kann die Entkopplung zwischen den Trainings- und Sammler-Threads sicherstellen, dass die Differenz der Trainingsgeschwindigkeit Steuerprogramme der Roboter, die die Erfahrungsdaten erzeugen, nicht anhält, die häufig Steuerungen mit festen Frequenzen senden müssen. Während der Trainer-Thread (die Trainer-Threads) das Training von einem Wiederholungspuffer (durch den (die) Erfahrungssammler-Thread (Erfahrungssammler-Threads) belegt) beibehält (beibehalten), synchronisiert (synchronisieren) der (die) Erfahrungssammler-Thread (Erfahrungssammler-Threads) jeweils ihre Richtlinienparameter mit dem (den) Trainer-Thread (Trainer-Threads) am Beginn jeder Episode (z. B. aktualisieren sie ihr neuronales Richtliniennetz mit aktualisierten Parametern, die in einer jüngsten Iteration des Trainings-Threads erzeugt werden), führen Befehle an den Robotern aus und schieben Instanzen von Erfahrungsdaten in den Wiederholungspuffer.
  • Nachstehend wird ein Überblick eines Beispielalgorithmus zum Durchführen von asynchronem NAF mit N Sammler-Threads und einem Trainings-Thread dargestellt. Obwohl der Beispielalgorithmus mit einem Trainings-Thread dargestellt wird, können in einigen Implementierungen mehrere Trainings-Threads vorgesehen sein (z. B. verteiltes Training über mehrere Threads).
    Figure DE202017105598U1_0008
  • Wie hier beschrieben, kann in verschiedenen Implementierungen ein neuronales Netz die Handlungs-Wert-Funktionen und Richtlinien parametrisieren. In einigen von diesen Implementierungen können verschiedene Zustandsdarstellungen als Eingabe in das Modell, beim Erzeugen einer Ausgabe, die eine zu implementierende Handlung auf der Basis der Richtlinien angibt, verwendet werden. Die Zustandsdarstellungen können den Zustand des Roboters und wahlweise den Zustand von einem oder mehreren Umgebungsobjekten angeben. Als ein Beispiel kann eine Roboterzustandsdarstellung Gelenkwinkel und Endeffektorpositionen sowie ihre Zeitableitungen umfassen. In einigen Implementierungen kann ein Erfolgssignal (z. B. eine Zielposition) an die Roboterzustandsdarstellung angehängt werden. Wie hier beschrieben, kann das Erfolgssignal beim Bestimmen einer Belohnung für eine Handlung und/oder für andere Zwecke verwendet werden. Das spezielle Erfolgssignal hängt von der Aufgabe ab, für die Verstärkungslernen stattfindet. Für eine Erreichungsaufgabe kann beispielsweise das Erfolgssignal das Ziel/die Zielposition für den Endeffektor sein. Als anderes Beispiel kann für eine Türöffnungsaufgabe das Erfolgssignal die Griffposition, wenn die Tür geschlossen ist, und die Quaternion-Messung eines Sensors, der am Türrahmen befestigt ist (z. B. eine Trägheitsmesseinheit, die am Türrahmen befestigt ist), umfassen. In verschiedenen Implementierungen können Standardmitkopplungsnetze als neuronales Richtliniennetz verwendet werden, um die Handlungs-Wert-Funktionen und Richtlinien zu parametrisieren. Als ein Beispiel kann ein Netz mit zwei verborgenen Schichten mit einer Größe von jeweils 100 Einheiten verwendet werden, um jedes von m(x), L(x) (Cholesky-Zerlegung von P(x)) und V(x) in NAF und m(x) und Q(x;u) in DDPG zu parametrisieren. Für Q(x;u) in DDPG kann der Handlungsvektor u als andere Eingabe zu einer zweiten verborgenen Schicht hinzugefügt werden, gefolgt von einer linearen Projektion. ReLU kann als verborgene Aktivierungen verwendet werden und der hyperbolische Tangens (Tanh) kann für die Endschichtaktivierung nur in Richtliniennetzen m(x) verwendet werden, um die Handlungsskala zu begrenzen.
  • Wie hier beschrieben, können in einigen Implementierungen Techniken verwendet werden, um eine aggressive Untersuchung zu erreichen, während die Verletzung von einem oder mehreren Kriterien der Roboter, die die Untersuchung durchführen, minimiert oder verhindert wird (z. B. Sicherheitskriterien und/oder andere Kriterien). In einigen von diesen Implementierungen können die Kriterien Geschwindigkeitsgrenzen für jedes Gelenk eines Roboters, Positionsgrenzen jedes Gelenks eines Roboters und/oder andere kinematische und/oder dynamische Einschränkungen des Roboters umfassen. Wenn beispielsweise eine befohlene Ausgabe (z. B. durch das verwendete Richtliniennetz) während der Untersuchung durch einen Roboter eine Geschwindigkeit für ein Gelenk angibt, die seine Geschwindigkeitsgrenze überschreiten würde, kann diese Geschwindigkeit vor der Implementierung der Ausgabe modifiziert werden (z. B. auf die Geschwindigkeitsgrenze zurück skaliert), oder alternativ kann ein Fehler gemeldet werden und eine neue Episode der Untersuchung kann beginnen.
  • In einigen Implementierungen kann eine Begrenzungskugel (oder (eine) andere Begrenzungsform(en)) für eine Endeffektorposition als Kriterien verwendet werden. Wenn eine befohlene Ausgabe während der Untersuchung durch einen Roboter den Endeffektor des Roboters außerhalb die Begrenzungskugel schicken würde, kann die Vorwärtskinematik des Roboters verwendet werden, um die befohlene Geschwindigkeit auf die Oberfläche der Kugel zu projizieren, plus eine gewisse Korrekturgeschwindigkeit. Zusätzliche und/oder alternative Kriterien können verwendet werden. Wenn beispielsweise die Untersuchung durchgeführt wird, um bestimmte Aufgaben zu lernen, wie z. B. Öffnen/Schließen von Türen, können Kriterien bereitgestellt werden, um zu verhindern, dass der Roboter zu hart gegen bestimmte Objekte (z. B. die Tür) schiebt. Eine zusätzliche Begrenzungsebene kann beispielsweise mehrere Zentimeter vor einer geschlossenen Position einer Tür hinzugefügt werden und/oder Drehmomentgrenzen können zu einem oder mehreren Gelenken des Roboters hinzugefügt werden (z. B. so dass, wenn die befohlenen Geschwindigkeiten aufgrund von Kontakten mit der Tür oder dem Griff nicht erreicht werden könnten, der Roboter kein übermäßiges Ausmaß an Drehmoment anwenden würde).
  • Mit Bezug nun auf die Figuren wird eine zusätzliche Beschreibung der obigen und zusätzlichen Implementierungen bereitgestellt. 1 stellt eine Beispielumgebung dar, in der die hier offenbarten Implementierungen implementiert werden können. Beispielroboter 180A und 180B sind in 1 enthalten. Die Roboter 180A und 180B sind „Roboterarme“ mit mehreren Freiheitsgraden, um durch die Bewegung der Roboter ein Verfahren von greifenden Endeffektoren 182A und 182B entlang irgendeines von mehreren potentiellen Pfaden zu ermöglichen, um die greifenden Endeffektoren 182A und 182B an gewünschten Stellen zu positionieren. Mit Bezug auf 2 ist beispielsweise ein Beispiel eines Roboters 180A, der seinen Endeffektor entlang eines Pfades 201 verfährt, dargestellt. 2 umfasst ein Phantom- und ein Nicht-Phantom-Bild des Roboters 180A, die zwei verschiedene Stellungen eines Satzes von Stellungen zeigen, die durch den Roboter 180A und seinen Endeffektor beim Verfahren entlang des Pfades 201 getroffen werden. Mit erneutem Bezug auf 1 steuern die Roboter 180A und 180B jeweils weiter die zwei gegenüberliegenden „Klauen“ ihres entsprechenden greifenden Endeffektors 182A, 182B, um die Klauen zwischen zumindest einer offenen Position und einer geschlossenen Position (und/oder wahlweise mehreren „teilweise geschlossenen“ Positionen) zu betätigen.
  • Beispielsichtsensoren 184A und 184B sind auch in 1 dargestellt. In 1 ist ein Sichtsensor 184A in einer festen Stellung relativ zur Basis oder zu einem anderen stationären Referenzpunkt des Roboters 180A montiert. Der Sichtsensor 184B ist auch in einer festen Stellung relativ zur Basis oder einem anderen stationären Referenzpunkt des Roboters 180B montiert. Wie in 1 dargestellt, ist die Stellung des Sichtsensors 184A relativ zum Roboter 180A anders als die Stellung des Sichtsensors 184B relativ zum Roboter 180B. Wie hier beschrieben, kann dies in einigen Implementierungen vorteilhaft sein, um eine Vielfalt von Erfahrungsdaten bereitzustellen, die durch jeden der Roboter 180A und/oder 180B erzeugt werden (wenn die Erfahrungsdaten zumindest teilweise durch Sensordaten von den Sichtsensoren 184A und 184B beeinflusst werden). Die Sichtsensoren 184A und 184B sind Sensoren, die Bilder oder andere Sichtdaten in Bezug auf Form, Farbe, Tiefe und/oder andere Merkmale eines Objekts (von Objekten) erzeugen können, die sich in der Sichtlinie der Sensoren befinden. Die Sichtsensoren 184A und 184B können beispielsweise monographische Kameras, stereographische Kameras und/oder 3D-Laserscanner sein. Ein 3D-Laserscanner umfasst einen oder mehrere Laser, die Licht emittieren, und einen oder mehrere Sensoren, die Daten in Bezug auf Reflexionen des emittierten Lichts sammeln. Ein 3D-Laserscanner kann beispielsweise ein Laufzeit-3D-Laserscanner oder ein 3D-Laserscanner auf Triangulationsbasis sein und kann einen positionsempfindlichen Detektor (PSD) oder einen anderen optischen Positionssensor umfassen.
  • Der Sichtsensor 184A weist ein Blickfeld von zumindest einem Abschnitt des Arbeitsplatzes des Roboters 180A wie z. B. dem Abschnitt des Arbeitsplatzes, der eine Beispielspachtel 191A umfasst, auf. Obwohl eine Auflageoberfläche für die Spachtel 191A in 1 nicht dargestellt ist, kann sie auf einem Tisch, einem Behälter und/oder (einer) anderen Oberfläche(n) aufliegen. In anderen Implementierungen können mehr Objekte, weniger Objekte, zusätzliche Objekte und/oder alternative Objekte während einer oder mehrerer Episoden vorgesehen sein, die durch den Roboter 180A durchgeführt werden, wie hier beschrieben. Jede der Episoden kann eine Untersuchung beim Durchführen einer Aufgabe sein, die entsprechende der Spachtel 191A und eines Hefters 191B beinhaltet (z. B. um die Objekte zu berühren, um die Objekte „zu bestücken“). Zusätzliche und/oder alternative Objekte können vorgesehen sein. Für eine Aufgabe „Öffnen einer Tür“, kann beispielsweise eine Tür in der Umgebung von jedem der Roboter 180A und 180B vorgesehen sein. Der Sichtsensor 184B weist ein Blickfeld von zumindest einem Abschnitt des Arbeitsplatzes des Roboters 180B, wie z. B. dem Abschnitt des Arbeitsplatzes, der den Beispielhefter 191B umfasst, auf. Obwohl eine Auflageoberfläche für den Hefter 191 B in 1 nicht dargestellt ist, kann er auf einem Tisch, einem Behälter und/oder (einer) anderen Oberfläche(n) aufliegen. In anderen Implementierungen können mehr Objekte, weniger Objekte, zusätzliche Objekte und/oder alternative Objekte während einer oder mehreren Episoden vorgesehen sein, die durch den Roboter 180B durchgeführt werden, wie hier beschrieben.
  • Obwohl die speziellen Roboter 180A und 180B in 1 dargestellt sind, können zusätzliche und/oder alternative Roboter verwendet werden, einschließlich zusätzlicher Roboterarme, die zu den Robotern 180A und 180B ähnlich sind, Roboter mit anderen Roboterarmformen, Roboter mit humanoider Form, Roboter mit tierischer Form, Roboter, die sich über ein oder mehrere Räder bewegen (z. B. selbstausgleichende Roboter), Tauchfahrzeugroboter, ein unbemanntes Luftfahrzeug („UAV“) und so weiter. Obwohl spezielle greifende Endeffektoren in 1 dargestellt sind, können auch zusätzliche und/oder alternative Endeffektoren verwendet werden. Endeffektoren, die nicht zum Greifen in der Lage sind, können beispielsweise verwendet werden. Obwohl spezielle Montagen der Sichtsensoren 184A und 184B in 1 dargestellt sind, können außerdem zusätzliche und/oder alternative Montagen verwendet werden - oder die Sichtsensoren können weggelassen werden. In einigen Implementierungen können beispielsweise Sichtsensoren direkt an Robotern montiert sein, wie z. B. an nicht betätigbaren Komponenten der Roboter oder an betätigbaren Komponenten der Roboter (z. B. am Endeffektor oder an einer Komponente nahe dem Endeffektor). In einigen Implementierungen kann beispielsweise auch ein Sichtsensor an einer nicht stationären Struktur montiert sein, die von ihrem zugehörigen Roboter separat ist, und/oder kann in einer nicht stationären Weise an einer Struktur montiert sein, die von ihrem zugehörigen Roboter separat ist.
  • Die Roboter 180A, 180B und/oder andere Roboter können verwendet werden, um mehrere Episoden durchzuführen, die jeweils Untersuchungen der Durchführung einer Aufgabe auf der Basis eines modellfreien Verstärkungslernnetzes sind. Der Roboter 180A und der Roboter 180B können beispielsweise jeweils ein Richtliniennetz wie z. B. ein tiefes neuronales Netz umfassen, das eine deterministische Richtlinienfunktion darstellt. Am Beginn einer Episode kann ein aktueller Zustand des Roboters (z. B. ein pseudozufällig ausgewählter Startzustand) als Eingabe auf das Richtliniennetz zusammen mit einem Erfolgssignal (z. B. eine Zielposition eines Endeffektors zum Erreichen einer Aufgabe) und einer Ausgabe, die über das Richtliniennetz auf der Basis der Eingabe erzeugt wird, angewendet werden. Die Richtliniennetzausgabe gibt eine in einem nächsten Steuerzyklus des Roboters durchzuführende Handlung an. Die Richtliniennetzausgabe kann beispielsweise Geschwindigkeitsbefehle im Gelenkraum für jeden der Aktuatoren des Roboters sein. Als anderes Beispiel kann die Richtliniennetzausgabe Motordrehmomente für jeden der Aktuatoren des Roboters sein. Die Handlung wird dann durch den Roboter implementiert. Der Zustand des Roboters nach dem Implementieren der Handlung kann dann als Eingabe auf das Richtliniennetz zusammen mit dem Erfolgssignal und einer zusätzlichen Ausgabe, die über das Netz auf der Basis der Eingabe erzeugt wird, angewendet werden. Dies kann weiterhin iterativ durchgeführt werden (z. B. in jedem Steuerzyklus des Roboters), bis das Erfolgssignal erreicht wird (z. B. wie auf der Basis einer Belohnung, die Kriterien erfüllt, bestimmt) und/oder andere Kriterien erfüllt sind. Die anderen Kriterien können beispielsweise sein, dass eine zeitliche Dauer der Episode einen Schwellenwert (z. B. X Sekunden) erfüllt hat oder dass eine Schwellenmenge an Steuerzyklen stattgefunden hat. Eine neue Episode kann beginnen, nachdem das Erfolgssignal und/oder andere Kriterien erfüllt sind.
  • Wie in 1 dargestellt und hier genauer beschrieben, empfängt die Erfahrungssammlermaschine 112 Instanzen von Erfahrungsdaten, die durch den Roboter 180A und den Roboter 180B (und wahlweise (einen) zusätzliche(n) Roboter) erzeugt werden, während sie Episoden durchführen. Der Roboter 180A kann beispielsweise eine neue Instanz von Erfahrungsdaten zur Erfahrungssammlermaschine 112 in jedem seiner Steuerzyklen liefern, während er eine Episode durchführt. Als anderes Beispiel kann der Roboter 180A alle Instanzen von Erfahrungsdaten, die während einer Episode erzeugt werden, zur Erfahrungssammlermaschine 112 beim Abschluss der Episode liefern. Als noch anderes Beispiel kann der Roboter 180A neue Instanzen von Erfahrungsdaten alle 0,2 Sekunden oder in (einem) anderen regelmäßigen oder nicht regelmäßigen Intervall(en) liefern. Jede Instanz von Erfahrungsdaten wird durch einen entsprechenden Roboter auf der Basis einer Eingabe, die auf das Richtliniennetz des Roboters in einer entsprechenden Iteration angewendet wird, und/oder einer Ausgabe, die über dieses erzeugt wird, erzeugt. Jede Instanz von Erfahrungsdaten kann beispielsweise einen aktuellen Zustand des Roboters, eine durchzuführende Handlung auf der Basis der Ausgabe des Richtliniennetzes, einen Zustand des Roboters nach der Implementierung der Handlung und/oder eine Belohnung für die Handlung (wie durch die Ausgabe, die über das Richtliniennetz erzeugt wird, und/oder eine separate Belohnungsfunktion angegeben) angeben.
  • Die Erfahrungssammlermaschine 112 speichert empfangene Instanzen von Erfahrungsdaten in einem Wiederholungspuffer 122. Der Wiederholungspuffer 122 kann einen Arbeitsspeicher und/oder eine Datenbank umfassen, die für die Trainingsmaschine 114 zugänglich sind. Obwohl eine einzelne Erfahrungssammlermaschine 112 dargestellt ist, ist selbstverständlich, dass mehrere Erfahrungssammlermaschinen 112 vorgesehen sein können. Jeder Roboter kann beispielsweise seine eigene Erfahrungssammlermaschine umfassen oder dieser zugeordnet sein und die Maschinen können alle die Instanzen von Erfahrungsdaten im Wiederholungspuffer 122 speichern.
  • Die Trainingsmaschine 114 trainiert iterativ einen oder mehrere Parameter des Richtliniennetzes 124 unter Verwendung von Techniken, wie z. B. den hier beschriebenen (z. B. jenen in Bezug auf Q-Lernen wie z. B. die NAF- und/oder DDPG-Varianten). In jeder Iteration des Trainings kann die Trainingsmaschine 114 aktualisierte Richtlinienparameter unter Verwendung einer Gruppe von einer oder mehreren Instanzen von Erfahrungsdaten des Wiederholungspuffers 122 erzeugen. Die Trainingsmaschine 114 kann wahlweise die verwendete(n) Instanz(en) aus dem Wiederholungspuffer 122 löschen und/oder sie können anderweitig gelöscht werden (z. B. auf der Basis eines First-in-First-out-Schemas).
  • Vor jeder Durchführung einer neuen Episode durch einen der Roboter 180A und 180B kann der Roboter sein Richtliniennetz mit den Richtlinienparametern aktualisieren, die zuletzt durch die Trainingsmaschine 114 erzeugt wurden. In einigen Implementierungen können die Richtlinienparameter durch die Trainingsmaschine 114 zu den Robotern 180A und 180B „geschoben“ werden. In einigen anderen Implementierungen können die Richtlinienparameter durch die Roboter 180A und 180B „gezogen“ werden. Folglich können in Implementierungen von 1 der Roboter 180A, der Roboter 180B und wahlweise zusätzliche Roboter parallel arbeiten, während sie jeweils mehrere Episoden auf der Basis desselben modellfreien Verstärkungsnichtliniennetzes durchführen. Die Richtlinienparameter, die von einem oder mehreren der Roboter verwendet werden, können jedoch von einem oder mehreren anderen der Roboter zu einer oder mehreren Zeiten verschieden sein. Zur Zeit T1 und vor dem Beginn einer gegebenen Episode kann beispielsweise der Roboter 180A seine Richtlinienparameter mit den zuletzt aktualisierten Richtlinienparametern synchronisieren. Zur Zeit T1 kann jedoch der Roboter 180B sich in einer Episode befinden und kann immer noch unter weniger aktualisierten Richtlinienparametern von einer vorherigen Iteration (unmittelbar vor oder mehrere Iterationen vor) der Trainingsmaschine 114 arbeiten. Zur Zeit T2 kann der Roboter 180B seine Richtlinienparameter mit noch weiter aktualisierten Richtlinienparametern synchronisieren, aber der Roboter 180A kann sich immer noch in der gegebenen Episode zur Zeit T2 befinden und immer noch unter den (nun weniger) aktualisierten Richtlinienparametern der Zeit T1 arbeiten.
  • Wie hier beschrieben, können Instanzen von Erfahrungsdaten von jedem der Roboter 180A, 180B und/oder anderen Robotern zum Wiederholungspuffer 122 durch die Erfahrungssammlermaschine 112 hinzugefügt werden, wenn diese Instanzen von Erfahrungsdaten während des parallelen Betriebs der Roboter erzeugt werden. In einigen Implementierungen können die Erfahrungsdaten von jedem der Roboter zum Wiederholungspuffer 122 mit entsprechenden (und wahlweise denselben) Frequenzen der Roboter (z. B. mit Steuerzyklusfrequenzen der Roboter) hinzugefügt werden. Ein Roboter kann beispielsweise eine Steuerfrequenz von 60 Hz aufweisen und Erfahrungsdaten mit 60 Hz liefern (d. h. 60 Instanzen von Erfahrungsdaten in jeder Sekunde liefern). In einigen von diesen Implementierungen kann die Trainingsmaschine 114 Trainingsiterationen mit einer Frequenz durchführen, die größer ist als eine oder mehrere (z. B. alle) der Frequenzen der Roboter - und kann diese Iterationen durchführen, während die Roboter weiterhin parallel arbeiten und Erfahrungsdaten auf der Basis von Episoden erzeugen. Eine oder mehrere dieser Techniken können ermöglichen, dass eine Konvergenz eines Richtliniennetzes schneller auftritt, als wenn solche Techniken nicht verwendet werden würden.
  • Die Erfahrungssammlermaschine 112, der Wiederholungspuffer 122, die Trainingsmaschine 114 und das Richtliniennetz 124 sind in 1 als von den Robotern 180A und 180B separat dargestellt. In einigen Implementierungen können jedoch alle oder Aspekte von einer oder mehreren dieser Komponenten am Roboter 180A und/oder Roboter 180B (z. B. über einen oder mehrere Prozessoren der Roboter 180A und 180B) implementiert werden. Die Roboter 180A und 180B können beispielsweise jeweils eine Instanz der Erfahrungssammlermaschine 112 umfassen. In einigen Implementierungen können alle oder Aspekte von einer oder mehreren dieser Komponenten an einem oder mehreren Computersystemen implementiert werden, die von den Robotern 180A und 180B separat sind, aber mit diesen in Netzkommunikation stehen. In einigen von diesen Implementierungen können Erfahrungsdaten von einem Roboter zu den Komponenten über ein oder mehrere Netze übertragen werden und aktualisierte Richtlinienparameter können von den Komponenten zum Roboter über eines oder mehrere der Netze übertragen werden.
  • 3 ist ein Ablaufplan, der ein Beispielverfahren 300 zum Durchführen von Objektbewegungsversuchen und Speichern von Daten, die den Objektbewegungsversuchen zugeordnet sind, darstellt. Der Zweckmäßigkeit halber werden die Operationen des Ablaufplans mit Bezug auf ein System beschrieben, das die Operationen durchführt. Dieses System kann eine oder mehrere Komponenten eines Roboters wie z. B. einen Prozessor und/oder ein Robotersteuersystem des Roboters 180A, 180B, 640 und/oder eines anderen Roboters umfassen. Obwohl Operationen des Verfahrens 300 in einer speziellen Reihenfolge gezeigt sind, soll darüber hinaus dies nicht begrenzend sein. Eine oder mehrere Operationen können umgeordnet, weggelassen oder hinzugefügt werden.
  • Im Block 352 beginnt eine Episode, eine Aufgabe durchzuführen.
  • Im Block 354 synchronisiert das System die Richtlinienparameter eines Richtliniennetzes, das vom System verwendet wird, auf der Basis von aktualisierten Parametern, wenn irgendwelche aktualisierten Parameter verfügbar sind. Das System kann beispielsweise einen oder mehrere Richtlinienparameter des Richtliniennetzes durch einen oder mehrere zuletzt aktualisierten Richtlinienparameter ersetzen, die auf der Basis des Verfahrens 500 von 5 erzeugt werden. In einigen Implementierungen umfasst das Ersetzen eines Richtlinienparameters durch einen anderen Richtlinienparameter das Ersetzen eines Werts eines Knotens eines neuronalen Netzmodells durch einen anderen Wert.
  • Im Block 356 initialisiert das System einen beliebigen Prozess für die Aufgabenuntersuchung. Wie hier verwendet, umfasst beliebig pseudobeliebig sowie echt beliebig. Als ein Beispiel kann das System bewirken, dass sich ein Endeffektor des Roboters zu einer beliebigen Startposition bewegt. Als anderes Beispiel kann das System bewirken, dass jedes der Gelenke des Roboters einen speziellen Bewegungszustand (z. B. eine spezielle Position, Geschwindigkeit und/oder Beschleunigung) annimmt.
  • Im Block 358 identifiziert das System einen aktuellen Zustand. Der aktuelle Zustand kann den aktuellen Roboterzustand und/oder den aktuellen Zustand von einem oder mehreren Umgebungsobjekten umfassen. Der aktuelle Zustand der Umgebungsobjekte kann auf der Basis von Sensoren, die an diesen Umgebungsobjekten befestigt sind, und/oder auf der Basis von Sensordaten vom Roboter bestimmt werden. Der aktuelle Zustand eines Umgebungsobjekts kann beispielsweise auf Sensordaten von einem oder mehreren Sensoren basieren, wie z. B. einer Trägheitsmesseinheit („IMU“), die an einer Tür befestigt ist, wenn die Aufgabe darin besteht, die Tür zu öffnen. Der aktuelle Zustand eines Umgebungsobjekts kann beispielsweise auch auf Sichtsensordaten basieren, die durch einen Sichtsensor des Roboters erfasst werden (z. B. kann eine aktuelle Position eines Objekts auf der Basis von Sichtsensordaten von einem Sichtsensor des Roboters bestimmt werden). In der ersten Iteration des Blocks 358 ist der Roboterzustand des aktuellen der anfängliche Roboterzustand nach der Initialisierung des Blocks 356. Der anfängliche Roboterzustand kann beispielsweise den aktuellen Zustand von einer oder mehreren Komponenten des Roboters umfassen, wie z. B. Positionen, Geschwindigkeit und/oder Beschleunigung von jedem der Gelenke und/oder des Endeffektors.
  • Im Block 360 wählt das System eine zu implementierende Handlung auf der Basis des aktuellen Zustandes und auf der Basis des Richtliniennetzes aus. Das System kann beispielsweise den aktuellen Zustand als Eingabe auf ein Verstärkungslernrichtlinienmodell anwenden und über das Modell auf der Basis der Eingabe eine Ausgabe erzeugen, die eine zu implementierende Handlung angibt. Das System kann die Handlung auf der Basis der Ausgabe auswählen. In einigen Implementierungen umfasst die Ausgabe Drehmomentwerte und/oder andere Werte zur Anwendung auf Aktuatoren eines Roboters und das Auswählen der Handlung kann das Auswählen dieser Werte als Handlung umfassen. In Implementierungen, in denen zusätzliche und/oder alternative aktuelle Beobachtungen im Block 358 identifiziert werden, können sie auch als Eingabe auf das Richtliniennetz angewendet werden.
  • Im Block 362 führt das System die Handlung aus und beobachtet die Belohnung und den anschließenden Zustand, der sich aus der Handlung ergibt. Das System kann beispielsweise einen oder mehrere Bewegungsbefehle erzeugen, um zu bewirken, dass einer oder mehrere der Aktuatoren sich bewegen und die Handlung bewirken. Das System kann die Belohnung auf der Basis einer Belohnungsfunktion und wahlweise auf der Basis eines Erfolgssignals, das zum System geliefert wird, beobachten. Die Belohnungsfunktion für eine Aufgabe eines Endeffektors, der eine Zielstellung erreicht, kann beispielsweise auf einer Differenz zwischen einer Stellung des Endeffektors, die sich aus der Handlung ergibt, und der Zielstellung basieren (wobei die Zielstellung als Erfolgssignal geliefert wird). Der anschließende Zustand kann einen anschließenden Roboterzustand und/oder einen anschließenden Zustand von einem oder mehreren Umgebungsobjekten umfassen. Der anschließende Roboterzustand kann beispielsweise den Zustand von einer oder mehreren Komponenten des Roboters als Ergebnis der Handlung umfassen, wie z. B. Positionen, Geschwindigkeit und/oder Beschleunigung von jedem der Gelenke und/oder des Endeffektors. In einigen Implementierungen identifiziert das System im Block 362 zusätzlich oder alternativ andere Beobachtungen als Ergebnis der Handlung, wie z. B. Sichtsensordaten, die durch einen Sichtsensor des Roboters nach der Implementierung der Handlung erfasst werden, und/oder andere Sensordaten von (einem) anderen Sensor(en) nach der Implementierung der Handlung.
  • Im Block 364 sendet das System eine Instanz von Erfahrungsdaten zu einem Wiederholungspuffer. Das System kann beispielsweise selbst die Instanz im Wiederholungspuffer speichern oder die Instanz zu einer separaten Komponente liefern, die die Instanz im Wiederholungspuffer speichert. Wie mit Bezug auf das Verfahren 500 von 5 beschrieben, können die Instanz und andere Instanzen von anderen Robotern während des Trainings verwendet werden, um die Richtlinienparameter zu aktualisieren. In einigen Implementierungen können die Erfahrungsdaten Daten umfassen, die den aktuellen Zustand des Blocks 358, die Handlung von 360 und/oder die beobachtete Belohnung und/oder den anschließenden Zustand des Blocks 362 angeben.
  • Im Block 366 bestimmt das System, ob ein Erfolg oder andere Kriterien erfüllt wurden. Das System kann beispielsweise den Erfolg bestimmen, wenn die im Block 362 beobachtete Belohnung einen Schwellenwert erfüllt. Andere Kriterien können beispielsweise auch darin bestehen, dass eine Schwellenzeit und/oder eine Schwellenanzahl von Iterationen der Blöcke 358, 360, 362 und 364 erfüllt wurden.
  • Wenn das System bestimmt, dass der Erfolg oder andere Kriterien erfüllt wurden, geht das System zum Block 352 weiter und startet eine neue Episode. Es wird angemerkt, dass in der neuen Episode das System im Block 354 der neuen Episode die Richtlinienparameter mit einem oder mehreren aktualisierten Parametern synchronisieren kann, die relativ zu jenen in der unmittelbar vorherigen Episode aktualisiert sind (als Ergebnis der gleichzeitigen Aktualisierung dieser Parameter durch das Verfahren 500 von 5 und/oder andere Verfahren). Die aktualisierten Parameter können beispielsweise durch das Verfahren 500 von 5 unter Verwendung von Erfahrungsdaten von einem oder mehreren anderen Robotern aktualisiert werden, die asynchron Erfahrungsdaten gemäß dem Verfahren 300 von 3 erzeugen. In diesen und anderen Weisen kann jede Episode von 3 die Richtlinienparameter verwenden, die auf der Basis von Erfahrungsdaten von (einem) anderen Roboter(n) aktualisiert werden. Dies kann dazu führen, dass jede Episode Erfahrungsdaten erzeugt, die ein effizienteres Training ermöglichen. Mehrere Episoden können durch das System unter Verwendung des Verfahrens 300 durchgeführt werden, bis das Training (durch das Verfahren 500 von 5 und/oder andere Verfahren) vollendet ist und/oder bis irgendein anderes Signal empfangen wird (z. B. ein Fehler auftritt).
  • Wenn das System bestimmt, dass der Erfolg oder andere Kriterien nicht erfüllt wurden, geht das System zum Block 358 weiter und führt eine zusätzliche Iteration der Blöcke 358, 360, 362 und 364 durch.
  • In 3 sind Blöcke 370, 372 und 374 auch dargestellt und stellen optionale Blöcke dar, die implementiert werden können, um zu bestimmen, ob irgendwelche der Handlungen des Blocks 360 ein oder mehrere Kriterien für den Roboter verletzen, und wenn ja, eine Korrekturhandlung vor der Ausführung der Handlung im Block 362 zu unternehmen. Im Block 370 bestimmt das System, ob die Handlung des Blocks 360 ein oder mehrere Roboterkriterien verletzt. Wenn nicht, geht das System zum Block 362 weiter und führt die Handlung aus.
  • Wenn das System bestimmt, dass die Handlung des Blocks 360 ein oder mehrere Roboterkriterien verletzt, geht das System zum Block 372 oder zum Block 374 weiter. Im Block 372 kann das System die Handlung modifizieren, so dass sie die Kriterien nicht mehr verletzt, und die modifizierte Handlung für die Ausführung im Block 362 anstelle der Handlung bereitstellen. Wenn beispielsweise die Verletzung von einer Geschwindigkeitseinschränkung ist, kann die Handlung so modifiziert werden, dass die Geschwindigkeitseinschränkung nicht mehr verletzt wird. Die modifizierte Handlung kann in der Instanz von Erfahrungsdaten anstelle der nicht modifizierten Handlung bereitgestellt werden.
  • Im Block 374 kann das System wahlweise die Episode in Reaktion auf bestimmte Verletzungen von Roboterkriterien beenden. Wenn das System die Episode im Block 374 beendet, kann das System zum Block 352 zurückkehren und/oder auf einen Eingriff (z. B. menschlichen Eingriff) warten.
  • Wie hier beschrieben, kann das Verfahren 300 von 3 in vielen Implementierungen an jedem von mehreren Roboteren implementiert werden, die während einer oder mehreren (z. B. allen) ihrer jeweiligen Iterationen des Verfahrens 300 parallel arbeiten. Ein oder mehrere Prozessoren eines ersten Roboters können beispielsweise eine Instanziierung des Verfahrens 300 durchführen, ein oder mehrere Prozessoren eines zweiten Roboters können eine Instanziierung des Verfahrens 300 durchführen usw. Dies kann ermöglichen, dass mehr Instanzen von Erfahrungsdaten in einer gegebenen Zeitdauer erzeugt werden, als wenn nur ein Roboter das Verfahren 300 betreiben würde. Dies kann zu einem zeiteffizienten Training eines neuronalen Richtliniennetzes in Implementierungen führen, in denen das Training des neuronale Richtliniennetzes mit einer größeren Frequenz als die Erzeugung von Erfahrungsdaten durch einen gegebenen Roboter stattfindet. Außerdem kann dies ermöglichen, dass jede Episode des Verfahrens 300 durch einen gegebenen Roboter Erfahrungsdaten verwendet, die auf der Basis von Erfahrungsdaten von (einem) anderen Roboter(n) aktualisiert werden. Dies kann zu einem Training eines neuronalen Richtliniennetzes führen, das in weniger Iterationen konvergiert, als wenn asynchrones Training auf der Basis von asynchronen Erfahrungsdaten nicht verwendet werden würde. In Implementierungen, in denen Endeffektoren, Sensoren, Aktuatoren und/oder andere Hardwarekomponenten der mehreren Roboter variieren und/oder unterschiedlich verschleißen, und/oder in denen verschiedene Roboter mit verschiedenen Objekten (z. B. Objekten mit verschiedenen Größen, verschiedenen Gewichten, verschiedenen Formen, verschiedenen Lichtdurchlässigkeiten, verschiedenen Materialen) und/oder in verschiedenen Umgebungen (z. B. verschiedenen Oberflächen, verschiedener Beleuchtung, verschiedenen Umgebungshindernissen) zusammenwirken, kann überdies die Verwendung von Erfahrungsdaten im Training, die durch die mehreren Roboter erzeugt werden, Robustheit im trainierten Richtliniennetz für verschiedene Roboter- und/oder Umgebungskonfigurationen vorsehen.
  • 4 ist ein Ablaufplan, der ein Beispielverfahren 400 zum Speichern von Instanzen von Erfahrungsdaten darstellt. Der Zweckmäßigkeit halber werden die Operationen des Ablaufplans mit Bezug auf ein System beschrieben, das die Operationen durchführt. Dieses System kann eine oder mehrere Komponenten von einem oder mehreren Computersystemen wie z. B. einen Prozessor umfassen und/oder kann eine oder mehrere Komponenten von einem oder mehreren Robotern wie z. B. einen Prozessor und/oder ein Robotersteuersystem eines Roboters umfassen. Obwohl Operationen des Verfahrens 400 in einer speziellen Reihenfolge gezeigt sind, soll dies darüber hinaus nicht begrenzend sein. Eine oder mehrere Operationen können umgeordnet, weggelassen oder hinzugefügt werden.
  • Im Block 452 startet die Erfahrungsdatensammlung.
  • Im Block 454 empfängt das System eine Instanz von Erfahrungsdaten für einen Roboter. Der Roboter ist einer von mehreren Robotern, die Erfahrungsdaten zum System und/oder anderen Systemen parallel liefern (aber wahlweise mit verschiedenen Frequenzen). Die Roboter können beispielsweise jeweils das Verfahren 300 von 3 implementieren und der Block 454 kann in Reaktion auf jede Instanz der Durchführung des Blocks 364 des Verfahrens 300 durchgeführt werden.
  • Im Block 456 speichert das System die Instanz der Erfahrungsdaten in einem Wiederholungspuffer. Im Block 458 bestimmt das System, ob das Training vollständig ist. Das System kann bestimmen, dass das Training vollständig ist, in Reaktion auf ein Signal von einem wahlweise separaten Trainingssystem, das Richtlinienparameter auf der Basis der Erfahrungsdaten, die im Wiederholungspuffer gespeichert sind, aktualisiert.
  • Wenn das System im Block 458 bestimmt, dass das Training nicht vollständig ist, kehrt das System zum Block 454 zurück und empfängt eine zusätzliche Instanz von Erfahrungsdaten (vom gleichen Roboter oder einem anderen Roboter). Selbstverständlich können mehrere Threads von einem oder mehreren der Blöcke des Verfahrens 400 implementiert werden, um den gleichzeitigen Empfang von Erfahrungsdaten von mehreren Robotern zu ermöglichen.
  • Wenn das System im Block 458 bestimmt, dass das Training vollständig ist, endet die Erfahrungsdatensammlung im Block 460.
  • Obwohl das Verfahren 300 und das Verfahren 400 hier der Deutlichkeit halber in separaten Figuren dargestellt sind, können selbstverständlich ein oder mehrere Blöcke des Verfahrens 400 durch dieselbe(n) Komponente(n) durchgeführt werden, die einen oder mehrere Blöcke des Verfahrens 300 durchführen. Einer oder mehrere (z. B. alle) der Blöcke des Verfahrens 300 und des Verfahrens 400 können beispielsweise durch (einen) Prozessor(en) eines Roboters durchgeführt werden. Selbstverständlich können auch ein oder mehrere Blöcke des Verfahrens 400 in Kombination mit, oder vor oder nach einem oder mehreren Blöcken des Verfahrens 300 durchgeführt werden.
  • 5 ist ein Ablaufplan, der ein Beispielverfahren 500 zum Trainieren, um Parameter eines Richtliniennetzes zu aktualisieren, darstellt. Der Zweckmäßigkeit halber werden die Operationen des Ablaufplans mit Bezug auf ein System beschrieben, das die Operationen durchführt. Dieses System kann eine oder mehrere Komponenten eines Computersystems wie z. B. einen Prozessor (z. B. eine GPU und/oder CPU) zum Trainieren der Maschine 114 und/oder eines anderen Computersystems umfassen. Obwohl die Operationen des Verfahrens 500 in einer speziellen Reihenfolge gezeigt sind, soll dies darüber hinaus nicht begrenzend sein. Eine oder mehrere Operationen können umgeordnet, weggelassen oder hinzugefügt werden.
  • Im Block 552 beginnt das Training.
  • Im Block 554 initialisiert das System ein normiertes Q-Netz wie z. B. ein normiertes Q-Netz, das eine beliebig initialisierte Q-Funktionsabschätzung parametrisiert. Das System kann beispielsweise das normierte Q-Netz Q(x,u|θQ) initialisieren, wobei θQ = (θµ, θP, θV}.
  • Im Block 556 initialisiert das System ein Zielrichtliniennetz, das Handlungen ausgibt, die Eingaben in das normierte Q-Netz sind, das im Block 554 initialisiert wird. Das System kann beispielsweise ein Zielrichtliniennetz Q' mit dem Gewicht θQ' ← θQ initialisieren.
  • Im Block 558 tastet das System einen Stapel von Erfahrungsdaten von einem Wiederholungspuffer ab. Das System kann beispielsweise einen Stapel von einer oder mehreren Instanzen von Erfahrungsdaten abtasten, die in einem Wiederholungspuffer auf der Basis des Verfahrens 300 von 3 und/oder des Verfahrens 400 von 4 gespeichert werden.
  • In einigen Implementierungen legt das System für die Erfahrungsdaten fest y i = { r i + γ V ( x i | θ Q ) falls t i < T r i falls t i = T
    Figure DE202017105598U1_0009
  • Im Block 560 aktualisiert das System das normierte Q-Netz auf der Basis der im Block 558 abgetasteten Erfahrungsdaten. Das System kann beispielsweise eine Rückpropagierung und/oder andere Techniken am Q-Netz auf der Basis einer Verlustfunktion durchführen. Das System kann beispielsweise das Gewicht θQ des Q-Netzes durch Minimieren des Verlusts aktualisieren: L = 1 m i ( y i Q ( x i , u i | θ Q ) ) 2
    Figure DE202017105598U1_0010
  • Im Block 562 aktualisiert das System das Zielrichtliniennetz auf der Basis der Aktualisierung des normierten Q-Netzes. Das System kann beispielsweise das Zielrichtliniennetz auf der Basis des Gradienten der Verlustfunktion in Bezug auf die Netzparameter aktualisieren. Das System kann beispielsweise das Zielrichtliniennetz aktualisieren auf der Basis von: Θ2' ← τ}Q + (1 - τ)θQ'.
  • Im Block 564 stellt das System Aktualisierungen für die Verwendung durch die Roboter in bevorstehenden Episoden bereit. Das System kann beispielsweise aktualisierte Richtlinienparameter und/oder andere Parameter zur Verwendung durch die Roboter in bevorstehenden Episoden bereitstellen.
  • Im Block 566 bestimmt das System, ob das Training vollständig ist. In einigen Implementierungen kann das Bestimmen, dass das Training vollständig ist, basieren auf: Bestimmen, dass eine Konvergenz erreicht wurde, eine Schwellenmenge von Iterationen der Blöcke 558-564 stattgefunden hat, alle verfügbaren Erfahrungsdaten verarbeitet wurden, eine Schwellenmenge an Zeit vergangen ist, und/oder andere Kriterien erfüllt wurden.
  • Wenn das System bestimmt, dass das Training vollständig ist, endet das Training im Block 568. Wenn das System bestimmt, dass das Training nicht vollständig ist, geht das System zum Block 558 zurück. Wie hier beschrieben, kann das Verfahren 500 gleichzeitig mit den Verfahren 300 und 400 durchgeführt werden, die hier beschrieben sind. In einigen von diesen Implementierungen kann die Frequenz der Durchführung einer Iteration des Verfahrens 500 größer sein als die Frequenz der Durchführung einer Iteration des Verfahrens 300 und/oder 400. Als ein nicht begrenzendes Beispiel kann das Verfahren 500 mit einer Rate von 100 Hz durchgeführt werden und das Verfahren 300 kann mit einer Rate von 20 Hz durchgeführt werden. Es wird angemerkt, dass in einigen Implementierungen das Verfahren 300, das Verfahren 400 und/oder das Verfahren 500 „kontinuierlich“ insofern durchgeführt werden können, als Erfahrungsdaten kontinuierlich durch einen oder mehrere Roboter der realen Welt erzeugt werden und verwendet werden, um das Zielrichtliniennetz kontinuierlich zu aktualisieren.
  • Um ein gewisses zusätzliches Detail über die hier beschriebenen Implementierungen zu schaffen, werden einige Beispielaufgaben, die durch die hier offenbarten Verstärkungslerntechniken gelernt werden können, genauer beschrieben. Einige Beispiele von Aufgaben umfassen das Erreichen eines beliebigen Ziels, das Schieben und/oder Ziehen einer Tür und das Bestücken. In einer Erreichungsaufgabe kann beispielsweise ein Roboterarm versuchen, ein beliebiges Ziel im Raum von einer festen anfänglichen Konfiguration zu erreichen. Ein beliebiges Ziel wird pro Episode durch Abtastpunkte gleichmäßig von einem Würfel mit der Größe 0,2 m, der um einen Punkt zentriert ist, erzeugt. Das beliebige Ziel kann als Erfolgssignal bereitgestellt werden. In Anbetracht der Endeffektorposition e und der Zielposition y kann die Belohnungsfunktion sein: r(x; u) = c1d(y; e(x)) c2uTu.
  • In einer Türschiebe- und Türziehaufgabe kann beispielsweise auch ein Roboterarm versuchen, eine Tür durch Schieben oder Ziehen eines Griffs der Tür zu öffnen. Der Griff kann für bis zu 90 Grad nach unten gedreht werden, während die Tür bis zu 90 Grad in beiden Richtungen geöffnet werden kann. Die Tür weist eine Feder auf, so dass sie sich allmählich schließt, wenn keine Kraft aufgebracht wird. Die Tür weist ein Schloss auf, so dass er die Tür nur öffnen könnte, wenn der Griff an ungefähr 60 Grad vorbei gedreht wird. Ein IMU-Sensor, der an der Tür befestigt ist, kann für Türwinkelmessungen verwendet werden, und Quaternion-Messwerte vom IMU-Sensor können verwendet werden, um den Verlust zu berechnen. Die Belohnungsfunktion kann beispielsweise aus zwei Teilen bestehen: der Nähe des Endeffektors zum Griff und der Messung, wie weit die Tür in der richtigen Richtung geöffnet ist. Der erste Teil der Belohnungsfunktion hängt vom Abstand zwischen der Endeffektorposition e und der Griffposition h in ihrem neutralen Zustand ab. Der zweite Teil der Belohnungsfunktion hängt vom Abstand zwischen dem Quaternion des Griffs q und seinem Wert ab, wenn der Griff gedreht wird und die Tür geöffnet wird, qO. Zustandsmerkmale können die Gelenkwinkel des Roboterarms und ihre Zeitableitungen, die Endeffektorposition, die Ruhetürgriffposition, die Türrahmenposition, den Türwinkel und den Griffwinkel umfassen.
  • 6 stellt schematisch eine Beispielarchitektur eines Roboters 640 dar. Der Roboter 640 umfasst ein Robotersteuersystem 660, eine oder mehrere Betriebskomponenten 640a-640n und einen oder mehrere Sensoren 642a-642m. Die Sensoren 642a-642m können beispielsweise Sichtsensoren, Lichtsensoren, Drucksensoren, Druckwellensensoren (z. B. Mikrophone), Nähesensoren, Beschleunigungsmesser, Gyroskope, Thermometer, Barometer und so weiter umfassen. Obwohl die Sensoren 642a-m als einteilig mit dem Roboter 620 dargestellt sind, soll dies nicht begrenzend sein. In einigen Implementierungen können die Sensoren 642a-m außerhalb des Roboters 620 angeordnet sein, z. B. als eigenständige Einheiten.
  • Die Betriebskomponenten 640a-640n können beispielsweise einen oder mehrere Endeffektoren und/oder einen oder mehrere Servomotoren oder andere Aktuatoren, um eine Bewegung von einer oder mehreren Komponenten des Roboters zu bewirken, umfassen. Der Roboter 620 kann beispielsweise mehrere Freiheitsgrade aufweisen und jeder der Aktuatoren kann die Betätigung des Roboters 620 innerhalb eines oder mehrerer der Freiheitsgrade in Reaktion auf die Steuerbefehle steuern. Wie hier verwendet, umfasst der Begriff Aktuator eine mechanische oder elektrische Vorrichtung, die eine Bewegung erzeugt (z. B. einen Motor), zusätzlich zu irgendeiner (irgendwelchen) Antriebseinrichtung(en), die dem Aktuator zugeordnet sein können und die empfangene Steuerbefehle in ein oder mehrere Signale zum Antreiben des Aktuators übersetzen. Folglich kann das Liefern eines Steuerbefehls zu einem Aktuator das Liefern des Steuerbefehls zu einer Antriebseinrichtung umfassen, die den Steuerbefehl in geeignete Signale zum Antreiben einer elektrischen oder mechanischen Vorrichtung übersetzt, um eine gewünschte Bewegung zu erzeugen.
  • Das Robotersteuersystem 660 kann in einem oder mehreren Prozessoren wie z. B. einer CPU, GPU und/oder (einer) anderen Steuereinheit(en) des Roboters 620 implementiert werden. In einigen Implementierungen kann der Roboter 620 einen „Gehirnkasten“ umfassen, der alles oder Aspekte des Steuersystems 660 umfassen kann. Der Gehirnkasten kann beispielsweise Echtzeit-Datenbündel zu den Betriebskomponenten 640a-n liefern, wobei jedes der Echtzeitbündel einen Satz von einem oder mehreren Steuerbefehlen umfasst, die unter anderem die Parameter der Bewegung (falls vorhanden) für jede der einen oder der mehreren Betriebskomponenten 640a-n vorgeben. In einigen Implementierungen kann das Robotersteuersystem 660 einen oder mehrere Aspekte der Verfahren 300, 400 und/oder 500, die hier beschrieben werden, durchführen.
  • Wie hier beschrieben, können in einigen Implementierungen alle oder Aspekte der Steuerbefehle, die durch das Steuersystem 660 beim Bewegen von einer oder mehreren Komponenten eines Roboters erzeugt werden, auf einer Ausgabe basieren, die über ein Richtliniennetz auf der Basis eines aktuellen Roboterzustandes und/oder anderer Beobachtungen erzeugt wird. Obwohl das Steuersystem 660 in 6 als integraler Teil des Roboters 620 dargestellt ist, können in einigen Implementierungen alles oder Aspekte des Steuersystems 660 in einer Komponente implementiert werden, die vom Roboter 620 separat ist, aber mit diesem in Kommunikation steht. Alles oder Aspekte des Steuersystems 660 können beispielsweise an einer oder mehreren Rechenvorrichtungen implementiert werden, die mit dem Roboter 620 in verdrahteter und/oder drahtloser Kommunikation stehen, wie z. B. die Rechenvorrichtung 710.
  • 7 ist ein Blockdiagramm einer Beispielrechenvorrichtung 710, die wahlweise verwendet werden kann, um einen oder mehrere Aspekte der hier beschriebenen Techniken durchzuführen. Die Rechenvorrichtung 710 umfasst typischerweise mindestens einen Prozessor 714, der mit einer Anzahl von Peripherievorrichtungen über ein Busuntersystem 712 kommuniziert. Diese Peripherievorrichtungen können ein Speicheruntersystem 724 beispielsweise mit einem Arbeitsspeicheruntersystem 725 und einem Dateispeicheruntersystem 726, Benutzerschnittstellen-Ausgabevorrichtungen 720, Benutzerschnittstellen-Eingabevorrichtungen 722 und ein Netzschnittstellenuntersystem 716 umfassen. Die Eingabe- und Ausgabevorrichtungen ermöglichen eine Benutzerzusammenwirkung mit der Rechenvorrichtung 710. Das Netzschnittstellenuntersystem 716 schafft eine Schnittstelle zu äußeren Netzen und ist mit entsprechenden Schnittstellenvorrichtungen in anderen Rechenvorrichtungen gekoppelt.
  • Die Benutzerschnittstellen-Eingabevorrichtungen 722 können eine Tastatur, Zeigevorrichtungen wie z. B. eine Maus, eine Rollkugel, ein Berührungsfeld oder ein Graphik-Tablet, einen Scanner, einen Berührungsbildschirm, der in die Anzeige eingebaut ist, Audioeingabevorrichtungen wie z. B. Spracherkennungssysteme, Mikrophone und/oder andere Typen von Eingabevorrichtungen umfassen. Im Allgemeinen soll die Verwendung des Begriffs „Eingabevorrichtung“ alle möglichen Typen von Vorrichtungen und Weisen umfassen, um Informationen in die Rechenvorrichtung 710 oder in ein Kommunikationsnetz einzugeben.
  • Die Benutzerschnittstellen-Ausgabevorrichtungen 720 können ein Anzeigeuntersystem, einen Drucker, ein Faxgerät oder nicht visuelle Anzeigen wie z. B. Audioausgabevorrichtungen umfassen. Das Anzeigeuntersystem kann eine Kathodenstrahlröhre (CRT), eine Flachfeldvorrichtung wie z. B. eine Flüssigkristallanzeige (LCD), eine Projektionsvorrichtung oder irgendeinen anderen Mechanismus zum Erzeugen eines sichtbaren Bildes umfassen. Das Anzeigeuntersystem kann auch eine nicht visuelle Anzeige wie z. B. über Audioausgabevorrichtungen bereitstellen. Im Allgemeinen soll die Verwendung des Begriffs „Ausgabevorrichtung“ alle möglichen Typen von Vorrichtungen und Weisen umfassen, um Informationen aus der Rechenvorrichtung 710 an den Benutzer oder eine andere Maschine oder Rechenvorrichtung auszugeben.
  • Das Speicheruntersystem 724 speichert Programmierungs- und Datengebilde, die die Funktionalität von einigen oder allen der hier beschriebenen Module bereitstellen. Das Speicheruntersystem 724 kann beispielsweise die Logik umfassen, um ausgewählte Aspekte des Verfahrens von 3, 4 und/oder 5 durchzuführen.
  • Diese Softwaremodule werden im Allgemeinen durch den Prozessor 714 allein oder in Kombination mit anderen Prozessoren ausgeführt. Der Arbeitsspeicher 725, der im Speicheruntersystem 724 verwendet wird, kann eine Anzahl von Arbeitsspeichern umfassen, einschließlich eines Hauptdirektzugriffsarbeitsspeichers (RAM) 730 zum Speichern von Anweisungen und Daten während der Programmausführung und eines Festwertarbeitsspeichers (ROM) 732, in dem feste Anweisungen gespeichert sind. Ein Dateispeicheruntersystem 726 kann eine dauerhafte Speicherung für Programm- und Datendateien bereitstellen und kann ein Festplattenlaufwerk, ein Diskettenlaufwerk zusammen mit zugehörigen entnehmbaren Medien, ein CD-ROM-Laufwerk, ein optisches Laufwerk oder entnehmbare Medienkassetten umfassen. Die Module, die die Funktionalität von bestimmten Implementierungen implementieren, können durch das Dateispeicheruntersystem 726 im Speicheruntersystem 724 oder in anderen Maschinen, die für den (die) Prozessor(en) 714 zugänglich sind, gespeichert werden.
  • Das Busuntersystem 712 stellt einen Mechanismus bereit, um die verschiedenen Komponenten und Untersysteme der Rechenvorrichtung 710 miteinander kommunizieren zu lassen, wie beabsichtigt. Obwohl das Busuntersystem, 712 schematisch als einzelner Bus gezeigt ist, können alternative Implementierungen des Busuntersystems mehrere Busse verwenden.
  • Die Rechenvorrichtung 710 kann von variierenden Typen sein, einschließlich eines Arbeitsplatzrechners, eines Servers, eines Rechenclusters, eines Blade-Servers, einer Serverfarm oder irgendeines anderen Datenverarbeitungssystems oder irgendeiner anderen Rechenvorrichtung. Aufgrund der sich ständig ändernden Art von Computern und Netzen ist die Beschreibung der Rechenvorrichtung 710, die in 7 dargestellt ist, nur als spezielles Beispiel für Zwecke der Erläuterung von einigen Implementierungen vorgesehen. Viele andere Konfigurationen der Rechenvorrichtung 710 sind möglich mit mehr oder weniger Komponenten als die in 7 dargestellte Rechenvorrichtung.
  • Implementierungen verwenden tiefes Verstärkungslernen, um ein neuronales Richtliniennetz zu trainieren, das eine Richtlinie zum Bestimmen einer Roboterhandlung auf der Basis eines aktuellen Zustandes parametrisiert. Einige von diesen Implementierungen sammeln Erfahrungsn von mehreren Robotern, die gleichzeitig arbeiten. Jeder Roboter erzeugt Instanzen von Erfahrungsdaten während der iterativen Durchführung von Episoden, die jeweils Untersuchungen der Durchführung einer Aufgabe sind, und die jeweils auf der Basis des Richtliniennetzes und der aktuellen Richtlinienparameter für das Richtliniennetz während der Episode geführt werden. Die gesammelten Erfahrungsdaten werden während der Episoden erzeugt und werden verwendet, um das Richtliniennetz durch iteratives Aktualisieren von Richtlinienparametern des Richtliniennetzes auf der Basis eines Stapels von gesammelten Erfahrungsdaten zu trainieren. Vor der Durchführung von jeder von mehreren Episoden, die durch die Roboter durchgeführt werden, können ferner die aktuellen aktualisierten Richtlinienparameter für die Nutzung bei der Durchführung der Episode bereitgestellt (oder abgerufen) werden.
  • Obwohl mehrere Implementierungen hier beschrieben und erläutert wurden, kann eine Vielfalt von anderen Mitteln und/oder Strukturen zum Durchführen der Funktion und/oder Erhalten der Ergebnisse und/oder eines oder mehrerer der Vorteile, die hier beschrieben sind, verwendet werden, und jede von solchen Variationen und/oder Modifikationen soll innerhalb des Schutzbereichs der hier beschriebenen Implementierungen liegen. Allgemeiner sollen alle Parameter, Abmessungen, Materialien und Konfigurationen, die hier beschrieben sind, beispielhaft sein und die tatsächlichen Parameter, Abmessungen, Materialien und/oder Konfigurationen hängen von der speziellen Anwendung oder den speziellen Anwendungen ab, für die die Lehren verwendet werden. Unter Verwendung von nicht mehr als Routineexperimentierung erkennt der Fachmann auf dem Gebiet viele Äquivalente zu den hier beschriebenen speziellen Implementierungen oder kann diese feststellen. Daher soll selbstverständlich sein, dass die vorangehenden Implementierungen nur als Beispiel dargestellt sind und dass sie innerhalb des Schutzbereichs der beigefügten Ansprüche und Äquivalente zu diesen Implementierungen anders als speziell beschrieben und beansprucht ausgeführt werden können. Implementierungen der vorliegenden Offenbarung sind auf jedes individuelle Merkmal, jedes individuelle System, jeden individuellen Gegenstand, jedes individuelle Material, jede individuelle Ausrüstung und/oder jedes individuelle Verfahren, die hier beschrieben sind, gerichtet. Außerdem ist irgendeine Kombination von zwei oder mehr solchen Merkmalen, Systemen, Gegenständen, Materialien, Ausrüstungen und/oder Verfahren, wenn solche Merkmale, Systeme, Gegenstände, Materialien, Ausrüstungen und/oder andere Verfahren nicht miteinander inkonsistent sind, innerhalb des Schutzbereichs der vorliegenden Offenbarung enthalten.

Claims (36)

  1. Nichttransitorisches computerlesbares Speichermedium, auf dem Anweisungen gespeichert sind, wobei die Anweisungen, wenn sie durch einen oder mehrere Prozessoren ausgeführt werden, bewirken, dass der eine oder die mehreren Prozessoren Schritte durchführen, die umfassen: während der Durchführung von mehreren Episoden durch jeden von mehreren Robotern, wobei jede der Episoden eine Untersuchung der Durchführung einer Aufgabe auf der Basis eines neuronalen Richtliniennetzes ist, das eine Verstärkungslernrichtlinie für die Aufgabe darstellt: Speichern von Instanzen von Robotererfahrungsdaten in einem Puffer, die während der Episoden durch die Roboter erzeugt werden, wobei jede der Instanzen der Robotererfahrungsdaten während einer entsprechenden der Episoden erzeugt wird und zumindest teilweise an einer entsprechenden Ausgabe erzeugt wird, die unter Verwendung des neuronalen Richtliniennetzes mit entsprechenden Richtlinienparametern für das neuronalen Richtliniennetz für die entsprechende Episode erzeugt wird; iteratives Erzeugen von aktualisierten Richtlinienparametern des neuronalen Richtliniennetzes, wobei jede der Iterationen des iterativen Erzeugens das Erzeugen der aktualisierten Richtlinienparameter unter Verwendung einer Gruppe von einer oder mehreren Instanzen der Robotererfahrungsdaten im Puffer während der Iteration umfasst; und durch jeden der Roboter in Verbindung mit einem Start von jeder von mehreren Episoden, die durch den Roboter durchgeführt werden, Aktualisieren des neuronalen Richtliniennetzes, das durch den Roboter in der Episode verwendet werden soll, wobei das Aktualisieren des neuronalen Richtliniennetzes die Verwendung der aktualisierten Richtlinienparameter einer jüngsten Iteration des iterativen Erzeugens der aktualisierten Richtlinienparameter umfasst.
  2. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 1, wobei jeder der aktualisierten Richtlinienparameter einen entsprechenden Wert für einen entsprechenden Knoten einer entsprechenden Schicht des neuronalen Richtliniennetzes definiert.
  3. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 1 oder Anspruch 2, wobei die Instanzen der Robotererfahrungsdaten für einen gegebenen Roboter der Roboter im Puffer mit einer ersten Frequenz gespeichert werden, die eine niedrigere Frequenz als eine Erzeugungsfrequenz des iterativen Erzeugens der aktualisierten Richtlinienparameter ist.
  4. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 1 oder Anspruch 2, wobei die Instanzen der Robotererfahrungsdaten für jeden der Roboter im Puffer mit entsprechenden Frequenzen gespeichert werden, die jeweils niedriger sind als eine Erzeugungsfrequenz des iterativen Erzeugens der aktualisierten Richtlinienparameter.
  5. Nichttransitorisches computerlesbares Speichermedium nach einem der Ansprüche 1-4, wobei das Speichern der Instanzen der Robotererfahrungsdaten im Puffer durch einen oder mehrere der Prozessoren in einem ersten Thread durchgeführt wird und wobei das iterative Erzeugen durch einen oder mehrere der Prozessoren in einem zweiten Thread durchgeführt wird, der vom ersten Thread separat ist.
  6. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 5, wobei der erste Thread durch eine erste Gruppe von einem oder mehreren der Prozessoren durchgeführt wird und der zweite Thread durch eine zweite Gruppe von einem oder mehreren der Prozessoren durchgeführt wird, wobei die zweite Gruppe mit der ersten Gruppe nicht überlappt.
  7. Nichttransitorisches computerlesbares Speichermedium nach einem der Ansprüche 1-6, wobei jede der Iterationen des iterativen Erzeugens das Erzeugen der aktualisierten Richtlinienparameter auf der Basis der Minimierung einer Verlustfunktion angesichts einer Gruppe von einer oder mehreren der Instanzen der Robotererfahrungsdaten im Puffer während der Erzeugungsiteration umfasst.
  8. Nichttransitorisches computerlesbares Speichermedium nach einem der Ansprüche 1-7, wobei jede der Iterationen des iterativen Erzeugens Lernen außerhalb der Richtlinie angesichts einer Gruppe von einer oder mehreren der Instanzen der Robotererfahrungsdaten im Puffer während der Erzeugungsiteration umfasst.
  9. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 8, wobei das Lernen außerhalb der Richtlinie Q-Lernen ist.
  10. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 9, wobei das Q-Lernen einen Algorithmus einer normierten Vorteilsfunktion (NAF) oder einen Algorithmus eines tiefen deterministischen Richtliniengradienten (DDPG) umfasst.
  11. Nichttransitorisches computerlesbares Speichermedium nach einem der Ansprüche 1-10, wobei jede der Instanzen der Erfahrungsdaten einen entsprechenden Roboteranfangszustand, einen anschließenden Roboterzustand, in den vom Roboteranfangszustand übergegangen wird, eine Handlung, die ausgeführt wird, um vom Roboteranfangszustand in den anschließenden Roboterzustand überzugehen, und eine Belohnung für die Handlung angibt; wobei die Handlung, die ausgeführt wird, um vom Roboteranfangszustand in den anschließenden Roboterzustand überzugehen, auf der Basis der Verarbeitung des Roboteranfangszustandes unter Verwendung des neuronalen Richtliniennetzes mit den aktualisierten Richtlinienparametern für die entsprechende Episode erzeugt wird, und wobei die Belohnung für die Handlung auf der Basis einer Belohnungsfunktion für die Verstärkungslernrichtlinie erzeugt wird.
  12. Nichttransitorisches computerlesbares Speichermedium nach einem der Ansprüche 1-11, das ferner umfasst: auf der Basis von einem oder mehreren Kriterien Beenden der Durchführung der mehreren Episoden und Beenden des iterativen Erzeugens; Versehen des neuronalen Richtliniennetzes mit einer zuletzt erzeugten Version der aktualisierten Richtlinienparameter für die Verwendung durch einen oder mehrere zusätzliche Roboter.
  13. Nichttransitorisches computerlesbares Speichermedium, auf dem Anweisungen gespeichert sind, wobei die Anweisungen, wenn sie durch einen oder mehrere Prozessoren ausgeführt werden, bewirken, dass der eine oder die mehreren Prozessoren Schritte durchführen, die umfassen: durch einen oder mehrere Prozessoren eines gegebenen Roboters: Durchführen einer gegebenen Episode von Untersuchungen der Durchführung einer Aufgabe auf der Basis eines Richtliniennetzes mit einer ersten Gruppe von Richtlinienparametern; Bereitstellen von ersten Instanzen von Robotererfahrungsdaten, die auf der Basis des Richtliniennetzes während der gegebenen Episode erzeugt werden; vor der Durchführung einer anschließenden Episode der Durchführung der Aufgabe auf der Basis des Richtliniennetzes durch den gegebenen Roboter: Ersetzen von einem oder mehreren der Richtlinienparameter der ersten Gruppe durch aktualisierte Richtlinienparameter, wobei die aktualisierten Richtlinienparameter auf der Basis von zusätzlichen Instanzen von Robotererfahrungsdaten erzeugt werden, die durch einen zusätzlichen Roboter während einer zusätzlichen Roboterepisode von Untersuchungen der Durchführung der Aufgabe durch den zusätzlichen Roboter erzeugt werden; wobei die anschließende Episode unmittelbar der ersten Episode folgt, und wobei das Durchführen der Aufgabe auf der Basis des Richtliniennetzes in der anschließenden Episode die Verwendung der aktualisierten Richtlinienparameter anstelle der ersetzten Richtlinienparameter umfasst.
  14. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 13, das ferner umfasst: Erzeugen von weiter aktualisierten Richtlinienparametern durch einen oder mehrere zusätzliche Prozessoren und während der Durchführung der anschließenden Episode, wobei das Erzeugen der weiter aktualisierten Richtlinienparameter auf einer oder mehreren der ersten Instanzen von Robotererfahrungsdaten basiert, die während der ersten Episode erzeugt werden; und Bereitstellen der weiter aktualisierten Richtlinienparameter für die Verwendung durch den zusätzlichen Roboter bei der Durchführung einer entsprechenden Episode durch den zusätzlichen Roboter.
  15. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 14, wobei der zusätzliche Roboter die Durchführung der entsprechenden Episode während der Durchführung der anschließenden Episode durch den gegebenen Roboter startet.
  16. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 14, wobei die weiter aktualisierten Richtlinienparameter durch den gegebenen Roboter bei der Durchführung von irgendwelchen Episoden durch den gegebenen Roboter nicht verwendet werden.
  17. Nichttransitorisches computerlesbares Speichermedium nach einem der Ansprüche 14-16, das ferner umfasst: Erzeugen von noch weiter aktualisierten Richtlinienparametern durch einen oder mehrere zusätzliche Prozessoren, wobei die noch weiter aktualisierten Richtlinienparameter während der Durchführung der anschließenden Episode erzeugt werden und im Anschluss an die Erzeugung der weiter aktualisierten Richtlinienparameter erzeugt werden; und Bereitstellen der noch weiter aktualisierten Richtlinienparameter für die Verwendung durch den gegebenen Roboter bei der Durchführung einer weiteren anschließenden Episode der Durchführung der Aufgabe auf der Basis des Richtliniennetzes durch den gegebenen Roboter; wobei die weitere anschließende Episode unmittelbar der anschließenden Episode folgt.
  18. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 17, wobei der gegebene Roboter die Durchführung der weiteren anschließenden Episode während der Durchführung der entsprechenden Episode durch den zusätzlichen Roboter startet.
  19. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 17, wobei die aktualisierten Richtlinienparameter und die noch weiter aktualisierten Richtlinienparameter durch den zusätzlichen Roboter bei der Durchführung von irgendwelchen Episoden durch den zusätzlichen Roboter nicht verwendet werden.
  20. Nichttransitorisches computerlesbares Speichermedium nach einem der Ansprüche 13-18, wobei die aktualisierten Richtlinienparameter durch den zusätzlichen Roboter bei der Durchführung von irgendwelchen Episoden durch den zusätzlichen Roboter nicht verwendet werden.
  21. Nichttransitorisches computerlesbares Speichermedium nach einem der Ansprüche 13-20, wobei das Richtliniennetz ein neuronales Netzmodell umfasst.
  22. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 21, wobei jeder der aktualisierten Richtlinienparameter einen entsprechenden Wert für einen entsprechenden Knoten einer entsprechenden Schicht des neuronalen Netzmodells definiert.
  23. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 13, das ferner während der Durchführung der gegebenen Episode der Durchführung der Aufgabe umfasst: Bestimmen einer Verletzung von einem oder mehreren Kriterien für den gegebenen Roboter in einer gegebenen Iteration einer Ausgabe aus dem Richtliniennetz; Modifizieren der Ausgabe der gegebenen Iteration, so dass das eine oder die mehreren Kriterien nicht mehr verletzt werden; und Erzeugen einer gegebenen Instanz der Instanzen von Erfahrungsdaten auf der Basis der modifizierten Ausgabe.
  24. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 23, wobei die Kriterien eines oder mehrere von Gelenkpositionsgrenzen, Gelenkgeschwindigkeitsgrenzen und Endeffektorpositionsgrenzen umfassen.
  25. Nichttransitorisches computerlesbares Speichermedium nach einem der Ansprüche 13-24, das ferner umfasst: Erzeugen einer gegebenen Untersuchung der Untersuchungen während der gegebenen Episode durch: Anwenden einer aktuellen Zustandsdarstellung als Eingabe auf das Richtliniennetz, wobei die aktuelle Zustandsdarstellung einen aktuellen Zustand zumindest des gegebenen Roboters angibt, Erzeugen einer Ausgabe durch Verarbeiten der Eingabe unter Verwendung des Richtliniennetzes; und Liefern von Steuerbefehlen zu einem oder mehreren Aktuatoren des gegebenen Roboters auf der Basis der Ausgabe.
  26. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 25, wobei das Liefern der Steuerbefehle zu den Aktuatoren auf der Basis der Ausgabe umfasst: Erzeugen einer modifizierten Ausgabe durch Hinzufügen von Rauschen zur Ausgabe; und Liefern der Steuerbefehle auf der Basis der modifizierten Ausgabe.
  27. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 25, wobei die Ausgabe eine Geschwindigkeit oder ein Drehmoment für jeden von mehreren Aktuatoren des Roboters umfasst, und wobei das Liefern der Steuerbefehle das Liefern der Steuerbefehle so, dass die Aktuatoren die Geschwindigkeiten oder Drehmomente anwenden, umfasst.
  28. Nichttransitorisches computerlesbares Speichermedium nach einem der Ansprüche 13-27, wobei jede der ersten Instanzen der Erfahrungsdaten einen entsprechenden Roboteranfangszustand, anschließenden Roboterzustand, in den vom Roboteranfangszustand übergegangen wird, eine Handlung, die ausgeführt wird, um vom Roboteranfangszustand in den anschließenden Roboterzustand überzugehen, und eine Belohnung für die Handlung angibt.
  29. Nichttransitorisches computerlesbares Speichermedium, das durch einen oder mehrere Prozessoren implementiert wird, das umfasst: Empfangen einer gegebenen Instanz von Robotererfahrungsdaten, die durch einen gegebenen Roboter von mehreren Robotern erzeugt werden, wobei die gegebene Instanz der Robotererfahrungsdaten während einer gegebenen Episode von Untersuchungen der Durchführung einer Aufgabe auf der Basis einer gegebenen Version von Richtlinienparametern eines Richtliniennetzes erzeugt wird, das vom gegebenen Roboter beim Erzeugen der gegebenen Instanz verwendet wird; Empfangen von zusätzlichen Instanzen von Robotererfahrungsdaten von zusätzlichen Robotern der mehreren Roboter, wobei die zusätzlichen Instanzen während Episoden von Untersuchungen der Durchführung der Aufgabe auf der Basis des Richtliniennetzes durch die zusätzlichen Roboter erzeugt werden; wobei der gegebene Roboter und die zusätzlichen Roboter die Episoden von Untersuchungen der Durchführung der Aufgabe fortsetzen, wobei eine neue Version der Richtlinienparameter des Richtliniennetzes auf der Basis des Trainings des Richtliniennetzes zumindest teilweise auf der Basis der gegebenen Instanz und der zusätzlichen Instanzen erzeugt wird; Liefern der neuen Version der Richtlinienparameter zum gegebenen Roboter zum Durchführen einer unmittelbar anschließenden Episode von Untersuchungen der Durchführung der Aufgabe durch den gegebenen Roboter auf der Basis der neuen Version der Richtlinienparameter.
  30. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 30, wobei das Empfangen der gegebenen Instanz in einer Iteration von mehreren Erfahrungsdateniterationen des Empfangens von Instanzen von Erfahrungsdaten vom gegebenen Roboter stattfindet, wobei die mehreren Erfahrungsdateniterationen mit einer ersten Frequenz stattfinden.
  31. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 30, wobei das Training des Verstärkungsmodells, um die aktualisierten Parameter zu erzeugen, das Durchführen von mehreren Trainingsiterationen umfasst, die umfassen: eine erste Trainingsiteration zum Trainieren des Richtliniennetzes zumindest teilweise auf der Basis der gegebenen Instanz und der zusätzlichen Instanzen; und eine oder mehrere zusätzliche Trainingsiterationen zum Trainieren des Richtliniennetzes auf der Basis von noch weiteren Instanzen von Erfahrungsdaten von mehreren der Roboter; wobei die Trainingsiterationen mit einer zweiten Frequenz stattfinden, die eine größere Frequenz als die Erfahrungsdateniterationen ist.
  32. Nichttransitorisches computerlesbares Speichermedium, auf dem Anweisungen gespeichert sind, wobei die Anweisungen, wenn sie durch einen oder mehrere Prozessoren ausgeführt werden, bewirken, dass der eine oder die mehreren Prozessoren Schritte durchführen, die umfassen: iteratives Empfangen von Instanzen von Erfahrungsdaten, die durch mehrere Roboter erzeugt werden, die asynchron und gleichzeitig arbeiten, wobei jede der Instanzen von Erfahrungsdaten durch einen entsprechenden Roboter der mehreren Roboter während einer entsprechenden Episode der Aufgabenuntersuchung auf der Basis eines neuronalen Richtliniennetzes erzeugt wird; iteratives Trainieren des Richtliniennetzes auf der Basis der empfangenen Erfahrungsdaten von den mehreren Robotern, um einen oder mehrere aktualisierte Parameter des Richtliniennetzes in jeder der Trainingsiterationen zu erzeugen; und iteratives und asynchrones Liefern von Instanzen der aktualisierten Parameter zu den Robotern zum Aktualisieren der neuronalen Richtliniennetze der Roboter vor den Episoden von Aufgabenuntersuchungen, auf denen die Instanzen von Erfahrungsdaten basieren.
  33. Nichttransitorisches computerlesbares Speichermedium nach einem der Ansprüche 1-12, das ferner umfasst: Erzeugen von einem oder mehreren Bewegungsbefehlen unter Verwendung der aktualisierten Richtlinienparameter einer jüngsten Iteration des iterativen Erzeugens der aktualisierten Richtlinienparameter, um zu bewirken, dass ein oder mehrere Aktuatoren von mindestens einem der mehreren Roboter sich bewegen und eine Handlung bewirken.
  34. Nichttransitorisches computerlesbares Speichermedium nach einem der Ansprüche 29-31, das ferner umfasst: Durchführen einer unmittelbar anschließenden Episode von Untersuchungen der Durchführung der Aufgabe durch den gegebenen Roboter auf der Basis der neuen Version der Richtlinienparameter durch den gegebenen Roboter.
  35. Nichttransitorisches computerlesbares Speichermedium nach Anspruch 32, das ferner umfasst: Durchführen der Episoden von Aufgabenuntersuchungen an den Robotern, auf denen die Instanzen von Erfahrungsdaten basieren.
  36. Gerät mit einem oder mehreren Prozessoren, wobei bewirkt wird, dass der eine oder die mehreren Prozessoren die Schritte von irgendeinem der vorangehenden Ansprüche durchführen.
DE202017105598.1U 2016-09-15 2017-09-15 System zum tiefen Verstärkungslernen für Robotermanipulation Active DE202017105598U1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201662395340P 2016-09-15 2016-09-15
US62/395,340 2016-09-15

Publications (1)

Publication Number Publication Date
DE202017105598U1 true DE202017105598U1 (de) 2018-05-24

Family

ID=59966886

Family Applications (1)

Application Number Title Priority Date Filing Date
DE202017105598.1U Active DE202017105598U1 (de) 2016-09-15 2017-09-15 System zum tiefen Verstärkungslernen für Robotermanipulation

Country Status (7)

Country Link
US (2) US11400587B2 (de)
EP (1) EP3504034A1 (de)
JP (1) JP6721785B2 (de)
KR (1) KR102211012B1 (de)
CN (2) CN109906132B (de)
DE (1) DE202017105598U1 (de)
WO (1) WO2018053187A1 (de)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102019213676B3 (de) * 2019-09-10 2020-09-17 Kuka Deutschland Gmbh Robotersteuerung
DE102019135810B3 (de) * 2019-12-27 2020-10-29 Franka Emika Gmbh Erzeugung eines Steuerprogramms für einen Robotermanipulator
DE102020106714A1 (de) * 2019-05-28 2020-12-03 Intel Corporation Methoden und geräte für komplexe montage über autonome roboter mit verstärkungs-lernaktionsprimitive
EP3748551A1 (de) * 2019-06-07 2020-12-09 Robert Bosch GmbH Verfahren, vorrichtung und computerprogramm zum einstellen eines hyperparameters
DE112019000097B4 (de) * 2018-10-15 2020-12-17 Mujin, Inc. Steuervorrichtung, Arbeitsroboter, Programm und Steuerverfahren
DE102020204388A1 (de) 2020-04-03 2021-10-07 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren und Vorrichtung zum Ansteuern eines Agenten
DE102020209685A1 (de) 2020-07-31 2022-02-03 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum steuern einer robotervorrichtung und robotervorrichtungssteuerung
DE102020210823A1 (de) 2020-08-27 2022-03-03 Robert Bosch Gesellschaft mit beschränkter Haftung Maschinen-Steueranordnung
DE102020214231A1 (de) 2020-11-12 2022-05-12 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum steuern einer robotervorrichtung und robotersteuereinrichtung
US11410023B2 (en) 2019-03-01 2022-08-09 International Business Machines Corporation Lexicographic deep reinforcement learning using state constraints and conditional policies
DE102019002065B4 (de) 2018-03-29 2022-10-13 Fanuc Corporation Maschinelle Lernvorrichtung, Robotersteuervorrichtung und Robotervisionssystem, das eine maschinelle Lernvorrichtung verwendet, und maschinelles Lernverfahren
DE102021204961A1 (de) 2021-05-17 2022-11-17 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zur Steuerung einer Robotervorrichtung
DE102021204846A1 (de) 2021-05-12 2022-11-17 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Steuern einer Robotervorrichtung
DE102021212494A1 (de) 2021-11-05 2023-05-11 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung und Verfahren zur Steuerung einer Robotervorrichtung
DE102019006725B4 (de) 2018-10-02 2023-06-01 Fanuc Corporation Steuereinrichtung und Steuersystem

Families Citing this family (108)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11841789B2 (en) 2016-01-27 2023-12-12 Microsoft Technology Licensing, Llc Visual aids for debugging
US11836650B2 (en) 2016-01-27 2023-12-05 Microsoft Technology Licensing, Llc Artificial intelligence engine for mixing and enhancing features from one or more trained pre-existing machine-learning models
US11775850B2 (en) * 2016-01-27 2023-10-03 Microsoft Technology Licensing, Llc Artificial intelligence engine having various algorithms to build different concepts contained within a same AI model
US10733531B2 (en) 2016-01-27 2020-08-04 Bonsai AI, Inc. Artificial intelligence engine having an architect module
US11868896B2 (en) 2016-01-27 2024-01-09 Microsoft Technology Licensing, Llc Interface for working with simulations on premises
CN109906132B (zh) 2016-09-15 2022-08-09 谷歌有限责任公司 机器人操纵的深度强化学习
US11062207B2 (en) * 2016-11-04 2021-07-13 Raytheon Technologies Corporation Control systems using deep reinforcement learning
CN117521725A (zh) * 2016-11-04 2024-02-06 渊慧科技有限公司 加强学习系统
CN117709426A (zh) * 2017-02-24 2024-03-15 渊慧科技有限公司 训练机器学习模型的方法、系统和计算机存储介质
EP3602419B1 (de) * 2017-04-28 2023-09-20 Google LLC Neuronale netzwerkoptimierersuche
JP2019057093A (ja) * 2017-09-20 2019-04-11 富士ゼロックス株式会社 情報処理装置及びプログラム
US10754308B2 (en) * 2017-11-09 2020-08-25 International Business Machines Corporation Decomposed perturbation approach using memory based learning for compliant assembly tasks
JP6680748B2 (ja) * 2017-11-17 2020-04-15 ファナック株式会社 制御装置及び機械学習装置
US11494632B1 (en) * 2017-12-07 2022-11-08 X Development Llc Generating simulated training examples for training of machine learning model used for robot control
JP7035734B2 (ja) * 2018-03-30 2022-03-15 富士通株式会社 強化学習プログラム、強化学習方法、および強化学習装置
JP7087632B2 (ja) * 2018-04-26 2022-06-21 セイコーエプソン株式会社 ロボット制御装置
WO2018172593A2 (es) * 2018-05-25 2018-09-27 Erle Robotics, S.L Método para integrar nuevos módulos en robots modulares, y un componente de robot del mismo
CN108481328B (zh) * 2018-06-04 2020-10-09 浙江工业大学 六关节工业机器人关节空间轨迹跟踪柔性迭代学习控制方法
US20210237266A1 (en) * 2018-06-15 2021-08-05 Google Llc Deep reinforcement learning for robotic manipulation
US20190385091A1 (en) * 2018-06-15 2019-12-19 International Business Machines Corporation Reinforcement learning exploration by exploiting past experiences for critical events
JP7398373B2 (ja) * 2018-07-04 2023-12-14 株式会社Preferred Networks 制御装置、システム、制御方法、及びプログラム
US11285607B2 (en) * 2018-07-13 2022-03-29 Massachusetts Institute Of Technology Systems and methods for distributed training and management of AI-powered robots using teleoperation via virtual spaces
WO2020029095A1 (zh) * 2018-08-07 2020-02-13 中国科学院深圳先进技术研究院 强化学习网络的训练方法、装置、训练设备及存储介质
US11823039B2 (en) 2018-08-24 2023-11-21 International Business Machines Corporation Safe and fast exploration for reinforcement learning using constrained action manifolds
US20200074241A1 (en) * 2018-09-04 2020-03-05 Kindred Systems Inc. Real-time real-world reinforcement learning systems and methods
US10821603B2 (en) 2018-09-05 2020-11-03 The Boeing Company Methods and apparatus for robot control
CN109212476B (zh) * 2018-09-18 2023-03-14 广西大学 一种基于ddpg的rfid室内定位算法
GB2577312B (en) * 2018-09-21 2022-07-20 Imperial College Innovations Ltd Task embedding for device control
US11292133B2 (en) * 2018-09-28 2022-04-05 Intel Corporation Methods and apparatus to train interdependent autonomous machines
KR102611952B1 (ko) * 2018-10-30 2023-12-11 삼성전자주식회사 로봇의 행동을 제어하는 정책을 갱신하는 방법 및 그 방법을 수행하는 전자 장치
US11292129B2 (en) * 2018-11-21 2022-04-05 Aivot, Llc Performance recreation system
CN111178099B (zh) * 2018-11-28 2023-03-10 腾讯科技(深圳)有限公司 一种文本翻译的方法以及相关装置
CN109657800A (zh) * 2018-11-30 2019-04-19 清华大学深圳研究生院 基于参数噪声的强化学习模型优化方法及装置
KR102619004B1 (ko) 2018-12-14 2023-12-29 삼성전자 주식회사 로봇 장치 및 로봇의 작업 기술을 학습하는 방법
KR102559552B1 (ko) * 2018-12-17 2023-07-26 한국전자통신연구원 다매체 다중경로 네트워크의 최적 경로 선택 시스템 및 그 방법
CN109760046A (zh) * 2018-12-27 2019-05-17 西北工业大学 基于强化学习的空间机器人捕获翻滚目标运动规划方法
CN109693239A (zh) * 2018-12-29 2019-04-30 深圳市越疆科技有限公司 一种基于深度强化学习的机器人抓取方法
US11787050B1 (en) * 2019-01-01 2023-10-17 Sanctuary Cognitive Systems Corporation Artificial intelligence-actuated robot
CN113677485A (zh) * 2019-01-23 2021-11-19 谷歌有限责任公司 使用基于元模仿学习和元强化学习的元学习的用于新任务的机器人控制策略的高效自适应
JPWO2020170304A1 (ja) * 2019-02-18 2021-12-02 日本電気株式会社 学習装置及び方法、予測装置及び方法、並びにプログラム
US11308362B2 (en) * 2019-03-26 2022-04-19 Shenzhen Keya Medical Technology Corporation Method and system for generating a centerline for an object, and computer readable medium
DE102019205359B4 (de) * 2019-04-12 2022-05-05 Robert Bosch Gmbh Verfahren und Vorrichtung zum Ansteuern einer technischen Einrichtung
KR102143757B1 (ko) * 2019-05-07 2020-08-12 오토시맨틱스 주식회사 딥러닝을 포함한 인공지능을 적용시킨 풍력 발전장치
EP3987478B1 (de) * 2019-06-21 2024-03-27 Services Pétroliers Schlumberger Feldentwicklungsplanung auf der grundlage von tiefem verstärkungslernen
CN110400345B (zh) * 2019-07-24 2021-06-15 西南科技大学 基于深度强化学习的放射性废物推抓协同分拣方法
KR20210012730A (ko) 2019-07-26 2021-02-03 삼성전자주식회사 인공지능 모델의 학습 방법 및 전자 장치
CA3088674A1 (en) * 2019-07-31 2021-01-31 Royal Bank Of Canada Devices and methods for reinforcement learning visualization using immersive environments
US11676064B2 (en) * 2019-08-16 2023-06-13 Mitsubishi Electric Research Laboratories, Inc. Constraint adaptor for reinforcement learning control
US11400592B2 (en) * 2019-08-19 2022-08-02 Wipro Limited Method and system for task execution in dynamic heterogeneous robotic environment
CN110333739B (zh) * 2019-08-21 2020-07-31 哈尔滨工程大学 一种基于强化学习的auv行为规划及动作控制方法
CN110394804B (zh) * 2019-08-26 2022-08-12 山东大学 一种基于分层线程框架的机器人控制方法、控制器及系统
JP7263980B2 (ja) * 2019-08-27 2023-04-25 富士通株式会社 強化学習方法、強化学習プログラム、および強化学習装置
CN110502034B (zh) * 2019-09-04 2022-08-09 中国人民解放军国防科技大学 一种基于深度强化学习的固定翼无人机群集控制方法
US11685045B1 (en) * 2019-09-09 2023-06-27 X Development Llc Asynchronous robotic control using most recently selected robotic action data
CN114423574A (zh) * 2019-09-15 2022-04-29 谷歌有限责任公司 确定针对机器人任务的环境调节的动作序列
DE102019214400A1 (de) * 2019-09-20 2021-03-25 Robert Bosch Gmbh Verfahren und Vorrichtung zum Trainieren eines künstlichen neuronalen Netzwerks
KR102233739B1 (ko) 2019-09-24 2021-03-31 한국생산기술연구원 강화학습과 인공신경망을 이용한 보행 로봇 자세 제어방법
US11389957B2 (en) * 2019-09-30 2022-07-19 Mitsubishi Electric Research Laboratories, Inc. System and design of derivative-free model learning for robotic systems
US20210125052A1 (en) * 2019-10-24 2021-04-29 Nvidia Corporation Reinforcement learning of tactile grasp policies
CN110728368B (zh) * 2019-10-25 2022-03-15 中国人民解放军国防科技大学 一种仿真机器人深度强化学习的加速方法
CN110930379B (zh) * 2019-11-18 2023-04-07 湖北工业大学 基于ddpg-ram算法的复杂光照条件下织物缺陷检测方法
US20210146531A1 (en) * 2019-11-20 2021-05-20 Nvidia Corporation Guided uncertainty-aware policy optimization: combining model-free and model-based strategies for sample-efficient learning
CN110929532B (zh) * 2019-11-21 2023-03-21 腾讯科技(深圳)有限公司 数据处理方法、装置、设备及存储介质
KR102281119B1 (ko) 2019-11-27 2021-07-26 한국생산기술연구원 강화학습을 이용한 7축 로봇 제어 방법
CN110909859B (zh) * 2019-11-29 2023-03-24 中国科学院自动化研究所 基于对抗结构化控制的仿生机器鱼运动控制方法、系统
CN111191399B (zh) * 2019-12-24 2021-11-05 北京航空航天大学 机器鱼的控制方法、装置、设备及存储介质
CN111223141B (zh) * 2019-12-31 2023-10-24 东华大学 基于强化学习的自动化流水线作业效率优化系统及方法
CN111263332A (zh) * 2020-03-02 2020-06-09 湖北工业大学 基于深度强化学习的无人机轨迹及功率联合优化方法
KR102327045B1 (ko) 2020-03-31 2021-11-15 한국외국어대학교 연구산학협력단 강화학습 기반의 분류기 학습 장치 및 방법
CN111716352B (zh) * 2020-05-13 2022-04-29 中国电力科学研究院有限公司 一种配电网带电作业机械臂导航避障方法及系统
CN111552183B (zh) * 2020-05-17 2021-04-23 南京大学 一种基于自适应权重强化学习的六足机器人避障方法
CN111633647B (zh) * 2020-05-26 2021-06-22 山东大学 一种基于深度强化学习的多模融合机器人缝制方法及系统
CN112327821A (zh) * 2020-07-08 2021-02-05 东莞市均谊视觉科技有限公司 一种基于深度强化学习的智能清洁机器人路径规划方法
CN112171660B (zh) * 2020-08-18 2021-11-23 南京航空航天大学 一种基于深度强化学习的空间双臂系统约束运动规划方法
TWI739604B (zh) * 2020-09-18 2021-09-11 英業達股份有限公司 訓練機器動物的運動控制器的方法
US20220105626A1 (en) * 2020-10-05 2022-04-07 Autodesk, Inc. Techniques for force and torque-guided robotic assembly
US20220134537A1 (en) * 2020-10-29 2022-05-05 Nvidia Corporation Transformation of joint space coordinates using machine learning
US20220143819A1 (en) * 2020-11-10 2022-05-12 Google Llc System and methods for training robot policies in the real world
CN112356031B (zh) * 2020-11-11 2022-04-01 福州大学 一种基于Kernel采样策略在不确定性环境下的在线规划方法
CN112338921A (zh) * 2020-11-16 2021-02-09 西华师范大学 一种基于深度强化学习的机械臂智能控制快速训练方法
CN112498334B (zh) * 2020-12-15 2022-03-11 清华大学 智能网联混合动力汽车的鲁棒能量管理方法及系统
CN114684293B (zh) * 2020-12-28 2023-07-25 成都启源西普科技有限公司 一种机器人行走仿真算法
CN112801149A (zh) * 2021-01-15 2021-05-14 江苏大学 一种基于深度强化学习的多车队列控制方法
CN112801290B (zh) * 2021-02-26 2021-11-05 中国人民解放军陆军工程大学 一种多智能体深度强化学习方法、系统及应用
CN112975977B (zh) * 2021-03-05 2022-08-09 西北大学 一种高效的机械臂抓取深度强化学习奖励训练方法及系统
CN113093727B (zh) * 2021-03-08 2023-03-28 哈尔滨工业大学(深圳) 一种基于深度安全强化学习的机器人无地图导航方法
CN113128699B (zh) * 2021-03-12 2022-11-15 合肥工业大学 快速收敛的多无人机协同对抗强化学习方法
EP4075337A1 (de) 2021-03-15 2022-10-19 Honeywell Limited Prozesssteuerung mit meta-verstärkungslernen
US20220305649A1 (en) * 2021-03-25 2022-09-29 Naver Corporation Reachable manifold and inverse mapping training for robots
CN112990361B (zh) * 2021-04-20 2021-07-27 北京动亮健康科技有限公司 基于Q-Learning算法的调整运动速度的方法、跑步机及提示装置
CN113135532B (zh) * 2021-05-12 2022-03-11 吉林大学 一种自平衡高空作业台及其控制方法
CN113326872A (zh) * 2021-05-19 2021-08-31 广州中国科学院先进技术研究所 一种多机器人轨迹规划方法
CN113290557A (zh) * 2021-05-21 2021-08-24 南京信息工程大学 一种基于数据驱动的蛇形机器人控制方法
CN113340324B (zh) * 2021-05-27 2022-04-29 东南大学 一种基于深度确定性策略梯度的视觉惯性自校准方法
US11845190B1 (en) * 2021-06-02 2023-12-19 Google Llc Injecting noise into robot simulation
CN113467248A (zh) * 2021-07-22 2021-10-01 南京大学 基于强化学习的无人机传感器故障时容错控制方法
KR102346900B1 (ko) 2021-08-05 2022-01-04 주식회사 애자일소다 픽 앤 플레이스 시스템을 위한 심층 강화학습 장치 및 방법
CN113524196A (zh) * 2021-08-10 2021-10-22 南京深一科技有限公司 一种基于平面视觉深度强化学习的机械臂抓取控制方法
CN113459109B (zh) * 2021-09-03 2021-11-26 季华实验室 机械臂路径规划方法、装置、电子设备及存储介质
CN113967909B (zh) * 2021-09-13 2023-05-16 中国人民解放军军事科学院国防科技创新研究院 基于方向奖励的机械臂智能控制方法
US20230109398A1 (en) * 2021-10-06 2023-04-06 Giant.Ai, Inc. Expedited robot teach-through initialization from previously trained system
KR20230061612A (ko) 2021-10-28 2023-05-09 아이둡 주식회사 머신 러닝을 이용한 물체의 피킹 자동화 시스템 및 그 제어 방법
KR20230093933A (ko) 2021-12-20 2023-06-27 주식회사 현대케피코 가속도센서를 이용한 보행 로봇의 강화 학습 방법
CN114454160B (zh) * 2021-12-31 2024-04-16 中国人民解放军国防科技大学 基于核最小二乘软贝尔曼残差强化学习的机械臂抓取控制方法及系统
KR102631984B1 (ko) * 2022-02-14 2024-01-30 경희대학교 산학협력단 사람형 로봇 손의 처리 시스템
CN114734443B (zh) * 2022-04-27 2023-08-04 东南大学 基于生成对抗模仿学习的人机协作机器人技能识别方法
CN114905510B (zh) * 2022-04-29 2023-07-28 南京邮电大学 基于自适应近端优化的机器人动作方法
CN114721409B (zh) * 2022-06-08 2022-09-20 山东大学 一种基于强化学习的水下航行器对接控制方法

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005238422A (ja) 2004-02-27 2005-09-08 Sony Corp ロボット装置、並びにその状態遷移モデル構築方法及び行動制御方法
DE602005006126T2 (de) * 2004-06-15 2009-07-02 Abb Ab Verfahren und system zur off-line-programmierung von mehreren interagierenden robotern
WO2006062948A2 (en) * 2004-12-06 2006-06-15 Honda Motor Co., Ltd. Interface for robot motion control
US7454388B2 (en) * 2005-05-07 2008-11-18 Thaler Stephen L Device for the autonomous bootstrapping of useful information
US11159909B2 (en) * 2008-02-05 2021-10-26 Victor Thomas Anderson Wireless location establishing device
US8805110B2 (en) * 2008-08-19 2014-08-12 Digimarc Corporation Methods and systems for content processing
JP2011204036A (ja) 2010-03-25 2011-10-13 Institute Of National Colleges Of Technology Japan 経験強化型強化学習システム、経験強化型強化学習方法および経験強化型強化学習プログラム
CN102402712B (zh) * 2011-08-31 2014-03-05 山东大学 基于神经网络的机器人强化学习初始化方法
US8788439B2 (en) 2012-12-21 2014-07-22 InsideSales.com, Inc. Instance weighted learning machine learning model
US9056396B1 (en) * 2013-03-05 2015-06-16 Autofuss Programming of a robotic arm using a motion capture system
US9776325B1 (en) * 2013-03-13 2017-10-03 Hrl Laboratories, Llc Method for tele-robotic operations over time-delayed communication links
WO2014190208A2 (en) * 2013-05-22 2014-11-27 Neurala, Inc. Methods and apparatus for early sensory integration and robust acquisition of real world knowledge
US9186795B1 (en) * 2013-06-24 2015-11-17 Redwood Robotics, Inc. Programming and execution of force-based tasks with torque-controlled robot arms
US9679258B2 (en) 2013-10-08 2017-06-13 Google Inc. Methods and apparatus for reinforcement learning
US9533413B2 (en) * 2014-03-13 2017-01-03 Brain Corporation Trainable modular robotic apparatus and methods
US9302393B1 (en) * 2014-04-15 2016-04-05 Alan Rosen Intelligent auditory humanoid robot and computerized verbalization system programmed to perform auditory and verbal artificial intelligence processes
US10445641B2 (en) * 2015-02-06 2019-10-15 Deepmind Technologies Limited Distributed training of reinforcement learning systems
US9855658B2 (en) * 2015-03-19 2018-01-02 Rahul Babu Drone assisted adaptive robot control
US9676098B2 (en) * 2015-07-31 2017-06-13 Heinz Hemken Data collection from living subjects and controlling an autonomous robot using the data
US9981381B1 (en) * 2016-06-08 2018-05-29 X Development Llc Real time generation of phase synchronized trajectories
CN109906132B (zh) * 2016-09-15 2022-08-09 谷歌有限责任公司 机器人操纵的深度强化学习
EP3566824B1 (de) * 2018-05-11 2023-06-28 Siemens Aktiengesellschaft Verfahren, vorrichtung, computerlesbare speichermedien und computerprogramm zur roboterprogrammierung
US11554482B2 (en) * 2020-07-16 2023-01-17 Hitachi, Ltd. Self-learning industrial robotic system

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102019002065B4 (de) 2018-03-29 2022-10-13 Fanuc Corporation Maschinelle Lernvorrichtung, Robotersteuervorrichtung und Robotervisionssystem, das eine maschinelle Lernvorrichtung verwendet, und maschinelles Lernverfahren
DE102019006725B4 (de) 2018-10-02 2023-06-01 Fanuc Corporation Steuereinrichtung und Steuersystem
DE112019001256B3 (de) 2018-10-15 2022-08-18 Mujin, Inc. Steuervorrichtung, Arbeitsroboter, Programm und Steuerverfahren
US11839977B2 (en) 2018-10-15 2023-12-12 Mujin, Inc. Control apparatus, work robot, non-transitory computer-readable medium, and control method
DE112019000097B4 (de) * 2018-10-15 2020-12-17 Mujin, Inc. Steuervorrichtung, Arbeitsroboter, Programm und Steuerverfahren
US11045948B2 (en) 2018-10-15 2021-06-29 Mujin, Inc. Control apparatus, work robot, non-transitory computer-readable medium, and control method
US11410023B2 (en) 2019-03-01 2022-08-09 International Business Machines Corporation Lexicographic deep reinforcement learning using state constraints and conditional policies
US11345030B2 (en) 2019-05-28 2022-05-31 Intel Corporation Methods and apparatus for complex assembly via autonomous robots using reinforcement learning action primitives
DE102020106714B4 (de) 2019-05-28 2023-12-14 Intel Corporation Vorrichtung, Gerät, Verfahren und computerlesbares Speichermedium für komplexe Montagen mittels autonomer Roboter unter Verwendung von bestärktes Lernen-Aktions-Primitiven
DE102020106714A1 (de) * 2019-05-28 2020-12-03 Intel Corporation Methoden und geräte für komplexe montage über autonome roboter mit verstärkungs-lernaktionsprimitive
EP3748551A1 (de) * 2019-06-07 2020-12-09 Robert Bosch GmbH Verfahren, vorrichtung und computerprogramm zum einstellen eines hyperparameters
DE102019213676B3 (de) * 2019-09-10 2020-09-17 Kuka Deutschland Gmbh Robotersteuerung
DE102019135810B3 (de) * 2019-12-27 2020-10-29 Franka Emika Gmbh Erzeugung eines Steuerprogramms für einen Robotermanipulator
WO2021130193A1 (de) * 2019-12-27 2021-07-01 Franka Emika Gmbh Erzeugung eines steuerprogramms für einen robotermanipulator
DE102020204388A1 (de) 2020-04-03 2021-10-07 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren und Vorrichtung zum Ansteuern eines Agenten
DE102020209685A1 (de) 2020-07-31 2022-02-03 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum steuern einer robotervorrichtung und robotervorrichtungssteuerung
US11759947B2 (en) 2020-07-31 2023-09-19 Robert Bosch Gmbh Method for controlling a robot device and robot device controller
DE102020209685B4 (de) 2020-07-31 2023-07-06 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum steuern einer robotervorrichtung und robotervorrichtungssteuerung
DE102020210823A1 (de) 2020-08-27 2022-03-03 Robert Bosch Gesellschaft mit beschränkter Haftung Maschinen-Steueranordnung
DE102020214231A1 (de) 2020-11-12 2022-05-12 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum steuern einer robotervorrichtung und robotersteuereinrichtung
DE102021204846B4 (de) 2021-05-12 2023-07-06 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Steuern einer Robotervorrichtung
DE102021204846A1 (de) 2021-05-12 2022-11-17 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Steuern einer Robotervorrichtung
DE102021204961A1 (de) 2021-05-17 2022-11-17 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zur Steuerung einer Robotervorrichtung
DE102021204961B4 (de) 2021-05-17 2023-06-07 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zur Steuerung einer Robotervorrichtung
DE102021212494A1 (de) 2021-11-05 2023-05-11 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung und Verfahren zur Steuerung einer Robotervorrichtung

Also Published As

Publication number Publication date
US20220388159A1 (en) 2022-12-08
KR20190040506A (ko) 2019-04-18
US11897133B2 (en) 2024-02-13
KR102211012B1 (ko) 2021-02-03
EP3504034A1 (de) 2019-07-03
US11400587B2 (en) 2022-08-02
WO2018053187A1 (en) 2018-03-22
CN109906132A (zh) 2019-06-18
CN109906132B (zh) 2022-08-09
US20190232488A1 (en) 2019-08-01
JP6721785B2 (ja) 2020-07-15
JP2019529135A (ja) 2019-10-17
CN115338859A (zh) 2022-11-15

Similar Documents

Publication Publication Date Title
DE202017105598U1 (de) System zum tiefen Verstärkungslernen für Robotermanipulation
DE202017106506U1 (de) Einrichtung für tiefes Maschinenlernen zum Robotergreifen
DE112017002799B4 (de) Verfahren und system zum generieren multimodaler digitaler bilder
DE102018000730B4 (de) Werkstückaufnahmevorrichtung und Werkstückaufnahmeverfahren zum Verbessern des Aufnahmevorgangs eines Werkstücks
DE102014108287B4 (de) Schnelles Erlernen durch Nachahmung von Kraftdrehmoment-Aufgaben durch Roboter
DE102010053002B4 (de) Systeme und Verfahren, die der Handhabung eines Ojekts mit einem Greifer zugeordnet sind
DE102018215057A1 (de) Maschinelles-lernen-vorrichtung, robotersystem und maschinelles-lernen-verfahren
DE102010021607B4 (de) Kontaktzustandsschätzung für Roboterhände mit mehreren Fingern unter Verwendung von Partikel-Filtern
DE102021121063A1 (de) Effiziente datengenerierung für das greifenlernen mit allgemeinen greifern
DE112013002018T5 (de) Echtzeithaltungs- und Bewegungsvorhersage bei der Ausführung von Betriebsaufgaben
DE112006003728T5 (de) Verfahren zum Simulieren eines deformierbaren Objekts unter Verwenden eines geometrisch motivierten Models
DE102008031526A1 (de) Verfahren zum Aufbau einer Datenstruktur die bei einer nächste-Teilchen-Suche verwendet wird, Programm für dieselbe, und Speichermedium zum Speichern des Programms
DE102020209685B4 (de) Verfahren zum steuern einer robotervorrichtung und robotervorrichtungssteuerung
DE112018002565T5 (de) System und Verfahren zum direkten Anlernen eines Roboters
EP3272468B1 (de) Verfahren und vorrichtung zum steuern einer roboterbewegung eines roboters anhand einer zweiten trajektorie
DE102019134665B3 (de) Kalibrieren eines virtuellen Kraftsensors eines Robotermanipulators
EP3760390A1 (de) Durchführen einer vorgegebenen aufgabe mithilfe wenigstens eines roboters
DE112022001108T5 (de) Systeme, vorrichtungen und verfahren für universalroboter
DE112020006315T5 (de) Robotersteuervorrichtung, robotersteuerverfahren und vorrichtung zur erzeugung von lernmodellen
US20240131695A1 (en) Deep reinforcement learning for robotic manipulation
DE102021209646B4 (de) Robotervorrichtung, Verfahren zum computerimplementierten Trainieren eines Roboter-Steuerungsmodells und Verfahren zum Steuern einer Robotervorrichtung
DE102021209761A1 (de) Verfahren zum Trainieren einer Steuerungsstrategie
DE102022204009A1 (de) Verfahren und Einrichtung zur Bestimmung der 6D-Geste eines Objekts
DE102021200569A1 (de) Vorrichtung und Verfahren zum Trainieren eines Gaußprozess-Zustandsraummodells
DE102023125179A1 (de) Ki-basierte steuerung für robotiksysteme und anwendungen

Legal Events

Date Code Title Description
R082 Change of representative

Representative=s name: BETTEN & RESCH PATENT- UND RECHTSANWAELTE PART, DE

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