DE102022206381A1 - Method for controlling a robotic device - Google Patents
Method for controlling a robotic device Download PDFInfo
- Publication number
- DE102022206381A1 DE102022206381A1 DE102022206381.3A DE102022206381A DE102022206381A1 DE 102022206381 A1 DE102022206381 A1 DE 102022206381A1 DE 102022206381 A DE102022206381 A DE 102022206381A DE 102022206381 A1 DE102022206381 A1 DE 102022206381A1
- Authority
- DE
- Germany
- Prior art keywords
- manifold
- diffeomorphism
- configuration
- vector field
- point
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 239000013598 vector Substances 0.000 claims abstract description 73
- 230000008859 change Effects 0.000 claims abstract description 31
- 230000009471 action Effects 0.000 claims abstract description 15
- 238000012549 training Methods 0.000 claims abstract description 13
- 238000013528 artificial neural network Methods 0.000 claims description 31
- 238000013507 mapping Methods 0.000 claims description 20
- 230000001537 neural effect Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 2
- 230000033001 locomotion Effects 0.000 description 18
- 239000012636 effector Substances 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 10
- 244000208734 Pisonia aculeata Species 0.000 description 9
- 238000013459 approach Methods 0.000 description 8
- 230000010354 integration Effects 0.000 description 8
- 239000011159 matrix material Substances 0.000 description 7
- 230000014509 gene expression Effects 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 238000010606 normalization Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000011217 control strategy Methods 0.000 description 2
- 238000009472 formulation Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 238000010367 cloning Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000013213 extrapolation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000010422 painting Methods 0.000 description 1
- 230000010399 physical interaction Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 238000001356 surgical procedure Methods 0.000 description 1
- 238000001931 thermography Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000002604 ultrasonography Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000003466 welding Methods 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1628—Programme controls characterised by the control loop
- B25J9/163—Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40116—Learn by operator observation, symbiosis, show, watch
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40391—Human to robot skill transfer
Abstract
Gemäß verschiedenen Ausführungsformen ist ein Verfahren zum Steuern einer Robotervorrichtung beschrieben, umfassend Bereitstellen von Demonstrationen für eine Roboterfähigkeit, wobei jede Demonstration eine Trajektorie zeigt, die eine Sequenz von Roboterkonfigurationen umfasst, wobei jede Roboterkonfiguration zumindest teilweise durch einen Punkt auf einer ersten riemannschen Mannigfaltigkeit beschrieben wird, Bestimmen eines Vektorfeldes auf einer zweiten riemannschen Mannigfaltigkeit und Trainieren eines Diffeomorphismus zwischen der ersten riemannschen Mannigfaltigkeit und der zweiten riemannschen Mannigfaltigkeit. Das Verfahren umfasst ferner Steuern der Robotervorrichtung, für eine Konfiguration, für die eine Steueraktion bestimmt werden soll, gemäß einer Konfigurationsänderung, die durch das bestimmte Vektorfeld über den trainierten Diffeomorphismus für die Konfiguration, für die eine Steueraktion bestimmt werden soll, gegeben ist. According to various embodiments, a method for controlling a robotic device is described, comprising providing demonstrations of a robotic capability, each demonstration showing a trajectory comprising a sequence of robot configurations, each robot configuration being at least partially described by a point on a first Riemannian manifold, Determining a vector field on a second Riemann manifold and training a diffeomorphism between the first Riemann manifold and the second Riemann manifold. The method further includes controlling the robotic device, for a configuration for which a control action is to be determined, according to a configuration change given by the determined vector field via the trained diffeomorphism for the configuration for which a control action is to be determined.
Description
Stand der TechnikState of the art
Die vorliegende Erfindung betrifft Verfahren zum Steuern einer Robotervorrichtung.The present invention relates to methods for controlling a robotic device.
In vielen Anwendungen ist es wünschenswert, dass Roboter in möglichen dynamischen und unstrukturierten Umgebungen autonom funktionieren können. Dafür müssen sie lernen, wie sie sich in ihrem Umfeld bewegen und damit interagieren sollen. Dazu können Roboter auf eine Bibliothek von Fähigkeiten angewiesen sein, die verwendet werden können, um einfache Bewegungen auszuführen oder komplizierte Aufgaben wie etwa eine Zusammensetzung mehrerer Fähigkeiten durchzuführen. Eine Weise zum Lernen von Bewegungsfähigkeiten ist über menschliche Beispiele, bekannt als Lernen aus Demonstrationen (LfD: Learning from Demonstrations). Dies beinhaltet, dass ein (typischerweise menschlicher) Experte einmal oder mehrere Male eine spezifische Fähigkeit (z. B. eine Bewegung) zeigt, die von einem Roboter nachgeahmt werden soll.In many applications, it is desirable that robots can function autonomously in potentially dynamic and unstructured environments. To do this, they have to learn how to move and interact with their environment. To do this, robots may rely on a library of skills that can be used to perform simple movements or to perform complicated tasks such as composing multiple skills. One way to learn movement skills is through human examples, known as Learning from Demonstrations (LfD). This involves a (typically human) expert demonstrating once or several times a specific skill (e.g. a movement) that is intended to be imitated by a robot.
Das Lernen aus Demonstrationen ermöglicht Robotern, menschenähnliche Fähigkeiten zum Durchführen einer großen Vielfalt von Aufgaben direkt zu erlangen. Unter dem LfD-Framework werden Demonstrationen gewöhnlich als Zustand-Aktion-Trajektorien repräsentiert, für die ein Zustand zum Beispiel die Roboterendeffektorposition, und eine Aktion die erforderlichen kartesischen Geschwindigkeiten sein kann. Im Kontext des Roboterbewegungslernens bieten Ansätze wie etwa Verhaltensklonen, eine direkte Abbildung (d. h. eine Funktion) von Zuständen auf Aktionen unter Verwendung von Demonstrationsdaten zu lernen. Diese Verfahren können jedoch unter Datenfehlanpassung und Extrapolations(Generalisierungs)-Schwierigkeiten leiden, was manchmal zu unzuverlässigen Bewegungen führt, wenn sie außerhalb der Demonstrationsdatenunterstützung erzeugt werden. Eine Weise, dies zu überwinden, besteht darin, Steuerungstheorie wirksam einzusetzen, insbesondere Stabilitätszertifikate, die die Generalisierungsfertigkeiten der Bewegungslernverfahren durch das Einführen von Stabilitätsgarantien verbessern können. Daher erfordert das Problem des Roboterbewegungslernens das Erstellen eines Modells, das die demonstrierten Bewegungsdynamiken einkapselt und Stabilität garantiert.Learning from demonstrations allows robots to directly acquire human-like abilities to perform a wide variety of tasks. Under the LfD framework, demonstrations are usually represented as state-action trajectories, for which a state can be, for example, the robot end-effector position, and an action can be the required Cartesian velocities. In the context of robot motion learning, approaches such as behavioral cloning offer to learn a direct mapping (i.e., a function) from states to actions using demonstration data. However, these methods can suffer from data misfitting and extrapolation (generalization) difficulties, sometimes resulting in unreliable motions when generated outside of demonstration data support. One way to overcome this is to leverage control theory, particularly stability certificates, which can improve the generalization capabilities of motion learning methods by introducing stability guarantees. Therefore, the problem of robot motion learning requires building a model that encapsulates the demonstrated motion dynamics and guarantees stability.
In diesen Aspekten lautet die gewöhnliche Annahme, dass die Roboterbewegungstrajektorien in euklidischen Räumen liegen. Diese Annahme gilt jedoch nicht streng, wenn die Bewegung des Roboterendeffektors in Erwägung gezogen wird, aufgrund der Orientierungsrepräsentation. Es gibt beispielsweise verschiedene Arten von Repräsentation für die Orientierung, wie etwa Quaternion in der 3-Sphären-Mannigfaltigkeit und Rotationsmatrizen in der Mannigfaltigkeit der speziellen orthogonalen Gruppe (SO(3)).In these aspects, the usual assumption is that the robot motion trajectories lie in Euclidean spaces. However, this assumption does not strictly hold when considering the movement of the robot end effector due to the orientation representation. For example, there are different types of representation for orientation, such as quaternions in the 3-sphere manifold and rotation matrices in the special orthogonal group (SO(3)) manifold.
Daher sind Ansätze für ein stabiles Training einer Robotervorrichtung, insbesondere zum Lernen aus Demonstrationen, das die geometrischen Beschränkungen der Demonstrationsdaten in nicht euklidischen Räumen effektiv handhaben kann, wünschenswert.Therefore, approaches for robust training of a robotic device, particularly for learning from demonstrations, that can effectively handle the geometric constraints of the demonstration data in non-Euclidean spaces are desirable.
Offenbarung der ErfindungDisclosure of the invention
Gemäß verschiedenen Ausführungsformen ist ein Verfahren zum Steuern einer Robotervorrichtung bereitgestellt, das beinhaltet: Bereitstellen von Demonstrationen für eine Roboterfähigkeit, wobei jede Demonstration eine Trajektorie zeigt, die eine Sequenz von Roboterkonfigurationen beinhaltet, wobei jede Roboterkonfiguration zumindest teilweise durch einen Punkt auf einer ersten riemannschen Mannigfaltigkeit beschrieben wird, Bestimmen eines Vektorfeldes auf einer zweiten riemannschen Mannigfaltigkeit und Trainieren eines Diffeomorphismus zwischen der ersten riemannschen Mannigfaltigkeit und der zweiten riemannschen Mannigfaltigkeit durch Suchen nach Parameterwerten des Diffeomorphismus, die einen Verlust minimieren. Der Verlust beinhaltet, für jede Demonstration und für mindestens eine Roboterkonfiguration der durch die Demonstration gezeigten Trajektorie, eine Differenz zwischen einer Konfigurationsänderung zu der nächsten Konfiguration der Trajektorie und einer Konfigurationsänderung, die durch das bestimmte Vektorfeld über den Diffeomorphismus gegeben ist. Das Bestimmen der Konfigurationsänderung, die durch das bestimmte Vektorfeld für eine Konfiguration gegeben ist, beinhaltet Abbilden des Punktes auf der ersten riemannschen Mannigfaltigkeit, die die Konfiguration beschreibt, auf einen Punkt auf der zweiten riemannschen Mannigfaltigkeit mittels des Diffeomorphismus, Bestimmen einer Änderung, die durch das Vektorfeld an dem Punkt auf der zweiten riemannschen Mannigfaltigkeit spezifiziert wird, und Abbilden der bestimmten Änderung auf den Tangentialraum des Punktes auf der ersten riemannschen Mannigfaltigkeit unter Verwendung des Differentials des inversen Diffeomorphismus, wobei die Konfigurationsänderung durch das Ergebnis der Abbildung gegeben ist. Das Verfahren beinhaltet ferner Steuern der Robotervorrichtung, für eine Konfiguration, für die eine Steueraktion bestimmt werden soll, gemäß einer Konfigurationsänderung, die durch das bestimmte Vektorfeld über den trainierten Diffeomorphismus für die Konfiguration gegeben ist, für die eine Steueraktion bestimmt werden soll.According to various embodiments, a method of controlling a robotic device is provided, including: providing demonstrations of a robotic capability, each demonstration showing a trajectory that includes a sequence of robot configurations, each robot configuration at least partially described by a point on a first Riemannian manifold is, determining a vector field on a second Riemann manifold and training a diffeomorphism between the first Riemann manifold and the second Riemann manifold by searching for parameter values of the diffeomorphism that minimize loss. The loss includes, for each demonstration and for at least one robot configuration of the trajectory shown by the demonstration, a difference between a configuration change to the next configuration of the trajectory and a configuration change given by the particular vector field via the diffeomorphism. Determining the configuration change given by the particular vector field for a configuration involves mapping the point on the first Riemann manifold describing the configuration to a point on the second Riemann manifold using the diffeomorphism, determining a change given by the vector field at the point on the second Riemann manifold is specified, and mapping the determined change to the tangent space of the point on the first Riemann manifold using the differential of the inverse diffeomorphism, where the configuration change is given by the result of the mapping. The method further includes controlling the robot device, for a configuration for which a control action is to be determined, according to a configuration change determined by the specific vector field is given via the trained diffeomorphism for the configuration for which a control action is to be determined.
Das oben beschriebene Verfahren ermöglicht das Lernen aus Demonstrationen für dynamische Bewegungen aus einer riemannschen Perspektive, bei der Position-Geschwindigkeits-Paare (allgemein Paare von Konfiguration (Zustand) und einer Konfigurationsänderung (Aktion), die in der Konfiguration durchgeführt werden sollten) ein Vektorfeld auf einer riemannschen Mannigfaltigkeit beschreiben (die einer Zustand-Aktion-Abbildungsfunktion entspricht). Die zugrundeliegende riemannsche Geometrie wird während des Lernprozesses integriert, um zu gewährleisten, dass das gelernte Vektorfeld (auf der ersten riemannschen Mannigfaltigkeit) die zugrundeliegende Geometrie der Demonstrationsdaten erfüllt. Dazu wird ein Diffeomorphismus verwendet, der, falls das bestimmte Vektorfeld (auf der zweiten riemannschen Mannigfaltigkeit) stabil ist, die Stabilität (z. B. im Sinne von Lyapunov) der gelernten Steuerungsstrategie (gegeben durch das gelernte Vektorfeld auf der ersten riemannschen Mannigfaltigkeit) garantiert.The method described above allows learning from demonstrations for dynamic motion from a Riemannian perspective, where position-velocity pairs (generally pairs of configuration (state) and a configuration change (action) that should be performed in the configuration) on a vector field describe a Riemannian manifold (which corresponds to a state-action mapping function). The underlying Riemannian geometry is integrated during the learning process to ensure that the learned vector field (on the first Riemannian manifold) satisfies the underlying geometry of the demonstration data. For this purpose, a diffeomorphism is used, which, if the particular vector field (on the second Riemann manifold) is stable, guarantees the stability (e.g. in the Lyapunov sense) of the learned control strategy (given by the learned vector field on the first Riemann manifold). .
Dies kann durch das Bestimmen eines (z. B. kanonischen) stabilen Vektorfeldes gemäß den Lyapunov-Stabilitätsanforderungen auf einem vorbestimmten Raum (hier die zweite riemannsche Mannigfaltigkeit, z. B. für Orientierungen, aber das gleiche kann auch für den euklidischen Raum für Positionen, bei denen die Situation viel einfacher ist, durchgeführt werden) erreicht werden. Dann wird ein Vektorfeld auf der ersten riemannschen Mannigfaltigkeit durch Lernen eines Diffeomorphismus zwischen den gewünschten (beobachteten) Demonstrationsdaten und der zweiten riemannschen Mannigfaltigkeit (die ein stabiles System mittels des (vor)bestimmten Vektorfeldes repräsentiert) bereitgestellt. Das gelernte Vektorfeld kann verwendet werden, um stabile Dynamiken in der Steuerung zu reproduzieren, die die Demonstrationstrajektorien imitieren.This can be done by determining a (e.g. canonical) stable vector field according to the Lyapunov stability requirements on a predetermined space (here the second Riemannian manifold, e.g. for orientations, but the same can also be done for the Euclidean space for positions, where the situation is much simpler). Then, a vector field is provided on the first Riemann manifold by learning a diffeomorphism between the desired (observed) demonstration data and the second Riemann manifold (representing a stable system by means of the (pre)determined vector field). The learned vector field can be used to reproduce stable dynamics in the control that mimic the demonstration trajectories.
Der obige Ansatz kann bei einer breiten Vielfalt von Anwendungen angewendet werden, bei denen Daten auf einer riemannschen Mannigfaltigkeit liegen. Er garantiert eine globale asymptotische Stabilität der Robotervorrichtung zusammen mit hoher Genauigkeit der Bewegungsreproduktion.The above approach can be applied to a wide variety of applications where data lies on a Riemannian manifold. It guarantees global asymptotic stability of the robotic device along with high accuracy of motion reproduction.
Verschiedene Beispiele sind im Folgenden gegeben.Various examples are given below.
Beispiel 1 ist ein Verfahren zum Steuern einer Robotervorrichtung, wie oben beschrieben.Example 1 is a method of controlling a robot device as described above.
Beispiel 2 ist das Verfahren des Beispiels 1, einschließlich Bestimmen, dass das Vektorfeld ein stabiles Vektorfeld ist.Example 2 is the procedure of Example 1, including determining that the vector field is a stable vector field.
Somit kann erreicht werden, dass die Steueraktionen, die gemäß den Konfigurationsänderungen vorgenommen werden, die durch das bestimmte Vektorfeld über den Diffeomorphismus gegeben sind, zu einer stabilen und effizienten Steuerung der Robotervorrichtung führen.Thus, it can be achieved that the control actions taken according to the configuration changes given by the particular vector field via the diffeomorphism lead to stable and efficient control of the robotic device.
Beispiel 3 ist das Verfahren des Beispiels 1 oder 2, einschließlich Trainieren des Diffeomorphismus durch Trainieren eines neuronalen Netzwerks, wobei der Diffeomorphismus einen Punkt auf die Lösung einer neuronalen gewöhnlichen Differentialgleichung abbildet, wobei der Wert der Ableitung an einem Punkt durch die Ausgabe des neuronalen Netzwerks, wenn es mit dem Punkt versorgt wird, gegeben ist.Example 3 is the method of Example 1 or 2, including training the diffeomorphism by training a neural network, the diffeomorphism mapping a point to the solution of a neural ordinary differential equation, where the value of the derivative at a point is given by the output of the neural network, when it is supplied with the point, is given.
Somit kann der Diffeomorphismus effizient durch Trainieren eines neuronalen Netzwerks trainiert werden, da für neuronale Netzwerke effiziente Trainingsverfahren verfügbar sind. Ferner kann eine neuronale gewöhnliche Differentialgleichung effizient in einer Vorwärtsiteration gelöst werden.Thus, diffeomorphism can be trained efficiently by training a neural network since efficient training methods are available for neural networks. Furthermore, a neural ordinary differential equation can be solved efficiently in a forward iteration.
Beispiel 4 ist das Verfahren eines der Beispiele 1 bis 3, einschließlich Bestimmen des Vektorfeldes auf der zweiten riemannschen Mannigfaltigkeit in Abhängigkeit von der Ausgabe eines weiteren neuronalen Netzwerks und Trainieren des weiteren neuronalen Netzwerks zusammen mit dem Diffeomorphismus durch Suchen nach Parameterwerten des Diffeomorphismus und des weiteren neuronalen Netzwerks, um den Verlust zu minimieren.Example 4 is the method of any of Examples 1 to 3, including determining the vector field on the second Riemann manifold depending on the output of another neural network and training the further neural network together with the diffeomorphism by searching for parameter values of the diffeomorphism and the further neural network to minimize loss.
Somit werden zusätzliche Freiheitsgrade in Form des weiteren neuronalen Netzwerks eingeführt, was eine bessere Anpassung an die Demonstrationen ermöglicht. Das weitere neuronale Netzwerk empfängt zum Beispiel Punkte auf der zweiten riemannschen Mannigfaltigkeit als Eingabe.Thus, additional degrees of freedom are introduced in the form of the additional neural network, which enables better adaptation to the demonstrations. The further neural network, for example, receives points on the second Riemann manifold as input.
Beispiel 5 ist das Verfahren eines der Beispiele 1 bis 4, wobei jede Roboterkonfiguration eine Orientierung einer Komponente der Robotervorrichtung beinhaltet, die durch den jeweiligen Punkt auf der ersten riemannschen Mannigfaltigkeit beschrieben wird.Example 5 is the method of any of Examples 1 to 4, wherein each robot configuration includes an orientation of a component of the robot device described by the respective point on the first Riemann manifold.
Orientierungen können effizienter unter Verwendung (allgemeiner) riemannscher Mannigfaltigkeiten anstatt euklidischer Räume beschrieben werden.Orientations can be described more efficiently using (general) Riemannian manifolds rather than Euclidean spaces.
Beispiel 6 ist eine Robotervorrichtungssteuerung, die dazu ausgelegt ist, das Verfahren nach einem der Beispiele 1 bis 5 auszuführen.Example 6 is a robot device controller designed to carry out the method of any of Examples 1 to 5.
Beispiel 7 ist ein Computerprogramm einschließlich Anweisungen, die bei Ausführung durch einen Prozessor veranlassen, dass der Prozessor ein Verfahren nach einem der Beispiele 1 bis 5 durchführt.Example 7 is a computer program including instructions that, when executed by a processor, cause the processor to perform a method according to any of Examples 1 to 5.
Beispiel 8 ist ein computerlesbares Medium, das Anweisungen speichert, die bei Ausführung durch einen Prozessor veranlassen, dass der Prozessor ein Verfahren nach einem der Beispiele 1 bis 5 durchführt.Example 8 is a computer-readable medium that stores instructions that, when executed by a processor, cause the processor to perform a method according to any of Examples 1 to 5.
In den Zeichnungen bezeichnen allgemein überall in den unterschiedlichen Ansichten ähnliche Bezugszeichen die gleichen Teile. Die Zeichnungen sind nicht notwendigerweise maßstabsgetreu, stattdessen wird der Schwerpunkt allgemein auf die Veranschaulichung der Prinzipien der Erfindung gelegt. In der folgenden Beschreibung werden verschiedene Aspekte mit Bezug auf die folgenden Zeichnungen beschrieben, in denen gilt:
-
1 zeigt einen Roboter. -
2 zeigt eine Veranschaulichung einer Sphären-Mannigfaltigkeit S2, deren Punkte zum Beispiel jeweils eine mögliche Orientierung eines Roboterendeffektors repräsentieren können. -
3 veranschaulicht einen Diffeomorphismus zwischen einer ersten riemannschen Mannigfaltigkeit und einer zweiten riemannschen Mannigfaltigkeit, der zum Ableiten vom Robotersteueraktionen verwendet wird, gemäß verschiedenen Ausführungsformen. -
4 veranschaulicht eine numerische Integration auf einer Mannigfaltigkeit unter Verwendung eines Projektionsverfahrens. -
5 zeigt ein Flussdiagramm, das ein Verfahren zum Steuern einer Robotervorrichtung veranschaulicht, gemäß einer Ausführungsform.
-
1 shows a robot. -
2 shows an illustration of a sphere manifold S 2 , the points of which can each represent, for example, a possible orientation of a robot end effector. -
3 illustrates a diffeomorphism between a first Riemannian manifold and a second Riemannian manifold used to derive robot control actions, according to various embodiments. -
4 illustrates numerical integration on a manifold using a projection method. -
5 shows a flowchart illustrating a method for controlling a robotic device, according to an embodiment.
Die folgende ausführliche Beschreibung bezieht sich auf die begleitenden Zeichnungen, die veranschaulichend spezifische Einzelheiten und Aspekte dieser Offenbarung zeigen, in denen die Erfindung umgesetzt werden kann. Andere Aspekte können genutzt werden, und strukturelle, logische und elektrische Änderungen können vorgenommen werden, ohne vom Schutzumfang der Erfindung abzuweichen. Die verschiedenen Aspekte dieser Offenbarung schließen sich nicht notwendigerweise gegenseitig aus, da manche Aspekte dieser Offenbarung mit einem oder mehreren anderen Aspekten dieser Offenbarung kombiniert werden können, um neue Aspekte zu bilden.The following detailed description refers to the accompanying drawings, which illustratively show specific details and aspects of this disclosure in which the invention may be practiced. Other aspects may be utilized and structural, logical and electrical changes may be made without departing from the scope of the invention. The various aspects of this disclosure are not necessarily mutually exclusive, as some aspects of this disclosure may be combined with one or more other aspects of this disclosure to form new aspects.
Im Folgenden werden verschiedene Beispiele ausführlicher beschrieben.Various examples are described in more detail below.
Der Roboter 100 beinhaltet einen Roboterarm 101, zum Beispiel einen Industrieroboterarm zum Handhaben oder Zusammenfügen eines Arbeitsstücks (oder eines oder mehrerer anderer Objekte). Der Roboterarm 101 beinhaltet Manipulatoren 102, 103, 104 und eine Basis (oder Stütze) 105, mit der die Manipulatoren 102, 103, 104 gestützt werden. Der Begriff „Manipulator“ bezieht sich auf die beweglichen Glieder des Roboterarms 101, deren Betätigung eine physische Interaktion mit der Umgebung ermöglicht, z. B. um eine Aufgabe auszuführen. Zur Steuerung beinhaltet der Roboter 100 eine (Roboter-) Steuerung 106, die dazu ausgelegt ist, die Interaktion mit der Umgebung gemäß einem Steuerprogramm zu implementieren. Das letzte Glied 104 (am weitesten von der Stütze 105 entfernt) der Manipulatoren 102, 103, 104 wird auch als der Endeffektor 104 bezeichnet und kann ein oder mehrere Werkzeuge wie etwa einen Schweißbrenner, ein Greifinstrument, ein Lackiergerät oder dergleichen beinhalten.The
Die anderen Manipulatoren 102, 103 (näher an der Stütze 105) können eine Positionierungsvorrichtung bilden, sodass, zusammen mit dem Endeffektor 104, der Roboterarm 101 mit dem Endeffektor 104 an seinem Ende bereitgestellt ist. Der Roboterarm 101 ist ein mechanischer Arm, der ähnliche Funktionen wie ein menschlicher Arm (möglicherweise mit einem Werkzeug an seinem Ende) bereitstellen kann.The
Der Roboterarm 101 kann Gelenkelemente 107, 108, 109 beinhalten, die die Manipulatoren 102, 103, 104 miteinander und mit der Stütze 105 verbinden. Ein Gelenkelement 107, 108, 109 kann ein oder mehrere Gelenke aufweisen, die jeweils eine rotierbare Bewegung (d. h. Rotationsbewegung) und/oder eine translatorische Bewegung (d. h. Verlagerung) für assoziierte Manipulatoren relativ zueinander bereitstellen können. Die Bewegung der Manipulatoren 102, 103, 104 kann mittels Aktoren initiiert werden, die durch die Steuerung 106 gesteuert werden.The
Der Begriff „Aktor“ kann als eine Komponente verstanden werden, die ausgebildet ist, einen Mechanismus oder Prozess als Reaktion auf eine Ansteuerung zu beeinflussen. Der Aktor kann Anweisungen, die durch die Steuerung 106 erstellt werden (die sogenannte Aktivierung) in mechanische Bewegungen implementieren. Der Aktor, z. B. ein elektromechanischer Wandler, kann dazu ausgelegt sein, elektrische Energie als Reaktion auf eine Ansteuerung in mechanische Energie umzuwandeln.The term “actuator” can be understood as a component that is designed to influence a mechanism or process in response to a control. The actuator can implement instructions created by the controller 106 (the so-called activation) into mechanical movements. The actor, e.g. B. an electromechanical transducer can be designed to convert electrical energy into mechanical energy in response to a control.
Der Begriff „Steuerung“ kann als eine beliebige Art von logikimplementierender Entität verstanden werden, die zum Beispiel eine Schaltung und/oder einen Prozessor beinhalten kann, die/der in der Lage ist, Software, die in einem Speichermedium gespeichert ist, Firmware oder eine Kombination davon auszuführen, und die Anweisungen erstellen kann, z. B. zu einem Aktor im vorliegenden Beispiel. Die Steuerung kann zum Beispiel durch Programmcode (z. B. Software) zum Steuern des Betriebs eines Systems, eines Roboters in dem vorliegenden Beispiel, konfiguriert werden.The term “controller” can be understood as any type of logic-implementing entity, which may include, for example, a circuit and/or a processor capable of controlling software stored in a storage medium, firmware, or a combination of it, and can create the instructions, e.g. B. to an actuator in the present example. The controller may be configured, for example, through program code (e.g., software) to control the operation of a system, a robot in the present example.
Im vorliegenden Beispiel beinhaltet die Steuerung 106 einen oder mehrere Prozessoren 110 und einen Speicher 111, der Code und Daten speichert, basierend auf denen der Prozessor 110 den Roboterarm 101 steuert. Gemäß verschiedenen Ausführungsformen steuert die Steuerung 106 den Roboterarm 101 auf Basis eines maschinellen Lernmodells 112, das im Speicher 111 gespeichert ist.In the present example, the
Das maschinelle Lernmodell 112 wird mittels Lernens aus Demonstrationen trainiert, die z. B. durch einen Benutzer bereitgestellt werden, der den Roboterarm 101 manuell bewegt. Jede Demonstration ist eine Sequenz von Roboterkonfigurationen. Gemäß verschiedenen Ausführungsformen wird jede Konfiguration zumindest teilweise durch einen Punkt auf einer riemannschen Mannigfaltigkeit gegeben. Beispielsweise besteht eine gewisse Demonstrationstrajektorie
Eine riemannsche Mannigfaltigkeitist ein m-dimensionaler topologischer Raum, für den jeder Punkt einem euklidischen Raum ℝm gleicht und der eine global definierte differenzielle Struktur aufweist. Für jeden Punkt
Zwei Punkte x und y sind auf der Sphäre angegeben, die durch die Steuerung 106 verwendet werden können, um zwei unterschiedliche Orientierungen des Roboterendeffektors 104 zu repräsentieren.Two points x and y are indicated on the sphere that can be used by the
Die kürzeste Distanz zwischen den beiden Punkten im umliegenden Raum würde eine gerade Linie 201 sein, während der kürzeste Pfad auf der Mannigfaltigkeit eine Geodäte 202 ist.The shortest distance between the two points in the surrounding space would be a
Um die euklidischen Tangentialräume zu nutzen, können Abbildungen hin und her zwischen den Tangentialräumen
Die Exponentialabbildung
Eine andere nützliche Operation über Mannigfaltigkeiten ist der Paralleltransport
Beispielsweise in
Das Folgende sind die Ausdrücke für die riemannsche Distanz, Exponential- und Logarithmusabbildungen und Paralleltransportoperation für die Sphären-Mannigfaltigkeit
Die Aufgabe des Lernens aus Demonstrationen kann als Lernen eines Vektorfeldes im jeweiligen Raum von Konfigurationen des Roboters angesehen werden. Im Folgenden ist der Raum von Konfigurationen eine riemannsche Mannigfaltigkeit. Es sollte jedoch angemerkt werden, dass jede Konfiguration weitere Komponenten aufweisen kann, insbesondere eine Komponente im euklidischen Raum (wie ℝ3 im obigen Beispiel), die im Folgenden der Einfachheit halber weggelassen wird (und die einfacher zu behandeln ist als der allgemeinere Fall der riemannschen Mannigfaltigkeit).The task of learning from demonstrations can be viewed as learning a vector field in the robot's respective space of configurations. In the following the space of configurations is a Riemannian manifold. However, it should be noted that any configuration may have additional components, in particular a component in Euclidean space (like ℝ 3 in the example above), which is omitted below for simplicity (and which is easier to treat than the more general case of Riemannian diversity).
Somit wird im Folgenden ein Ansatz zum Lernen eines Vektorfeldes auf einer riemannschen Mannigfaltigkeit beschrieben, während globale asymptotische Stabilität garantiert wird. Gemäß verschiedenen Ausführungsformen wird dies durch Nutzung eines Diffeomorphismus erreicht, der ein Zielvektorfeld (d. h. dasjenige, das gelernt werden sollte) auf der riemannschen Mannigfaltigkeit zu einem einfachen kanonischen (d. h. vorbestimmten) stabilen Vektorfeld auf einer latenten Mannigfaltigkeit transformiert. Der Diffeomorphismus wird durch ein (erstes) neuronales Netzwerk implementiert, wie nachstehend ausführlicher beschrieben wird.Thus, an approach for learning a vector field on a Riemannian manifold while guaranteeing global asymptotic stability is described below. According to various embodiments, this is accomplished by utilizing a diffeomorphism that transforms a target vector field (i.e., the one that should be learned) on the Riemann manifold to a simple canonical (i.e., predetermined) stable vector field on a latent manifold. The diffeomorphism is implemented by a (first) neural network, as described in more detail below.
Beispielsweise wird ein C1-Diffeomorphismus unter Verwendung kontinuierlicher Normalisierungsflüsse auf Mannigfaltigkeiten gelernt. Vor dem Lernen des Diffeomorphismus wird das Zielvektorfeld 302 auf der latenten Mannigfaltigkeit 302 ausgewählt. Wie erwartet, lautet eine der Bedingungen, die erfüllt werden muss, wenn eine latente Mannigfaltigkeit ausgewählt wird, dass die latente Mannigfaltigkeit 302 und die ursprüngliche Mannigfaltigkeit (d. h. die erste Mannigfaltigkeit 301) diffeomorph sein müssen. Dieses Zielvektorfeld 302 ist vordefiniert, sich als ein geodätisches Vektorfeld zu verhalten, wobei das Wegintegral auf diesem Vektorfeld Geodäten auf der latenten Mannigfaltigkeit produziert.For example, a C1 diffeomorphism is learned using continuous normalization flows on manifolds. Before learning the diffeomorphism, the
Um ein stabiles Zielvektorfeld 302 zu konstruieren, kann die Logarithmusabbildung verwendet werden, um zu veranlassen, dass das Vektorfeld den Geodäten folgt. Insbesondere in Anbetracht eines Attraktorpunktes
Gemäß verschiedenen Ausführungsformen wird der Faktor kγ unter Verwendung eines (zweiten) neuronalen Netzwerks mit Parameter γ konstruiert und trainiert, unter Verwendung der Demonstrationsdaten zusammen mit dem Diffeomorphismus Φθ zu lernen. Es sollte angemerkt werden, dass der Faktor kγ nur größer als null an allen Orten y ≠ y0 für das Vektorfeld sein muss, um auf der Mannigfaltigkeit stabil zu sein. Gemäß verschiedenen Ausführungsformen wird somit die Exponentialfunktion verwendet, deren Exponent durch das zweite neuronale Netzwerk modelliert wird
Die erste Mannigfaltigkeit 301 soll mitbezeichnet werden und das Zielvektorfeld soll mit
Gemäß verschiedenen Ausführungsformen wird, anstelle einer direkten Parametrisierung des Zielvektorfeldes, die diffeomorphe Abbildung
Das Lernen des Zielvektorfeldes beinhaltet somit das Lernen des Diffeomorphismus (d. h. Anpassen seiner Parameter θ, die zum Beispiel Gewichte eines neuronalen Netzwerks zum Implementieren des Diffeomorphismus sind, wie nachstehend ausführlicher beschrieben), sodass er das Zielvektorfeld auf das vordefinierte (global stabile) Vektorfeld auf der zweiten Mannigfaltigkeit 302 projiziert. Die zweite Mannigfaltigkeit ist zum Beispiel durch ein geodätisches Vektorfeld
Nach dem Lernen des Diffeomorphismus und seiner Inversen kann die jeweilige Steuerung (z. B. Steuerung 106), um eine Steueraktion für eine aktuelle Roboterkonfiguration zu bestimmen, die Aktion für eine Konfiguration (d. h. die Konfigurationsänderung wie etwa Geschwindigkeit) bestimmen, die durch den Punkt
- • Abbilden des Punktes x auf die latente Mannigfaltigkeit 302 mit dem gelernten Diffeomorphismus
- • Evaluieren des geodätischen Vektorfeldes auf die bestimmte Änderung (z. B. Geschwindigkeit) für die latente Variable y (d. h. den Punkt auf der zweiten riemannschen Mannigfaltigkeit, auf den x mittels des Diffeomorphismus abgebildet wurde)
- • Verwenden des Pullback-Operators
- • Mapping the point x onto the latent manifold 302 using the learned diffeomorphism
- • Evaluate the geodesic vector field for the specific change (e.g. velocity) for the latent variable y (i.e. the point on the second Riemann manifold to which x was mapped using diffeomorphism)
- • Using the pullback operator
first manifold 301 at the location
Wie in
Wie oben erwähnt, können kontinuierliche Normalisierungsflüsse auf Mannigfaltigkeiten verwendet werden, um den (trainierbaren) Diffeomorphismus zu konstruieren.As mentioned above, continuous normalization flows on manifolds can be used to construct the (trainable) diffeomorphism.
Insbesondere, gemäß verschiedenen Ausführungsformen, wird ein Residualfluss zum Konstruieren des Diffeomorphismus verwendet. Ein Residualfluss kann als die Zusammensetzung von Residualverbindungen der folgenden Form repräsentiert werden
Das Iterieren durch Gleichung (2) (von einem Startindex s zu einem Endindex e) führt zum Berechnen der Transformation eines Punktes zs = x zu einem Punkt y = ze. Ferner kann durch das Beschränken der Lipschitz-Konstante von fθ auf weniger als 1, d. h. Lip(fθ) < 1, die Invertierbarkeit der Residualblöcke ausreichend gewährleistet werden.Iterating through equation (2) (from a starting index s to an ending index e) results in computing the transformation of a point z s = x to a point y = z e . Furthermore, by limiting the Lipschitz constant of f θ to less than 1, ie Lip(f θ ) < 1, the invertibility of the residual blocks can be sufficiently guaranteed.
Der Residualfluss kann aufgrund dessen, dass das neuronale Netzwerk fθ als neuronale ODE bezeichnet wird, als eine Euler-Diskretisierung einer kontinuierlichen gewöhnlichen Differentialgleichung (ODE) angesehen werden,
Die durch den Residualfluss gegebene diffeomorphe Abbildung (und somit durch das neuronale Netzwerk und seine Gewichte gegeben) kann durch iteratives Durchlaufen des residualen Netzwerks fθ berechnet werden. Dies bedeutet, dass das Berechnen des Diffeomorphismus dem Lösen eines Anfangswertproblems (oder Integrals) entspricht. Dazu wird der Anfangspunkt x = z(ts) ∈ ℝn verwendet, um y zu berechnen durch
Der inverse Diffeomorphismus
Das Obenstehende beschreibt das Konstruieren eines Diffeomorphismus unter dem euklidischen Umfeld. Um die zugrundeliegende Geometrie von Daten zu berücksichtigen (d. h. Konfigurationen, die zumindest teilweise durch Punkte auf einer riemannschen Mannigfaltigkeit repräsentiert werden), wird der kontinuierliche Normalisierungsfluss auf ein Mannigfaltigkeitsumfeld erweitert, d. h. wobei
Im allgemeinen Mannigfaltigkeitsfall kann außerdem der Diffeomorphismus unter Verwendung von Gleichung (4) berechnet werden, indem die Integration über die Mannigfaltigkeit anstatt im euklidischen Raum durchgeführt wird.Furthermore, in the general manifold case, the diffeomorphism can be calculated using equation (4) by performing the integration over the manifold rather than in Euclidean space.
Die Integration auf Mannigfaltigkeiten kann unter Verwendung von Projektionsverfahren und Integratoren basierend auf lokalen Koordinaten durchgeführt werden.Integration on manifolds can be performed using projection methods and integrators based on local coordinates.
Mit einer ODE gegeben durch Gleichung (3) auf einer Mannigfaltigkeitwobei
Integrationsverfahren auf Mannigfaltigkeiten basierend auf den lokalen Koordinaten berücksichtigen eine lokale Repräsentation von Mannigfaltigkeit durch eine Koordinatenabbildung, die eine Formulierung einer äquivalenten ODE im euklidischen Raum ermöglicht, die gelöst werden kann und, mittels der Koordinatenabbildung mit inverser Abbildung, eine Lösung auf der Mannigfaltigkeit ergibt.Integration methods on manifolds based on the local coordinates consider a local representation of the manifold through a coordinate map, which enables a formulation of an equivalent ODE in Euclidean space that can be solved and, using the coordinate map with inverse map, gives a solution on the manifold.
Um eine Mannigfaltigkeits-ODE in einem Deep-Learning-Framework (zum Trainieren des neuronalen Netzwerks fθ) einzubeziehen, muss der Gradient des Verlusts bezüglich der Gewichte des neuronalen Netzwerks effizient berechnet werden. Dies kann durch adjungierte Sensitivitätsverfahren durchgeführt werden, die das Behandeln des ODE-Lösers als eine Blackbox ermöglichen und Gradienten durch Lösen einer zweiten augmentierten adjungierten ODE zeitlich rückwärts berechnen, anstatt des direkten Differenzierens durch ODE-Löser. Dieser Ansatz ist speichereffizient, insbesondere für adaptive ODE-Löser, die die Schrittgröße spontan (on-the-fly) anpassen.To include a manifold ODE in a deep learning framework (for training the neural network f θ ), the gradient of the loss with respect to the weights of the neural network must be efficiently calculated. This can be done by adjoint sensitivity methods, which allow treating the ODE solver as a black box and computing gradients backwards in time by solving a second augmented adjoint ODE, rather than directly differentiating by ODE solvers. This approach is memory efficient, especially for adaptive ODE solvers that adjust the step size on the fly.
Es sollte angemerkt werden, dass das Verwenden eines neuronalen Netzwerks zum Modellieren der Dynamiken einer Mannigfaltigkeits-ODE dem neuronalen Netzwerk einige Einschränkungen auferlegt. Aufgrund dessen wird, gemäß verschiedenen Ausführungsformen, ein Projektionsoperator zu der letzten Schicht eines neuronalen „Freiform“-Netzwerks (d. h. ein neuronales Netzwerk ohne diese Einschränkungen) hinzugefügt, um seine Ausgabe auf den Tangentialraum am Eingabeort zu projizieren. Es soll die Roboterkonfiguration (zumindest teilweise) durch Punkte auf einer Mannigfaltigkeitmit Dimension d spezifiziert sein, die in einem umgebenden n-dimensionalen euklidischen Raum eingebettet ist. Angesichts eines neuronalen Freiform-Netzwerks Ψθ : ℝn × ℝ →ℝn ist die Abbildung
Eingabedaten in das neuronale Netzwerk werden als auf der Mannigfaltigkeit 301 angenommen. Das neuronale Netzwerk kann zum Beispiel ein vollständig verbundenes neuronales Netzwerk (FCNN) mit Tanh-Aktivierungsfunktion sein.Input data to the neural network is assumed to be on
Wie oben beschrieben, wird nach dem Erhalten der Konfigurationsänderung, die für den Punkt x durch das Vektorfeld auf der zweiten riemannschen Mannigfaltigkeit über den Diffeomorphismus gegeben ist, der Tangentialvektor ẏ für die latente Variable y (d. h. den Punkt, auf den der Diffeomorphismus x abbildet) zurück auf den Tangentialraum am Ort
Dieser Operator kann als die inverse Abbildung der Differentialen des Diffeomorphismus angesehen werden, d. h. der Differentialen, die ẋ auf ẏ abbildet:
Im euklidischen Fall kann ẋ direkt durch Multiplizieren von ẏ mit der Inversen von DxΦθ abgeleitet werden. Unter einem Mannigfaltigkeitsumfeld ist das direkte Berechnen der Inversen jedoch schwierig, insbesondere für eine d-dimensionale Untermannigfaltigkeit in einem n-dimensionalen euklidischen Raum ℝn. Dies liegt an einem unvermeidlichen Rangverlust in der Matrixrepräsentation für DxΦθ (x).In the Euclidean case, ẋ can be derived directly by multiplying ẏ by the inverse of D x Φ θ . However, in a manifold setting, computing the inverse directly is difficult, especially for a d-dimensional submanifold in an n-dimensional Euclidean space ℝ n . This is due to an inevitable loss of rank in the matrix representation for D x Φ θ (x).
Beispielsweise weist der Tangentialraum einer 2-Sphäre, die in ℝ3 repräsentiert ist, auch die gleiche Dimension wie die Mannigfaltigkeit selbst auf, was impliziert, dass der Operator DxΦθ (x) eine Abbildung zwischen zwei 2-dimensionalen Räumen sein sollte. Da die 2-Sphäre und ihr Tangentialraum jedoch in den 3-dimensionalen umgebenden euklidischen Raum eingebettet sind, ist die Matrixrepräsentation für DxΦθ(x) eine 3-mal-3-Matrix. Eine 3-mal-3-Matrix zum Abbilden zwischen 2-dimensionalen Räumen muss rangdefizient sein und kann somit nicht direkt invertiert werden. Es ist typischerweise auch nicht hilfreich, die generalisierte Inverse dieser Matrix zu berechnen, da dies äquivalent zu dem Berechnen einer Minimum-Norm-Lösung für ẋ ist, die nicht die Eigenschaften eines Tangentialvektors erfüllt. Gemäß verschiedenen Ausführungsformen wird dies durch das Einführen einer Beschränkung angesprochen, die das Auferlegen von ẋ auf den Tangentialraum ermöglicht. Im Fall einer Sphären-Mannigfaltigkeit muss der Tangentialvektor ẋ senkrecht zum Positionsvektor x sein, der formuliert werden kann als
Das Kombinieren dieser beiden Gleichungen (6) und (7) ergibt eine eindeutige Lösung. Eine Lösung kann durch Lösen des linear beschränkten Problems entweder durch Erstellen eines neuen linearen Gleichungssystems oder durch Anwenden eines Lagrange-Multiplikators gefunden werden. Im Folgenden wird gezeigt, die Matrix zu augmentieren, um eine neue lineare Gleichung zu erzeugen und die Pseudo-Inverse zu berechnen. Da die augmentierte Matrix einen vollen Rang hat, erzeugt die Pseudo-Inverse das gleiche Ergebnis wie die direkte Inverse.
Dies führt zu der eindeutigen Lösung sowie dem Ausdruck des Pullback-Operators DxΦθ, formuliert als
Angesichts der obigen Ableitung kann der Pullback-Operator
Während unter dem Sphären-Mannigfaltigkeits-Umfeld die Beschränkung linear und leicht zu berechnen oder zu erfüllen ist, kann sie jedoch in anderen Mannigfaltigkeiten nichtlinear und komplex sein. Daher erfordert das Einführen einer nichtlinearen Bedingung in die Gleichung (6) eine iterative Prozedur, um ein nichtlinear beschränktes Optimierungsproblem zu lösen, das rechenintensiv ist.However, while in the sphere manifold environment the constraint is linear and easy to calculate or satisfy, in other manifolds it can be nonlinear and complex. Therefore, introducing a nonlinear condition into equation (6) requires an iterative procedure to solve a nonlinearly constrained optimization problem, which is computationally intensive.
Daher wird gemäß verschiedenen Ausführungsformen, um die Berechnung für willkürliche Mannigfaltigkeiten zu generalisieren, eine Weise zum Bestimmen des Pullback-Operators
Ferner kann ein adjungiertes Verfahren verwendet werden, um das Differential des inversen Diffeomorphismus zu berechnen.Furthermore, an adjoint method can be used to calculate the differential of the inverse diffeomorphism.
Dafür wird A★(t) als adjungierte Variable definiert als Dz(t)Φ-1 definiert. Algorithmus 1 zeigt, dass das Differential des inversen Diffeomorphismus mit einem einzigen Durchlauf des ODE-Lösers auf der Mannigfaltigkeit gegeben ist, während das Ergebnis für den Diffeomorphismus ohne zusätzlichen Aufwand erhalten wird. Daher wird keine Vorwärtsberechnung vor dem Fortfahren mit der Rückwärtspropagation benötigt. For this purpose, A ★ (t) is defined as an adjoint variable as D z(t) Φ -1 . Algorithm 1 shows that the differential of the inverse diffeomorphism is given with a single pass of the ODE solver on the manifold, while the result for the diffeomorphism is obtained without any additional effort. Therefore, no forward computation is needed before proceeding with backward propagation.
Die Funktion ManifoldODESolve löst die Mannigfaltigkeits-ODE (z. B. unter Verwendung eines dynamischen Chart-Verfahrens). Hier liegt die Hauptherausforderung in der Berechnung des Differentials der Vektorfelder auf der Mannigfaltigkeit Dz(t)fθ(z(t),t), wohingegen alleinig partielle Ableitungen in der euklidischen Situation erforderlich sind. Das direkte Berechnen des Differentials von Vektorfeldern kann durch mehrere Techniken vermieden werden, z. B. wie im Folgenden beschrieben.The ManifoldODESolve function solves the manifold ODE (e.g. using a dynamic charting method). Here the main challenge lies in the calculation of the differential of the vector fields on the manifold D z(t) f θ (z(t),t), whereas only partial derivatives are required in the Euclidean situation. Directly computing the differential of vector fields can be avoided by several techniques, e.g. B. as described below.
Unter Verwendung einer Exponentialabbildung
Da
Zusammengefasst wird gemäß verschiedenen Ausführungsformen ein Verfahren wie in
Bei 501 werden Demonstrationen (z. B. durch einen menschlichen Benutzer) für eine Roboterfähigkeit bereitgestellt, wobei jede Demonstration eine Trajektorie zeigt, die eine Sequenz von Roboterkonfigurationen beinhaltet, wobei jede Roboterkonfiguration zumindest teilweise durch einen Punkt auf einer ersten riemannschen Mannigfaltigkeit beschrieben wird.At 501, demonstrations (e.g., by a human user) are provided for a robot capability, each demonstration showing a trajectory that includes a sequence of robot configurations, each robot configuration being at least partially described by a point on a first Riemannian manifold.
Bei 502 wird ein Vektorfeld auf einer zweiten riemannschen Mannigfaltigkeit (homöomorph zu der ersten riemannschen Mannigfaltigkeit, sodass sie auch als eine zweite „Instanz“ der riemannschen Mannigfaltigkeit angesehen werden kann) (vor)definiert.At 502, a vector field is (pre)defined on a second Riemann manifold (homeomorphic to the first Riemann manifold, so that it can also be viewed as a second “instance” of the Riemann manifold).
Bei 503 wird ein Diffeomorphismus zwischen der ersten riemannschen Mannigfaltigkeit und der zweiten riemannschen Mannigfaltigkeit durch Suchen nach Parameterwerten des Diffeomorphismus trainiert, die einen Verlust minimieren, einschließlich, für jede Demonstration und für mindestens eine Roboterkonfiguration der durch die Demonstration gezeigten Trajektorie, einer Differenz zwischen einer Konfigurationsänderung zu der nächsten Konfiguration der Trajektorie und einer Konfigurationsänderung, die durch das bestimmte Vektorfeld über den Diffeomorphismus gegeben ist.At 503, a diffeomorphism between the first Riemannian manifold and the second Riemannian manifold is trained by searching for parameter values of the diffeomorphism that minimize a loss, including, for each demonstration and for at least one robot configuration of the trajectory shown by the demonstration, a difference between a configuration change to the next configuration of the trajectory and a configuration change given by the particular vector field via the diffeomorphism.
Hier beinhaltet das Bestimmen der Konfigurationsänderung, die durch das bestimmte Vektorfeld für eine Konfiguration gegeben ist,
- • Abbilden des Punktes auf der ersten riemannschen Mannigfaltigkeit, der die Konfiguration beschreibt, auf einen Punkt auf der zweiten riemannschen Mannigfaltigkeit mittels des Diffeomorphismus;
- • Bestimmen einer Änderung, die durch das Vektorfeld an dem Punkt auf der zweiten riemannschen Mannigfaltigkeit spezifiziert wird; und
- • Abbilden der bestimmten Änderung auf den Tangentialraum des Punktes auf der ersten riemannschen Mannigfaltigkeit unter Verwendung des Differentials des inversen Diffeomorphismus. Das Ergebnis dieser Abbildung ist die Konfigurationsänderung, die durch das bestimmte Vektorfeld für eine Konfiguration über den Diffeomorphismus gegeben ist.
- • Mapping the point on the first Riemann manifold that describes the configuration to a point on the second Riemann manifold using diffeomorphism;
- • Determine a change specified by the vector field at the point on the second Riemann manifold; and
- • Mapping the particular change to the tangent space of the point on the first Riemann manifold using the differential of the inverse diffeomorphism. The result of this mapping is the configuration change given by the particular vector field for a configuration via diffeomorphism.
Bei 504 wird die Robotervorrichtung für eine Konfiguration, für die eine Steueraktion bestimmt werden soll, gemäß einer Konfigurationsänderung gesteuert, die durch das bestimmte Vektorfeld über den trainierten Diffeomorphismus für die Konfiguration, für die eine Steueraktion bestimmt werden soll, gegeben ist (wobei die Konfigurationsänderung gemäß den obigen drei Stichpunkten bestimmt werden kann).At 504, the robotic device is controlled for a configuration for which a control action is to be determined according to a configuration change given by the determined vector field via the trained diffeomorphism for the configuration for which a control action is to be determined (where the configuration change is according to can be determined from the above three bullet points).
Das Steuern der Robotervorrichtung gemäß einer Konfigurationsänderung kann als das dahingehende Steuern der Robotervorrichtung, die Konfigurationsänderung durchzuführen, verstanden werden. Beispielsweise gibt die Konfigurationsänderung eine Geschwindigkeit in eine gewisse Richtung an, und die Robotervorrichtung wird dahingehend gesteuert, sich mit der Geschwindigkeit in die Richtung zu bewegen (oder zu drehen).Controlling the robot device according to a configuration change can be understood as controlling the robot device to perform the configuration change. For example, the configuration change specifies a speed in a certain direction, and the robotic device is controlled to move (or rotate) at the speed in that direction.
Die riemannschen Mannigfaltigkeiten sind zum Beispiel Räume von Punkten, die eine Orientierung der Robotervorrichtung spezifizieren, z. B. die Orientierung eines Endeffektors.The Riemannian manifolds are, for example, spaces of points that specify an orientation of the robotic device, e.g. B. the orientation of an end effector.
Der Ansatz von
Das Verfahren von
Verschiedene Ausführungsformen können Bilddaten von verschiedenen visuellen Sensoren (Kameras) wie etwa zum Beispiel Video, Radar, LiDAR, Ultraschall, Wärmebildgebung, Sonar usw. empfangen und verwenden, um die Daten der Demonstrationen zu erhalten.Various embodiments may receive and use image data from various visual sensors (cameras), such as, for example, video, radar, LiDAR, ultrasound, thermal imaging, sonar, etc., to obtain the demonstration data.
Der Ansatz von
Gemäß einer Ausführungsform ist das Verfahren computer-implementiert.According to one embodiment, the method is computer-implemented.
Obwohl spezifische Ausführungsformen hierin veranschaulicht und beschrieben wurden, werden Durchschnittsfachleute auf dem Gebiet verstehen, dass eine Vielfalt alternativer und/oder äquivalenter Implementierungen für die spezifischen gezeigten und beschriebenen Ausführungsformen ersetzt werden können, ohne vom Schutzumfang der vorliegenden Erfindung abzuweichen. Diese Anmeldung soll jegliche Anpassungen oder Variationen der hierin besprochenen spezifischen Ausführungsformen abdecken. Daher ist beabsichtigt, dass diese Erfindung nur durch die Ansprüche und deren Äquivalente beschränkt wird.Although specific embodiments have been illustrated and described herein, those of ordinary skill in the art will understand that a variety of alternative and/or equivalent implementations may be substituted for the specific embodiments shown and described without departing from the scope of the present invention. This application is intended to cover any adaptations or variations of the specific embodiments discussed herein. Therefore, it is intended that this invention be limited only by the claims and their equivalents.
Claims (8)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102022206381.3A DE102022206381A1 (en) | 2022-06-24 | 2022-06-24 | Method for controlling a robotic device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102022206381.3A DE102022206381A1 (en) | 2022-06-24 | 2022-06-24 | Method for controlling a robotic device |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102022206381A1 true DE102022206381A1 (en) | 2024-01-04 |
Family
ID=89167255
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102022206381.3A Pending DE102022206381A1 (en) | 2022-06-24 | 2022-06-24 | Method for controlling a robotic device |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102022206381A1 (en) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102018211738A1 (en) | 2018-06-12 | 2020-01-16 | Robert Bosch Gmbh | Real-time control strategy for hydraulic systems with systematic consideration of actuation (rate) and condition size restrictions |
EP3753684A1 (en) | 2019-06-21 | 2020-12-23 | Robert Bosch GmbH | Method and system for robot manipulation planning |
DE102019216229A1 (en) | 2019-10-07 | 2021-04-08 | Robert Bosch Gmbh | Apparatus and method for controlling a robotic device |
DE102020127508A1 (en) | 2019-10-24 | 2021-04-29 | Nvidia Corporation | POSITION TRACKING OBJECTS IN HAND |
EP3838503A1 (en) | 2019-12-16 | 2021-06-23 | Robert Bosch GmbH | Method for controlling a robot and robot controller |
DE102020208169A1 (en) | 2020-06-30 | 2021-12-30 | Robert Bosch Gesellschaft mit beschränkter Haftung | Method and device for operating a machine |
DE102020212658A1 (en) | 2020-10-07 | 2022-04-07 | Robert Bosch Gesellschaft mit beschränkter Haftung | Apparatus and method for controlling a robotic device |
DE102020214231A1 (en) | 2020-11-12 | 2022-05-12 | Robert Bosch Gesellschaft mit beschränkter Haftung | METHOD OF CONTROLLING A ROBOT DEVICE AND ROBOT CONTROLLER |
WO2022171573A1 (en) | 2021-02-12 | 2022-08-18 | Deutsches Zentrum für Luft- und Raumfahrt e.V. | Nonlinear dynamic system and method for designing a nonlinear dynamic system |
DE102021204961A1 (en) | 2021-05-17 | 2022-11-17 | Robert Bosch Gesellschaft mit beschränkter Haftung | Method of controlling a robotic device |
-
2022
- 2022-06-24 DE DE102022206381.3A patent/DE102022206381A1/en active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102018211738A1 (en) | 2018-06-12 | 2020-01-16 | Robert Bosch Gmbh | Real-time control strategy for hydraulic systems with systematic consideration of actuation (rate) and condition size restrictions |
EP3753684A1 (en) | 2019-06-21 | 2020-12-23 | Robert Bosch GmbH | Method and system for robot manipulation planning |
DE102019216229A1 (en) | 2019-10-07 | 2021-04-08 | Robert Bosch Gmbh | Apparatus and method for controlling a robotic device |
DE102020127508A1 (en) | 2019-10-24 | 2021-04-29 | Nvidia Corporation | POSITION TRACKING OBJECTS IN HAND |
EP3838503A1 (en) | 2019-12-16 | 2021-06-23 | Robert Bosch GmbH | Method for controlling a robot and robot controller |
DE102020208169A1 (en) | 2020-06-30 | 2021-12-30 | Robert Bosch Gesellschaft mit beschränkter Haftung | Method and device for operating a machine |
DE102020212658A1 (en) | 2020-10-07 | 2022-04-07 | Robert Bosch Gesellschaft mit beschränkter Haftung | Apparatus and method for controlling a robotic device |
DE102020214231A1 (en) | 2020-11-12 | 2022-05-12 | Robert Bosch Gesellschaft mit beschränkter Haftung | METHOD OF CONTROLLING A ROBOT DEVICE AND ROBOT CONTROLLER |
WO2022171573A1 (en) | 2021-02-12 | 2022-08-18 | Deutsches Zentrum für Luft- und Raumfahrt e.V. | Nonlinear dynamic system and method for designing a nonlinear dynamic system |
DE102021204961A1 (en) | 2021-05-17 | 2022-11-17 | Robert Bosch Gesellschaft mit beschränkter Haftung | Method of controlling a robotic device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yu et al. | Neural PID control of robot manipulators with application to an upper limb exoskeleton | |
DE102021204961B4 (en) | Method of controlling a robotic device | |
DE112016004725T5 (en) | Method for teach-in of a robot and robot arm control device | |
DE112016005365T5 (en) | Direct teaching method of a robot | |
DE102020207085A1 (en) | METHOD OF CONTROLLING A ROBOT AND ROBOT CONTROL UNIT | |
WO2021069129A1 (en) | Device and method for controlling a robot device | |
DE102020209685B4 (en) | METHODS OF CONTROLLING A ROBOT DEVICE AND ROBOT DEVICE CONTROL | |
DE102021204697B4 (en) | Method of controlling a robotic device | |
DE102020212658A1 (en) | Apparatus and method for controlling a robotic device | |
DE102020214231A1 (en) | METHOD OF CONTROLLING A ROBOT DEVICE AND ROBOT CONTROLLER | |
DE102020214633A1 (en) | Apparatus and method for controlling a robotic device | |
DE102020209511B3 (en) | Method and system for determining optimized program parameters for a robot program | |
DE102020208211A1 (en) | Devices and methods for training a machine learning model for recognizing an object topology of an object from an image of the object | |
DE102020214300A1 (en) | DEVICE AND METHOD FOR TRAINING A MACHINE LEARNING MODEL FOR RECOGNIZING AN OBJECT TOPOLOGY OF AN OBJECT FROM AN IMAGE OF THE OBJECT | |
DE102022206381A1 (en) | Method for controlling a robotic device | |
DE102020210823A1 (en) | machine control arrangement | |
DE102017222474A1 (en) | NUMERIC CONTROL AND DATA STRUCTURE | |
Zywno et al. | Innovative initiatives in control education at Ryerson Polytechnic University. Fuzzy-logic control of the 3D-helicopter simulator | |
DE102022208082B3 (en) | Method for controlling a technical system | |
Jin et al. | Evaluation of state representation methods in robot hand-eye coordination learning from demonstration | |
DE102022212638B3 (en) | Device and method for controlling a robot | |
DE102022210281A1 (en) | Apparatus and method for updating a control strategy for an agent given by a Gaussian mixture model | |
DE102021211185B4 (en) | Device and method for controlling a robot | |
DE102022202142B3 (en) | Device and method for training a machine learning model for deriving a motion vector for a robot from image data | |
DE102021209761A1 (en) | Procedure for training a control strategy |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R163 | Identified publications notified | ||
R012 | Request for examination validly filed |