-
TECHNISCHES GEBIET
-
Die vorliegende Anmeldung betrifft ein Robotersystem und ein Verfahren zur Roboter-Geschwindigkeitssteuerung.
-
HINTERGRUND
-
Roboter weisen üblicherweise eine Reihe von Koppelelementen auf, die durch motorgetriebene Robotergelenke miteinander verbunden sind. Jedes Robotergelenk stellt ein oder mehrere unabhängige Steuerungsvariablen/Freiheitsgrade dar. Endeffektoren, wie zum Beispiel Roboterhände oder -greifer, sind diejenigen Endkoppelelemente in einem seriellen Roboter, die direkt auf ein Objekt beim Durchführen einer gegebenen Arbeitsanweisung, wie zum Beispiel Greifen oder Bewegen des Objekts, wirken. Komplexe Programmierung und Bewegungssteuerungstechniken werden in einer Vielzahl von Arten benutzt, um die geforderten Level von Robotermobilität, -geschicklichkeit und arbeitsanweisungsbezogener -funktionalität zu erreichen. Endeffektoren nähern sich und entfernen sich von einer spezifizierten Zielposition entsprechend einem bestimmten Pfad oder einer bestimmten Trajektorie. Solche Pfade werden in Logik unter Verwendung einer Vielzahl von Ansätzen geplant. Allerdings kann konventionelle Endeffektor-Pfadplanung weniger als optimal robust in bestimmten Fällen sein, wie unten beschrieben.
-
-
ZUSAMMENFASSUNG
-
Ein Robotersteuerungssystem und ein Verfahren sind hierin offenbart, die sich dazu eignen, einen Roboterendeffektor zu steuern. Während konventionelle Roboter typischerweise durch Tore oder Barrieren von der umgebenden Arbeitsumgebung isoliert sind, ist direkte Interaktion zwischen Robotern und Linienbedienern und/oder Objekten, die sich in der Roboterarbeitsumgebung befinden, bei einigen der komplexeren aufkommenden geschickten Roboterdesigns vorgesehen. Manchmal allerdings kann immer noch unerwarteter Kontakt mit dem Endeffektor solcher Roboter auftreten, der wiederum zu Endeffektor-Pertubationen führen kann. Solche Pertubationen können dazu führen, dass die Endeffektorbewegung von dem geplanten Pfad abweicht, und erfordern eine robustere Steuerungsverarbeitungsfunktionalität.
-
Der Erfindung liegt die Aufgabe zugrunde, ein Robotersystem sowie ein Verfahren zur Roboter-Geschwindigkeitssteuerung zu schaffen, welche dazu ausgelegt sind, um in Antwort auf Pertubationen der Bewegung des Endeffektors die Bewegung des Endeffektors in Echtzeit anzupassen oder zu modifizieren.
-
Die vorstehende Aufgabe wird durch die Merkmale der unabhängigen Ansprüche 1 und 6 gelöst.
-
Das vorliegende Steuerungs-Framework ist vorgesehen, um diese besondere Steuerungsherausforderung zu adressieren durch die Verwendung eines Steuerungssystems, das Funktionen eines Geschwindigkeitssteuerungsmoduls mit denen eines dynamischen Systemmoduls wie unten beschrieben kombiniert. Wie im Stand der Technik gut bekannt ist, beinhaltet eine Endeffektorsteuerung typischerweise die Programmierung eines Controllers mit vordefinierten Näherungs- und Entfernungstrajektorien in einem gegebenen Aufgabenraum, zum Beispiel einem XYZ-Kartesischen Koordinatensystem. Die Position und Geschwindigkeit des Endeffektors werden in Echtzeit gemessen und gesteuert, während sich der Endeffektor hin zu oder weg von den spezifizierten Zielpositionen bewegt. Dynamische Systeme bieten einen alternativen Ansatz. In einem dynamischen System sind die Endeffektor-Bewegungstrajektorien nicht vordefiniert. Stattdessen werden solche Trajektorien automatisch durch einen Controller während einer gegebenen Endeffektorbewegung generiert. Anders als in den oben angegebenen kontinuierlichen, programmierungsintensiven Steuerungsschemata mit Rückführung, werden in einem dynamischen System nur wenige Steuerungsbefehle spezifiziert. Differentialgleichungen generieren letztendlich die entsprechenden Bewegungstrajektorien.
-
Ein Dynamic Movement Primitive (DMP) Framework kann verwendet werden, um solche dynamischen Systeme zu implementieren. In einem DMP-Framework werden die zuvor genannten Differentialgleichungen angepasst, um gegebene Bewegungen zu generieren. Zusammen können diese Differentialgleichungen eine Bibliothek von sogenannten ”movement primitives” bilden. Allerdings können konventionelle Endeffektorsteuerungstechniken weniger als optimal robust bleiben, besonders beim Erfahren von Pertubationen, wie zum Beispiel solche, die durch äußere Kräfte verursacht werden, die der Endeffektor während der Bewegung durch geplante Trajektorien erfährt.
-
Das hierin offenbarte Steuerungssystem generiert letztendlich Bewegungsbefehle für den Endeffektor, möglicherweise in Antwort auf eine vorherige, vom Bediener demonstrierte Arbeitsanweisung. Das dynamische Systemmodul generiert erwünschte Geschwindigkeitsbefehle für die Bewegung des Endeffektors unter Einsatz eines Flussvektorfeldes. Die tatsächliche Position des Endeffektors im freien Raum wird gemessen und als eine Steuerungseingabe an das dynamische Systemmodul übertragen. Das hierin offenbarte Steuerungssystem erlaubt unterschiedlichere oder flexiblere Roboterbewegungen im Vergleich zum vorherrschenden Stand der Technik, wobei der Roboter besser in der Lage ist, sich online oder in Echtzeit an neu festgesetzte Zielpositionen und/oder das Antreffen dynamischer oder statischer Hindernisse in der Arbeitsumgebung des Roboters anzupassen.
-
In einer beispielhaften Ausführungsform weist ein Robotersystem einen Endeffektor und ein Steuerungssystem auf. Das Steuerungssystem, das in Kommunikation mit dem Endeffektor steht, weist einen Prozessor, ein dynamisches Systemmodul (DSM) und ein Geschwindigkeitssteuerungsmodul (VCM) auf, wobei der Begriff ”Modul” wie hierin gebraucht die Hardware und Softwareteile des Steuerungssystems, welche zur Ausführung verknüpfter Funktionen wie unten beschrieben bestimmt sind, betrifft. Insbesondere das DSM verarbeitet einen Satz von Eingaben und wendet das Flussvektorfeld an, und dann gibt es einen Steuergeschwindigkeitsbefehl aus. Der Satz von Eingaben kann eine gemessene oder tatsächliche Position des Endeffektors, eine erwünschte Zielposition des Endeffektors und einen optionalen bedienervorgeführten Bezugspfad des Endeffektors, zum Beispiel einen durch Zurückfahren oder Teleoperation des Endeffektors vorgeführten Pfad, aufweisen. Das VCM empfängt oder berechnet eine tatsächliche Geschwindigkeit des Endeffektors und den Steuerungsgeschwindigkeitsbefehl als Eingabe und generiert letztendlich einen Motordrehmomentbefehl an den Endeffektor als Ausgabebefehl.
-
Das Steuerungssystem verwendet einen vorbestimmten Satz von Differentialgleichungen, um eine Bewegungstrajektorie des Endeffektors in Echtzeit zu generieren. Die Bewegungstrajektorie nähert den vorgeführten Bezugspfad an. Das Steuerungssystem ist dazu programmiert, die Bewegung des Endeffektors in Echtzeit durch das VCM in Antwort auf erfahrene Pertubationen der Bewegung des Endeffektors anzupassen oder zu modifizieren.
-
Das DSM weist ein Pfadtransformationsmodul, welches programmiert ist, um ein Bezugssystem eines Flussvektorfeldes zu transformieren, und ein Pfadvermischungsmodul auf, das einen einstellbaren linearen Interpolationsterm in die Differentialgleichung einbezieht. Der einstellbare lineare Interpolationsterm mischt einen vorwärts von der Startposition gezeichneten Pfad des Endeffektors mit einem rückwärts von der Zielposition gezeichneten Pfad zusammen.
-
Das Steuerungssystem fügt der Flussvektorfeldfunktion eine Transformation hinzu, wobei die Flussvektorfeldfunktion das oben genannte Flussvektorfeld definiert. Die Transformation rotiert ein Bezugssystem des Flussvektorfeldes, um eine Orientierung des vorgeführten Pfades an eine Orientierung der neuen Start- und Zielposition anzugleichen.
-
Das VCM kann bei einer Taktrate arbeiten, die mindestens fünf mal (5×) höher ist als die Taktrate des DSM. Zum Beispiel kann das DSM bei ungefähr 20–40 Hz arbeiten und das VCM bei ungefähr 100–1000 Hz arbeiten, so dass die Differentialgleichungen mit einer höheren Frequenz aktualisiert werden.
-
Ein dazugehöriges Verfahren weist ein Verarbeiten eines Satzes von Eingaben durch das DSM mit einem vordefinierten Flussvektorfeld auf. Der Satz von Eingaben weist eine tatsächliche Position eines Endeffektors eines Robotersystems, eine erwünschte Zielposition des Endeffektors und einen vorgeführten Bezugspfad des Endeffektors auf. Das Verarbeiten weist ein Verwenden eines vorbestimmten Satzes von Differentialgleichungen auf, um eine Bewegungstrajektorie des Endeffektors in Echtzeit zu generieren, um den vorgeführten Bezugspfad anzunähern. Das Verfahren weist auch ein Ausgeben eines Steuerungsgeschwindigkeitsbefehls durch das DSM und ein Empfangen und Verarbeiten einer tatsächlichen Geschwindigkeit des Endeffektors und des Steuerungsgeschwindigkeitsbefehls von dem DSM durch das VCM auf. Das Verfahren weist ferner ein Generieren und Übertragen eines Motordrehmomentbefehls zum Endeffektor durch das VCM auf, um dadurch die Bewegung des Endeffektors in Echtzeit in Antwort auf Pertubationen der Bewegung des Endeffektors anzupassen oder zu modifizieren. Ferner wird ein Bezugssystem des Flussvektorfeldes durch ein Pfadtransformationsmodul des Steuerungssystems transformiert, und ein einstellbarer linearer Interpolationsterm wird in die Differentialgleichungen durch ein Pfadvermischungsmodul des Steuerungssystems eingebracht, um einen Pfad des Endeffektors, der von einer Startposition vorwärts gezogen wird, mit einem Pfad, der von einer Zielposition rückwärts gezogen wird, zusammenzumischen.
-
Die oberen Merkmale und Vorteile und andere Merkmale und Vorteile der vorliegenden Erfindung sind leicht erkennbar aus der folgenden detaillierten Beschreibung in Verbindung mit den begleitenden Zeichnungen.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
1 ist eine schematische Darstellung eines beispielhaften Robotersystems aufweisend einen Roboter mit einem Endeffektor und ein verknüpftes Steuerungssystem mit einem kombinierten dynamischen Systemmodul (DSM) und einem Geschwindigkeitssteuerungsmodul (VCM), welches angepasst ist um die Bewegungen des Endeffektors bei Vorliegen von Endeffektor-Pertubationen auszugleichen.
-
2 ist eine schematische Darstellung eines beispielhaften dynamischen, differentialgleichungsdefinierten Flussvektorfeldes, das durch das Steuerungssystem von 1 verwendbar ist, um den Endeffektor des Roboters richtig zu einem Zielpunkt zu führen.
-
3A ist eine schematische Darstellung eines vorgeführten und eines generalisierten Pfades ohne die Verwendung einer Beispielpfadtransformationslogik.
-
3B ist eine schematische Darstellung eines vorgeführten und eines generalisierten Pfades unter Verwendung der Beispielpfadtransformationslogik.
-
4A ist eine schematische Darstellung eines vorgeführten und eines generalisierten Pfades ohne die Verwendung einer Beispielpfadvermischungslogik.
-
4B ist eine schematische Darstellung eines vorgeführten und eines generalisierten Pfades unter Verwendung der Beispielpfadvermischungslogik.
-
5 ist ein Flussdiagramm, das ein beispielhaftes Verfahren der Verwendung des in 1 gezeigten Steuerungssystems beschreibt.
-
DETAILLIERTE BESCHREIBUNG
-
Unter Bezugnahme auf die Zeichnungen, in denen gleiche Bezugszeichen auf die gleichen oder ähnliche Komponenten über verschiedene Ansichten hinweg verweisen, ist ein Robotersystem 10 schematisch in 1 gezeigt. Das Robotersystem 10 weist einen Roboter 12 auf, der als beispielhafter geschickter humanoider Roboter dargestellt ist, der aber alternativ als jeglicher mehrachsiger Roboter ausgeführt sein kann. Der Roboter 12 weist einen Endeffektor 14 auf, der an einem distalen Ende eines Roboterarms 16 angeordnet ist. Die Bewegung des Roboters 12, insbesondere des Endeffektors 14 und des Roboterarms 16, wird automatisch durch ein Steuerungssystem (C) 50 mit einem integrierten dynamischen Systemmodul (DSM) 52 und einem Geschwindigkeitssteuerungsmodul (VCM) 54 gesteuert, deren spezifische programmierte Funktionen unten detailliert beschrieben sind.
-
Der Roboter 12 ist in Hardware und Software konfiguriert, um eine oder mehrere automatisierte Aufgaben mit mehreren Steuerungsfreiheitsgraden zu absolvieren und um andere interaktive Aufgaben zu absolvieren oder um andere integrierte Systemkomponenten zu steuern, zum Beispiel Klemmung, Relais, Aufgabenbeleuchtung und dergleichen. In der in 1 gezeigten Ausführungsform beinhaltet der Roboter 12 eine Mehrzahl von unabhängig und zwischenabhängig beweglichen Robotergelenken, um die Bewegung des Roboterarms 16 und letztendlich des Endeffektors 14 zu steuern. Obwohl es in 1 wegen darstellerischer Einfachheit weggelassen ist, beinhaltet jedes Robotergelenk und/oder ist jedes Robotergelenk angetrieben von einem oder mehreren Gelenkaktuatoren, wie zum Beispiel einem Gelenkmotor, Linearaktuator, Drehaktuator oder dergleichen.
-
Das Steuerungssystem 50 bietet eine präzise Bewegungssteuerung des Roboters 12, inklusive einer Kontrolle über die feinen und groben Bewegungen, die für die Manipulation eines Objektes (nicht dargestellt) benötigt werden, auf das der Endeffektor 14 wirken kann. Zusätzlich bietet das Steuerungssystem 50 eine Online-Bewegungserzeugung und eine Motorsteuerung für den Roboter 12. Wie unten beschrieben wird, kann das Steuerungssystem 50 programmiert werden, um Dynamic Movement Primitives oder DMPs bereitzustellen, um so eine Bewegungstrajektorie in Echtzeit unter Verwendung von Differentialgleichungen zu generieren, wobei dies in einer bestimmten Weise unter Verwendung der vorliegend offenbarten Modifikation geschieht, welche die Bewegungen an eine große Vielfalt von neuen oder unerwarteten Zusammenhängen anpasst.
-
Insbesondere kann das Steuerungssystem 50, wie in 1 gezeigt, mit einem an die Differentialgleichungen angehängten Term programmiert werden, der eine Rotation einer generierten Bewegung des Endeffektors 14 bewirkt, so dass die generierte Bewegung mit neuen Start und End/Zielpositionen in einem gegebenen Endeffektorpfad ausgerichtet wird. Das Steuerungssystem 50 hängt auch einen zusätzlichen Term an, der einen Zielparameter von einer ursprünglichen Zielposition zu einer neuen Zielposition hin allmählich verändert. Mit anderen Worten werden bekannte Fähigkeiten von DMPs unter Verwendung des vorliegenden Frameworks erweitert, so dass eine einzelne Bewegung des Endeffektors 14 oder eines anderen Teils des Roboters 12 von 1 einfach moduliert werden kann, um einen viel größeren Satz von unvorhersehbaren Umständen zu handhaben. Dieser Ansatz, der eine Pfadtransformations-(PT)-Logik 55 und eine Pfadvermischungs-(PB)-Logik 57 verwenden kann, um jeweils das Bezugssystem eines Flussvektorfeldes zu transformieren und eine lineare Interpolation einzubeziehen, wird mit Bezug auf 3A und 3B unten detailliert diskutiert.
-
Das Steuerungssystem 50 kann als ein Computergerät oder als mehrere solche Computergeräte ausgeführt sein und ist programmiert, um Roboterbewegungen des Roboterarms 16 und des Endeffektors 14 zu planen und zu generieren. Das Steuerungssystem 50 kann einen oder mehrere Prozessoren (P) und Speicher (M) beinhalten, inklusive ausreichender Mengen von greifbarem, nichtflüchtigem Speicher. Speichertypen können optischen oder magnetischen Festspeicher (ROM), Arbeitsspeicher (RAM), löschbaren elektrisch programmierbaren Festspeicher (EEPROM) und dergleichen umfassen. Das Steuerungssystem 50 kann auch beinhalten eine Hochgeschwindigkeitsuhr, Analog-zu-Digital-(A/D-)Schaltkreise, Digital-zu-Analog-(D/A-)Schaltkreise und beliebige benötigte Eingabe/Ausgabe-(I/O-)Schaltkreise und Geräte sowie Signalkonditionierungs- und Pufferelektronik.
-
Individuelle Steuerungsalgorithmen, die in dem Controller 50 angesiedelt sind oder durch diese einfach zugänglich sind, wie zum Beispiel Instruktionen, die ein in 1 gezeigtes Verfahren 100 bilden, können im Speicher (M) gespeichert sein und automatisch durch den Prozessor (P) auf einer oder mehreren verschiedenen Steuerungsebenen ausgeführt werden, um die jeweilige Steuerungsfunktionalität zu bieten.
-
DYNAMIC MOVEMENT PRIMITIVES
-
Ein Dynamic Movement Primitive oder DMP, wie es in der Technik der Robotersteuerung gut bekannt ist, kann verwendet werden, um eine bestimmte Roboterbewegungstrajektorie x(t) mit einer gegebenen Geschwindigkeit v(t) zu generieren. Die Bewegungsgleichungen für ein DMP sind motiviert durch die Dynamik einer gedämpften Feder, die an eine Zielposition g angeknüpft ist und die durch eine nichtlineare Beschleunigung pertubiert ist: v . = K(g – x) – Dv + (g – x0)f(s) ẋ = v wobei x0 der Startpunkt einer gegebenen Bewegung ist, K die Federkonstante ist, D die Dämpfungskonstante ist und f eine parametrisierte nichtlineare Funktion ist.
-
Im Allgemeinen empfängt das in 1 gezeigte Steuerungssystem 50 ein erwünschtes Ziel (gd), d. h. eine Sollendposition einer gegebenen Endeffektorbewegung, entweder durch Programmierung oder durch einen Bezugspfad, der durch Vorführungslernen angeboten wird, und führt einen Satz von Differentialgleichungen durch das DSM 52 aus. Das DSM 52 beinhaltet den Satz von wie unten spezifizierten nichtlinearen Differentialgleichungen, die durch den Prozessor (P) gelöst werden. In bestimmten existierenden Systemen werden Differentialgleichungen in Echtzeit gelöst, um erwünschte Gelenkwinkel oder Roboterendeffektorpositionen zu produzieren, die dann von einem anderen Robotercontroller verfolgt werden. Ein solcher Ansatz ist förderlich für das Vorführungslernen.
-
Allerdings wird hierin erkannt, dass Abweichungen zwischen einer tatsächlichen Position und einer erwünschten Position des Endeffektors 14 auftreten können. Diese Abweichungen werden in konventionellen Endeffektorplanungen oft ignoriert. Als ein Ergebnis können existierende Planungsansätze möglicherweise nicht verwendet werden, wenn ausreichend große Pertubationen vorliegen, wie zum Beispiel eine äußere Kraft, die auf den Endeffektor 14 ausgeübt wird, wie zum Beispiel durch ein Objekt, das in dem Arbeitsraum des Roboters 12 von 1 unerwartet angetroffen wird. Mit anderen Worten kann der Roboter 12 von 1 dabei versagen, die erwünschte Bewegung des Endeffektors 14 richtig zu verfolgen, und kann stattdessen eine unerwartete unerwünschte Bewegung produzieren. Das Steuerungssystem 50 der vorliegenden Erfindung ist daher dazu vorgesehen, eine gleichmäßige Bewegung des Roboterarms 16 und des Endeffektors 14 trotz solcher Pertubationen zu produzieren.
-
Das in 1 schematisch gezeigte DSM 52 gibt letztendlich eine erwünschte Gelenkgeschwindigkeit (vd) aus und interagiert mit dem Geschwindigkeitssteuerungsmodul (VCM) 54, welches wiederum einen befohlenen Motordrehmomentbefehl (τm) an den Roboter 12 sendet und eine tatsächliche Gelenkgeschwindigkeit (va) von dem Roboter 12 empfängt. Das DSM 52 empfängt auch gemessene tatsächliche Gelenkpositionen (Pa) von dem Roboter 12, zum Beispiel von einem oder mehreren Positionssensoren Sp. Wie in der Technik bekannt ist, kann die tatsächliche Geschwindigkeit (va) einfach aus den gemessenen Gelenkpositionen berechnet werden.
-
Das VCM 54 kann bei einer schnelleren Rate ausgeführt werden als die Kommunikationsrate mit dem DSM 52, wie zum Beispiel wenigstens fünfmal (5×) schneller und bis zu fünfzigmal (50×) schneller in einer anderen Ausführungsform. In einem beispielhaften Ansatz kann das DSM 52 mit einer Taktrate zwischen 20–40 Hz ausgeführt werden, während das VCM 54 mit einer Taktrate zwischen 100–1000 Hz ausgeführt werden kann. Der Prozessor (P) aktualisiert die dynamischen Systemgleichungen des DSM 52 mit einer höheren Rate. In der vorliegenden Erfindung erstellt das DSM 52 für jeden Zeitschritt in der Bewegung ein DMP als eine Bewegungstrajektorie, die hierin als eine erwünschte Position (x) und Geschwindigkeit (v) des Endeffektors 14 definiert ist. Solch ein dynamisches System kann wie folgt beschrieben werden, wobei Terme ähnlich denen, die oben zur allgemeinen Beschreibung von DMPs verwendet wurden, verwendet werden: v . = K(g – x) – Dv – K(g – x0)s + Kf(s) + p(x, v) ẋ = v
-
In den obigen Gleichungen ist x
0 die Startposition einer Bewegung, ist g das erwünschte Ziel/die Sollvorgabe der Bewegung, ist s eine Phasenvariable, die während der Bewegung exponentiell abnimmt, ist K die Federkonstante, ist D eine Dämpfungskonstante, ist f eine anpassbare nichtlineare Funktion, und ist p ein optionaler Term, der die Einbeziehung einer wie unten weiter ausgeführten Hindernisausweichtechnik erlaubt. f kann folgendermaßen definiert werden:
wobei ψi(s) eine Gaußsche Funktion ist. f ist explizit abhängig von der Phasenvariable (s), d. h. τs . = –αs, wobei α eine vordefinierte Konstante ist. Mit anderen Worten ist die nichtlineare Funktion f nicht abhängig von der Zeit, und daher kann f einfach derart angepasst werden, dass die Gleichungen eine erwünschte Trajektorie für den Endeffektor
14 erzeugen. Dies ist ein zugrundeliegendes Prinzip der Diskussion, die mit Bezug auf
2–
4B folgt.
-
Bezug nehmend auf 2 ist ein Vorteil des Steuerungssystems 50 von 1 gegenüber der Verwendung von statischen Trajektorien die Flexibilität, die gegen Pertubationen der Bewegung des Endeffektors 14 geschaffen wird, da eine erwünschte Position/Geschwindigkeit einfach für jeden Ort im Zustandsraum bereitgestellt werden kann. Dieser Vorteil erlaubt auch die Einbeziehung von Hindernisausweichfähigkeiten, wodurch eine Echtzeitplanung von Bewegungen um beliebige dynamische, d. h. bewegliche, Hindernisse im Arbeitsraum des Roboters 12 ermöglicht wird.
-
Um dieses Konzept weiter zu verdeutlichen, ist ein beispielhaftes Flussvektorfeld (FF) 20 für Pertubationen in der XY-Position im Zustandsraum dargestellt, wobei die X-Achse Änderungen in der Position repräsentiert, die in der X-Richtung auftreten, und wobei die Y-Achse Änderungen in der Position repräsentiert, die in der Y-Richtung auftreten. Das Flussfeld 20 wirkt als Geschwindigkeitsvektorfeld, zum Beispiel als ein Feld von individuellen Geschwindigkeitsvektoren 22, was dabei hilft, den Endeffektor 14 von seiner gegenwärtigen Position Pc zu einer Zielposition Pg zu führen. Pfeil A in 2 stellt die Pertubation in verschiedenen Richtungen dar.
-
Wieder Bezug nehmend auf 1 berechnet das Steuerungssystem 50 von 1 das erforderliche Motordrehmoment, das benötigt wird, um eine bestimmte Geschwindigkeit (v) des Endeffektors 14 zu erreichen. Für die Steuerung des Roboters 12 generiert das DSM 52 von 1 die erwünschte Geschwindigkeit vd, welche dann durch das VCM 54 in ein entsprechendes Steuerungsdrehmoment τ umgewandelt wird. Bei einer möglichen Ausführungsform ist die erwünschte Geschwindigkeit (vd) im Kartesischen Raum des Endeffektors 14 definiert. In einem solchen Fall kann das VCM 54 mathematisch folgendermaßen ausgeführt werden: τ = PJT(xd – x) + DJT(vd – v) wobei einmal mehr τ das befohlene Steuerungsdrehmoment ist, xd und vd die jeweilige erwünschte Position und Geschwindigkeit sind, x und v die gemessene Position und Geschwindigkeit sind, J die Jacobi-Matrix des Roboterarms 16 und P und D auswählbare oder einstellbare Parameter sind. Die Jacobi-Matrix J kann entweder innerhalb oder außerhalb der Geschwindigkeitssteuerungsschleife berechnet werden. Alternativ können x und v die Bewegung im Gelenkraum wie in 1 beschreiben. In einem solchen Fall kann die Jacobi-Matrix J ausgelassen werden.
-
Bei einer Ausführungsform kann der einstellbare Parameter P Null oder nahe Null sein, wodurch das Steuerungssystem 50 vom Geschwindigkeitsfehler dominiert wird. Dennoch wird das Steuerungssystem 50 fortfahren, Bewegungen zu befehlen, die zu der erwünschten Position (xd) konvergieren, da der Positionsfehler als Rückführung zum DSM 52 bereitgestellt wird, der wiederum vorgesehen ist, bei der erwünschten Sollvorgabe zu konvergieren. Die Sensor(en) Sp des Roboters 12 sorgen für eine Rückmeldung über die tatsächliche Roboterposition, zum Beispiel des Endeffektors 14. Daher erlaubt die Kombination des VCM 54 mit dem DSM 52 kleine oder Null Verstärkungen des Positionsfehlers. Dies wiederum hat den Vorteil, die Bewegungen des Endeffektors 14 gleichmäßiger und toleranter gegenüber Pertubationen zu machen.
-
Der obige Ansatz kann weiter optimiert werden durch eine Erweiterung des Frameworks, um eine Modulation der individuellen Dynamic Movement Primitives zu erlauben. Ein Dynamic Movement Primitive generiert eine Trajektorie in Echtzeit unter Verwendung einer Differentialgleichung, wie es im Stand der Technik bekannt und oben bemerkt ist. Die verbleibende Diskussion unter Bezug auf 3A–4B bezieht sich auf die Modifikationen, die vorgenommen werden können, um Bewegungen des Endeffektors 14 an eine größere Vielfalt von Zusammenhängen anzupassen. Insbesondere werden erste und zweite Terme den Differentialgleichungen hinzugefügt. Der erste Term rotiert die generierte Bewegung, sodass sich die Bewegung mit einer neuen erwünschte Startposition und Zielpositionen ausrichtet, während der zweite Term einen Zielparameter allmählich von dem ursprünglichen Ziel zu einem neuen Ziel variiert.
-
Ein Ziel dieses Zwei-Term-Ansatzes ist, hinzugefügte Flexibilität bei der Generalisierung einer Mensch-vorgeführten Roboterbewegung an neue Bewegungszusammenhänge zu bieten. Zum Beispiel kann eine Bewegung, bei der ein Objekt vertikal durch den Roboter 12 von 1 angehoben, hin zu einer Zielposition gefahren, und fallengelassen wird, nicht einfach unter Verwendung von DMPs generalisiert werden, sofern nicht die Richtung der Bewegung ähnlich der vorgeführten Bewegung ist. Mit den folgenden Ansatzmodifikationen induziert allerdings eine angewandte Transformation eine rotatorische Invarianz bezüglich der vertikalen Achse der Bewegung und generiert eine ähnliche Bewegung für eine beliebige Näherungsrichtung. Zusätzlich bietet der in 3A–4B gezeigte Ansatz einen Ansatz, um die Geschwindigkeit, mit der sich ein generalisierter Pfad an einen vorgeführten Pfad annähert, anzupassen. Diese zusätzlichen Merkmale führen hinzufügte Flexibilität in die existierenden DMPs ein, die eine relativ kleine Bibliothek von DMPs zur Darstellung von einer viel größeren Bewegungsreichweite erlauben.
-
In Bezug auf die Vorführung allgemein kann, wie es im Stand der Technik bekannt ist, ein Eingabegerät (nicht gezeigt) wie zum Beispiel eine 3D-Maus, ein Joystick oder eine andere Steuerungsvorrichtung benutzt werden, um den Roboter 12 fernzubedienen, oder der Roboter 12 kann durch eine gegebene Arbeitsanweisung manuell zurückgefahren werden. Das heißt, dem Roboter 12 kann durch eine Mensch-unterstützte Vorführung der Arbeitsanweisung „beigebracht werden”, eine bestimmte Arbeitsanweisungssequenz auszuführen. Daher können dem Roboter 12 alle benötigten Greifpositionen und Näherungs-/Entfernungsrichtungen während des Lernens, wie man ein Objekt greift, beigebracht werden.
-
Ein Beispiel von Anweisungsvorführung/-lernen ist eine simple „Greifen und Anheben” Anweisung, wobei der Roboter 12 von 1 seinen Endeffektor 14 benutzt, um ein Objekt 25 zu greifen und anzuheben, welches in 1 beispielhaft als Kugel gezeigt ist. Ein Bediener des Roboters 12 kann den Endeffektor 14 in eine erwünschte Position in Bezug auf des Objekt 25 bewegen und dann das Objekt 27 korrekt greifen, zum Beispiel durch manuelle oder automatische Betätigung des Endeffektors 14 mit ausreichender Kraft, um eine erwünschte Greifpose herzustellen. Der Bediener bewegt dann den Roboterarm 16 und den Endeffektor 14, um das Objekt 25 aufzuheben und zu bewegen. Obwohl der in 1 gezeigte Roboter 12 potentiell Anweisungssequenzen und manche relevanten Wahrnehmungsdaten einfach durch Überwachung eines menschlichen Bedieners, der dieselbe Anweisung ausführt, identifizieren könnte, besteht einer der herausfordernderen Aspekte der Handhabung neuer Objekte und der Erschaffung neuer Zusammensetzungen darin präzise zu bestimmen, wo der Endeffektor 14 zu platzieren ist. Dadurch, dass ein menschlicher Bediener den Roboterarm 16 und den Endeffektor 14 manuell durch jede Anweisung bewegt, während das Steuerungssystem 50 seine eigenen rohen Sensordaten aufnimmt, kann jede Anweisungsvorführung für einen wertvollen Datenfluss von Erfahrungen sorgen, aus dem der Roboter 12 letztendlich diese schwierigen Steuerungsprobleme beim Nachverarbeiten nach einem Mensch-unterstützten Lernen lösen kann.
-
Der Roboter 12 sollte, insbesondere wenn er wie gezeigt als humanoider Roboter ausgeführt ist und in der Gegenwart von menschlichen Bedienern arbeitet, sollte in der Lage sein, sich schnell in einer dynamischen Umgebung anzupassen. Anders als konventionelle Roboter, die zugangsbeschränkt oder durch einen Zaun, einen Lichtvorhang oder eine andere Barriere geschützt sein können, kann von einem geschickten Humanoiden erwartet werden, dass er direkt mit den menschlichen Bedienern interagiert. Die Steuerung eines solchen Roboters 12 sollte ausreichend robust gegen jegliche Ungewissheit über den Ort und die Pose des Objektes 25 von 1 sein. Der vorliegende Ansatz adressiert diese Herausforderungen durch die Beschreibung von Roboterbewegungen als Flussvektorfelder/Differentialgleichungen anstelle von statischen Trajektorien. Die Flussvektorfelder werden durch Anweisungsvorführung gelernt, und sie generalisieren zu neuen Kontexten, wie zum Beispiel neue Start- und Endpositionen einer gegebenen Bewegung. Solche Bewegungen sind schematisch dargestellt in 3A bis 4B.
-
Das DSM von 1 kann ein Pfadtransformationsmodul 55 (PT) und ein Pfadvermischungsmodul 57 aufweisen, welches in 1 als PB abgekürzt ist. Der Begriff ”Modul”, wie hier und auch in Bezug auf das DSM 52 und das VCM 54 verwendet, bezieht sich auf eine Reihe von notwendiger Hardware und Software, die zur Durchführung der unten beschriebenen vorgesehenen Funktionen gebraucht werden. Das Pfadtransformationsmodul 55 ist programmiert oder anderweitig konfiguriert, um das Bezugssystem des Flussfeldes, zum Beispiel des in 2 gezeigten beispielhaften Flussvektorfeldes 20, zu transformieren. Das Pfadvermischungsmodul 57 beinhaltet eine lineare Interpolation, um einen Pfad, der von einer Startposition (Ps) vorwärts gezogen wird, mit einem Pfad, der von einer Zielposition Pg rückwärts gezogen wird, zusammenzumischen. Ein Abstimmen der Interpolation schafft die Fähigkeit, auszuwählen, wie schnell ein tatsächlicher Pfad zu einem Pfad konformiert, der von dem Ziel gezogen wird.
-
Die ursprüngliche Differentialgleichung des dynamischen Systems kann wie folgt umgeformt werden: v . = K(g – x) – Dv – K(g – x0)s + Kf(s)
-
Jeder Parameter der oben angeführten Gleichung ist anderswo oben definiert. Das Pfadtransformationsmodul 55 moduliert dann diesen dynamischen Ausdruck durch Anhängen einer Transformierenden T an die Flussvektorfeldfunktion f: v . = K(g – x) – Dv – K(g – x0)s + KTf(s)
-
Hier kann die Transformierende T sowohl Skalare als auch rotatorische Komponenten besitzen. Die Transformierende T kann auch als eine Funktion der abnehmenden Phasenvariablen s festgesetzt werden, um eine zeitveränderliche Transformierende darzustellen. Durch Rotieren des Bezugssystems eines Flussvektorfeldes 20, das durch die Funktion f definiert ist, um die Orientierung vorgeführter Pfade an eine Orientierung eines neuen Starts und Ziels anzugleichen, wird eine rotatorische Invarianz in die generalisierte Bewegung des Roboters 12 eingeführt.
-
3A zeigt solche generalisierten Bewegungstrajektorien 40 des Endeffektors 14 in einer beispielhaften Pick-and-Place-Arbeitsanweisung ohne den zusätzlichen Nutzen des Pfadtransformationsmoduls 55, das in 1 gezeigt ist. 3B zeigt die gleichen Bewegungstrajektorien 40 nach der Verarbeitung durch das Pfadtransformationsmodul 55. In 3A und 3B ist der menschvorgeführte Referenzpfad Spur 42, während der generalisierte Pfad, der von einer Startposition PS hin zu einer Zielposition Pg realisiert wird, als Spur 44 gezeigt ist. Die momentane Position des Endeffektors 14 ist als Pc beschriftet. Ein Vergleich von 3A und 3B wird zeigen, dass die Darstellung in 3B eine intuitivere Anpassung des vorgeführten Referenzpfades (Spur 42) ist.
-
Die Implementierung des Pfadvermischungsmoduls
57 des Steuerungssystems
50 ist ein wenig komplexer. Die Differentialgleichungen werden wie folgt umgeformt:
wobei g
d die Zielposition des vorgeführten Pfades (Spur
44) ist, x
0d die Startposition des vorgeführten Pfades (Spur
44) ist und die Phasenvariable s
m ein anpassbarer Parameter ist, der bestimmt, wie schnell sich die Position g
m an g, also die erwünschte Ziel- oder Sollposition der Bewegung, annähert. Die Variable s
m kann als der Wert der Variablen s, bei dem g
m und g gleich sind und daher die Vermischung abgeschlossen ist, verstanden werden.
-
4A und 4B zeigen die Wirkungen der Pfadvermischung auf die Bewegungstrajektorien 40 von 3A und 3B, wenn die Startposition und die Endzielpositionen näher beieinander sind als sie es in dem vorgeführten Pfad (Spur 44) sind. 4A zeigt Bewegungstrajektorien 140 mit einem generalisierten Pfad 144 ohne den Nutzen einer Vermischung durch das Pfadvermischungsmodul 57, während 4B den gleichen generalisierten Pfad 144 nach einer solchen Vermischung zeigt. Man beachte, dass in 4B die Verarbeitung durch das Pfadvermischungsmodul 57 den generalisierten Pfad 144 der Bewegungstrajektorien 140 veranlasst, die Struktur des vorgeführten Pfades 142 beizubehalten, ohne den Roboter 12 zu veranlassen sich zurückzubewegen, wie er es in 4A tut, wie es durch den Pfeil B angedeutet ist. Anpassen der Variablen sm wird in diesem Fall die Form des Pfades zwischen den generalisierten Pfaden 144 in 4A und 4B skalieren.
-
Unter kurzer Bezugnahme auf 5 beginnt ein Verfahren 100 der Verwendung des oben beschriebenen Steuerungssystems 50 mit Schritt 102. Schritt 102 kann das Verarbeiten eines Satzes von Eingaben durch das DSM 52 und sein vorbestimmtes Flussvektorfeld 20 mit sich bringen. Wie oben angeführt, können solche Eingaben die tatsächliche Position Px des Endeffektors 14 des Robotersystems 10 aufweisen wie auch eine erwünschte Zielposition (gd) des Endeffektors 14 und möglicherweise einen vorgeführten Referenzpfad des Endeffektors 14. Schritt 102 weist die Anwendung eines vorbestimmten Satzes von Differentialgleichungen auf, um eine Bewegungstrajektorie des Endeffektors 14 in Echtzeit zu generieren, um einen vorgeführten Referenzpfad anzunähern.
-
Bei Schritt 104 gibt das Steuerungssystem 50 von 1 einen erwünschten Steuerungsgeschwindigkeitsbefehl Vd durch das DSM 52 aus. Das Verfahren 100 fährt dann mit Schritt 106 fort, wo das VCM 54 eine tatsächliche Geschwindigkeit Va des Endeffektors und den Steuerungsgeschwindigkeitsbefehl Vd von dem DSM 52 erhält und verarbeitet.
-
Bei Schritt 108 generiert und überträgt das VCM 54 einen Motordrehmomentbefehl τM an den Endeffektor 14, um eine Bewegung des Endeffektors 14 in Echtzeit in Antwort auf Pertubationen der Bewegung des Endeffektors 14 anzupassen oder zu modifizieren.
-
Das oben beschriebene Steuerungssystem 50 und das Verfahren 100 bietet also einen generischen Ansatz zur Steuerung der Bewegung für einen beliebigen Typ eines Endeffektors oder eines Robotermanipulators. Unter Verwendung von Flussvektorfeldern, die speziell durch die hier beschriebenen modifizierten Differentialgleichungen definiert sind, werden erwünschte Geschwindigkeiten in einer Art berechnet, die jegliche Pertubationen des Endeffektors 14 berücksichtigt. In dieser Art strebt die offenbarte Erfindung an, sich gegenüber konventionellen DMPs zu verbessern, indem das Framework erweitert wird, um eine Modulation individueller Primitive zu erlauben.