-
Die vorliegende Erfindung betrifft ein Verfahren und System zum Durchführen einer Aufgabe durch einen Roboter unter Berücksichtigung einer virtuellen Einschränkung sowie ein Computerprogrammprodukt zur Durchführung des Verfahrens.
-
Roboter sollen häufig Aufgaben durchführen, beispielsweise mit ihrem TCP bzw. Endeffektor eine vorgegebene Pose, zum Beispiel kartesische Position, an- bzw. Bahn abfahren, und dabei vorgegebene virtuelle Einschränkungen berücksichtigen, zum Beispiel einen Ellbogen eines Roboterarms oben und/oder Abstand zu Achsbegrenzungen und/oder singulären Posen halten.
-
Dabei kann es zu einem Konflikt zwischen Einschränkung und Aufgabe kommen, bei dem der Roboter die Aufgaben unter Berücksichtigung der Einschränkung nicht erfüllen kann.
-
Die
DE 20 2019 102 430 U1 betrifft ein Robotersystem aufweisend einen Robotermanipulator mit Drehmomentsensoren zum Erfassen eines jeweiligen Moments zwischen den jeweiligen beiden am jeweiligen Gelenk anliegenden Gliedern und zum Übermitteln des jeweiligen erfassten Moments an eine mit dem Robotermanipulator verbundene Recheneinheit, die 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.
-
Die
DE 10 2018 214 257 B3 betrifft ein Verfahren zur Regelung eines Roboters, wobei wenigstens ein Gelenkregler zur Verstellung eines Gelenks des Roboters auf Basis einer Pose des Roboters und einer vorgegebenen Kraft- und Positions-Gewichtung wenigstens eines kartesischen Freiheitsgrades einer roboterfesten Referenz verstellt wird, wobei die Kraft- und Positions-Gewichtung mithilfe wenigstens einer Selektionsmatrix vorgegeben ist, wobei wenigstens eine Selektionsmatrix für eine Positions-Gewichtung und eine Selektionsmatrix für eine Kraft-Gewichtung vorgegeben ist.
-
Die
DE 10 2018 210 864 B3 betrifft ein Verfahren zum Regeln eines Roboters auf Basis einer Jacobimatrix, die Gelenkgeschwindigkeiten des Roboters in eine Geschwindigkeit einer roboterfesten Referenz in einem Arbeitsraum des Roboters transformiert, wobei der Roboter auf Basis einer Inversen der Jacobimatrix geregelt wird, falls ein Auswahlparameter einen ersten Parameterwert aufweist, insbesondere in einem ersten Parameterbereich liegt, und auf Basis einer Transponierten der Jacobimatrix geregelt, falls der Auswahlparameter einen zweiten Parameterwert aufweist, insbesondere in einem zweiten Parameterbereich liegt.
-
Die
DE 10 2016 000 754 A1 betrifft ein Verfahren zur wenigstens teilweise automatisierten Bahnplanung eines mehrachsigen Roboters mit dem Schritt: Auflösen einer Redundanz des Roboters bezüglich einer in einem Arbeitsraum des Roboters vorgegebenen Bahn derart, dass ein gemischtes Gütekriterium, das eine effektive Masse des Roboters und einen Betrag einer minimalen Kollisionskraft des Roboters umfasst, die auf Basisvorgegebener Detektions-Grenzwerte für Achskräfte des Roboters detektierbar ist, minimal ist.
-
Die
DE 10 2011 106 321 A1 betrifft ein Verfahren zum Steuern eines, insbesondere humankollaborierenden, Roboters, bei dem eine roboter- oder aufgabenspezifische Redundanz des Roboters aufgelöst wird, wobei zur Auflösung der Redundanz eine posenabhängige Trägheitsgröße des Roboters minimiert wird.
-
Die
DE 101 43 753 B4 betrifft ein Verfahren zum Kalibrieren eines Roboterarmes, bei dem durch Nullraumbewegungen entstehende Trajektorien verwendet werden, um ein dem Roboterarm zugrundeliegendes kinematisches Modell zu kalibrieren.
-
Aufgabe der vorliegenden Erfindung ist es, den Betrieb von Robotern, insbesondere ihre Steuerung, zu verbessern.
-
Diese Aufgabe wird durch ein Verfahren mit den Merkmalen des Anspruchs 1 gelöst. Ansprüche 6, 7 stellen ein System bzw. Computerprogrammprodukt zur Durchführung eines hier beschriebenen Verfahrens unter Schutz. Die Unteransprüche betreffen vorteilhafte Weiterbildungen.
-
Nach einer Ausführung der vorliegenden Erfindung weist ein Verfahren zum Durchführen einer Aufgabe bzw. Task durch einen Roboter unter Berücksichtigung bzw. Einhaltung einer virtuellen Einschränkung bzw. Constraint die Schritte auf:
- - Überwachen auf einen, in einer Ausführung potentiellen bzw. bevorstehenden, Konflikt zwischen einer Aufgabe, die vorliegend ohne Beschränkung der Allgemeinheit als erste Aufgabe bezeichnet wird, und einer Einschränkung, die vorliegend ohne Beschränkung der Allgemeinheit als erste Einschränkung bezeichnet wird, in einem Betriebsmodus (des Roboters), der vorliegend ohne Beschränkung der Allgemeinheit als erster Betriebsmodus bezeichnet wird; und
- - Umschalten des Roboters in einen zweiten Betriebsmodus, falls bei diesem Überwachen ein (potentieller bzw. bevorstehender) Konflikt detektiert wird.
-
Der Roboter weist in einer Ausführung wenigstens drei, insbesondere wenigstens sechs, in einer Ausführung wenigstens sieben Achsen bzw. Gelenke, insbesondere einen Roboterarm mit wenigstens drei, insbesondere wenigstens sechs, in einer Ausführung wenigstens sieben Achsen bzw. Gelenken, in einer Ausführung Drehachsen bzw. -gelenken, und/oder eine stationäre oder mobile Basis, in einer Ausführung ein Fahrwerk, auf.
-
Für solche Roboter kann die vorliegende Erfindung aufgrund ihrer Kinematik, insbesondere Redundanz, und/oder Einsatzbedingungen mit besonderem Vorteil verwendet werden.
-
Nach einem ersten Aspekt der vorliegenden Erfindung wird ein (potentieller bzw. bevorstehender) Konflikt zwischen der ersten Aufgabe und der ersten virtuellen Einschränkung detektiert, falls bzw. sobald ein minimaler Singulärwert σ
min der Singulärwerte σ
i der Matrix
einen vorgegebenen, in einer Ausführung positiven, Grenzwert Θ (> 0) unterschreitet.
-
Dabei bezeichnet J
T in an sich bekannter Weise die Jacobimatrix einer durch einen Roboter durchzuführenden Aufgabe, im ersten Betriebsmodus also die Jacobimatrix der ersten Aufgabe. Die Transponierte der Jacobimatrix einer Aufgabe bildet in einer Ausführung die Aufgabe, in einer Weiterbildung eine generalisierte Aufgabenkraft zur Durchführung der Aufgabe, in den Achs- bzw. Gelenkraum des Roboters mit den Achskoordinaten q ab, rein exemplarisch zum Beispiel bei einer Proportional-Regelung zum Anfahren einer im Arbeitsraum vorgegebenen Pose x
d (zum Beispiel x
d = [x
d, y
d, z
d, α
d, β
d, γ
d]
T mit dem TCP bzw. Endeffektor aus einer aktuellen Position
x also die Regeldifferenz auf die Gelenkkraft
-
In analoger Weise bezeichnet J
C in an sich bekannter Weise die Jacobimatrix einer vorgegebenen virtuellen Einschränkung, im ersten Betriebsmodus also die Jacobimatrix der ersten Einschränkung. Die Transponierte der Jacobimatrix einer Einschränkung bildet in einer Ausführung die Einschränkung, in einer Weiterbildung eine generalisierte Einschränkungskraft zur Berücksichtigung bzw. zum Einhalten der Einschränkung, in den Achs- bzw. Gelenkraum des Roboters ab, wiederum rein exemplarisch zum Beispiel bei einer Proportional-Regelung zum Einhalten einer vorgegebenen kartesischen Position eines Ellbogens x
e,d = [x
e,d, y
e,d, Z
e,d]
T die Regeldifferenz auf eine entsprechende Gelenkkraft
J
C # bezeichnet in an sich bekannter Weise eine Pseudoinverse der Jacobimatrix der (jeweiligen) Einschränkung. Die Matrix (1 - J
C #·J
C)·J
C # ist somit der Nullraumprojektor N
C, der die Projektion der Aufgabe in den Nullraum der jeweiligen virtuellen Einschränkung vermittelt.
-
Der minimale Singulärwert σ
min wird in einer Ausführung mithilfe einer Singulärwertzerlegung („Singular Value Decomposition“, SVD) und einer Minimumsuche der dabei ermittelten Singulärwerte σ
i ermittelt, in einer Ausführung auf Basis der o.g. Matrix für wenigstens eine bevorstehende, insbesondere geplante, Pose q des Roboters (JT = J
T(q), J
C = J
C(q)):
-
Durch diese Überwachung bzw. diesen ersten Aspekt kann in einer Ausführung ein, insbesondere potentieller, Konflikt zwischen der ersten Aufgabe und der ersten Einschränkung besonders vorteilhaft, insbesondere zuverlässig(er), schnell(er) und/oder einfach(er), detektiert werden.
-
Nach einem zweiten Aspekt der vorliegenden Erfindung ist, insbesondere wird, in dem zweiten Betriebsmodus
- • die erste Aufgabe derart, in einer Ausführung mit der Maßgabe, zu einer zweiten Aufgabe modifiziert und/oder
- • die erste Einschränkung derart, in einer Ausführung mit der Maßgabe, zu einer zweiten virtuellen Einschränkung modifiziert, dass
- • die Dimension des von der Matrix (1 - JC #·JC)·JC # mit der Jacobimatrix JC der Einschränkung im zweiten Betriebsmodus und der Pseudoinversen JC # dieser Jacobimatrix JC aufgespannten Raums gegenüber der Dimension des von der Matrix (1 - JC #·JC)·JC # mit der Jacobimatrix JC der Einschränkung im ersten Betriebsmodus bzw. der Jacobimatrix JC der ersten Einschränkung und der Pseudoinversen JC # dieser Jacobimatrix JC aufgespannten Raums
vergrößert und/oder
- • die Dimension des von der Jacobimatrix JT der Aufgabe im zweiten Betriebsmodus aufgespannten Raums gegenüber der Dimension des von der Jacobimatrix JT der Aufgabe im ersten Betriebsmodus bzw. der Jacobimatrix JT der ersten Aufgabe aufgespannten Raums reduziert ist.
-
In einer Ausführung wird somit
- • von der vorgegebenen ersten virtuellen Einschränkung auf eine zu berücksichtigende bzw. einzuhaltende, insbesondere vorab bzw. vor Durchführung des ersten Betriebsmodus, vorgegebene zweite virtuelle Einschränkung und/oder
- • von der ersten Aufgabe auf eine durchzuführende, in einer Ausführung vorab bzw. vor Durchführung des ersten Betriebsmodus vorgegebene, zweite Aufgabe umgeschaltet,
falls bei dem Überwachen ein (potentieller bzw. bevorstehender) Konflikt detektiert wird bzw. worden ist.
-
Die Dimension eines von einer Matrix aufgespannten Raums ist in einer Ausführung gleich der Anzahl der linear unabhängigen Reihen dieser Matrix.
-
Reduziert man beispielsweise in Gleichung (2) die Dimension der anzufahrenden Pose xd auf eine dreidimensionale kartesische Position (x'd = [xd, yd, zd]T), reduziert sich entsprechend auch die Dimension des von der Jacobimatrix JT der Aufgabe aufgespannten Raums von 6 (= Dimension des von der Jacobimatrix JT der ersten Aufgabe aufgespannten Raums) auf 3 (= Dimension des von der Jacobimatrix JT der zur zweiten Aufgabe modifizierten Aufgabe aufgespannten Raums).
-
Reduziert man analog zum Beispiel in Gleichung (3) die Dimension der einzuhaltenden kartesischen Position des Ellbogens xd auf die Höhen- bzw. z-Koordinate, um den Ellbogen oben zu halten (x'd,e = [zd]), wird die Jacobimatrix JC der Einschränkung ein Zeilenvektor. Entsprechend erhöht sich hier umgekehrt die Dimension des vom Nullraumprojektor NC aufgespannten Raums.
-
Anschaulich gesprochen ist somit im zweiten Betriebsmodus die durchzuführende Aufgabe und/oder die zu berücksichtigende Einschränkung „gelockert“ bzw. weniger strikt.
-
Durch einen solchen zweiten Betriebsmodus bzw. ein Umschalten auf eine modifizierte Aufgabe und/oder Einschränkung, die so gewählt sind/ist, dass die Dimension des von der Jacobimatrix JT der Aufgabe aufgespannten Raums sich für bzw. durch die modifizierte Aufgabe reduziert bzw. die Dimension des von dem Nullraumprojektor NC = (1 - JC #·JC)·JC # aufgespannten Raums sich für bzw. durch die modifizierte Einschränkung vergrößert kann in einer Ausführung ein (potentieller bzw. bevorstehender) Konflikt zwischen Aufgabe und Einschränkung vorteilhaft aufgelöst bzw. vermieden werden.
-
In einer Ausführung ist eine hier verwendete Pseudoinverse, insbesondere also die Pseudoinverse JC # der Jacobimatrix JC der ersten Einschränkung bzw. im ersten Betriebsmodus und gegebenenfalls die Pseudoinverse JC # der Jacobimatrix JC der modifizierten bzw. zweiten Einschränkung bzw. im zweiten Betriebsmodus, (jeweils) die dynamische (generalisierte) Inverse M-1 ·JC T ·( JC·M-1·JC T)-1 mit der Inversen M-1 der Massenmatrix M des Roboters und der Transponierten JC T der Jacobimatrix JC der jeweiligen Einschränkung.
-
Hierdurch kann die Pseudoinverse in einer Ausführung vorteilhaft, insbesondere einfach(er) und/oder schnell(er), ermittelt werden.
-
In einer Ausführung sind, insbesondere werden, in dem zweiten Betriebsmodus die
- • Aufgabe und/oder
- • Einschränkung
- derart, in einer Ausführung mit der Maßgabe, modifiziert sind, dass (in dem zweiten Betriebsmodus bzw. bei modifizierter Aufgabe bzw. Einschränkung)
- • die Dimension des von der Matrix (1 - JC #·JC)·JC # mit der Jacobimatrix JC der Einschränkung im zweiten Betriebsmodus, insbesondere also der gegebenenfalls zu der zweiten Einschränkung modifizierten ersten Einschränkung, und der Pseudoinversen JC # dieser Jacobimatrix JC aufgespannten Raums größer als
- • die Dimension des von der Jacobimatrix JT der Aufgabe im zweiten Betriebsmodus, insbesondere also der gegebenenfalls zu der zweiten Aufgabe modifizierten ersten Aufgabe, aufgespannten Raums ist:
-
In einer Ausführung sind die modifizierte Aufgabe bzw. Einschränkung vorab bzw. vor Beginn des ersten Betriebsmodus entsprechend vorgegeben und es wird bei Detektion eines (potentiellen bzw. bevorstehenden) Konflikts auf diese umgeschaltet.
-
Hierdurch kann in einer Ausführung ein (potentieller bzw. bevorstehender) Konflikt zwischen Aufgabe und Einschränkung besonders vorteilhaft aufgelöst bzw. vermieden werden.
-
In einer Ausführung umfasst das Verfahren den Schritt:
- - Umschalten des Roboters von dem zweiten in den ersten Betriebsmodus, falls detektiert wird, dass ein minimaler Singulärwert σmin der Matrix JT·(1 - JC #·JC)·JC # mit der Jacobimatrix JC der ersten Einschränkung, einer bzw. der Pseudoinversen JC # dieser Jacobimatrix JC und der Jacobimatrix JT der ersten Aufgabe den vorgegebenen Grenzwert Θ nicht (mehr) unterschreitet.
-
In einer Ausführung wird somit wieder zu der vorgegebenen ersten virtuellen Einschränkung bzw. ersten Aufgabe um- bzw. zurückgeschaltet, falls im zweiten Betriebsmodus detektiert wird bzw. worden ist, dass für die erste Aufgabe und Einschränkung der minimale Singulärwert σmin den vorgegebenen Grenzwert Θ nicht (mehr) unterschreitet, anschaulich gesprochen auf die striktere Einschränkung bzw. Aufgabe um- bzw. zurückgeschaltet, falls für diese kein (potentieller bzw. bevorstehender) Konflikt (mehr) detektiert wird.
-
Hierdurch kann in einer Ausführung die erste Aufgabe so weit wie möglich durchgeführt bzw. die erste Einschränkung so weit wie möglich berücksichtigt bzw. eingehalten werden.
-
In einer Ausführung wird in dem zweiten Betriebsmodus der Roboter stillgesetzt und/oder eine Fehlermeldung ausgegeben, falls ein minimaler Singulärwert σmin der Matrix JT·(1 - JC #·JC)·JC # mit der Jacobimatrix JT der Aufgabe im zweiten Betriebsmodus, der Jacobimatrix JC der Einschränkung im zweiten Betriebsmodus und einer bzw. der Pseudoinversen JC # dieser Jacobimatrix JC den vorgegebenen Grenzwert Θ (ebenfalls bzw. immer noch) unterschreitet.
-
Hierdurch kann in einer Ausführung der Betrieb, insbesondere die Sicherheit, des Roboters verbessert werden. Anschaulich gesprochen wird in dem zweiten Betriebsmodus der Roboter stillgesetzt und/oder eine Fehlermeldung ausgegeben, falls auch die gegebenenfalls gelockerte bzw. weniger strikte Aufgabe unter Berücksichtigung bzw. Einhaltung der gegebenenfalls gelockerten bzw. weniger strikten Einschränkung zu einem, insbesondere potentiellen, Konflikt führt.
-
Nach einer Ausführung der vorliegenden Erfindung ist ein System zum Durchführen einer Aufgabe durch einen Roboter unter Berücksichtigung einen virtuellen Einschränkung hard- und/oder software-, insbesondere programmtechnisch, zur Durchführung eines hier beschriebenen Verfahrens eingerichtet und/oder weist auf:
- - Mittel zum Überwachen auf einen, insbesondere potentiellen, Konflikt zwischen einer ersten Aufgabe und einer ersten virtuellen Einschränkung in einem ersten Betriebsmodus; und
- - Mittel zum Umschalten des Roboters in einen zweiten Betriebsmodus, falls bei dem Überwachen ein, insbesondere potentieller, Konflikt detektiert wird; wobei
- - das Mittel zum Überwachen ein Mittel zum Detektieren eines, insbesondere potentiellen, Konflikts, falls ein minimaler Singulärwert σmin der Matrix JT·(1 - JC #·JC)·JC # mit der Jacobimatrix JT der ersten Aufgabe, der Jacobimatrix JC der ersten Einschränkung und einer Pseudoinversen JC # dieser Jacobimatrix JC der ersten Einschränkung einen vorgegebenen Grenzwert Θ unterschreitet, aufweist; und/oder
- - in dem zweiten Betriebsmodus die erste Aufgabe derart zu einer zweiten Aufgabe und/oder die erste Einschränkung derart zu einer zweiten virtuellen Einschränkung modifiziert sind, dass die Dimension des von der Matrix (1 - JC #·JC)·JC # mit der Jacobimatrix JC der Einschränkung im zweiten Betriebsmodus und der Pseudoinversen JC # dieser Jacobimatrix JC aufgespannten Raums gegenüber der Dimension des von der Matrix (1 - JC #·JC)·JC # mit der Jacobimatrix JC der Einschränkung im ersten Betriebsmodus und der Pseudoinversen JC # dieser Jacobimatrix JC aufgespannten Raums vergrößert und/oder die Dimension des von der Jacobimatrix JT der Aufgabe im zweiten Betriebsmodus aufgespannten Raums gegenüber der Dimension des von der Jacobimatrix JT der Aufgabe im ersten Betriebsmodus aufgespannten Raums reduziert ist.
-
In einer Ausführung weist das System bzw. sein(e) Mittel auf:
- - Mittel zum Umschalten des Roboters von dem zweiten in den ersten Betriebsmodus, falls detektiert wird, dass ein minimaler Singulärwert σmin der Matrix JT·(1 - JC #·JC)·JC # mit der Jacobimatrix JC der ersten Einschränkung, einer Pseudoinversen JC # dieser Jacobimatrix JC und der Jacobimatrix JT der ersten Aufgabe den vorgegebenen Grenzwert Θ nicht unterschreitet; und/oder
- - Mittel zum Stillsetzen des Roboters und/oder Ausgeben einer Fehlermeldung in dem zweiten Betriebsmodus, falls ein minimaler Singulärwert σmin der Matrix JT·(1 - JC #·JC)·JC # mit der Jacobimatrix JT der Aufgabe im zweiten Betriebsmodus, der Jacobimatrix JC der Einschränkung im zweiten Betriebsmodus und einer bzw. der Pseudoinversen JC # dieser Jacobimatrix JC den vorgegebenen Grenzwert Θ (ebenfalls bzw. immer noch) unterschreitet.
-
Ein Mittel im Sinne der vorliegenden Erfindung kann hard- und/oder softwaretechnisch ausgebildet sein, insbesondere eine, vorzugsweise mit einem Speicher- und/oder Bussystem daten- bzw. signalverbundene, insbesondere digitale, Verarbeitungs-, insbesondere Mikroprozessoreinheit (CPU), Graphikkarte (GPU) oder dergleichen, und/oder ein oder mehrere Programme oder Programmmodule aufweisen. Die Verarbeitungseinheit kann dazu ausgebildet sein, Befehle, die als ein in einem Speichersystem abgelegtes Programm implementiert sind, abzuarbeiten, Eingangssignale von einem Datenbus zu erfassen und/oder Ausgangssignale an einen Datenbus abzugeben. Ein Speichersystem kann ein oder mehrere, insbesondere verschiedene, Speichermedien, insbesondere optische, magnetische, Festkörper- und/oder andere nicht-flüchtige Medien aufweisen. Das Programm kann derart beschaffen sein, dass es die hier beschriebenen Verfahren verkörpert bzw. auszuführen imstande ist, sodass die Verarbeitungseinheit die Schritte solcher Verfahren ausführen kann und damit insbesondere den Roboter steuern kann. Ein Computerprogrammprodukt kann in einer Ausführung ein, insbesondere nichtflüchtiges, Speichermedium zum Speichern eines Programms bzw. mit einem darauf gespeicherten Programm aufweisen, insbesondere sein, wobei ein Ausführen dieses Programms ein System bzw. eine Steuerung, insbesondere einen Computer, dazu veranlasst, ein hier beschriebenes Verfahren bzw. einen oder mehrere seiner Schritte auszuführen.
-
In einer Ausführung werden ein oder mehrere, insbesondere alle, Schritte des Verfahrens vollständig oder teilweise automatisiert durchgeführt, insbesondere durch das System bzw. sein(e) Mittel.
-
In einer Ausführung weist das System den Roboter auf.
-
In einer Ausführung führt der Roboter in dem ersten Betriebsmodus die erste Aufgabe unter Berücksichtigung bzw. Einhaltung der ersten virtuellen Einschränkung und/oder in dem zweiten Betriebsmodus die - gegebenenfalls zu der zweiten Aufgabe modifizierte erste - Aufgabe unter Berücksichtigung bzw. Einhaltung der - gegebenenfalls zu der zweiten Einschränkung modifizierten ersten - virtuellen Einschränkung durch bzw. ist hierzu eingerichtet bzw. wird hierzu verwendet bzw. entsprechend gesteuert.
-
Beispielsweise kann eine Soll-Antriebskraft Γ gemäß
mit der (Aufgaben)Kraft f
T zum Durchführen der Aufgabe und der (Einschränkungs)Kraft f
C zur Berücksichtigung bzw. Einhaltung der Einschränkung ermittelt werden, welche beispielsweise durch entsprechende Regelungen, zum Beispiel P-, PD- oder PID-Regelungen ermittelt werden können (vgl. Gleichung (2), (3)).
-
Eine Kraft im Sinne der vorliegenden Erfindung kann in einer Ausführung ein- oder mehrdimensional sein bzw. eine oder mehrere Komponenten, insbesondere Komponenten in verschiedenen Freiheitsgraden, Raumrichtungen bzw. Achsen, aufweisen und/oder auch ein oder mehrere antiparallele Kräftepaare bzw. Drehmomente aufweisen. Mit anderen Worten werden vorliegend insbesondere auch ein Drehmoment sowie Drehmomente und Kräfte in mehreren Freiheitsgraden, Raumrichtungen bzw. Achsen zur kompakteren Darstellung verallgemeinernd als eine Kraft im Sinne der vorliegenden Erfindung bezeichnet.
-
Der erste und zweite Aspekt sind in einer Ausführung vorteilhafterweise kombiniert.
-
Hierdurch kann in einer Ausführung ein (potentieller bzw. bevorstehender) Konflikt zwischen Aufgabe und Einschränkung besonders vorteilhaft aufgelöst bzw. vermieden werden.
-
Gleichermaßen kann auch nur der erste Aspekt oder nur der zweite Aspekt realisiert sein, insbesondere auf eine Detektion eines (potentiellen bzw. bevorstehenden) Konflikts gemäß des ersten Aspekts in einen anderen zweiten Betriebsmodus umgeschaltet werden, in dem beispielsweise gleich bzw. ohne Modifikation der ersten Aufgabe und/oder Einschränkung der Roboter stillgesetzt und/oder eine Fehlermeldung ausgegeben wird, bzw. der zweite Betriebsmodus gemäß des zweiten Aspekts durchgeführt werden, falls ein (potentieller bzw. bevorstehender) Konflikt auf andere Weise detektiert wird bzw. worden ist, beispielsweise aufgrund eines ermittelten Rangabfalls der Matrix JT·(1 - JC #·JC)·JC # für den ersten Betriebsmodus.
-
Weitere Vorteile und Merkmale ergeben sich aus den Unteransprüchen und den Ausführungsbeispielen. Hierzu zeigt, teilweise schematisiert:
- 1: einen Roboter zum Durchführen einer Aufgabe nach einer Ausführung der vorliegenden Erfindung; und
- 2: ein Verfahren zum Durchführen der Aufgabe durch den Roboter nach einer Ausführung der vorliegenden Erfindung.
-
1 zeigt ein System zum Durchführen einer Aufgabe durch einen Roboter 10 nach einer Ausführung der vorliegenden Erfindung mit einer Steuerung 20 zum Steuern des Roboters 10.
-
Der Roboter ist ein siebenachsiger Roboterarm 10, dessen Achs- bzw. Gelenkkoordinaten bzw. -stellungen in 1 durch q = [q1,...,q7]T angedeutet sind. Die Pose x seines TCPs bzw. seines Endeffektors 11 ist durch dessen Position [x, y, z]T und Orientierung [α, β, γ]T angedeutet (x = [x, y, z, α, β, γ]T).
-
In einem Schritt S10 wird ein erster Betriebsmodus durchgeführt, in dem der Roboter(arm) 10 eine erste Aufgabe unter Berücksichtigung einer ersten virtuellen Einschränkung durchführt, beispielsweise mit seinem TCP bzw. Endeffektor eine vorgegebene Pose an- bzw. Bahn abfährt und dabei seinen Ellbogen an einer vorgegebenen Position hält.
-
In dem ersten Betriebsmodus wird auf einen potentiellen Konflikt zwischen dieser ersten Aufgabe und ersten Einschränkung überwacht, indem für geplante bzw. bevorstehende Soll-Posen des TCPs bzw. Endeffektors und entsprechende Soll-Achs- bzw. Gelenkkoordinaten bzw. -stellungen jeweils gemäß der obigen Gleichungen der minimale Singulärwert σmin der Matrix JT·(1 - JC #·JC)·JC # ermittelt wird.
-
Unterschreitet dieser einen vorgegebenen Grenzwert Θ (S20: „Y“), fährt das Verfahren bzw. die Steuerung 20 mit Schritt S30 fort, andernfalls (S20: „N“) mit Schritt S10 bzw. dem ersten Betriebsmodus.
-
In Schritt S30 wird ein zweiter Betriebsmodus durchgeführt, in dem die erste Aufgabe und/oder Einschränkung modifiziert ist bzw. wird, indem auf eine zweite Aufgabe bzw. Einschränkung umgeschaltet ist bzw. wird. Beispielsweise wird anstelle der vorgegebenen Position des Ellbogens nur noch eine vorgegebene Höhe des Ellbogens und/oder anstelle einer sechsdimensionalen Soll-Pose des TCPs bzw. Endeffektors nur noch eine dreidimensionale, zum Beispiel nur eine kartesische Position, vorgegeben.
-
Hierdurch ist die Dimension des von der Matrix (1 - JC #·JC)·JC # im zweiten Betriebsmodus aufgespannten Raums gegenüber der Dimension des von der Matrix (1 - JC #·JC)·JC # im ersten Betriebsmodus aufgespannten Raums vergrößert bzw. die Dimension des von der Jacobimatrix JT der Aufgabe im zweiten Betriebsmodus aufgespannten Raums gegenüber der Dimension des von der Jacobimatrix JT der Aufgabe im ersten Betriebsmodus aufgespannten Raums reduziert.
-
In Schritt S40 wird auf einen potentiellen Konflikt zwischen der gegebenenfalls zur zweiten Aufgabe modifizierten ersten Aufgabe und der gegebenenfalls zur zweiten Einschränkung modifizierten ersten Einschränkung überwacht, indem für geplante bzw. bevorstehende Soll-Posen des TCPs bzw. Endeffektors und entsprechende Soll-Achs- bzw. Gelenkkoordinaten bzw. -stellungen jeweils gemäß der obigen Gleichungen der minimale Singulärwert σmin der Matrix JT·(1 - JC #·JC)·JC # mit den entsprechenden Jacobimatrizen ermittelt und geprüft wird, ob auch dieser (noch) den Grenzwert Θ unterschreitet.
-
Ist dies der Fall, d.h. kann auch die gegebenenfalls gelockerte bzw. weniger strikte Aufgabe unter Berücksichtigung der gegebenenfalls gelockerten bzw. weniger strikten Einschränkung nicht durchgeführt werden (S40: „Y“), fährt das Verfahren bzw. die Steuerung 20 mit Schritt S50 fort, in dem der Roboter 10 stillgesetzt und eine Fehlermeldung ausgegeben wird.
-
Andernfalls (S40: „N“) kehrt das Verfahren bzw. die Steuerung 20 zu Schritt S20 zurück.
-
Sobald der minimale Singulärwert σmin der Matrix JT·(1 - JC #·JC)·JC # mit den Jacobimatrizen für den ersten Betriebsmodus, der im zweiten Betriebsmodus weiter mit überwacht wird, den Grenzwert Θ nicht mehr unterschreitet (S20: „N“), schaltet das Verfahren bzw. die Steuerung 20 wieder in den ersten Betriebsmodus um, andernfalls (S20: „Y“) fährt es mit dem zweiten Betriebsmodus fort.
-
Obwohl in der vorhergehenden Beschreibung exemplarische Ausführungen erläutert wurden, sei darauf hingewiesen, dass eine Vielzahl von Abwandlungen möglich ist. Außerdem sei darauf hingewiesen, dass es sich bei den exemplarischen Ausführungen lediglich um Beispiele handelt, die den Schutzbereich, die Anwendungen und den Aufbau in keiner Weise einschränken sollen. Vielmehr wird dem Fachmann durch die vorausgehende Beschreibung ein Leitfaden für die Umsetzung von mindestens einer exemplarischen Ausführung gegeben, wobei diverse Änderungen, insbesondere in Hinblick auf die Funktion und Anordnung der beschriebenen Bestandteile, vorgenommen werden können, ohne den Schutzbereich zu verlassen, wie er sich aus den Ansprüchen und diesen äquivalenten Merkmalskombinationen ergibt.
-
Bezugszeichenliste
-
- 10
- Roboter(arm)
- 11
- Endeffektor
- 20
- Robotersteuerung
- q1,... q7
- Achskoordinate
- x, y, z
- kartesische Position TCP/Endeffektor
- α, β, γ
- Orientierung TCP/Endeffektor