-
Die Erfindung betrifft ein Verfahren zum Vorgeben und Ausführen eines Kommandos an einem Robotermanipulator durch einen Anwender sowie einen Robotermanipulator mit einer Steuereinheit zum entsprechenden Ausführen des Verfahrens.
-
Die im Stand der Technik bekannte
DE 20 2019 102 430 U1 betrifft ein Robotersystem aufweisend einen Robotermanipulator und eine mit dem Robotermanipulator verbundene Recheneinheit, wobei der Robotermanipulator eine Vielzahl von durch Gelenke miteinander verbundenen Gliedern aufweist und wobei ein jeweiliges der Gelenke einen Drehmomentsensor aufweist, wobei der jeweilige Drehmomentsensor zum Erfassen eines jeweiligen Moments zwischen den jeweiligen beiden am jeweiligen Gelenk anliegenden Gliedern des Robotermanipulators und zum Übermitteln des jeweiligen erfassten Moments an die Recheneinheit ausgeführt ist, wobei die Recheneinheit dazu ausgeführt ist: einen Vektor aus den erfassten Momenten mit erwarteten Momenten zu einem Vektor aus externen Momenten zu kompensieren, eine vorgegebene Jacobimatrix zu faktorisieren und unterhalb eines vorgegebenen Invertierbarkeitsmaßes liegende Elemente aus zumindest einem der Faktoren zu identifizieren, die identifizierten Elemente des zumindest einen Faktors auf einen vorgegebenen Wert zu setzen zum Erzeugen von modifizierten Faktoren, aus den modifizierten Faktoren eine modifizierte Pseudoinverse einer Transponierten der Jacobimatrix zu ermitteln, den Vektor der externen Momente mittels der modifizierten Pseudoinversen in einen Vektor eines externen Kraftwinders zu transformieren, und ein Steuerprogramm auf Basis des externen Kraftwinders auszuführen und Aktuatoren des Robotermanipulators anhand des Steuerprogramms anzusteuern.
-
Ferner betrifft die
DE 10 2018 112 360 B3 ein Verfahren zur Steuerung eines aktorisch angetriebenen Robotermanipulators mit einem Endeffektor, bei dem der Endeffektor eine vorgegebene Sollbewegung ausführt und während der Ausführung der Sollbewegung eine Aufgabe innerhalb eines vorgegebenen geometrischen Bereichs B um einen Ort P ausführt, aufweisend die Schritte: Während der Ausführung der Sollbewegung Ermitteln eines in den Robotermanipulator eingebrachten externen Kraftwinders K
ext, wobei K
ext einen Vektor Fext zumindest einer externen Kraft und/oder einen Vektor M
ext zumindest eines externen Moments aufweist, Detektieren einer unerwünschten Kollision des Robotermanipulators, wenn K
ext einen vordefinierten ersten Grenzwert überschreitet während sich der Endeffektor außerhalb des vorgegebenen geometrischen Bereichs B um den Ort P befindet, Detektieren einer fehlerhaften Ausführung der Aufgabe, wenn K
ext einen vordefinierten zweiten Grenzwert überschreitet oder wenn K
ext<K
des ist, jeweils während sich der Endeffektor innerhalb des vorgegebenen geometrischen Bereichs B um den Ort P befindet, wobei K
des ein erwarteter und/oder erwünschter Kraftwinder innerhalb des vorgegebenen geometrischen Bereichs B ist, wobei der ermittelte Kraftwinder K
ext um den erwarteten und/oder gewünschten Kraftwinder K
des kompensiert und der kompensierte Kraftwinder mit dem zweiten Grenzwert verglichen wird, und Ansteuern des Robotermanipulators in einem Fehlermodus, wenn eine unerwünschte Kollision des Robotermanipulators und/oder eine fehlerhafte Ausführung der Aufgabe detektiert wird.
-
Ferner betrifft die
DE 10 2015 205 176 B3 ein Verfahren zum Steuern eines Manipulators, insbesondere eines Gelenkarmroboters, aufweisend: Erkennen eines Freigabewunsches basierend auf einer Kraftausübung auf den Manipulator durch eine Bedienperson; und Freigeben des Manipulators in Reaktion auf das Erkennen des Freigabewunsches; wobei das Erkennen des Freigabewunsches ein Überwachen des Verlaufs zumindest eines einen Zustand des Manipulators charakterisierenden Messwerts umfasst; wobei der zumindest eine einen Zustand des Manipulators charakterisierende Messwert ein Drehmoment des Manipulators umfasst und/oder eine Position des Manipulators umfasst; wobei das Erkennen des Freigabewunsches ein Erkennen, dass eine Differenz zwischen einem gemessenen Drehmoment und einem Referenzdrehmoment bzw. zwischen einer gemessenen Position und einer Referenzposition eine vorgegebene Fehlerschranke betragsmäßig überschreitet umfasst; wobei das Referenzdrehmoment bzw. die Referenzposition durch einen Mittelwert von zuvor gemessenen Drehmomenten bzw. Positionen berechnet wird, oder wobei das Referenzdrehmoment bzw. die Referenzposition durch einen Snapshot-Messwert gebildet wird.
-
Ferner betrifft die
DE 10 2015 009 151 A1 ein Verfahren zum automatisierten Ermitteln eines Eingabebefehls für einen Roboter, der durch manuelles Ausüben einer externen Kraft auf den Roboter eingegeben wird, wobei der Eingabebefehl auf Basis desjenigen Anteils von durch die externe Kraft aufgeprägten Gelenkkräften ermittelt wird, der eine Bewegung des Roboters nur in einem für diesen Eingabebefehl spezifischen Unterraum des Gelenkkoordinatenraums des Roboters zu bewirken sucht.
-
Ferner betrifft die
DE 10 2014 216 514 B3 ein Verfahren zum Programmieren eines Industrieroboters, welcher einen Manipulatorarm und eine den Manipulatorarm ansteuernde Steuervorrichtung aufweist, die ausgebildet ist, den Manipulatorarm gemäß eines in einem Programmiermodus editierbaren und in einem Ausführungsmodus ausführbaren Roboterprogramms zu bewegen, das wenigstens einen Programmbefehl enthält, dem wenigstens ein Steifigkeitsparameter zugeordnet ist, durch den die Steuervorrichtung während eines im Ausführungsmodus automatischen Ausführens des Roboterprogramms veranlasst wird, den Manipulatorarm dem wenigstens einen Steifigkeitsparameter entsprechend kraft- und/oder momentengeregelt automatisch anzusteuern, aufweisend die Schritte: Auswählen eines Programmbefehls des ausführbaren Roboterprogramms, dessen zugeordneter Steifigkeitsparameter im Programmiermodus überprüft, geändert und/oder gespeichert werden soll, - Bewegen des Manipulatorarms im Programmiermodus in eine Prüf-Pose, in welcher der Industrieroboter zum manuellen Berühren und/oder Bewegen des Manipulatorarms eingerichtet und/oder angeordnet ist, Automatisches Ansteuern des Manipulatorarms durch die Steuervorrichtung derart, dass der Manipulatorarm in der Prüf-Pose die dem zugeordneten Steifigkeitsparameter des ausgewählten Programmbefehls entsprechende Steifigkeit aufweist.
-
Ferner betrifft die
DE 10 2014 202 145 A1 ein Verfahren zum Programmieren eines Industrieroboters durch manuell geführtes Bewegen eines Manipulatorarms des Industrieroboters in wenigstens eine Pose, in der wenigstens eine in ein Roboterprogramm aufzunehmende Steuerungsgröße durch eine Steuervorrichtung des Industrieroboters erfasst und als Parameter eines zugeordneten Programmbefehls in dem Roboterprogramm gespeichert wird, aufweisend die Schritte: Auswählen einer Programmbefehlsart, zu der zugeordnete Parameter gespeichert werden sollen, fortlaufendes Erfassen und Zwischenspeichern der wenigstens einen aufzunehmenden Steuerungsgröße in vorbestimmten Zeitschritten während eines manuell geführten Handhabens des Manipulatorarms, fortlaufendes Erfassen wenigstens einer stellungs- und/oder bewegungsbezogenen Größe der jeweils momentanen Pose des Manipulatorarms, in vorbestimmten Zeitschritten während des manuell geführten Handhabens des Manipulatorarms, Vergleichen der in vorbestimmten Zeitschritten erfassten stellungs- und/oder bewegungsbezogenen Größen mit vorbestimmten, ein Abbruchkriterium darstellenden stellungs- und/oder bewegungsbezogenen Größen, Speichern einer der Steuerungsgrößen als Parameter des ausgewählten Programmbefehls in dem Roboterprogramm, wenn einer der fortlaufend erfassten stellungs- und/oder bewegungsbezogenen Größen das Abbruchkriterium erfüllt.
-
Die
DE 10 2008 062 622 B9 betrifft ein Verfahren zur Befehlseingabe in eine Steuerung eines Manipulators, insbesondere durch Vergleichen einer erfassten ersten Kraft mit gespeicherten Kräften, denen je ein Befehl zugeordnet ist. Dafür werden unter anderem Kraftsensoren vorgeschlagen, die beispielsweise an einem Endeffektor des Manipulators, an einem mit dem Manipulator verbundenen Führungsgriff oder an einem Motor des Manipulators vorgesehen sein können und dort angreifende Kräfte erfassen können, die ein Bediener direkt auf den Endeffektor oder den Führungsgriff, oder indirekt, beispielsweise über den Endeffektor oder den Führungsgriff auf Motoren des Manipulators ausübt.
-
Nachteilig daran ist, dass ein externer Kraftsensor am Robotermanipulator bzw. am Haltegriff zusätzliche Bauelemente für den Robotermanipulator erfordert, oder aber wenn die in der
DE 10 2008 062 622 B9 vorgeschlagenen „Kraftsensoren in den Antrieben des Roboters“ (wobei die Kraftsensoren gemäß dieser Patentschrift auch als Momentensensoren verstanden werden können) statt, wie vorgeschlagen, zur Erfassung einer Richtung sondern auch zur Erfassung der Höhe der Kraft verwendet werden würden, eine Pseudoinverse einer Jacobimatrix, gültig für einen aktuellen Gelenkwinkelvektor des Robotermanipulators, notwendig wäre. Die Pseudoinverse einer Jacobimatrix kann unter Umständen sehr kleine oder sehr große Zahlen aufweisen, die für eine Recheneinheit mit begrenzter Numerik nicht oder nur schwer zu handhaben sind, insbesondere bei einer daraus folgenden schlechten Konditionierung der Jacobimatrix. Eine solche Situation tritt insbesondere in sogenannten singulären Posen eines Robotermanipulators auf, beispielsweise wenn die genannten Kraftsensoren im Sinne von Momentensensoren in den Gelenken eine auf das distale Ende des Robotermanipulators wirkende Kraft in Längsrichtung aller Glieder erfassen sollen, die Glieder aber alle entlang einer Geraden ausgerichtet sind, sodass die Kraft auf das distale Ende des Robotermanipulators, ohne an den Gelenken ein Drehmoment zu erzeugen, bis in den Sockel des Robotermanipulators abgeleitet wird.
-
Es ist daher Aufgabe der Erfindung, das oben genannte bekannte Verfahren zur Befehlseingabe in eine Steuerung eines (Roboter-)Manipulators, und im Allgemeinen die gestenbasierte Vorgabe eines Kommandos für einen Robotermanipulator zur Ausführung durch diesen, zu verbessern, insbesondere um die genannten Nachteile zu lösen, insbesondere eine Gestensteuerung bereitzustellen, ohne dass ein extern am Robotermanipulator angeordneter Kraft- und/oder Momentensensor notwendig ist, und ohne dass eine (Pseudo-)inverse der Transponierten der Jacobimatrix berechnet werden muss.
-
Die Erfindung ergibt sich aus den Merkmalen der unabhängigen Ansprüche. Vorteilhafte Weiterbildungen und Ausgestaltungen sind Gegenstand der abhängigen Ansprüche.
-
Ein erster Aspekt der Erfindung betrifft ein Verfahren zum Vorgeben eines Kommandos für einen Robotermanipulator durch einen Anwender und zum Ausführen des Kommandos durch den Robotermanipulator, wobei der Robotermanipulator eine Vielzahl von durch Gelenke miteinander verbundenen Gliedern aufweist, aufweisend die Schritte:
- - Ermitteln eines externen Drehmomentvektors auf Basis von durch Drehmomentsensoren an den Gelenken ermittelten Gelenkmomenten, wobei der externe Drehmomentvektor einen Vektor von Momenten an den Gelenken angibt, die mit einer extern vom Anwender auf den Robotermanipulator aufgebrachten Kraft und/oder Moment korrelieren,
- - Ermitteln eines Gelenkwinkelvektors des Robotermanipulators und Ermitteln einer von dem Gelenkwinkelvektor abhängigen Jacobimatrix,
- - Vergleichen des externen Drehmomentvektors mit einem oder mehreren Vergleichstermen, wobei der jeweilige Vergleichsterm auf Basis einer Matrixmultiplikation der Transponierten der Jacobimatrix mit einer jeweiligen konstanten Vorgabe ermittelt wird, und wobei einem jeweiligen Ergebnis des Vergleichs ein jeweiliges Kommando für den Robotermanipulator durch eine vordefinierte Vermittlungsfunktion zugeordnet ist, und
- - Ausführen des dem jeweiligen Ergebnis zugeordneten Kommandos durch Ansteuern des Robotermanipulators durch eine Steuereinheit.
-
Bevorzugt werden alle Schritte des ersten Aspekts der Erfindung durch die Steuereinheit ausgeführt, insbesondere wenn nicht explizit anders angegeben, wobei der Gelenkwinkelvektor des Robotermanipulator insbesondere auf Basis von durch Gelenkwinkelsensoren erfassten Gelenkwinkeln ermittelt wird. Die jeweiligen Gelenkwinkel bezeichnen insbesondere die Winkel zwischen jeweils zwei durch ein jeweiliges Gelenk verbundenen Gliedern.
-
Bevorzugt ist die Vorgabe ein Vektor, insbesondere ein Spaltenvektor, wobei die Anzahl seiner Komponenten der Anzahl der Spalten, das heißt der Anzahl der Komponenten einer Zeile, der Transponierten der Jacobimatrix entspricht. Dann ist die Matrixmultiplikation insbesondere eine linksseitige Matrixmultiplikation der Transponierten der Jacobimatrix mit dem Spaltenvektor der Vorgabe auf der rechten Seite der Multiplikation.
-
Das jeweilige Kommando ist insbesondere in der Steuereinheit des Robotermanipulators vordefiniert und dort abgespeichert. Das jeweilige Kommando betrifft insbesondere ein entsprechendes Steuerprogramm, eine bestimmte Ansteuerung von einem oder mehreren Aktuatoren des Robotermanipulators oder eines Endeffektors des Robotermanipulators. Die Vermittlungsfunktion vermittelt dabei zwischen der erkannten Geste, die über das jeweilige Ergebnis des Vergleichs definiert ist, und dem jeweiligen Kommando. Bevorzugt ist die Vermittlungsfunktion eine Tabelle, ein neuronales Netz, eine kontinuierliche und analytische Funktion, oder Ähnliches.
-
Die Drehmomentsensoren an den Gelenken sind aus der Vielzahl der im Stand der Technik bekannten Drehmomentsensoren auswählbar. Insbesondere sind die Drehmomentsensoren mechanische Drehmomentsensoren, in denen eine Dehnung eines reversibel elastischen Materials, beispielsweise in Speichen des jeweiligen Drehmomentsensors, erfasst wird, wobei durch Kenntnis der Materialkonstanten auf ein anliegendes Gelenkmoment geschlossen werden kann. Weiterhin ist es insbesondere möglich, eine in einem elektrischen Motor eines jeweiligen Gelenks anliegende Stromstärke zu messen und von diesem auf ein im Gelenk vorliegendes Gelenkmoment zu schließen. Das jeweilige gesamte ermittelte Gelenkmoment setzt sich typischerweise aus einer Vielzahl von Ursachen zusammen. Ein erster Teil des jeweiligen Gelenkmoments ergibt sich aus den kinematischen Kräften und Momenten, insbesondere durch die auf die träge Masse des Robotermanipulators wirkende Coriolisbeschleunigung und der Zentrifugalbeschleunigung. Ein weiterer Teil des jeweiligen gesamten Gelenkmoments ist einem Schwerkrafteinfluss zuzurechnen. Während an den Gelenken durch die Drehmomentsensoren die gesamten Gelenkmomente direkt erfasst oder indirekt ermittelt werden, so führen diese durch Schwerkrafteinfluss und kinematisch verursachten Kräfte und Momente zu einem prognostizierbaren Anteil an den gesamten Gelenkmomenten. Das heißt, insbesondere abhängig von der aktuellen Bewegungsgeschwindigkeit und auch der aktuellen Beschleunigung des Robotermanipulators können diese Anteile an den Gelenkmomenten aus der Theorie ermittelt werden und von den jeweiligen gesamten ermittelten Gelenkmomenten abgezogen werden. Dies erfolgt typischerweise mittels eines Impulsbeobachters. Das Ergebnis dieser Differenz sind die verbleibenden externen Momente, welche im externen Drehmomentvektor zusammenfasst werden.
-
Würde von den so ermittelten externen Momenten auf einen externen Kraftwinder mit vorgegebenem Bezug geschlossen werden wollen, wäre die Pseudoinverse der Transformierten der Jacobimatrix erforderlich. Die Pseudoinverse (anstelle der Inversen selbst) ist insbesondere dann erforderlich, wenn es sich bei dem Robotermanipulator um einen redundanten Manipulator handelt, das heißt, dass zumindest zwei der die Glieder verbindenden Gelenke zueinander redundante Freiheitsgrade aufweisen. In einem redundanten Robotermanipulator können insbesondere Glieder des Robotermanipulators bewegt werden, ohne dass sich eine Orientierung und/oder eine Position des Endeffektors des Robotermanipulators bewegen würde. Die Jacobimatrix verknüpft grundsätzlich die Winkelgeschwindigkeiten an den Gelenken zu der translatorischen und rotatorischen Geschwindigkeit an einem beliebigen Punkt, insbesondere an dem Endeffektor des Robotermanipulators. Prinzipiell ist es jedoch unerheblich, ob tatsächlich Geschwindigkeiten betrachtet werden; so kann die Jacobimatrix auch für den Zusammenhang zwischen den Momenten an den Gelenken und den Kräften und Momenten an dem jeweiligen beliebigen Punkt verwendet werden.
-
Die Transponierte der von den Gelenkwinkeln q abhängigen Jacobimatrix J(q), nämlich J
T (q), vermittelt zwischen dem externen Kraftwinder F
ext zu dem ermittelten externen Drehmomentvektor τ
ext wie folgt:
-
Nach Umstellung dieser Gleichung mit Hilfe der Pseudoinversen der Transponierten von J(q), bezeichnet als (J
T(q))
#, gilt:
-
Im Allgemeinen ist nicht garantiert, dass für alle Posen des Robotermanipulators die Transponierte der Jacobimatrix (pseudo-)invertierbar ist, ohne in numerische Probleme durch eine Singularität zu laufen. Es wird gemäß dem ersten Aspekt der Erfindung daher lediglich der ermittelte externe Drehmomentvektor τ
ext verglichen mit einem oder mehreren Vergleichstermen J
T(q)·[v], wobei der jeweilige Vergleichsterm J
T(q)·[v] auf Basis einer Matrixmultiplikation der Transponierten der Jacobimatrix J
T(q) mit einer jeweiligen konstanten Vorgabe [V] ermittelt wird:
-
Es ist daher eine vorteilhafte Wirkung der Erfindung, dass eine Gestensteuerung am Robotermanipulator durch manuelles Führen, Antippen oder Stoßen erfolgen kann, ohne dass ein extern am Robotermanipulator angeordneter Kraft- und/oder Momentensensor notwendig ist, und ohne dass eine (Pseudo-)inverse der Transponierten der Jacobimatrix berechnet werden muss.
-
Gemäß einer vorteilhaften Ausführungsform wird der externe Drehmomentvektor mit einem ersten Vergleichsterm und mit einem zweiten Vergleichsterm verglichen, wobei der zweite Vergleichsterm größer als der erste Vergleichsterm ist, wobei im Falle des Ergebnisses, dass der externe Drehmomentvektor größer als der zweite Vergleichsterm ist, von einer Kollision des Robotermanipulators ausgegangen wird und kein Kommando zugeordnet wird, und wobei im Falle des Ergebnisses, dass der externe Drehmomentvektor kleiner als der zweite Vergleichsterm und größer als der erste Vergleichsterm ist, ein erstes Kommando ausgeführt wird. Vorteilhaft können durch diese Ausführungsform Kollisionen von gewünschten Eingaben eines Anwenders unterschieden werden.
-
Gemäß einer weiteren vorteilhaften Ausführungsform wird während des Ermittelns des externen Drehmomentvektors der Robotermanipulator durch die Steuereinheit steif angesteuert, sodass sich der Robotermanipulator auf eine vom Anwender auf den Robotermanipulator aufgebrachte externe Kraft und/oder Moment hin nicht bewegt. Es ist ein Vorteil der steifen Ansteuerung des Robotermanipulators, dass Kommandos per Gesteneingabe am Robotermanipulator vorgenommen werden können, ohne dass sich dabei der Robotermanipulator tatsächlich bewegt. Dies ist insbesondere dann wünschenswert, wenn der Robotermanipulator in einer Umgebung aufgestellt ist, die nur wenig Bewegungsspielraum für den Robotermanipulator bietet, der Robotermanipulator ungewollt mit solchen Objekten kollidieren würde, oder diese beschädigen würde.
-
Gemäß einer weiteren vorteilhaften Ausführungsform wird während des Ermittelns des externen Drehmomentvektors der Robotermanipulator nachgiebig geregelt angesteuert. Während bei der vorhergehenden Ausführungsform durch die steife Ansteuerung des Robotermanipulators dieser sich auch bei einer Eingabe einer Kraft/oder eines Moments durch den Anwender bei idealer Ausführung der steifen Ansteuerung nicht bewegt und in seiner ursprünglichen Pose verbleibt, ist bei einer nachgiebig geregelten Ansteuerung, insbesondere bei einer Impedanzregelung oder einer Admittanzregelung, eine Auslenkung auf eine Eingabe einer Kraft und/oder eines Moments durch den Anwender zu erwarten. Insoweit spielt es keine Rolle, ob der Vergleich des externen Drehmomentvektors mit einem oder mehreren Vergleichstermen nicht explizit durch den externen Drehmomentvektor erfolgt, sondern implizit durch eine Auslenkung des Robotermanipulators, die dem externen Drehmomentvektor gemäß der deterministisch nachgiebigen Regelung entspricht. In dem Fall der bloßen künstlichen Feder sind nämlich die Auslenkung und die aufgebrachte Kraft bzw. das aufgebrachte Moment von einem Anwender durch einen algebraischen Zusammenhang ineinander umrechenbar. Für den Fall, dass die Impedanzregelung ein künstliches Feder-Masse-Dämpfer-System ist, und damit einen über die künstliche Feder hinausgehenden Term, nämlich die Dämpfung zusätzlich zur Berücksichtigung der trägen Masse des Robotermanipulators aufweist, so kann auch in diesem Fall anstelle des externen Drehmomentvektors eine dazugehörige Auslenkung mit dem jeweiligen Vergleichsterm verglichen werden, indem bevorzugt der kinematische Zustand, insbesondere eine Bewegungsgeschwindigkeit, berücksichtigt wird und die dadurch entstehenden Kräfte und/oder Momente vom externen Drehmomentvektor subtrahiert werden, um nur die Auslenkung zu berücksichtigen, oder alternativ bevorzugt gerade explizit die durch die Masse und die Geschwindigkeit des Robotermanipulators verursachten Komponenten im externen Drehmomentvektor zu berücksichtigen, um eine dynamische Gesteneingabe zu ermöglichen.
-
Gemäß einer weiteren vorteilhaften Ausführungsform ist eine Steifigkeit der nachgiebigen Regelung von dem Anwender einstellbar. Insbesondere die Impedanzregelung weist einen Term für eine künstliche Feder auf, sodass bei einer Auslenkung eine zur Auslenkung entgegengesetzte Kraft bzw. ein entgegengesetztes Moment vom Robotermanipulator selbst aufgebracht wird. Die Qualität dieses Zusammenhangs, das heißt, zu welcher Kraft bzw. zu welchem Moment eine gewisse Auslenkung führt, gibt die Steifigkeit an, die bevorzugt konstant ist und somit eine lineare Feder nachbildet, wobei auch nichtlineare Zusammenhänge durch variable Steifigkeit möglich sind. Diese Steifigkeit ist gemäß dieser Ausführungsform vom Anwender einstellbar. Im Falle einer Impedanzregelung mit einer künstlichen Dämpfung und einer künstlichen Masse sind bevorzugt auch die künstliche Dämpfung und/oder die künstliche Masse zusätzlich oder anstatt zur Steifigkeit vom Anwender einstellbar. Insbesondere erfolgt die jeweilige Einstellung an einem Bedienelement der Steuereinheit oder des Robotermanipulators, bevorzugt auf einem berührempfindlichen Bildschirm. Vorteilhaft kann somit vom Anwender eingestellt werden, welche Gegenkraft bzw. welches Gegenmoment durch den Robotermanipulator beim Eingeben einer solchen Eingabe einer Kraft und/oder eines Moments erfolgen soll, um sich den entsprechenden Vorstellungen des Anwenders bzw. der Umgebung des Robotermanipulators und den dadurch entstehenden Möglichkeiten einer Auslenkung anzupassen.
-
Gemäß einer weiteren vorteilhaften Ausführungsform wird zusätzlich zum externen Drehmomentvektor ein zeitlicher Verlauf des externen Drehmomentvektors und/oder eine erste oder höhere zeitliche Ableitung des externen Drehmomentvektors und/oder eine Energiefunktion auf Basis des zeitlichen Verlaufs des externen Drehmomentvektors und/oder eine Leistungsfunktion auf Basis des zeitlichen Verlaufs des externen Drehmomentvektors ermittelt und mit einem oder mehreren Vergleichstermen verglichen.
-
Gemäß einer weiteren vorteilhaften Ausführungsform wird eine zeitliche Abfolge von Ereignissen mit gegenüber einem Nullwert abweichenden Amplituden in einem zeitlichen Verlauf des externen Drehmomentvektors ermittelt und die zeitliche Abfolge mit einem oder mehreren Vergleichstermen und/oder einer Bedingung für die Abfolge verglichen. Ereignisse mit gegenüber einem Nullwert abweichenden Amplituden in einem zeitlichen Verlauf des externen Drehmomentvektors werden insbesondere durch Prüfen des zeitlichen Verlaufs auf Überschreiten eines Schwellenwerts ermittelt, sodass vorteilhaft Sensorrauschen und unbedeutende Ereignisse unberücksichtigt bleiben. Gemäß dieser Ausführungsform ist es vorteilhaft möglich, über die Vergleichsterme Muster festzulegen, die ein bestimmtes Kommando auslösen. Beispielsweise wird ein erstes Kommando einem in erster Richtung erfolgenden Kraftstoß gefolgt von einem in zweiter zur ersten Richtung entgegengesetzten Kraftstoß zugeordnet.
-
Gemäß einer weiteren vorteilhaften Ausführungsform ist die Vorgabe ein vorgegebener externer Kraftwinder am Robotermanipulator. Wird die Vorgabe einem vorgegebenen externen Kraftwinder zugeordnet, so ist die Vorgabe vorteilhaft intuitiv nachvollziehbar. Die Transformation des externen Kraftwinders mit der Transponierten der Jacobi Matrix ergibt dann nämlich einen Vektor, dessen Komponenten den externen Momenten an den Gelenken zugeordnet werden können, sodass der externe Drehmomentvektor und der Vergleichsterm zumindest elementweise die gleichen physikalischen Einheiten aufweisen.
-
Gemäß einer weiteren vorteilhaften Ausführungsform wird während des Ermittelns des externen Drehmomentvektors von einer Ausgabeeinheit eine Warnung ausgegeben, wenn sich der Robotermanipulator in einer singulären Pose oder in einem vorgegebenen Bereich um die singuläre Pose befindet. Eine singuläre Pose ist insbesondere dann erreicht, wenn eine Kraft, die an einem Punkt des Robotermanipulators in ein Glied eingeleitet wird, in seinem Kraftfluss durch Gelenke durchgeleitet wird, ohne dass diese Gelenke um ihre Drehachse ein Moment erfahren. Zumindest ideal mechanisch wäre es in dieser Konstellation nicht notwendig, dass ein jeweiliger Aktuator an einem solchen Gelenk ein Moment erzeugt, um die eingeleitete Kraft zu kompensieren. Dies ist insbesondere dann der Fall, wenn zumindest zwei Glieder entlang einer gemeinsamen Geraden ausgerichtet sind und das Gelenk und insbesondere die Drehachse des Gelenks ebenfalls diese Gerade schneidet. Sind beispielsweise alle Glieder des Robotermanipulators auf einer gemeinsamen Geraden ausgerichtet und alle Achsen der Gelenke zwischen diesen Gliedern schneiden diese Gerade im rechten Winkel, so wird eine erste Kraft, die auf das distale Ende des Robotermanipulators in Richtung der Geraden aufgebracht wird, ohne ein Moment auf die Gelenke zu bewirken, bis in die Basis des Robotermanipulators in ihrem Kraftfluss geleitet. Dann gilt:
-
Eine zweite, zur ersten senkrecht wirkenden Kraft, dagegen, welche rechtwinklig zur gedachten Geraden wirkt, wäre bestens geeignet, um ein entsprechendes Moment auf die Gelenke des Robotermanipulators in der oben beschriebenen Pose auszuüben, sodass ein jeweiliger Drehmomentsensor in einem jeweiligen Gelenk des Robotermanipulators ungestört dazu in der Lage wäre, das durch die extern wirkende Kraft ausgeübte Gelenkmoment zu erfassen. Vorteilhaft wird durch diese Ausführungsform der Anwender gewarnt, wenn eine solche Pose des Robotermanipulators aktuell vorliegt, in der unter Umständen die Eingaben des Anwenders nicht erfasst werden können und einem Kommando zugeordnet werden können. Bevorzugt enthält die Warnung die Information über eine entsprechende Richtung, in der keine Eingabe erfasst werden kann oder in der eine Eingabe nur mit geringer Qualität erfasst werden kann.
-
Ein weiterer Aspekt der Erfindung betrifft einen Robotermanipulator mit einer Steuereinheit, wobei der Robotermanipulator eine Vielzahl von durch Gelenke miteinander verbundenen Gliedern aufweist und die Steuereinheit dazu ausgeführt ist zum:
- - Ermitteln eines externen Drehmomentvektors auf Basis von durch Drehmomentsensoren an den Gelenken ermittelten Gelenkmomenten, wobei der externe Drehmomentvektor einen Vektor von Momenten an den Gelenken angibt, die mit einer extern vom Anwender auf den Robotermanipulator aufgebrachten Kraft und/oder Moment korrelieren,
- - Ermitteln eines Gelenkwinkelvektors des Robotermanipulators und Ermitteln einer von dem Gelenkwinkelvektor abhängigen Jacobimatrix,
- - Vergleichen des externen Drehmomentvektors mit einem oder mehreren Vergleichstermen, wobei der jeweilige Vergleichsterm auf Basis einer Matrixmultiplikation der Transponierten der Jacobimatrix mit einer jeweiligen konstanten Vorgabe von der Steuereinheit ermittelt wird, und wobei einem jeweiligen Ergebnis des Vergleichs ein jeweiliges Kommando für den Robotermanipulator durch eine vordefinierte Vermittlungsfunktion zugeordnet ist, und
- - Ausführen des dem jeweiligen Ergebnis zugeordneten Kommandos durch Ansteuern des Robotermanipulators.
-
Gemäß einer vorteilhaften Ausführungsform ist die Steuereinheit dazu ausgeführt, den externen Drehmomentvektor mit einem ersten Vergleichsterm und mit einem zweiten Vergleichsterm zu vergleichen, wobei der zweite Vergleichsterm größer als der erste Vergleichsterm ist, wobei im Falle des Ergebnisses, dass der externe Drehmomentvektor größer als der zweite Vergleichsterm ist, von einer Kollision des Robotermanipulators ausgegangen wird und durch die Steuereinheit kein Kommando zugeordnet wird, und wobei im Falle des Ergebnisses, dass der externe Drehmomentvektor kleiner als der zweite Vergleichsterm und größer als der erste Vergleichsterm ist, ein erstes Kommando durch die Steuereinheit ausgeführt wird.
-
Gemäß einer weiteren vorteilhaften Ausführungsform ist die Steuereinheit dazu ausgeführt, während des Ermittelns des externen Drehmomentvektors den Robotermanipulator durch die Steuereinheit steif anzusteuern, sodass sich der Robotermanipulator auf eine vom Anwender auf den Robotermanipulator aufgebrachte externe Kraft und/oder Moment hin nicht bewegt.
-
Gemäß einer weiteren vorteilhaften Ausführungsform ist die Steuereinheit dazu ausgeführt, während des Ermittelns des externen Drehmomentvektors den Robotermanipulator nachgiebig geregelt anzusteuern.
-
Gemäß einer weiteren vorteilhaften Ausführungsform ist der Robotermanipulator mit einem Bedienelement verbunden, wobei am Bedienelement eine Steifigkeit der nachgiebigen Regelung von dem Anwender einstellbar ist.
-
Gemäß einer weiteren vorteilhaften Ausführungsform ist die Steuereinheit dazu ausgeführt, zusätzlich zum externen Drehmomentvektor einen zeitlichen Verlauf des externen Drehmomentvektors und/oder eine erste oder höhere zeitliche Ableitung des externen Drehmomentvektors und/oder eine Energiefunktion auf Basis des zeitlichen Verlaufs des externen Drehmomentvektors und/oder eine Leistungsfunktion auf Basis des zeitlichen Verlaufs des externen Drehmomentvektors zu ermitteln und mit einem oder mehreren Vergleichstermen zu vergleichen.
-
Gemäß einer weiteren vorteilhaften Ausführungsform ist die Steuereinheit dazu ausgeführt, eine zeitliche Abfolge von Ereignissen mit gegenüber einem Nullwert abweichenden Amplituden in einem zeitlichen Verlauf des externen Drehmomentvektors zu ermitteln und die zeitliche Abfolge mit einem oder mehreren Vergleichstermen und/oder einer Bedingung für die Abfolge vergleichen.
-
Gemäß einer weiteren vorteilhaften Ausführungsform ist die Vorgabe ein vorgegebener externer Kraftwinder am Robotermanipulator.
-
Gemäß einer weiteren vorteilhaften Ausführungsform ist die Steuereinheit dazu ausgeführt, während des Ermittelns des externen Drehmomentvektors eine Ausgabeeinheit zum Ausgeben einer Warnung anzusteuern, wenn sich der Robotermanipulator in einer singulären Pose oder in einem vorgegebenen Bereich um die singuläre Pose befindet.
-
Vorteile und bevorzugte Weiterbildungen des vorgeschlagenen Robotermanipulators ergeben sich durch eine analoge und sinngemäße Übertragung der im Zusammenhang mit dem vorgeschlagenen Verfahren vorstehend gemachten Ausführungen.
-
Weitere Vorteile, Merkmale und Einzelheiten ergeben sich aus der nachfolgenden Beschreibung, in der - gegebenenfalls unter Bezug auf die Zeichnung - zumindest ein Ausführungsbeispiel im Einzelnen beschrieben ist. Gleiche, ähnliche und/oder funktionsgleiche Teile sind mit gleichen Bezugszeichen versehen.
-
Es zeigen:
- 1 ein Verfahren gemäß einem Ausführungsbeispiel der Erfindung, und
- 2 einen Robotermanipulator mit einer Steuereinheit zum Ausführen des Verfahrens gemäß dem Ausführungsbeispiel der Erfindung.
-
Die Darstellungen in den Figuren sind schematisch und nicht maßstäblich. In 1 ist dabei ein Verfahren beschrieben, das durch die Steuereinheit 7 des Robotermanipulators 1 ausgeführt wird. Ein solcher Robotermanipulator 1 mit einer entsprechenden Steuereinheit 7 ist in der 2 gezeigt. Daher kann die Beschreibung der 1 auch auf die 2 bezogen werden und umgekehrt.
-
1 zeigt ein Verfahren zum Vorgeben und Ausführen eines Kommandos an einem Robotermanipulator 1 durch einen Anwender, wobei der Robotermanipulator 1 eine Vielzahl von durch Gelenke 3 miteinander verbundenen Gliedern aufweist. In einem ersten Schritt erfolgt das Ermitteln S1 eines externen Drehmomentvektors auf Basis von durch Drehmomentsensoren 5 an den Gelenken 3 ermittelten Gelenkmomenten, wobei der externe Drehmomentvektor einen Vektor von Momenten an den Gelenken 3 angibt, die mit einer extern, insbesondere vom Anwender, auf den Robotermanipulator 1 aufgebrachten Kraft und/oder Moment korrelieren. Hierfür werden durch die Drehmomentsensoren 5 naturgemäß die gesamten am jeweiligen der Gelenke 3 anliegenden aktuellen Momente erfasst. Davon abgezogen werden die Momente aus Schwerkrafteinfluss, sowie aus der Coriolisbeschleunigung und der Zentrifugalbeschleunigung, welche auf die träge Masse des Robotermanipulators 1 wirken. Übrig bleiben die Anteile der externen Einflüsse, die bei Abwesenheit von anderen Störungen vollständig den manuellen Eingaben des Anwenders entsprechen. Diese Anteile der Gelenkmomente werden im externen Drehmomentvektor angegeben. Außerdem erfolgt das Ermitteln S2 eines Gelenkwinkelvektors des Robotermanipulators 1 und Ermitteln einer von dem Gelenkwinkelvektor abhängigen Jacobimatrix. Die Komponenten des Gelenkwinkelvektors, das heißt die einzelnen Gelenkwinkel, werden von jeweiligen Winkelgebern erfasst und von der Steuereinheit im Gelenkwinkelvektor zusammengefasst. Es folgt im weiteren Schritt das Vergleichen S3 des externen Drehmomentvektors mit einem oder mehreren Vergleichstermen, wobei der jeweilige Vergleichsterm auf Basis einer Matrixmultiplikation der Transponierten der Jacobimatrix mit einer jeweiligen konstanten Vorgabe ermittelt wird, und wobei einem jeweiligen Ergebnis des Vergleichs ein jeweiliges Kommando für den Robotermanipulator 1 durch eine vordefinierte Vermittlungsfunktion zugeordnet ist. Der externe Drehmomentvektor wird hierbei mit einem ersten Vergleichsterm und mit einem zweiten Vergleichsterm verglichen, wobei der zweite Vergleichsterm größer als der erste Vergleichsterm ist, wobei im Falle des Ergebnisses, dass der externe Drehmomentvektor größer als der zweite Vergleichsterm ist, von einer Kollision des Robotermanipulators 1 ausgegangen wird und kein Kommando zugeordnet wird, und wobei im Falle des Ergebnisses, dass der externe Drehmomentvektor kleiner als der zweite Vergleichsterm und größer als der erste Vergleichsterm ist, ein erstes Kommando ausgeführt wird. Im einzelnen:
-
Wenn gilt:
dann wird von Messrauschen und unbedeutenden Störungen ausgegangen und es wird kein Kommando ausgeführt.
-
Wenn gilt:
dann wird ein entsprechendes dieser Geste zugeordnetes Kommando ausgeführt, nämlich das Umschalten in einen bestimmten Modus des Robotermanipulators 1.
-
Wenn gilt:
dann wird von einer Kollision des Robotermanipulators 1 ausgegangen und es wird kein Kommando ausgeführt.
-
Hierbei bedeuten:
- - τext: den externe Drehmomentvektor;
- - JT(q): Die Transponierte der Jacobimatrix J (q) ;
- - Das rechte tiefgestellte K und das linke hochgestellte K jeweils bezüglich JT (q) : Die Notation von JT(q) im Koordinatensystem K sowie den Bezug von JT(q) auf das Koordinatensystem K . Das Koordinatensystem K ist dabei ein sogenanntes Steifigkeitskoordinatensystem, dessen Ursprung am Endeffektor angeordnet ist und dessen Orientierung relativ zu einem einem erdfesten Koordinatensystem konstant bleibt; sowie:
- - die Vektoren [10,0,0,0,0,0]T und [20,0,0,0,0,0]T die jeweilige Vorgabe [V] eines jeweiligen Vergleichsterms. Beide beschreiben durch den jeweils ersten Eintrag einen Kraftwert in x-Richtung, da diese Vektoren jeweils als vorgegebener externer Kraftwinder interpretiert werden können. Der Transformationsoperator (·)T, ausgedrückt durch ein hochgestelltes , T' transponiert den jeweiligen Vektor, so dass der jeweilige Vektor mit Hilfe des Transformationsoperators als Zeilenvektor notierbar ist, obwohl es sich bei der jeweiligen Vorgabe um einen Spaltenvektor handelt.
-
Daraufhin erfolgt das Ausführen S4 des dem jeweiligen Ergebnis zugeordneten Kommandos durch Ansteuern des Robotermanipulators 1 durch die Steuereinheit 7. Während des Ermittelns des externen Drehmomentvektors wird von einer visuellen Ausgabeeinheit 9 eine Warnung ausgegeben, wenn sich der Robotermanipulator in oder in der Nähe einer singulären Pose befindet. Die Ausgabeeinheit 9 ist ein LED-Leuchtstreifen, der um einen Umfang eines Gliedes des Robotermanipulators 1 verläuft, und bei nicht-singulären Posen des Robotermanipulators 1 in grüner Farbe leuchtet, und bei singulären Posen in roter Farbe leuchtet.
-
2 zeigt ein Robotermanipulator 1 mit einer Steuereinheit 7, wobei der Robotermanipulator 1 eine Vielzahl von durch Gelenke 3 miteinander verbundenen Gliedern aufweist und die Steuereinheit 7 dazu ausgeführt ist zum:
- - Ermitteln eines externen Drehmomentvektors auf Basis von durch Drehmomentsensoren 5 an den Gelenken 3 ermittelten Gelenkmomenten, wobei der externe Drehmomentvektor einen Vektor von Momenten an den Gelenken 3 angibt, die mit einer extern, insbesondere vom Anwender, auf den Robotermanipulator 1 aufgebrachten Kraft und/oder Moment korrelieren,
- - Ermitteln eines Gelenkwinkelvektors des Robotermanipulators 1 und Ermitteln einer von dem Gelenkwinkelvektor abhängigen Jacobimatrix,
- - Vergleichen des externen Drehmomentvektors mit einem oder mehreren Vergleichstermen, wobei der jeweilige Vergleichsterm auf Basis einer Matrixmultiplikation der Transponierten der Jacobimatrix mit einer jeweiligen konstanten Vorgabe von der Steuereinheit 7 ermittelt wird, und wobei einem jeweiligen Ergebnis des Vergleichs ein jeweiliges Kommando für den Robotermanipulator 1 durch eine vordefinierte Vermittlungsfunktion zugeordnet ist, und
- - Ausführen des dem jeweiligen Ergebnis zugeordneten Kommandos durch Ansteuern des Robotermanipulators 1.
-
Bezugszeichenliste
-
- 1
- Robotermanipulator
- 3
- Gelenke
- 5
- Drehmomentsensoren
- 7
- Steuereinheit
- 9
- Ausgabeeinheit
- S1
- Ermitteln
- S2
- Ermitteln
- S3
- Vergleichen
- S4
- Ausführen