DE102021204846A1 - Verfahren zum Steuern einer Robotervorrichtung - Google Patents

Verfahren zum Steuern einer Robotervorrichtung Download PDF

Info

Publication number
DE102021204846A1
DE102021204846A1 DE102021204846.3A DE102021204846A DE102021204846A1 DE 102021204846 A1 DE102021204846 A1 DE 102021204846A1 DE 102021204846 A DE102021204846 A DE 102021204846A DE 102021204846 A1 DE102021204846 A1 DE 102021204846A1
Authority
DE
Germany
Prior art keywords
image
action
action parameter
feature space
pixel
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.)
Granted
Application number
DE102021204846.3A
Other languages
English (en)
Other versions
DE102021204846B4 (de
Inventor
Anh Vien Ngo
Hanna Ziesche
Zohar Feldman
Dotan Di Castro
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102021204846.3A priority Critical patent/DE102021204846B4/de
Priority to US17/661,041 priority patent/US20220375210A1/en
Priority to CN202210508385.7A priority patent/CN115338856A/zh
Publication of DE102021204846A1 publication Critical patent/DE102021204846A1/de
Application granted granted Critical
Publication of DE102021204846B4 publication Critical patent/DE102021204846B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • 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
    • 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/0464Convolutional networks [CNN, ConvNet]
    • 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/092Reinforcement learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/52Surveillance or monitoring of activities, e.g. for recognising suspicious objects
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1612Programme controls characterised by the hand, wrist, grip control
    • GPHYSICS
    • 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/50Machine tool, machine tool null till machine tool work handling
    • G05B2219/50391Robot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/06Recognition of objects for industrial automation

Landscapes

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

Abstract

Gemäß verschiedenen Ausführungsformen wird ein Verfahren zum Steuern einer Robotervorrichtung beschrieben, das aufweist: Beschaffen eines Bildes von einer Umgebung der Robotervorrichtung, Verarbeiten des Bildes mittels eines neuronalen Konvolutionsnetzwerks, das ein Bild in einem Merkmalsraum aus dem Bild erzeugt, wobei das Bild im Merkmalsraum für jeden Pixel zumindest einer Teilmenge der Pixel des Bildes einen Vektor in dem Merkmalsraum aufweist, Zuführen des Bilds im Merkmalsraum zu einem neuronalen Actor-Netzwerk, das aus dem Bild im Merkmalsraum ein Aktions-Parameter-Bild erzeugt, wobei das Aktions-Parameter-Bild für jeden der Pixel einen Satz von Aktionsparameterwerten für eine Aktion der Robotervorrichtung aufweist, Zuführen des Bilds im Merkmalsraum und des Aktions-Parameter-Bilds zu einem neuronalen Critic-Netzwerk, das ein Bewertungs-Bild erzeugt, das für jeden Pixel eine Bewertung für die durch den Satz von Aktionsparameterwerten für den Pixel definierte Aktion aufweist, Auswählen, aus mehreren Sätzen von Aktionsparametern des Aktions-Parameter-Bilds, desjenigen Satzes von Aktionsparameterwerten mit der höchsten Bewertung und Steuern des Roboters zum Ausführen einer Aktion gemäß dem ausgewählten Aktions-Parameter-Satz.

Description

  • Stand der Technik
  • Die vorliegende Offenbarung bezieht sich auf Verfahren zum Steuern einer Robotervorrichtung.
  • Das Aufnehmen eines Objekts aus einem geöffneten Behälter, wie einer Kiste oder einer Schachtel ist eine häufige Aufgabe für einen Roboter in der Industrie, z.B. an einem Fließband. Eine grundlegende atomare Aufgabe für den Roboter ist hierbei das Greifen. Wenn das Greifen gelingt, kann der Roboter auch die komplexere Manipulationsaufgabe des Aufnehmens aus einem Behälter (und ggf. Ablegens) durchführen. Besonders schwierig ist es, wenn mehrere Objekte in dem Behälter platziert sind und der Roboter alle Objekte aus dem Behälter zu entnehmen soll und an einer Zielposition ablegen soll. Darüber hinaus können viele andere technische Herausforderungen auftreten, die zu bewältigen sind, wie Rauschen und Verdeckungen in der Wahrnehmung, Objektbehinderungen und Kollisionen in der Bewegungsplanung. Daher sind robuste Verfahren zum Steuern eines Roboters zum Aufnehmen von Objekten aus einem Behälter wünschenswert.
  • Offenbarung der Erfindung
  • Gemäß verschiedenen Ausführungsformen wird ein Verfahren zum Steuern einer Robotervorrichtung bereitgestellt, das aufweist: Beschaffen eines Bildes von einer Umgebung der Robotervorrichtung, Verarbeiten des Bildes mittels eines neuronalen Konvolutionsnetzwerks, das ein Bild in einem Merkmalsraum aus dem Bild erzeugt, wobei das Bild im Merkmalsraum für jeden Pixel zumindest einer Teilmenge des Bildes einen Vektor im Merkmalsraum aufweist, Zuführen des Bildes im Merkmalsraum zu einem neuronalen Actor-Netzwerk, das aus dem Bild im Merkmalsraum eine Abbildung auf Aktions-Parameter erzeugt, wobei die Abbildung für jeden der Pixel einen Satz von Aktionsparameterwerten für eine Aktion der Robotervorrichtung aufweist, Zuführen des Bildes im Merkmalsraum und des Aktions-Parameter-Bilds zu einem neuronalen Critic-Netzwerk, das ein Bewertungs-Bild erzeugt, das für jeden Pixel eine Bewertung für die durch den Satz von Aktionsparameterwerten für den Pixel definierte Aktion aufweist, Auswählen, aus mehreren Sätzen von Aktionsparametern des Aktions-Parameter-Bilds, desjenigen Satzes von Aktionsparameterwerten mit der höchsten Bewertung und Steuern des Roboters zum Ausführen einer Aktion gemäß dem ausgewählten Aktions-Parameter-Satz.
  • Mittels des obigen Steuerverfahrens kann es vermieden werden, dass für kontinuierliche Parameter einer Aktion der Robotervorrichtung (z.B. einer Roboterfertigkeit wie ein Greifen) eine Diskretisierung vorgenommen wird. Dies ermöglicht Berechnungen und Speichereffizienz während des Trainings und die Verallgemeinerung von Trainings-Szenarien auf ähnliche Szenarien. Außerdem ermöglicht es die obige Herangehensweise Parameter für Fertigkeiten oder Aktionsprimitive hinzuzufügen und dabei den mit der Diskretisierung einhergeneden „Fluch der Dimensionalität‟ zu vermeiden. Dies ermöglicht das effiziente Arbeiten mit Aktionen mit einer hohen Anzahl von Freiheitsgraden. Mit anderen Worten skaliert gemäß verschiedenen Ausführungsformen die Ausgabe des neuronalen Netzes (auf dessen Grundlage die Aktions-Parameter für die Steuerung ausgewählt werden) linear mit der Dimensionalität der Aktionen, anstatt exponentiell anzusteigen, wie es typischerweise der Fall ist, wenn alle Parameter diskretisiert werden.
  • Das Zuführen des Bilds im Merkmalsraum und des Aktions-Parameter-Bilds zu dem neuronalen Critic-Netzwerk kann eine Vorverarbeitung aufweisen, um die Formate der beiden Bilder aneinander anzupassen und die beiden Bilder miteinander zu verknüpfen oder zu kombinieren.
  • Da die Aktion eine einfach Aktion im Laufe einer größeren Aufgabe sein kann, wird sie in der Folgenden Beschreibung auch als Aktionsprimitiv bezeichnet.
  • Im Folgenden werden verschiedene Ausführungsbeispiele angegeben.
  • Ausführungsbeispiel 1 ist das oben beschriebene Verfahren zum Steuern einer Robotervorrichtung.
  • Ausführungsbeispiel 2 ist das Verfahren nach Ausführungsbeispiel 1, wobei der Roboter gesteuert wird, die Aktion an einer horizontalen Position auszuführen, die durch die Position des Pixels in dem Bild gegeben ist, für den das Aktions-Parameter-Bild den ausgewählten Satz von Aktionsparameterwerten aufweist.
  • Damit wird eine Mischung von diskreten Aktionsparametern (horizontale Pixelpositionen) und kontinuierlichen Aktionsparametern (vom Actor-Netzwerk bestimmte Sätze von Aktionsparameterwerten) erreicht. Der „Fluch der Dimensionalität“ bleibt dabei begrenzt, da nur die Position in der Ebene diskretisiert wird.
  • Ausführungsbeispiel 3 ist das Verfahren nach Ausführungsbeispiel 1 oder 2, wobei das Bild ein Tiefenbild ist und der Roboter gesteuert wird, die Aktion an einer vertikalen Position auszuführen, der durch die Tiefeninformation des Bildes für den Pixel gegeben ist, für den das Aktions-Parameter-Bild den ausgewählten Satz von Aktionsparameterwerten aufweist.
  • Damit wird die Tiefeninformation aus dem Tiefenbild direkt als Aktionsparameterwert verwendet und kann beispielsweise angeben, in welcher Höhe ein Roboterarm mit seinem Greifer zugreifen soll.
  • Ausführungsbeispiel 4 ist das Verfahren nach einem der Ausführungsbeispiele 1 bis 3, wobei das Bild ein oder mehrere Objekte zeigt, wobei die Aktion ein Greifen oder ein Schieben eines Objekts durch einen Roboterarm ist.
  • Insbesondere in einem solchen „Bin-Picking“-Szenario eignet sich die oben beschriebene Herangehensweise, da hier diskrete Positionen und kontinuierliche Greifer-Orientierungen (und auch Schiebedistanzen und -richtungen) genommen werden können.
  • Ausführungsbeispiel 5 ist das Verfahren nach einem der Ausführungsbeispiele 1 bis 4, aufweisend, für jeden Aktionstyp mehrerer Aktionstypen,
    Verarbeiten des Bildes mittels eines neuronalen Konvolutionsnetzwerks, das ein Bild im Merkmalsraum aus dem Bild erzeugt, wobei das Bild im Merkmalsraum für jeden zumindest einer Teilmenge der Pixel des Bildes einen Vektor in dem Merkmalsraum aufweist;
    Zuführen des Bilds im Merkmalsraum zu einem neuronalen Actor-Netzwerk, das aus dem Bild im Merkmalsraum ein Aktions-Parameter-Bild erzeugt, wobei das Aktions-Parameter-Bild für jeden der Pixel einen Satz von Aktionsparameterwerten für eine Aktion des Aktionstyps aufweist; und Zuführen des Bilds im Merkmalsraum und des Aktions-Parameter-Bilds zu einem neuronalen Critic-Netzwerk, das ein Bewertungs-Bild erzeugt, das für jeden Pixel eine Bewertung für die durch den Satz von Aktionsparameterwerten für den Pixel
    definierte Aktion aufweist; und
    Auswählen, aus mehreren Sätzen von Aktionsparametern der Aktions-Parameter-Bilder für verschiedene der mehreren Aktionstypen, desjenigen Satzes von Aktionsparameterwerten mit der höchsten Bewertung und Steuern des Roboters zum Ausführen einer Aktion gemäß dem ausgewählten Aktions-Parameter-Satz und gemäß des Aktionstyps, für den das Aktions-Parameter-Bild erzeugt wurde, aus dem der ausgewählte Aktions-Parameter-Satz ausgewählt wurde.
  • Damit ist die Steuerung in der Lage, nicht nur die Aktionsparameter für einen Aktionstyp, sondern auch den durchzuführenden Aktionstyp selbst (z.B. Greifen oder Schieben) effizient auszuwählen. Die neuronalen Netzwerke können für die unterschiedlichen Aktionstypen unterschiedlich sein, sodass sie passend zum jeweiligen Aktionstyp trainiert werden können.
  • Ausführungsbeispiel 6 ist das Verfahren nach einem der Ausführungsbeispiele 1 bis 5, aufweisend Durchführen des Verfahrens für mehrere Bilder und Trainieren des neuronalen Konvolutionsnetzwerks, des neuronalen Actor-Netzwerks und des neuronalen Critic-Netzwerks mittels eines Actor-Critc-Reinforcement-Leaming-Verfahrens, wobei jedes Bild einen Zustand repräsentiert und der ausgewählte Aktions-Parameter-Satz die in dem Zustand durchgeführte Aktion repräsentiert.
  • Damit kann das gesamte neuronale Steuerungsnetzwerk (aufweisend das neuronale Konvolutionsnetzwerk, das neuronale Actor-Netzwerk und das neuronale Critic-Netzwerk) effizient Ende-zu-Ende trainiert werden.
  • Ausführungsbeispiel 7 ist eine Robotersteuereinrichtung, die ein neuronales Konvolutionsnetzwerk, ein neuronales Actor-Netzwerk und ein neuronale Critic-Netzwerk implementiert und eingerichtet ist, das Verfahren nach einem der Ausführungsbeispiele 1 bis 6 durchzuführen.
  • Ausführungsbeispiel 8 ist ein Computerprogramm mit Befehlen, die, wenn sie durch einen Prozessor ausgeführt werden, bewirken, dass der Prozessor ein Verfahren nach einem der Ausführungsbeispiele 1 bis 6 durchführt.
  • Ausführungsbeispiel 9 ist ein computerlesbares Medium, das Befehle speichert, die, wenn sie durch einen Prozessor ausgeführt werden, bewirken, dass der Prozessor ein Verfahren nach einem der Ausführungsbeispiele 1 bis 6 durchführt.
  • In den Zeichnungen beziehen sich ähnliche Bezugszeichen im Allgemeinen auf dieselben Teile in den verschiedenen Ansichten. Die Zeichnungen sind nicht notwendigerweise maßstäblich, wobei die Betonung stattdessen im Allgemeinen auf die Darstellung der Prinzipien der Erfindung gelegt wird. In der folgenden Beschreibung werden verschiedene Aspekte mit Bezug auf die folgenden Zeichnungen beschrieben.
    • 1 zeigt einen Roboter.
    • 2 zeigt ein neuronales Netzwerk, mittels welchem gemäß einer Ausführungsform die Steuereinrichtung des Roboters von 1 ausgehend von einem RGB-D-Bild eine Steueraktion auswählt.
    • 3 zeigt ein Ablaufdiagramm, das ein Verfahren zum Trainieren einer Steueranordnung für ein gesteuertes System gemäß einer Ausführungsform darstellt.
  • Die folgende ausführliche Beschreibung bezieht sich auf die begleitenden Zeichnungen, die zur Erläuterung spezielle Details und Aspekte dieser Offenbarung zeigen, in denen die Erfindung ausgeführt werden kann. Andere Aspekte können verwendet werden und strukturelle, logische und elektrische Änderungen können durchgeführt werden, ohne vom Schutzbereich der Erfindung abzuweichen. Die verschiedenen Aspekte dieser Offenbarung schließen sich nicht notwendigerweise gegenseitig aus, da einige Aspekte dieser Offenbarung mit einem oder mehreren anderen Aspekten dieser Offenbarung kombiniert werden können, um neue Aspekte zu bilden.
  • Im Folgenden werden verschiedene Beispiele genauer beschrieben.
  • 1 zeigt einen Roboter 100.
  • Der Roboter 100 umfasst einen Roboterarm 101, beispielsweise einen Industrieroboterarm zum Handhaben oder Montieren eines Werkstücks (oder eines oder mehrerer anderer Objekte). Der Roboterarm 101 umfasst Manipulatoren 102, 103, 104 und eine Basis (oder Stütze) 105, durch die die Manipulatoren 102, 103, 104 abgestützt sind. Der Begriff „Manipulator“ bezieht sich auf die beweglichen Elemente des Roboterarms 101, deren Betätigung eine physikalische Wechselwirkung mit der Umgebung ermöglicht, z. B. um eine Aufgabe auszuführen. Für die Steuerung umfasst der Roboter 100 eine (Roboter-) Steuereinrichtung 106, die dazu eingerichtet ist, die Wechselwirkung mit der Umgebung gemäß einem Steuerprogramm zu implementieren. Das letzte Element 104 (am weitesten von der Stütze 105 entfernt) der Manipulatoren 102, 103, 104 wird auch als Endeffektor 104 bezeichnet und kann ein oder mehrere Werkzeuge wie z. B. einen Schweißbrenner, ein Greifinstrument, ein Lackierwerkzeug oder dergleichen umfassen.
  • Die anderen Manipulatoren 102, 103 (näher an der Basis 105) können eine Positionierungsvorrichtung bilden, sodass zusammen mit dem Endeffektor 104 der Roboterarm 101 mit dem Endeffektor 104 an seinem Ende vorgesehen ist. Der Roboterarm 101 ist ein mechanischer Arm, der ähnliche Funktionen wie ein menschlicher Arm (möglicherweise mit einem Werkzeug an seinem Ende) erfüllen kann.
  • Der Roboterarm 101 kann Gelenkelemente 107, 108, 109 umfassen, die die Manipulatoren 102, 103, 104 miteinander und mit der Basis 105 verbinden. Ein Gelenkelement 107, 108, 109 kann ein oder mehrere Gelenke aufweisen, von denen jedes eine Drehbewegung und/oder Translationsbewegung (d.h. Verschiebung) von zugehörigen Manipulatoren relativ zueinander bereitstellen kann. Die Bewegung der Manipulatoren 102, 103, 104 kann mittels Aktuatoren bewirkt werden, die durch die Steuereinrichtung 106 gesteuert werden.
  • Der Begriff „Aktuator“ kann als Komponente verstanden werden, die dazu ausgelegt ist, einen Mechanismus oder Prozess in Reaktion darauf, dass sie angetrieben wird, zu beeinflussen. Der Aktuator kann Befehle, die durch die Steuereinrichtung 106 ausgegeben werden (die sogenannte Aktivierung), in mechanische Bewegungen umwandeln. Der Aktuator, z. B. ein elektromechanischer Wandler, kann dazu eingerichtet sein, auf seine Aktivierung hin elektrische Energie in mechanische Energie umzuwandeln.
  • Der Begriff „Steuereinrichtung“ kann als irgendein Typ von Logik, die eine Entität implementiert, verstanden werden, die beispielsweise eine Schaltung und/oder einen Prozessor, der in der Lage ist, eine Software auszuführen, die in einem Speichermedium gespeichert ist, Firmware oder eine Kombination davon umfassen kann, und die Befehle, z. B. an einen Aktuator im vorliegenden Beispiel, ausgeben kann. Die Steuereinrichtung kann beispielsweise durch einen Programmcode (z. B. Software) konfiguriert sein, um den Betrieb eines Roboters zu steuern.
  • Im vorliegenden Beispiel umfasst die Steuereinrichtung 106 einen oder mehrere Prozessoren 110 und einen Speicher 111, der Code und Daten speichert, gemäß der der Prozessor 110 den Roboterarm 101 steuert.
  • Des Roboters 100 soll beispielsweise ein Objekt 113 aufnehmen. Beispielsweise ist der Endeffektor 104 ein Greifer und soll das Objekt 113 aufnehmen, aber der Endeffektor 104 kann auch beispielsweise eingerichtet sein, das Objekt 113 zum Aufnehmen anzusaugen. Das Objekt 113 befindet sich beispielsweise in einem Behälter 114, z.B. in einer Kiste oder in einem Karton.
  • Das Aufnehmen des Objekts 113 ist insbesondere dann schwierig, wenn sich das Objekt nahe an der Wand oder sogar in einer Ecke eines Behälters befindet. Liegt das Objekt 113 nahe an einer Wand oder in der Ecke, kann der Endeffektor 104 das Objekt nicht aus beliebigen Richtungen aufnehmen. Das Objekt 113 kann auch nah an anderen Objekten liegen, sodass der Endeffektor 104 das Objekt 113 nicht beliebig aufnehmen kann. In solchen Fällen kann der Roboter das Objekt 113 zuerst verschieben, z.B. in die Mitte des Behälters 114 schieben.
  • Gemäß verschiedenen Ausführungsformen wird der Roboterarm 101 für das Aufnehmen eines Objekts unter Verwendung zweier kontinuierlich parametrisierter Aktionsprimitive gesteuert, einem Greif-Primitiv und einem Schiebe-Primitiv. Werte für die Parameter, die die Aktionsprimitive definieren, werden als Ausgabe eines tiefen neuronalen Netzwerks 112 geliefert. Das Steuerverfahren kann Ende-zu-Ende trainiert werden.
  • Für das Greifen wird eine Parametrisierung mit zwei diskreten Parametern (2D-Position in der x-y-Ebene eines RGB-D-Bilds) und drei kontinuierlichen Parametern (Gieren, Nicken des Endeffektors und Greiferöffnung) verwendet, während für das Schieben eine Parametrisierung mit zwei diskreten Parametern (2D-Position in der x-y-Ebene eines RGB-D-Bilds) und fünf kontinuierlichen Parametern (Gieren, Neigen, Rollen des Endeffektors sowie Schieberichtung und Schiebedistanz) verwendet wird.
  • Obwohl diskrete und kontinuierliche Parameter verwendet werden, wird eine hybride Formulierung vermieden. Da die kontinuierlichen Parameter von der Wahl der diskreten Parametern abhängen, wird hingegen ein hierarchisches verstärkendes Lernen (RL für engl. Reinforcement Learning) und eine hierarchische Steuerungsstrategie-Optimierung verwendet.
  • Gemäß verschiedenen Ausführungsformen wird als zu Grunde liegendes RL-Verfahren Soft Actor-Critic (SAC) verwendet.
  • SAC ist ein Off-Policy-Actor-Critic-Verfahren, bei dem gemeinsam ein Paar von State-Action-Wertfunktionen Q ϕ i π , i = 1,2
    Figure DE102021204846A1_0001
    und eine stochastische Steuerungsstrategie πθ trainiert werden. Da SAC dem Paradigma des Maximum-Entropie-RLs folgt, wird der Actor trainiert, um den kumulativen erwarteten Nutzen zu und seine Entropie zu maximieren, sodass er so zufällig wie möglich agiert. Beim Standard-SAC ist der Actor als Gaußsche Steuerungsstrategie πθ parametrisiert und wird mit der folgenden Zielfunktion trainiert: L ( θ ) = E α π θ [ Q π ( s . α ) α log π θ ( α | s ) ]
    Figure DE102021204846A1_0002
    mit Q π ( s , a ) = min i = 1,2 Q ϕ i π ( s . a )
    Figure DE102021204846A1_0003
  • Die Critics Qϕi werden mittels tiefem Q-Lernen trainiert, wobei die Ziele durch zugehörige, zeitliche verzögerte Ziel-Netzwerke Q ϕ ¯ i
    Figure DE102021204846A1_0004
    geliefert werden, d.h. der Critic-Verlust ist gegeben durch L ( ϕ i ) = E s , α s ' D , α ' π θ [ Q ϕ i ( s , α ) ( r + γ   y t ( s ' a ' ) ) ) 2 ]
    Figure DE102021204846A1_0005
    wobei yt(s',a') definiert ist als y t ( s ' , a ' ) = ( min i = 1,2 Q ϕ ¯ i ( s ' . a ' ) α  log π θ ( a ' | s ' ) ) .
    Figure DE102021204846A1_0006
  • Hier werden Zustände s, Aktionen a, nächste Zustände s' und Belohnungen aus einem Wiederholungsspeicher gesampelt, der im Laufe des Trainings kontinuierlich aufgefüllt wird. Die Aktion a' im Zustand s' wird aus der aktuellen Steuerungsstrategie gesampelt. Der Hyperparameter α, der die Entropie steuert, kann automatisch eingestellt werden.
  • Gemäß verschiedenen Ausführungsformen werden die Aktionen, die von dem Roboter ausgeführt werden, ausgehend von RGB-D-Bildern ermittelt.
  • Tiefe RL-Verfahren auf hochdimensionalen Eingaberäumen, wie beispielsweise Bildern, sind bekannt dafür, dass sie unter einer schlechten Sampling-Effizienz leiden. Deshalb werden gemäß verschiedenen Ausführungsformen Repräsentationen (in einem Merkmalsraum) gelernt, wobei kontrastives Lernen verwendet wird.
  • Kontrastives Lernen basiert auf der Idee, dass ähnliche Eingaben auf Punkte (Repräsentationen) qi abgebildet werden, die im Merkmalsraum nahe beieinander liegen, während Repräsentationen von Eingaben, die nicht ähnlich sind, weiter auseinander liegen sollten.
  • Die Nähe zweier Einbettungen (d.h. Repräsentationen) wird durch eine Bewertungsfunktion ƒ(qi; qj) gemessen. Dies ist beispielsweise das Skalarprodukt q i T q j
    Figure DE102021204846A1_0007
    oder eine andere bilineare Verknüpfung q i T W q j
    Figure DE102021204846A1_0008
    der beiden Einbettungen.
  • Um das Lernen einer Abbildungen von Eingaben auf Repräsentationen mit dieser Eigenschaft zu fördern, wird bei kontrastiven Verfahren „rauschkontrastive Schätzung‟ (NCE für englisch Noise Contrastive Estimation) und ein sog. InfoNCE-Loss verwendet gegeben durch L c = exp ( q T W q pos ) exp ( j = 0 N exp ( q T W q j neg ) )
    Figure DE102021204846A1_0009
  • Hierbei bezeichnet qpos die Repräsentation eines Positiv-Beispiels, dem die aktuell betrachtete Repräsentation q ähnlich sein soll und oft aus q durch Datenaugmentierung der entsprechenden Eingabe konstruiert wird. q j neg
    Figure DE102021204846A1_0010
    bezeichnet die Repräsentation eines Negativ-Beispiels, das üblicherweise als Repräsentation einer zufälligen anderen Eingabe gewählt wird. Bei Verwendung von Minibatches können z.B. als die Negativ-Beispiele alle anderen Stichproben des aktuellen Minibatches als die aktuell betrachtete Einbettung (d.h. Repräsentation) gewählt werden.
  • In dem folgenden Ausführungsbeispiel soll der Roboter 100 das Objekt 113 aus dem Behälter 114 aufnehmen. Diese Aufgabe wird als Markov-Entscheidungsprozess mit endlichem Zeithorizont modelliert, d.h. durch ein Tupel (S, A, T, r, γ, H), mit Zustandsraum S, Aktionsraum A, Übergangswahrscheinlichkeitsfunktion T, Belohnungsfunktion r, Diskontierungsfaktor γ, und Zeithorizont mit H Zeitschritten. In jedem Zeitschritt t = 1, ..., H, beobachtet die Steuereinrichtung einen Zustand st ∈ S (mittels Sensordaten, insbesondere Bildern einer Kamera 115, die auch an dem Roboterarm 101 befestigt sein kann) und wählt gemäß einer Steuerungsstrategie π(at|st) (die zumindest teilweise von dem neuronalen Netzwerks 112 implementiert wird) eine Aktion at ∈ A aus. Die Anwendung der Aktion at im Zustand st führt zu einer Belohnung T (st, at) und das gesteuerte System (hier der Roboterarm 101) wechselt gemäß T in einen neuen Zustand st+1.
  • Der Zustand st wird als RGB-D-Bild mit vier Kanälen, Farbe (RGB) und Höhe (Z) repräsentiert. Die Steuereinrichtung 106 ermittelt das RGB-D-Bild aus einem von der Kamera 115 gelieferten RGB-D Bild von dem Bereich, in dem der Roboterarm 101 und der Behälter 114 angebracht sind. Unter Verwendung der intrinsischen und extrinsischen Kameraparameter transformiert die Steuereinrichtung das Bild in eine RGB-Punktwolke in dem Koordinatensystem des Roboterarms 101, dessen Ursprung z.B. zweckmäßigerweise in die Mitte der Basis 105 gelegt wird und wobei die z-Achse nach oben (in die der Schwerkraft entgegengesetzte Richtung) zeigt. Die Steuereinrichtung projiziert dann die Punktwolke orthogonal auf ein 2-dimensionales Raster (z.B. mit einer Granularität von 5mm x 5 mm) in der xy-Ebene, auf der sich der Behälter befindet, zum Erzeugen des RGB-D-Bilds.
  • 2 zeigt ein neuronales Netzwerk 200, mittels welchem die Steuereinrichtung 106 ausgehend von einem RGB-D-Bild 201 eine Steueraktion auswählt.
  • In 2 sind Konvolutionsschichten mit ansteigenden Diagonalen schraffiert dargestellt, ReLU-Schichten horizontal schraffiert dargestellt und Batch-Normalisierungsschichten querschraffiert dargestellt. Ist angegeben, dass eine Gruppe von Schichten mehrmals hintereinander vorkommt („x2“ bzw. „x3“) so bedeutet dies, dass die Schichten mit derselben Dimensionen mehrmals vorkommen, während sich ansonsten die Dimensionen der Schichten im Allgemeinen (insbesondere von Konvolutionsschicht zu Konvoluationsschicht) ändern.
  • Jede Aktion at ist ein Aktionsprimitiv (oder Bewegungsprimitiv) wie oben beschrieben, d.h. ein Greif-Primitiv oder ein Schiebe-Primitiv, definiert durch einen jeweiligen Satz von Parameterwerten. Die Belohnung rt, die im t-en Zeitschritt erhalten wird, ist 1, falls die Aktion at dazu führt, dass der Roboterarm 101 das Objekt 113 erfolgreich greift, ansonsten ist sie 0.
  • Die Steuerungsstrategie πat|st) wird mittels verstärkendem Lernen trainiert, um die Q-Funktion zu maximieren, die definiert ist durch Q ( s t , a t ) E [ i = t H γ i ( s i , a i ) ]
    Figure DE102021204846A1_0011
  • Die Bellman-Gleichung Q ( s t , a t ) = E [ r ( s t , a t ) + max a t + 1 Q t + 1 ( s t + 1 , a t + 1 ) ]
    Figure DE102021204846A1_0012
    ist eine Möglichkeit, die Q-Funktion rekursiv zu berechnen und gemäß verschiedenen Ausführungsformen liegt sie dem verwendeten RL-Verfahren zu Grunde.
  • Die Steuerungsstrategie π(at|st) gibt in jedem Schritt den Typ des Aktionsprimitivs ϕ ∈ {g(reifen), s(schieben)} sowie den Parameterwertesatz für das jeweilige Aktionsprimitiv aus. Der Typ und der Parameterwertesatz definieren die Handlung, die der Roboterarm 101 ausführen soll. Die Ausführung eines Aktionsprimitivs wird wie folgt gesteuert.
  • Greifen: Das Zentrum des End-Effektors 104 (hier speziell ein Greifer, es kann aber auch ein Endeffektor verwendet werden, der Objekte zum Aufnehmen ansaugt), auch bezeichnet als TCP (tool center point) wird von oben nach unten in eine Zielpose gebracht, die durch die kartesischen Koordinaten (xg, yg, zg) und die Eulerwinkel (ig, jg, kg) definiert ist, wobei die Distanz zwischen den Greif-Fingern auf wg gesetzt wird.
  • Wenn die Zielpose erreicht wurde oder eine Kollision erkannt wurde, wird der Greifer geöffnet und um (beispielsweise) 20cm angehoben, woraufhin dem Greifer erneut signalisiert wird, zu schließen. Das Greifen gilt als erfolgreich, wenn der abgelesene Abstand zwischen den Fingern einen Schwellwert überschreitet, der größer ist als ein Wert, der etwas unterhalb der kleinsten Abmessung der betrachteten Objekte liegt. Für das Greif-Primitiv enthält der Parametersatz ag = {xg yg, j9,kgwg) die oben genannten Parameter außer zg, den die Steuereinrichtung 106 direkt aus dem RGB-D-Bild an der Position (xg, yg) extrahiert, und der Rollwinkel ig, der auf 0 gesetzt wird, um zu gewährleisten, dass die Finger sich alle in der gleichen Höhe befinden, um stabil von oben greifen zu können. Rollen ist im Beispiel von 1 eine Drehung um eine Achse durch 109 in 1, wobei die Achse aus der Papierebene herauskommt.
  • Verschieben: Der TCP wird mit geschlossenem Greifer in eine Zielpose (xs,yszs,is,js,ks) gefahren, danach wird er um ds in horizontaler Richtung bewegt, die durch einen Drehwinkel ks um die z-Achse definiert ist. Der Parametersatz ist hierbei as = (xs, ys,is,js, ks, ds, ks) wobei wie beim Greif-Primitiv die Steuereinrichtung 106 den Parameter zg aus dem RGB-D-Bild extrahiert.
  • Das neuronale Netzwerk 200 ist gemäß verschiedenen Ausführungsformen ein „Fully Convolutional“ Netzwerk (FCN) Ψϕ zum Ermitteln des Parameterwertsatzes aϕ und Approximieren des Werts Qϕ(s, aϕ) für jeden Aktionsprimitiv-Typ ϕ für das RGB-D-Bild 201). Die zu Grunde liegende Algorithmik und die Architektur des neuronalen Netzwerks 200 kann als Kombination von SAC für kontinuierliche Aktionen und Q-Lernen für diskrete Aktionen gesehen werden: Für jeden Pixel des RGB-D-Bilds ermittelt ein erstes Konvolutions-(Teil)-Netzwerk 202, bezeichnet als Pixel-Encoder, eine Darstellung, bezeichnet mit µ (z.B. ein Vektor mit 64 Komponenten, den der Pixel-Encoder 202 für jeden Pixel des RGB-D-Bilds, also für h x w Pixel, ermittelt). Auf die Pixel-Einbettungen µ für das RGB-D-Bilds werden weitere Konvolutions-(Teil)-Netzwerke 203, 204, 205, 206 auf die Ausgabe des Pixel-Encoders 202 angewendet und erzeugen eine Aktionskarte (bezeichnet mit A) pro Aktionsprimitiv-Typ und eine Q-Wert-Karte pro Aktionsprimitiv-Typ, die jeweils die gleichen räumlichen Dimensionen h und w (Höhe und Breite) des RGB-D-Bilds 201 haben. Diese Konvolutions-(Teil)-Netzwerke 203, 204, 205, 206 sind ein Actor-Netzwerk 203, ein Aktions-Encoder-Netzwerk 204, ein Pixel-Aktions-Encoder-Netzwerk 205 und ein Critic-Netzwerk 206.
  • Das Actor-Netzwerk 203 erhält die Pixel-Einbettungen µ als Eingabe und ordnet den Pixeln der Aktionskarte derart Pixelwerte zu, dass die Auswahl eines Pixels der Aktionskarte eine vollständigen Parameterwertsatz aϕ (für den jeweiligen Aktionsprimitiv-Typ) liefert. Dabei leitet die Steuereinrichtung 106 die Werte der räumlichen Parameter (xϕ, yϕ) aus der Pixelposition ab (die entsprechend des RGB-D-Bilds einer Position in der x-y-Ebene entspricht). Die Werte der anderen Parameter sind durch die Pixelwerte der Aktionskarte an der Pixelposition (d.h. durch die Werte der Kanäle der Aktionskarte an der Pixelposition) gegeben. Analog liefert der Pixelwert der Q-Wert-Karte (für den jeweiligen Aktionsprimitiv-Typ) an der Pixelposition den Q-Wert für das Zustands-Aktions-Paar (s, aϕ). Die Q-Wert-Karte repräsentiert deshalb Qϕ(s,aϕ) für eine diskrete Menge von Aktionen entsprechend der Pixel des RGB-D-Bilds und kann entsprechend unter Verwendung eines Q-Lern-Schemas für diskrete Aktionen trainiert werden.
  • Das Actor-Netzwerk 203 ermittelt beispielsweise eine Gauß-verteilte Aktion (wie in SAC) für jeden Pixel (mit einer Anzahl von Ausgangskanälen entsprechend der Anzahl von Parametern des jeweiligen Aktionsprimitivs).
  • Der Pixel-Aktions-Encoder 205 codiert Paare aus Pixeln und Aktionen, wobei jede Aktion (d.h. die Pixelwerte aus der Aktionskarte) zunächst von dem Aktions-Encoder Netzwerk 204 verarbeitet werden (siehe Pfad (a) in 2) und dann mit der zugehörigen Pixel-Einbettung konkateniert wird, bevor dieses Paar dem Pixel-Aktions-Encoder 205 zugeführt wird.
  • Das Critic-Netzwerk 206 ermittelt den Q-Wert für jedes Pixel-Aktions-Paar. Ähnlich wie bei einer SAC-Implementierung kann dazu eine Doppel-Q-Architektur verwendet werden, wo der Q-Wert als Minimum zweier Q-Karten genommen wird, um Überschätzen zu vermeiden.
  • Die Steuereinrichtung 106 ermittelt eine Aktion im Zeitschritt t für ein RGB-D-Bild st wie folgt: Das neuronale Netzwerk 200 (welches einen Teil Ψ t ϕ
    Figure DE102021204846A1_0013
    für beide AktionsPrimitive aufweist) wird Ende-zu-Ende durchlaufen, wodurch die Aktionskarte Aϕ (entsprechend der Steuerungsstrategie π t ( a t ϕ | s t )
    Figure DE102021204846A1_0014
    ) für beide Primitive und die Q-Wert-Karte Q t ϕ ( s t , a t ϕ )
    Figure DE102021204846A1_0015
    für beide Aktionsprimitiv-Typen erzeugt wird. Der Index t deutet hier an, dass die Netzwerke und Ausgaben alle zeitabhängig sind bzw. sein können, wie es bei Markov-Entscheidungsprozessen mit endlichem Zeithorizont typischerweise der Fall ist.
  • Die Steuereinrichtung 106 wählt den Aktionsprimitiv-Typ aus gemäß ϕ = arg max ϕ max a t ϕ Q t ϕ ( s t , a t ϕ )
    Figure DE102021204846A1_0016
    und setzt die Parameter des Aktionsprimitives gemäß a t ϕ = arg max a t ϕ Q t ϕ ( s t , a t ϕ ) .
    Figure DE102021204846A1_0017
  • Für das Training sammelt die Steuereinrichtung 106 Daten, d.h. Tupel (st, at, rt, st+1), aus Experimenten und speichert sie in einem Wiederholungsspeicher. Aus diesem liest sie dann zum Trainieren aus (Pfad (b) in 2 für die Aktionen). Die Aktionen aus dem Wiederholungsspeicher werden durch eine Umformungsschicht 207 in eine für das Aktions-Encoder Netzwerk 204 geeignete Form gebracht. Beim Sampeln von MiniBatches aus den Daten für das Training kann sie Datenaugmentierung verwenden, um die Sample-Effizienz zu erhöhen. Insbesondere kann sie zu einer gesampelten Erfahrung (st, at, rt, st+1) Versionen erzeugen, die bezüglich der zu lernenden Aufgabe invariant sind, indem sie das RGB-D-Bild st um einen zufälligen Winkel dreht und die relevanten Winkel des Parameterwertsatzes der Aktion at um denselben Winkel dreht. Beispielsweise kann für beide Primitive der Gierwinkel verändert werden und beim Schiebe-Primitiv zusätzlich die Schieberichtung gedreht werden. Auf diese Weise kann die Steuereinrichtung zu einem Trainings-Sample (aus dem Wiederholungs-Speicher) ein zusätzliches Trainings-Sample erzeugen, das zu einem ähnlichen Ergebnis rt und st+1 wie das ursprüngliche Trainings-Sample führen sollte.
  • Die Steuereinrichtung 106 trainiert das neuronale Netzwerk unter Verwendung der folgenden Verlust- bzw. Zielfunktionen.
  • Critic-Verlust: L critic = { BCE ( Q t ϕ ( s t . a t ϕ ) . y t )   t = H MSE ( Q t ϕ ( s t . a t ϕ ) . y t )  sonst
    Figure DE102021204846A1_0018
    wobei BCE (Binary Cross Entropy) für den Binäre-Kreuz-Entropie-Verlust und MSE (Mean Squared Error) für den Mittlerer-Quadratischer-Fehler-Verlust bezeichnen und y t = r t + γ max ϕ , a Q t + 1 ϕ ( s t , a )
    Figure DE102021204846A1_0019
  • Die Netzwerkparameter des Pixel-Encoder-Netzwerks 202, des Pixel-Aktions-Encoder-Netzwerks 205 und des Critic-Netzwerks 206 werden zum Minimieren (bzw. Reduzieren) des Critic-Verlusts trainiert.
  • Actor-Zielfunktion: L actor = Q t ϕ ( s t , a t ϕ ) α log π t ϕ ( a t ϕ | s t )
    Figure DE102021204846A1_0020
  • Die Netzwerkparameter des Pixel-Encoder-Netzwerks 202, und des Actor-Netzwerks 203 werden zum Maximieren (bzw. Erhöhen) des Actor-Zielfunktion trainiert.
  • Wie oben erläutert kann die Steuereinrichtung 106 Datenaugmentierung auf Trainings-Sample anwenden, indem sie den Zustand (RGB-D-Bild) verändert und die zugehörige Aktion entsprechend anpasst. Idealerweise sind sich die von dem Pixel-Encoder 202 erzeugten Pixel-Einbettungen für Augmentierungen (bzw. Versionen) desselben Samples ähnlicher als für unterschiedliche Samples (also solche, bei denen nicht eines die Augmentierung des anderen ist). Um dies beim Training des Pixel-Aktion-Encoders zu fördern, kann als zusätzlicher Verlustterm ein kontrastiver Verlust verwendet werden.
  • Dazu erzeugt die Steuereinrichtung 106 beispielsweise für ein Sample in dem Mini-Batch zwei Augmentierungen und codiert sie mittels des Pixel-Encoders 202 zu einer Abfrage-Einbettung q bzw. zu einer Schlüssel-Einbettung k. Sie berechnet dann die Ähnlichkeit zwischen q und k durch die bilineare Verknüpfung sim(k,q) = kTWq, wobei W eine Parametermatrix ist (die selbst gelernt werden kann). Damit kann dann ein kontrastiver Verlust, der abhängt von den Ähnlichkeiten, wie sie durch die Funktion sim(.) gegeben sind und von der Information darüber, welche Samples Augmentierungen desselben Samples sind und somit eine hohe Ähnlichkeit aufweisen sollten.
  • In MDPs mit endlichem Zeithorizont ist die Q-Funktion zeitabhängig und entsprechend ist es sinnvoll, die Q-Funktionen in den verschiedenen Zeitschritten durch unterschiedliche Netzwerke zu approximieren. Dies erfordert jedoch das Training von H neuronalen Netzwerken, was einen großen Rechenaufwand bedeuten kann.
  • Dieses Problem kann umgangen werden, indem der MDP als MDP mit unendlichen Zeithorizont behandelt wird, unabhängig vom tatsächlichen Modell, und ein Diskontierungsfaktor verwendet wird, um den Effekt zukünftiger Schritte zu mildern. Gemäß einer Ausführungsform werden stattdessen unterschiedliche Netzwerke für die unterschiedlichen Zeitschritte verwendet und unterschiedliche abschwächende Maßnahmen vorgenommen. Beispielsweise wird unabhängig von der Anzahl der Zeitschritte, die erlaubt sind, um den Behälter 114 zu leeren, ein fester und kleiner Zeithorizont von H = 2 verwendet. Diese Wahl hilft dabei, die oben erwähnten Hürden zu verringern, die durch einen großen Aktionsraum sowie durch die Tatsache, dass Belohnungen zu Beginn des Trainings nur selten auftreten, noch verstärkt werden. Sie kann auch durch die Beobachtung motiviert werden, dass das die Steuerung zum Aufnehmen aus einem Behälter typischerweise nicht viel davon profitiert, mehr als ein paar Schritte vorauszuschauen. In der Tat ist das Vorausschauen über den aktuellen Zustand hinaus vor allem dann vorteilhaft, wenn eine Verschiebung erforderlich ist, um ein aufeinanderfolgendes Greifen zu ermöglichen, und in diesem Fall reicht mit hoher Wahrscheinlichkeit ein einziges Verschieben aus.
  • Entsprechend dieser Abschwächung verwendet die Steuereinrichtung gemäß einer Ausführungsform ein neuronales Netz ψ0, um eine Aktion im Schritt t =0 herzuleiten und ein neuronales Netz ψ1 für t = 1.
  • Während des Trainings kann die Steuereinrichtung 106 alle aufgezeichneten Erfahrungen zur Aktualisierung der neuronalen Netzwerke für alle Zeitschritte verwenden, unabhängig davon, für welche Zeitschritt innerhalb der Episode sie tatsächlich aufgetreten sind.
  • Gemäß verschiedenen Ausführungsformen verwendet die Steuerungseinrichtung 106 eine Explorationsheuristik. Um die Chancen für ein erfolgreiches Ergebnis einer Greif-Aktion oder einer Verschiebe-Aktion bei Explorationsschritten zu erhöhen, verwendet die Steuereinrichtung ein Verfahren zur Erkennung von Veränderungen, um Pixel zu lokalisieren, die Objekten entsprechen. Dazu vergleicht sie die Punktwolke des aktuellen Zustandes von einer Referenzpunktwolke eines Bildes mit leerem Behälter und maskiert die Pixel, bei denen es einen ausreichenden Unterschied gibt. Sie sampelt dann eine Explorations-Aktion aus diesen maskierten Pixeln gemäß einer Gleichverteilung.
  • Außerdem verfügt die Steuereinrichtung über eine Bounding-Box des Behälters 114 (diese kann bekannt sein oder die Steuereinrichtung kann sie durch Verwendung eines Erkennungs-Tools erhalten). Es können dann Punkte auf dem End-Effektor 104 (inklusive z.B. einer am Roboter befestigten Kamera) definiert werden, die die Steuereinrichtung 105 entsprechend einer Zielpose transformiert, um ihre Machbarkeit zu überprüfen, indem sie prüft, ob die transformierten Punkte innerhalb der Bounding-Box des Behälters 114 liegen. Wenn es mindestens einen Punkt gibt, der außerhalb des Behälters 114 liegt, wird der Versuch verworfen, da er zu einer Kollision führen würde. Die Steuereinrichtung 106 kann diese Berechnung auch als ergänzende Explorationsheuristik für die Suche nach einer machbaren Orientierung für eine gegebene Translation verwenden, indem sie aus einer zufälligen Menge von Orientierungen eine auswählt, die machbar ist, wenn eine solche existiert.
  • Zusammenfassend wird gemäß verschiedenen Ausführungsformen ein Verfahren bereitgestellt, wie es in 3 dargestellt ist.
  • 3 zeigt ein Ablaufdiagramm 300, das ein Verfahren zum Steuern einer Robotervorrichtung veranschaulicht.
  • In 301 wird ein Bild von einer Umgebung der Robotervorrichtung beschafft (z.B. von einer Kamera aufgenommen).
  • In 302 wird das Bild mittels eines neuronalen Konvolutionsnetzwerks verarbeitet, das ein Bild in einem Merkmalsraum aus dem Bild erzeugt, wobei das Bild im Merkmalsraum für jeden Pixel zumindest einer Teilmenge der Pixel des Bildes einen Vektor in dem Merkmalsraum aufweist.
  • In 303 wird das Bild im Merkmalsraum einem neuronalen Actor-Netzwerk zugeführt, das aus dem Bild im Merkmalsraum ein Aktions-Parameter-Bild erzeugt, wobei das Aktions-Parameter-Bild für jeden der Pixel einen Satz von Aktionsparameterwerten für eine Aktion der Robotervorrichtung aufweist.
  • In 304 werden das Bild im Merkmalsraum und das Aktions-Parameter-Bild einem neuronalen Critic-Netzwerk zugeführt, das ein Bewertungs-Bild erzeugt, das für jeden Pixel eine Bewertung für die durch den Satz von Aktionsparameterwerten für den Pixel definierte Aktion aufweist.
  • In 305 wird aus mehreren Sätzen von Aktionsparametern des Aktions-Parameter-Bilds derjenige Satz von Aktionsparameterwerten mit der höchsten Bewertung ausgewählt.
  • In 306 wird die Robotervorrichtung zum Ausführen einer Aktion gemäß dem ausgewählten Aktions-Parameter-Satz gesteuert.
  • Das Verfahren von 3 kann durch einen oder mehrere Computer mit einer oder mehreren Datenverarbeitungseinheiten durchgeführt werden. Der Begriff „Datenverarbeitungseinheit“ kann als irgendein Typ von Entität verstanden werden, die die Verarbeitung von Daten oder Signalen ermöglicht. Die Daten oder Signale können beispielsweise gemäß mindestens einer (d.h. einer oder mehr als einer) speziellen Funktion behandelt werden, die durch die Datenverarbeitungseinheit durchgeführt wird. Eine Datenverarbeitungseinheit kann eine analoge Schaltung, eine digitale Schaltung, eine Logikschaltung, einen Mikroprozessor, einen Mikrocontroller, eine Zentraleinheit (CPU), eine Graphikverarbeitungseinheit (GPU), einen Digitalsignalprozessor (DSP), eine integrierte Schaltung einer programmierbaren Gatteranordnung (FPGA) oder irgendeine Kombination davon umfassen oder aus dieser ausgebildet sein. Irgendeine andere Weise zum Implementieren der jeweiligen Funktionen, die hierin genauer beschrieben werden, kann auch als Datenverarbeitungseinheit oder Logikschaltungsanordnung verstanden werden. Es können ein oder mehrere der im Einzelnen hier beschriebenen Verfahrensschritte durch eine Datenverarbeitungseinheit durch eine oder mehrere spezielle Funktionen ausgeführt (z. B. implementiert) werden, die durch die Datenverarbeitungseinheit durchgeführt werden.
  • Die Herangehensweise von 3 dient zum Erzeugen eines Steuersignals für eine Robotervorrichtung. Der Begriff „Robotervorrichtung“ kann als sich auf irgendein physikalisches System (mit einem mechanischen Teil, dessen Bewegung gesteuert wird) beziehend verstanden werden, wie z. B. eine computergesteuerte Maschine, ein Fahrzeug, ein Haushaltsgerät, ein Elektrowerkzeug, eine Fertigungsmaschine, einen persönlichen Assistenten oder ein Zugangskontrollsystem. Es wird eine Steuerungsvorschrift für das physikalische System gelernt und das physikalische System dann entsprechend gesteuert.
  • Verschiedene Ausführungsformen können Sensorsignale von verschiedenen Sensoren wie z. B. Video, Radar, LiDAR, Ultraschall, Bewegung, Wärmeabbildung usw. empfangen und verwenden, beispielsweise um Sensordaten hinsichtlich Zuständen des Systems (Roboter und Objekt oder Objekte) und Konfigurationen und Steuerszenarios zu erhalten. Ausführungsformen können zum Trainieren eines Maschinenlernsystems und Steuern einer Robotervorrichtung verwendet werden, z. B. um verschiedene Manipulationsaufgaben in verschiedenen Steuerszenarios durchzuführen.
  • Obwohl spezielle Ausführungsformen hier dargestellt und beschrieben wurden, wird vom Fachmann auf dem Gebiet erkannt, dass die speziellen Ausführungsformen, die gezeigt und beschrieben sind, gegen eine Vielfalt von alternativen und/oder äquivalenten Implementierungen ausgetauscht werden können, ohne vom Schutzbereich der vorliegenden Erfindung abzuweichen. Diese Anmeldung soll irgendwelche Anpassungen oder Variationen der speziellen Ausführungsformen abdecken, die hier erörtert sind. Daher ist beabsichtigt, dass diese Erfindung nur durch die Ansprüche und die Äquivalente davon begrenzt ist.

Claims (9)

  1. Verfahren zum Steuern einer Robotervorrichtung, aufweisend: Beschaffen eines Bildes von einer Umgebung der Robotervorrichtung; Verarbeiten des Bildes mittels eines neuronalen Konvolutionsnetzwerks, das ein Bild in einem Merkmalsraum aus dem Bild erzeugt, wobei das Bild im Merkmalsraum für jeden Pixel zumindest einer Teilmenge der Pixel des Bildes einen Vektor in dem Merkmalsraum aufweist; Zuführen des Bilds im Merkmalsraum zu einem neuronalen Actor-Netzwerk, das aus dem Bild im Merkmalsraum ein Aktions-Parameter-Bild erzeugt, wobei das Aktions-Parameter-Bild für jeden der Pixel einen Satz von Aktionsparameterwerten für eine Aktion der Robotervorrichtung aufweist; Zuführen des Bilds im Merkmalsraum und des Aktions-Parameter-Bilds zu einem neuronalen Critic-Netzwerk, das ein Bewertungs-Bild erzeugt, das für jeden Pixel eine Bewertung für die durch den Satz von Aktionsparameterwerten für den Pixel definierte Aktion aufweist; Auswählen, aus mehreren Sätzen von Aktionsparametern des Aktions-Parameter-Bilds, desjenigen Satzes von Aktionsparameterwerten mit der höchsten Bewertung; und Steuern des Roboters zum Ausführen einer Aktion gemäß dem ausgewählten Aktions-Parameter-Satz.
  2. Verfahren nach Anspruch 1, wobei der Roboter gesteuert wird, die Aktion an einer horizontalen Position auszuführen, die durch die Position des Pixels in dem Bild gegeben ist, für den das Aktions-Parameter-Bild den ausgewählten Satz von Aktionsparameterwerten aufweist.
  3. Verfahren nach Anspruch 1 oder 2, wobei das Bild ein Tiefenbild ist und der Roboter gesteuert wird, die Aktion an einer vertikalen Position auszuführen, die durch die Tiefeninformation des Bildes für den Pixel gegeben ist, für den das Aktions-Parameter-Bild den ausgewählten Satz von Aktionsparameterwerten aufweist.
  4. Verfahren nach einem der Ansprüche 1 bis 3, wobei das Bild ein oder mehrere Objekte zeigt, wobei die Aktion ein Greifen oder ein Schieben eines Objekts durch einen Roboterarm ist.
  5. Verfahren nach einem der Ansprüche 1 bis 4, aufweisend, für jeden Aktionstyp mehrerer Aktionstypen Verarbeiten des Bildes mittels eines neuronalen Konvolutionsnetzwerks, das ein Bild im Merkmalsraum aus dem Bild erzeugt, wobei das Bild im Merkmalsraum für jeden Pixel zumindest einer Teilmenge der Pixel des Bildes einen Vektor in einem Merkmalsraum aufweist; Zuführen des Bilds im Merkmalsraum zu einem neuronalen Actor-Netzwerk, das aus dem Bild im Merkmalsraum ein Aktions-Parameter-Bild erzeugt, wobei das Aktions-Parameter-Bild für jeden der Pixel einen Satz von Aktionsparameterwerten für eine Aktion des Aktionstyps aufweist; und Zuführen des Bilds im Merkmalsraum und des Aktions-Parameter-Bilds zu einem neuronalen Critic-Netzwerk, das ein Bewertungs-Bild erzeugt, das für jeden Pixel eine Bewertung für die durch den Satz von Aktionsparameterwerten für den Pixel definierte Aktion aufweist; und Auswählen, aus mehreren Sätzen von Aktionsparametern der Aktions-Parameter-Bilder für verschiedene der mehreren Aktionstypen, desjenigen Satzes von Aktionsparameterwerten mit der höchsten Bewertung und Steuern des Roboters zum Ausführen einer Aktion gemäß dem ausgewählten Aktions-Parameter-Satz und gemäß dem Aktionstyp, für den das Aktions-Parameter-Bild erzeugt wurde, aus dem der ausgewählte Aktions-Parameter-Satz ausgewählt wurde.
  6. Verfahren nach einem der Ansprüche 1 bis 5, aufweisend Durchführen des Verfahrens für mehrere Bilder und Trainieren des neuronalen Konvolutionsnetzwerks, des neuronalen Actor-Netzwerks und des neuronalen Critic-Netzwerks mittels eines Actor-Critc-Reinforcement-Leaming-Verfahrens, wobei jedes Bild einen Zustand repräsentiert und der ausgewählte Aktions-Parameter-Satz die in dem Zustand durchgeführte Aktion repräsentiert.
  7. Robotersteuereinrichtung, die ein neuronales Konvolutionsnetzwerk, ein neuronales Actor-Netzwerk und ein neuronale Critic-Netzwerk implementiertund eingerichtet ist, das Verfahren nach einem der Ansprüche 1 bis 6 durchzuführen.
  8. Computerprogramm mit Befehlen, die, wenn sie durch einen Prozessor ausgeführt werden, bewirken, dass der Prozessor ein Verfahren nach einem der Ansprüche 1 bis 6 durchführt.
  9. Computerlesbares Medium, das Befehle speichert, die, wenn sie durch einen Prozessor ausgeführt werden, bewirken, dass der Prozessor ein Verfahren nach einem der Ansprüche 1 bis 6 durchführt.
DE102021204846.3A 2021-05-12 2021-05-12 Verfahren zum Steuern einer Robotervorrichtung Active DE102021204846B4 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102021204846.3A DE102021204846B4 (de) 2021-05-12 2021-05-12 Verfahren zum Steuern einer Robotervorrichtung
US17/661,041 US20220375210A1 (en) 2021-05-12 2022-04-27 Method for controlling a robotic device
CN202210508385.7A CN115338856A (zh) 2021-05-12 2022-05-11 用于控制机器人装置的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102021204846.3A DE102021204846B4 (de) 2021-05-12 2021-05-12 Verfahren zum Steuern einer Robotervorrichtung

Publications (2)

Publication Number Publication Date
DE102021204846A1 true DE102021204846A1 (de) 2022-11-17
DE102021204846B4 DE102021204846B4 (de) 2023-07-06

Family

ID=83806184

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021204846.3A Active DE102021204846B4 (de) 2021-05-12 2021-05-12 Verfahren zum Steuern einer Robotervorrichtung

Country Status (3)

Country Link
US (1) US20220375210A1 (de)
CN (1) CN115338856A (de)
DE (1) DE102021204846B4 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102023206009B3 (de) 2023-06-26 2024-08-01 Kuka Deutschland Gmbh Verfahren und System zum Trainieren einer wenigstes teilweise auf maschinellem Lernen basierenden Datenverarbeitung zum Prognostizieren von Roboter-Zielposen und/oder zum Betreiben eines Roboters

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116079737A (zh) * 2023-02-23 2023-05-09 南京邮电大学 基于分层强化学习的机械臂复杂操作技能学习方法及***
CN116901055B (zh) * 2023-05-19 2024-04-19 兰州大学 仿人手交互控制方法和装置、电子设备及存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE202017105598U1 (de) 2016-09-15 2018-05-24 Google LLC (n.d.Ges.d. Staates Delaware) System zum tiefen Verstärkungslernen für Robotermanipulation
US20190217476A1 (en) 2018-01-12 2019-07-18 Futurewei Technologies, Inc. Robot navigation and object tracking
DE102019002065A1 (de) 2018-03-29 2019-10-02 Fanuc Corporation Maschinelle Lernvorrichtung, Robotersteuervorrichtung und Robotervisionssystem, das eine maschinelle Lernvorrichtung verwendet, und maschinelles Lernverfahren
DE112017007025T5 (de) 2017-02-09 2019-10-24 Mitsubishi Electric Corporation Positionssteuerungseinrichtung und positionssteuerungsverfahren
DE102018113336A1 (de) 2018-06-05 2019-12-05 GESTALT Robotics GmbH Verfahren zum Verwenden mit einer Maschine zum Einstellen einer Erweiterte-Realität-Anzeigeumgebung
US20200086483A1 (en) 2018-09-15 2020-03-19 X Development Llc Action prediction networks for robotic grasping
EP3644221A1 (de) 2017-12-27 2020-04-29 Beijing Sensetime Technology Development Co., Ltd. Verfahren und vorrichtung zur einteilung von keyframes, elektronische vorrichtung, programm und medium
EP3783548A1 (de) 2019-08-19 2021-02-24 Wipro Limited Verfahren und system zur aufgabenausführung in einer dynamischen heterogenen roboterumgebung
DE102019122790B4 (de) 2018-08-24 2021-03-25 Nvidia Corp. Robotersteuerungssystem
US20210129319A1 (en) 2019-11-01 2021-05-06 Kabushiki Kaisha Toshiba Controller, control method, and computer program product

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE202017105598U1 (de) 2016-09-15 2018-05-24 Google LLC (n.d.Ges.d. Staates Delaware) System zum tiefen Verstärkungslernen für Robotermanipulation
DE112017007025T5 (de) 2017-02-09 2019-10-24 Mitsubishi Electric Corporation Positionssteuerungseinrichtung und positionssteuerungsverfahren
EP3644221A1 (de) 2017-12-27 2020-04-29 Beijing Sensetime Technology Development Co., Ltd. Verfahren und vorrichtung zur einteilung von keyframes, elektronische vorrichtung, programm und medium
US20190217476A1 (en) 2018-01-12 2019-07-18 Futurewei Technologies, Inc. Robot navigation and object tracking
DE102019002065A1 (de) 2018-03-29 2019-10-02 Fanuc Corporation Maschinelle Lernvorrichtung, Robotersteuervorrichtung und Robotervisionssystem, das eine maschinelle Lernvorrichtung verwendet, und maschinelles Lernverfahren
DE102018113336A1 (de) 2018-06-05 2019-12-05 GESTALT Robotics GmbH Verfahren zum Verwenden mit einer Maschine zum Einstellen einer Erweiterte-Realität-Anzeigeumgebung
DE102019122790B4 (de) 2018-08-24 2021-03-25 Nvidia Corp. Robotersteuerungssystem
US20200086483A1 (en) 2018-09-15 2020-03-19 X Development Llc Action prediction networks for robotic grasping
EP3783548A1 (de) 2019-08-19 2021-02-24 Wipro Limited Verfahren und system zur aufgabenausführung in einer dynamischen heterogenen roboterumgebung
US20210129319A1 (en) 2019-11-01 2021-05-06 Kabushiki Kaisha Toshiba Controller, control method, and computer program product

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102023206009B3 (de) 2023-06-26 2024-08-01 Kuka Deutschland Gmbh Verfahren und System zum Trainieren einer wenigstes teilweise auf maschinellem Lernen basierenden Datenverarbeitung zum Prognostizieren von Roboter-Zielposen und/oder zum Betreiben eines Roboters

Also Published As

Publication number Publication date
CN115338856A (zh) 2022-11-15
DE102021204846B4 (de) 2023-07-06
US20220375210A1 (en) 2022-11-24

Similar Documents

Publication Publication Date Title
DE102021204846B4 (de) Verfahren zum Steuern einer Robotervorrichtung
DE102015204641B4 (de) Verfahren und System zur Programmierung eines Roboters
DE102010053002B4 (de) Systeme und Verfahren, die der Handhabung eines Ojekts mit einem Greifer zugeordnet sind
DE112021001104T5 (de) Bewegungsplanungsverfahren mit kollisionsvermeidung für industrieroboter
DE112019000097B4 (de) Steuervorrichtung, Arbeitsroboter, Programm und Steuerverfahren
DE102021204961B4 (de) Verfahren zur Steuerung einer Robotervorrichtung
EP3578321B1 (de) Verfahren zum verwenden mit einer maschine zum erstellen einer erweiterte-realität-anzeigeumgebung
DE102022122818A1 (de) Zugriffserzeugung für maschinenbeschickung
DE102020207085A1 (de) Verfahren zum steuern eines roboters und robotersteuereinheit
DE102020214633A1 (de) Vorrichtung und Verfahren zum Steuern einer Robotervorrichtung
DE102022129008A1 (de) Verfahren zur behandlung von kollisionen bei der griffgenerierung
DE102020209685A1 (de) Verfahren zum steuern einer robotervorrichtung und robotervorrichtungssteuerung
DE102020212658A1 (de) Vorrichtung und Verfahren zum Steuern einer Robotervorrichtung
DE102020214301A1 (de) Vorrichtung und verfahren zum steuern eines roboters zum aufnehmen eines objekts in verschiedenen lagen
DE102020214300A1 (de) Vorrichtung und verfahren zum trainieren eines maschinellen lernmodells zum erkennen einer objekttopologie eines objekts aus einem bild des objekts
DE102020206916A1 (de) Steuereinrichtung und Verfahren zum Auswählen von Auswertungspunkten für ein Bayessches Optimierungsverfahren
DE102022202142B3 (de) Vorrichtung und Verfahren zum Trainieren eines maschinellen Lernmodells zum Ableiten eines Bewegungsvektors für einen Roboter aus Bilddaten
DE102021209646B4 (de) Robotervorrichtung, Verfahren zum computerimplementierten Trainieren eines Roboter-Steuerungsmodells und Verfahren zum Steuern einer Robotervorrichtung
DE102022202144A1 (de) Vorrichtung und Verfahren zur Steuerung eines Roboters zur Durchführung einer Aufgabe
DE102021201880A1 (de) Vorrichtung und Verfahren zum Ermitteln der Pose eines Objekts
DE102022202143B4 (de) Vorrichtung und Verfahren zur Steuerung eines Roboters zur Durchführung einer Aufgabe
DE102021212494B4 (de) Vorrichtung und Verfahren zur Steuerung einer Robotervorrichtung
DE102022208082B3 (de) Verfahren zum Steuern eines technischen Systems
DE102022203410A1 (de) Verfahren zum Steuern einer Robotervorrichtung
DE102021211185B4 (de) Vorrichtung und Verfahren zum Steuern eines Roboters

Legal Events

Date Code Title Description
R163 Identified publications notified
R012 Request for examination validly filed
R083 Amendment of/additions to inventor(s)
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final