-
Die vorliegende Erfindung betrifft ein Verfahren zur Posenüberwachung eines Manipulators sowie eine Vorrichtung zur Durchführung eines solchen Verfahrens.
-
Ein Manipulator weist allgemein mehrere Glieder auf, die über translatorische und/oder rotatorische Gelenke miteinander verbunden und um die sogenannten Bewegungsachsen des Manipulators gegeneinander bewegbar sind. Die Bewegung des Manipulators kann durch Bedienpersonal gesteuert oder programmiert werden - in diesem Fall arbeitet der Manipulator als Roboter.
-
Sowohl im durch Bedienpersonal gesteuerten Betrieb als auch beim Abarbeiten eines Programms besteht die Gefahr einer Kollision eines Gliedes des Manipulators mit einem Hindernis. Solche Hindernisse können bereits vorab bekannt und temporär oder stationär in einem Arbeitsraum des Manipulators vorhanden sein. So bilden beispielsweise feststehende Ablagetische stationäre, an- und abtransportierte Werkstücke temporäre Hindernisse für einen Roboter in einer Fertigungszelle. Hindernisse können gleichermaßen unvorhergesehen auftauchen, wenn beispielsweise ein Mensch in den Arbeitsraum eintritt und von einer Arbeitsraumüberwachung als bewegtes Hindernis erkannt wird.
-
Um eine Kollision des Manipulators mit einem Hindernis zu vermeiden, ist es bekannt, zulässige Bereiche zu definieren, in denen der Manipulator sich bewegen darf. Beispielsweise können die Lagen und Orientierungen vorgegeben werden, die ein Endeffektor oder andere ausgezeichnete Punkte an den mechanischen Bauteilen im Arbeitsraum einnehmen dürfen, ohne mit einem Hindernis zu kollidieren.
-
Hierzu schlägt die
EP 1 267 234 B1 vor, Lage-Istwerte der Gelenke eines Handhabungsgerätes in eine Ist-Position eines Punktes im kartesischen Raum zu transformieren und dort zu prüfen, ob diese Ist-Position sich in einem zulässigen Bereich befindet. Zusätzlich wird überwacht, ob einzelne Gelenke sich innerhalb durch elektronische Anschläge (sogenannte elektronische Nocken) begrenzter Bereiche befinden.
-
Ein Manipulator füllt je nach Pose unterschiedliche Bereich des Arbeitsraumes selber aus. Um eine Selbstkollision des Manipulators mit sich selbst, i.e. eine Kollision eines Gliedes des Manipulators mit einem anderen Glied, einem Anbau oder dergleichen, nach dem oben erläuterten bekannten Verfahren sicher zu vermeiden, müsste daher nachteilig der zulässige Bereich um denjenigen Raum vermindert werden, den der Manipulator selbst in beliebigen Posen einnimmt. Dies würde den zulässigen Arbeitsraumbereich unnötig einschränken. Auch durch die voneinander unabhängigen elektronischen Anschläge kann der selbstkollisionsfreie Arbeitsraum des Manipulators nachteilig nicht voll ausgenutzt werden. Dies zeigt, dass die Posenüberwachung im kartesischen Raum zur Vermeidung von Selbstkollisionen wenig geeignet ist.
-
Die
WO 2007/093413 A1 betrifft einen Roboter mit wenigstens zwei Bewegungsfreiheitsgraden und einer Steuereinheit zum Steuern einer Bewegung zwischen einer Anfangspose und einer Endpose, wobei ein Bewegungspfad zwischen der Anfangs- und der Endpose generiert wird. Ziel ist es, eine ungewollte Kollision des Roboters mit Gegenständen in dessen Umgebung zu verhindern. Dazu wird vorgeschlagen, die Steuereinheit mit einer Landkarte auszustatten, in der zumindest eine Störkontur verzeichnet ist.
-
Die
US 5 347 459 A betrifft ein Verfahren zur Kollisionsdetektion zwischen einem Roboter und seiner Umgebung. Ziel ist es, eine Kollision mit hoher zeitlicher Dynamik erfassen zu können. Dazu wird vorgeschlagen, den Roboter in einem durch Voxel aufgeteilten Arbeitsraum zu modellieren. Der Roboter wird innerhalb dieses Arbeitsraums durch eine Mehrzahl von Sphären modelliert.
-
Die
DE 196 25 637 A1 betrifft eine Kollisionsvermeidung und Trajektorienplanung bei einem Mehrroboterbetrieb mithilfe von Kollisionsbereichen. Es wird vorgeschlagen, Kollisionsgefahren anhand der Übereinstimmung kollisionsgefährdeter Konfigurationen mit aktuellen Konfigurationen zu erkennen.
-
Die
US 6 044 308 A betrifft ein Verfahren zur Kalibration eines Roboters. Es wird vorgeschlagen, die feste Referenzposition durch einen Marker mehreren Merkmalen festzulegen. Der Roboter misst sich über einen Sensor, welcher am TCP des Roboters befestigt ist, an der Referenzposition ein.
-
Die
US 2004/0254677 A1 betrifft ein Verfahren zur Feinabstimmung eines Roboterprogramms. Das Verfahren umfasst vorprogrammierte Posen und vorprogrammierte Relationen zwischen dem Werkzeug des Roboters und dem Werkstück. Dadurch soll die Genauigkeit der Bearbeitung des Werkstücks erhöht werden.
-
Aufgabe der vorliegenden Erfindung ist es daher, eine verbesserte Posenüberwachung eines Manipulators zur Verfügung zu stellen.
-
Diese Aufgabe wird durch die Merkmale des Anspruchs 1 gelöst. Anspruch 13 stellt eine Vorrichtung, Anspruch 14 bzw. 15 ein Computerprogramm bzw. ein Computerprogrammprodukt zur Durchführung eines Verfahrens nach Anspruch 1 unter Schutz. Die Unteransprüche betreffen vorteilhafte Weiterbildungen.
-
Als Arbeitsraum wird der kartesische Raum bezeichnet, der von Gliedern des Manipulators ausgefüllt bzw. von einem Endeffektor des Manipulator erreicht werden kann. Eine zulässige bzw. zu prüfende Pose im Arbeitsraum kann daher eine Lage, beschrieben beispielsweise durch kartesische, Zylinder- oder Polarkoordinaten in einem inertialfesten Koordinatensystem, und/oder eine Orientierung, beschrieben beispielsweise durch Euler- oder Kardanwinkel eines manipulatorfesten Referenzgegen das inertialfeste Koordinatensystem, eines oder mehrerer Glieder des Manipulators umfassen. So kann eine Pose eines nicht redundanten Manipulators beispielsweise durch drei kartesische Lagekoordinaten x, y, z und drei Orientierungswinkel α, β, γ eines endeffektorfesten Referenzkoordinatensystems relativ zu einem Inertialsystem beschrieben werden. Gleichermaßen kann eine Pose im Arbeitsraum beispielsweise durch Denavit-Hartenberg-Parameter, Quaternionen oder dergleichen beschrieben werden.
-
Eine Pose des Manipulators im kartesischen Raum wird durch die Stellung der einzelnen Gelenke des Manipulators, beispielsweise die Winkellagen seiner Drehgelenke oder der diese aktuierenden Motoren bei einem Knickarmroboter oder die Verstellwege der Schubgelenke bei einem Portalroboter, eindeutig bestimmt Ein Vektor mit den Stellungen der Gelenke bildet somit den Manipulator beschreibende Gelenkkoordinaten, die Menge aller Vektoren den Koordinatenraum. Bei bekannter Geometrie des Manipulators kann ein Vektor des Koordinatenraum mittels Vorwärtskinematik eindeutig in eine Pose des Manipulators transformiert, bei nichtredundanten Manipulatoren eine nicht-singuläre Pose im Arbeitsraum umgekehrt durch Rückwärtskinematik in einen Vektor im Koordinatenraum transformiert werden. Bei redundanten Manipulatoren und/oder singulären Posen ist dies durch die Vorgabe zusätzlicher Nebenbedingungen, etwa einer minimalen Abweichung von einer vorhergehenden Pose, ebenfalls möglich.
-
Nach einem erfindungsgemäßen Verfahren zur Posenüberwachung eines Manipulators, insbesondere eines Roboters, werden nun zulässige Posen des Manipulators in seinem Arbeitsraum bestimmt, diese zulässigen Posen in zulässige Bereiche im Koordinatenraum des Manipulators transformiert, geprüft, ob in einer zu prüfenden Pose wenigstens eine Gelenkkoordinate des Manipulators außerhalb dieser zulässigen Bereiche liegt, und eine Meldung ausgegeben, die angibt, ob wenigstens eine Gelenkkoordinate des Manipulators außerhalb der zulässigen Bereiche liegt. Auf eine solche Meldung kann dann entsprechend reagiert, beispielsweise der Manipulator stillgesetzt oder zurückgefahren, eine optische und/oder akustische Warnung ausgegeben oder eine Bahnplanung angepasst werden, wenn wenigstens eine Gelenkkoordinate des Manipulators außerhalb der zulässigen Bereiche liegt.
-
Dabei versteht es sich, dass statt des Einnehmens zulässiger Posen bzw. des Austretens aus zulässigen Bereichen gleichermaßen das Einnehmen unzulässiger Posen bzw. das Eintreten in unzulässige Bereiche geprüft werden kann, da vorzugsweise zulässige und unzulässige Posen bzw. Bereiche einander komplementär ergänzen können.
-
Da jeder Vektor im Koordinatenraum eindeutig auf eine Pose des Manipulators abbildbar und für diese Pose wiederum eindeutig bestimmbar ist, ob Selbstkollision vorliegt, kann die Menge aller Posen, in denen eine bzw. keine Selbstkollision vorliegt, im Koordinatenraum jeweils eindeutig bestimmt werden. Daher kann vorteilhaft im Koordinatenraum ein zulässiger Bereich, der Selbstkollision ausschließt, vorteilhaft so groß wie möglich bestimmt werden, was den zulässigen Arbeitsraum des Manipulators vorteilhaft vergrößert In einer bevorzugten Ausführung der vorliegenden Erfindung sind die zulässigen Bereiche im Koordinatenraum daher so bestimmt, dass der Manipulator in den zugehörigen Posen nicht mit sich selber kollidiert.
-
Für eine Pose im Arbeitsraum kann auch eindeutig bestimmt werden, ob der Manipulator mit seiner Umgebung kollidiert Daher kann auch die Menge aller Posen, in denen keine Kollision des Manipulators mit seiner Umgebung vorliegt im Koordinatenraum eindeutig bestimmt werden. In einer bevorzugten Ausführung der vorliegenden Erfindung sind die zulässigen Bereiche im Koordinatenraum daher so bestimmt, dass der Manipulator in den zugehörigen Posen nicht mit seiner Umgebung im Arbeitsraum kollidiert.
-
Beide vorstehenden Ausführungen können miteinander kombiniert sein, so dass die Einhaltung zulässiger Bereiche im Koordinatenraum sicherstellt, dass der Manipulator in den zugehörigen Posen weder mit sich selbst noch mit seiner Umgebung kollidiert.
-
Zulässige Bereiche im Koordinatenraum des Manipulators können Stellungen von einem oder mehreren Gelenken des Manipulators umfassen und beispielsweise durch affin lineare Ungleichungen der Form
beschrieben werden, wobei b
0, b
i (i=1,...,Anzahl der Gelenke) vorbestimmte Koeffizienten und a
i (i=1,...,Anzahl der Gelenke) die Gelenkkoordinate, i.e. die Stellung, des Gelenkes i des Manipulators bezeichnet. Die Koeffizienten b
0, b
i können auf einfache Weise vom Benutzer eingegeben werden. Durch solche Ungleichungen im Koordinatenraum, die einfach in einer Steuerung oder Bahnplanung implementierbar sind, kann numerisch sehr rasch überprüft werden, ob eine oder mehrerer Gelenkkoordinaten des Manipulators außerhalb der zulässigen Bereiche liegt. Vorteilhaft können zugleich Endnocken der einzelnen Gelenke, die deren beispielsweise konstruktiv bedingten maximalen Verstellweg vorgeben, elektronisch mit abgebildet werden, indem für b
0 die zulässige Endstellung, für b
i des entsprechenden i-ten Gelenkes b
i = ±1 und für alle anderen Gelenke j b
j≠i = 0 in Gleichung (1) eingesetzt wird. Zur Beschreibung zulässiger Bereiche, die eine Selbstkollision ausschließen, werden in der Regel wenigstens zwei Koeffizienten b
i, b
j ungleich Null gewählt, um der Kinematik des Manipulators Rechnung zu tragen.
-
Insbesondere, wenn im Koordinatenraum auch eine Kollision mit der Umgebung überprüft werden soll, werden in einer bevorzugten Ausführung der vorliegenden Erfindung zulässige Posen im Arbeitsraum des Manipulators in den Koordinatenraum des Manipulators transformiert, indem der Koordinatenraum in Voxel diskretisiert wird.
-
Die Diskretisierung kann im Koordinatenraum äquidistant und somit besonders einfach erfolgen. Äquidistante Voxel im Koordinatenraum werden im Allgemeinen auf komplexere Voxel im Arbeitsraum abgebildet, die in der Regel nicht mehr äquidistant sind. Daher kann alternativ der Koordinatenraum auch in Voxel diskretisiert werden, indem der Arbeitsraum äquidistant oder auf sonstige Weise der jeweiligen Umgebung angepasst diskretisiert und dies unter Lösung der Rückwärtskinematik in den Koordinatenraum abgebildet wird. Auch Mischformen hiervon, etwa zunächst eine äquidistante Diskretisierung im Koordinatenraum und eine anschließende Anpassung, beispielsweise eine lokal feinere Diskretisierung, sind möglich.
-
Anschließend wird jedem Voxel im Koordinatenraum ein Kennzeichner zugeordnet. Ein solcher Kennzeichner kann bevorzugt binär sein und zwei zueinander komplementäre Kennzeichnerwerte, etwa „0“ und „1“ oder „true“ und „false“ annehmen.
-
Nun wird für jedes Voxel im Koordinatenraum seinem Kennzeichner ein erster Kennzeichnerwert zugewiesen, wenn diesem Voxel zugeordnete Posen im Arbeitsraum zulässige Posen sind, und ein zweiter Kennzeichnerwert zugewiesen, wenn diesem Voxel zugeordnete Posen im Arbeitsraum keine zulässigen Posen sind.
-
Hierzu kann beispielsweise jedes Voxel im Koordinatenraum unter Lösung der Vorwärtskinematik in den Arbeitsraum transformiert werden. D.h., eine oder mehrere Koordinatenvektoren aus diesem Voxel, beispielsweise Koordinatenvektoren an den Rändern des Voxels und/oder der Koordinatenvektor im Mittelpunkt des Voxels werden auf die entsprechende Pose im Arbeitsraum abgebildet. Ist wenigstens eine dieser entsprechenden Posen im Arbeitsraum eine unzulässige Pose des Manipulators, so wird diesem Voxel im Koordinatenraum der zweite Kennzeichnerwert zugewiesen. Andernfalls wird der erste, vorzugsweise komplementäre Kennzeichnerwert zugewiesen, so dass vorteilhaft die Kennzeichner beispielsweise zunächst alle mit dem ersten Kennzeichnerwert vorbelegt und nur dann geändert werden, wenn wenigstens eine diesem Voxel zugeordnete Pose im Arbeitsraum keine zulässige Pose ist. Natürlich können auch umgekehrt die Kennzeichner beispielsweise zunächst alle mit dem zweiten Kennzeichnerwert vorbelegt und nur dann geändert werden, wenn alle diesem Voxel zugeordneten überprüften Pose im Arbeitsraum zulässige Posen sind. Auf diese Weise kann sichergestellt werden, dass kein Voxel fehlerhaft als zulässig abgelegt wird. Hierzu können vorteilhaft auch die Ableitungen abgeschätzt werden.
-
Vorteilhaft können zulässige Posen im Arbeitsraum durch binäre Testfunktionen definiert sein, die den ersten Kennzeichnerwert annehmen, wenn die Pose zulässig ist, und den zweiten Kennzeichnerwert annehmen, wenn die Pose unzulässig ist.
-
Diese Schritte brauchen vorteilhaft nur einmalig vorab durchgeführt, die zugehörigen Kennzeichnerwerte können dann beispielsweise in Tabellenform abgespeichert werden.
-
Für jede zu prüfende Pose muss dann nur noch geprüft werden, ob das Voxel, in dem die der zu prüfenden Pose des Manipulators im Arbeitsraum zugeordneten Gelenkkoordinaten liegen, mit dem ersten oder dem zweiten Kennzeichnerwert belegt ist. Soll also beispielsweise eine bestimmte Pose angefahren werden, müssen zur Regelung der den Manipulator aktuierenden Antriebe die entsprechenden Gelenkkoordinaten vorgegeben werden. Nun kann einfach geprüft werden, ob das Voxel, in dem diese Gelenkkoordinaten liegen, mit dem ersten oder zweiten Kennzeichnerwert belegt ist. Ist es mit dem zweiten Kennzeichnerwert belegt, darf die Pose nicht angefahren werden.
-
Häufig sind Gelenkkoordinatengeschwindigkeiten, beispielsweise Drehzahlen von Gelenke aktuierenden Elektromotoren, oder höhere Zeitableitungen begrenzt. Die erfindungsgemäß vorgeschlagene Prüfung im Koordinatenraum ist hier besonders zweckmäßig, da hier die zu überwachenden Geschwindigkeiten, Beschleunigungen, Rucke oder noch höheren Zeitableitungen - gegebenenfalls nach entsprechender ein- bzw. mehrfacher Zeitdifferentiation der Gelenkkoordinaten, Multiplikation mit Übersetzungen von Getrieben oder dergleichen - direkt vorliegen und einfach mit Maximalwerten verglichen werden können. In einer bevorzugten Ausführung der vorliegenden Erfindung werden daher zusätzlich zulässige Geschwindigkeits-, Beschleunigungs-, Ruck- oder allgemein Zeitableitungsbereiche im Geschwindigkeits-, Beschleunigungs-, Ruck- bzw. allgemein Zeitableitungskoordinatenraum des Manipulators bestimmt. Der Zeitableitungskoordinatenraum ergibt sich analog zum Koordinatenraum aus der Menge der ein- oder mehrfachen Zeitableitungen aller Gelenkkoordinaten. Anschließend wird geprüft, ob wenigstens eine Gelenkkoordinatenableitung des Manipulators außerhalb dieser zulässigen Zeitableitungsbereiche liegt, und eine Meldung ausgegeben, die angibt, ob wenigstens eine Gelehkkoordinatenableitung des Manipulators außerhalb der zulässigen Zeitableitungsbereiche liegt Hierauf kann beispielsweise durch Abbremsen oder Stillsetzen des Manipulators oder dergleichen reagiert werden. Nachfolgend wird zur Vereinfachung auf Geschwindigkeiten als Beispiel für Zeitableitungen Bezug genommen. Die vorliegende Erfindung ist hierauf jedoch nicht beschränkt - vielmehr kann der Begriff „Geschwindigkeit“ zusätzlich oder alternativ durch den Begriff „Beschleunigung“, „Ruck“ oder allgemein „k-te Ableitung nach der Zeit“ ersetzt gedacht werden.
-
Ist beispielsweise die Gelenkwinkelgeschwindigkeit eines Gelenkes durch einen Maximalwert begrenzt, wird von dem einem bestimmten Zeitpunkt zugeordneten, zu prüfenden Vektor der Gelenkkoordinaten im Koordinatenraum der einem früheren Zeitpunkt zugeordnete Vektor subtrahiert und dieser Differenzvektor durch den Zeitraum zwischen dem bestimmtem und dem früheren Zeitpunkt dividiert, so dass sich komponentenweise die Gelenkkoordinatengeschwindigkeiten ergeben. Analog zur vorstehend beschriebenen Prüfung der Gelenkkoordinaten kann nun - beispielsweise auf Basis linearer Ungleichungen oder einer Diskretisierung des Geschwindigkeitskoordinatenraums - geprüft werden, ob wenigstens eine dieser Gelenkkoordinatengeschwindigkeiten außerhalb der zulässigen Geschwindigkeitsbereiche liegt, also beispielsweise die Gelenkwinkelgeschwindigkeit des Gelenkes den Maximalwert überschreitet.
-
Auch im Arbeitsraum können zulässige Geschwindigkeiten vorgegeben sein. So kann beispielsweise das Abfahren einer Schweiß- oder Lackierbahn einen bestimmten Geschwindigkeitsverlauf des Endeffektors im Arbeitsraum erfordern. In einer bevorzugten Ausführung der vorliegenden Erfindung werden diese zulässigen Geschwindigkeiten im Arbeitsraum in zulässige Geschwindigkeitsbereiche im Geschwindigkeitskoordinatenraum des Manipulators transformiert.
-
Auch können Geschwindigkeitsgrenzen vorteilhaft von einem, beispielsweise geschätzten, Bremsweg abhängen, so dass eine Meldung bzw. eine Stopreaktion schon so rechtzeitig ausgelöst wird, dass der Manipulator vor und nicht erst bei Erreichen des zu schützenden Bereichs ausgegeben wird.
-
Durch die Prüfung zulässiger Geschwindigkeitsbereiche im Geschwindigkeitskoordinatenraum des Manipulators können vorteilhafterweise insbesondere in der Nähe singulärer Posen unzulässig hohe Gelenkgeschwindigkeiten vermieden werden.
-
Umgekehrt können unter Anwendung der Vorwärtskinematik ermittelte Gelenkgeschwindigkeiten in den Arbeitsraum transformiert und mit den dort vorgegebenen zulässigen Geschwindigkeiten verglichen werden.
-
Das vorstehend für Positionen beschriebene Verfahren kann entsprechend auch Kräfte bzw. Momente im Arbeits- und Koordinatenraum angewendet werden.
-
Weitere Vorteile und Merkmale ergeben sich aus den Unteransprüchen und den Ausführungsbeispielen. Hierzu zeigt, teilweise schematisiert:
- 1: einen Roboter mit Arbeitsraum;
- 2: einen diskretisierten Unterraum eines zugehörigen Koordinatenraums; und
- 3: den Ablauf eines Verfahrens nach einer Ausführung der vorliegenden Erfindung.
-
1 zeigt schematisch einen dreiachsigen Knickarmroboter 1 mit einem gegen seine Umgebung um eine Hochachse (rechts in 1) drehbaren Karussell 1.1 der Breite und Höhe 2L, einem daran um eine zur Hochachse normale Querachse drehbaren Oberarm 1.2 der Länge L und einem daran um eine hierzu parallele Querachse drehbaren Unterarm 1.3 der Länge L. Jedes Drehgelenk wird durch einen Elektromotor (nicht dargestellt) aktuiert, seine Winkellage ai (i = 1, 2, 3) von einem Drehencoder (nicht dargestellt) erfasst. Diese Winkellagen der drei Drehgelenke bilden zusammen einen Vektor a = (a1, a2, a3), wobei die Menge aller Winkellagen den Koordinatenraum A = {a} definiert. Dabei ist der Drehwinkel a2 mathematisch positiv gegen die Horizontale, der Drehwinkel a3 mathematisch positiv gegen die Längsachse des Oberarmes gemessen, wie in 1 angedeutet, in der der Roboter 1 die Gelenkkoordinaten a1 = 0°, a2 = a3 = 30° aufweist.
-
Jedem Vektor a im Koordinatenraum A entspricht genau eine Pose x des Roboters
1 im kartesischen Raum, der in
1 dargestellt ist. Insbesondere wird durch die Vorwärtskinematik F(a) jeder Gelenkstellung (
a1,
a2,
a3) eine Lage (x, y, z) und eine Orientierung (α, β, γ) seines Tool Center Points
TCP am Ende des Unterarmes
1.3 zugeordnet, wobei (x, y, z) die Lage des Ursprungs des
TCP-Koordihatensystems in kartesischen Koordinaten und (α, β, y) die Orientierung dieses Koordinatensystems in Euler-Winkeln relativ zu einem inertialfesten Koordinatensystem beschreiben. Diese sechs Größen bilden zusammen eine Pose x = (x, y, z, α, β, γ) des Roboters
1, die Menge aller vom Roboter
1 theoretisch einnehmbaren Posen den Arbeitsraum
X = {x} so dass gilt:
-
In nicht-singulären Posen kann hierzu die Rückwärtskinematik
gelöst werden.
-
Um nun gleichermaßen
- (i) eine Kollision des Oberarmes 1.2 mit der oberen Fläche des Karussells 1.1;
- (ii) eine Kollision des Oberarmes 1.2 mit der Seitenfläche des Karussells 1.1, an der der Oberarm drehbar befestigt ist (rechts in 1);
- (iii) eine Kollision des Unterarmes 1.3 mit der oberen Fläche des Karussells 1.1; und
- (iv) eine Kollision des Unterarmes 1.3 mit der Seitenfläche des Karussells 1.1, an der der Oberarm drehbar befestigt ist
zu vermeiden, muss im Koordinatenraum gelten:
und
-
Beispielsweise bilden die obere Fläche des Karussells 1.1, der Ober- und der Unterarm 1.2, 1.3 bei einem Oberarmwinkel a2 = 120° und einem Unterarmwinkel a3 = 120° ein gleichseitiges Dreieck der Kantenlänge L und erfüllen gerade noch Ungleichung (III). Nimmt der Unterarmwinkel a3 noch weiter zu, dringt der TCP in die obere Fläche des Karussells 1.1 ein.
-
Die Gleichungen (I) bis (IV) stellen lineare Ungleichungen der Form (1) dar und können durch einen Benutzer sehr einfach beispielsweise in eine Steuerung des Roboters 1 eingegeben werden. Sie begrenzen einen in 2 durch ausgezogene Linien angedeuteten zulässigen Bereich Az im Koordinatenraum, in dem keine Selbstkollision vorliegt. Wie dabei insbesondere aus den affinen linearen Ungleichungen (III), (IV) hervorgeht, sind wenigstens einige Ungleichungen von mehr als einer Gelenkkoordinate abhängig, um der Kinematik des Manipulators Rechnung zu tragen.
-
Wie sich im Ausführungsbeispiel zeigt, kann eine Selbstkollision des Roboters 1 eindeutig und sehr einfach im Koordinatenraum A geprüft werden. Sollen nun, beispielsweise während einer Bahnplanung oder durch Steuerbefehle eines Benutzers, bestimmte Gelenkwinkel (a1, a2, a3) angefahren werden, kann für diese Soll-Position im Koordinatenraum anhand der Gleichungen (I) bis (IV) rasch und effizient geprüft werden, ob die Soll-Position im zulässigen Bereich Az oder dem hierzu komplementären unzulässigen Bereich Au = A\Az liegt und entsprechend zu einer Selbstkollision des Ober- oder Unterarmes 1.2 bzw. 1.3 mit dem Karussell 1.1 führen würde. Wie sich im Ausführungsbeispiel auch zeigt, ist dies unabhängig vom Winkel a1 des Karussells 1.1 um die Hochachse.
-
Eine entsprechende Darstellung im Arbeitsraum ist nicht möglich. Vielmehr müsste hierzu in dem aus der
EP 1 267 234 B1 bekannten Verfahren entweder der Bereich des Oberarmwinkels
a2 durch elektronische Nocken auf den Bereich [0°, 90°] begrenzt oder der vom Karussell
1.1 während einer vollen Drehung -180° ≤ a1 ≤ 180° eingenommene Arbeitsraum als unzulässig definiert und durch in der
EP 1 267 234 B1 als kartesische Nocken bezeichneten Beschränkungen des Arbeitsraumes ausgeschlossen werden. Beides würde den zulässigen Arbeitsraum unnötig einschränken.
-
Durch das erfindungsgemäße Verfahren können jedoch auch Kollisionen mit Hindernissen im Arbeitsraum verhindert werden. Vereinfachend sein dies am Beispiel eines Arbeitstisches verdeutlicht, dessen Außenkontur mit dem Karussell 1.1 übereinstimmt, wenn dieses sich in der in 1 dargestellten, um die Hochachse unverdrehten Lage a1 = 0° befindet.
-
Hierzu wird einmalig vorab zunächst der gesamte Koordinatenraum A äquidistant in Winkelbereiche von ±30° diskretisiert.
-
2 zeigt die a2-a3-Ebene für a1 = 0°, i.e. die in 1 gezeigte Position des Karussells 1.1. In 1, 2 sind gestrichelt die Linien für konstante Oberarmwinkel a2, strichpunktiert die Linien für konstante Unterarmwinkel a3 eingezeichnet. Erkennbar werden die quaderförmigen Voxel (a1 = u × ±30°, a2 = v × ±30°, a3 = w × ±30°) mit u, v, w e {0, 1, 2, ...} in komplexe Bereiche im Arbeitsraum X abgebildet. Beispielsweise beschreibt der TCP bei konstantem Oberarmwinkel a2 ∈ {0°, ±30°, ±60°...} die in 1 gestrichelt dargestellten Kleinkreise, bei konstantem Unterarmwinkel a3 ∈ {0°, ±30°, ±60°...} die in 1 strichpunktiert dargestellten Großkreise.
-
Nun kann für jedes Voxel ebenfalls einmalig vorab überprüft werden, ob diesem Voxel zugeordnete Posen x im Arbeitsraum zulässige Posen sind. Ist dies der Fall, wird dem Voxel ein erster Kennzeichnerwert zugewiesen, andernfalls ein zweiter Kennzeichnerwert. In 1, 2 sind Voxel, denen im Arbeitsraum unzulässige Posen zugeordnet und denen dementsprechend der zweite Kennzeichertwert zugewiesen ist, schraffiert dargestellt. Sie ergeben zusammen den unzulässigen Bereich Au im Koordinatenraum A (2) bzw. den entsprechenden unzulässigen Arbeitsraumbereich Xu (1).
-
Aufgrund der Übereinstimmung der Kontur des Arbeitstisches und des Karussells 1.1 in dem in 1 dargestellten Zustand stellt dies für a1 = 0° eine diskrete Approximation der vorstehend beschriebenen, in 2 mit ausgezogenen Linien eingezeichneten Bereiche dar, die durch die Ungleichungen (I) bis (IV) beschrieben werden. Denn eine Selbstkollision, i.e. eine Kollision des Roboters 1 mit seinem Karussell 1.1 entspricht in diesem Zustand gerade auch einer Kollision mit dem Hindernis Arbeitstisch.
-
Dieses Verfahren kann beispielsweise in einer Überwachungseinrichtung (nicht dargestellt) implementiert und bei einer Bahnplanung oder während des manuellen Betriebs des Roboters 1 genutzt werden.
-
Hierzu werden, wie im oberen Bereich der
3 dargestellt, einmalig vorab geschachtelte Schleifen durchlaufen:
-
Es wird also in einem Schritt b1) zunächst der Koordinatenraum in Voxel diskretisiert. Anschließend werden zulässige Posen im Arbeitsraum bestimmt und in den Koordinatenraum transformiert, indem zunächst in einem Schritt b) die einzelnen Voxel in den Arbeitsraum transformiert und anschließend in einem Schritt a) für jedes dieser transformierten Voxel geprüft wird, ob es im zulässigen Bereich Xz liegt. Die Transformation der zulässigen Posen aus dem Arbeits- in den Koordinatenraum erfolgt hier also indirekt durch Diskretisierung des Koordinatenraumes, Abbildung der dabei erhaltenen Voxel in den Arbeitsraum, und Bewertung der Voxel im Arbeitsraum. Da die Voxel den Koordinatenraum diskretisieren, stellt die Abarbeitung der Voxel gleichwohl eine Transformation in den Koordinatenraum dar.
-
Den Voxeln sind dabei Kennzeichnerwerte zugeordnet, denen in Schritt b2) defaultmäßig ein zweiter Kennzeichnerwert „0“ zugewiesen ist. Ergibt nun die Überprüfung in Schritt a), dass das Voxel nicht im zulässigen Bereich liegt (Schritt a): „Y“), so wird die defaul-Belegung des Voxels nicht geändert, sein Kennzeichner behält gemäß Schritt b2) den defaul-mäßigen zweiten Kennzeichnerwert „0“. Ergibt die Überprüfung in Schritt a) umgekehrt, dass das Voxel im zulässigen Bereich liegt (Schritt a): „N“), so wird seinem Kennzeichner in Schritt b3) ein erster Kennzeichnerwert „1“ zugewiesen.
-
Soll nun eine Pose x im Arbeitsraum überprüft werden, wird in Schritt c1) bestimmt, ob das Voxel, in dem die der zu prüfenden Pose des Manipulators im Arbeitsraum zugeordneten Gelenkkoordinaten liegen, mit dem ersten oder dem zweiten Kennzeichnerwert belegt ist. Diese Prüfung ergibt beispielsweise für die in 1 dargestellte Pose (a1 = 0°, a2 = 30°, a3 = 30°) den ersten Kennzeichnerwert, da diese Pose zulässig, das zugehörige Voxel (0°≤ a1 ≤ 30°; 30° ≤ a2 ≤ 60°; 30° ≤ a3 ≤ 60°) im nicht schraffierten, zulässigen Bereich Az des Koordinatenraumes A liegt. Hingegen ist beispielsweise dem Voxel (0° ≤ a1 ≤ 30°; 120° ≤ a2 ≤ 150°; 60° ≤ a3 ≤ 90°) der zweite Kennzeichnerwert zugewiesen, da die Pose a2 = 150°, a3 = 90° nicht mehr zulässig ist. Entsprechend wird in einem Schritt d) eine Meldung „1“ ausgegeben, die angibt, dass alle Gelenkkoordinaten innerhalb der zulässigen Bereiche liegen (Schritt c1): „Y“), wenn das Voxel mit dem ersten Kennzeichnerwert belegt ist, und umgekehrt eine Meldung „0“ ausgegeben, die angibt, dass mindestens eine Gelenkkoordinate außerhalb der zulässigen Bereiche liegt (Schritt c1): „N“), wenn das Voxel mit dem zweiten Kennzeichnerwert belegt ist
-
Zur Prüfung einer Pose muss daher nur der Kennzeichnerwert des zugehörigen Voxels abgerufen werden, was sehr rasch und auch in einfachen, beispielsweise in einem Mikroprozessor implementierten Überwachungseinrichtungen möglich ist.
-
Zusätzlich können in analoger Weise auch Geschwindigkeiten überwacht werden. Hierzu werden zulässige Geschwindigkeitsbereiche im Geschwindigkeitskoordinatenraum des Manipulators bestimmt. Beispielsweise kann die Drehzahl d(a2)/dt, d(a3)/dt der den Ober- und den Unterarm 1.2 bzw. 1.3 bewegenden Elektromotoren nach oben durch d(a2)z /dt, d(a3)z/dt begrenzt sein.
-
Dann wird zunächst, beispielsweise durch numerische Differentiation eines zu planenden Soll-Gelenkwinkelverlaufes a(t), oder durch Subtraktion zweier zeitlich aufeinanderfolgender Gelenkwinkelvektoren a(t2) - a(t1) und anschließende Division durch deren zeitlichen Abstand (t2 - t1), die zu prüfenden Gelenkkoordinatengeschwindigkeiten da/dt = (d(a1)/dt, d(a2)/dt, d(a3)/dt) ermittelt.
-
Für diese wird geprüft, ob wenigstens eine Gelenkkoordinatengeschwindigkeit des Manipulators außerhalb dieser zulässigen Geschwindigkeitsbereiche liegt, i.e. ob d(a2)/dt > d(a2)z/dt oder d(a3)/dt > d(a3)z/dt.
-
Auch im Arbeitsraum können zulässige Geschwindigkeiten (dxz/dt) vorgegeben werden. Dann können während der Abarbeitung die wie vorstehend beschrieben ermittelten Gelenkkoordinatengeschwindigkeiten d(a2)/dt, d(a3)/dt gemäß Gleichung (2) in den Arbeitsraum transformiert und mit diesen zulässigen Geschwindigkeiten (dxz/dt) im Arbeitsraum verglichen werden. Alternativ können auch die zulässigen Geschwindigkeiten im Arbeitsraum (dxz/dt) unter Lösung der Rückwärtskinematik (3) in den Koordinatenraum transformiert werden und dort die zulässigen Geschwindigkeitsbereiche (mit)bestimmen.
-
Bezugszeichenliste
-
- 1
- Roboter
- 1.1
- Karussell
- 1.2
- Oberarm
- 1.3
- Unterarm
- TCP
- Tool Center Point (Endeffektor-Referenzkoordinatensystem)
- a1, a2, a3
- Gelenkwinkel
- X
- Arbeitsraum
- Xz
- zulässige Posen im Arbeitsraum
- Xu
- unzulässige Posen im Arbeitsraum
- Az
- zulässiger Bereich im Koordinatenraum
- Au
- unzulässiger Bereich im Koordinatenraum