25. Mai 2019, 03:02:50
Roboterforum.de - Die Industrieroboter- Anwender und Experten Community

[offen] 7 Achse und Base Daten


normal_post Autor Thema: [offen] 7 Achse und Base Daten  (Gelesen 1330 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

25. März 2019, 06:21:54
Gelesen 1330 mal
Offline

Pat-187


Guten Morgen zusammen,

ich habe ein Problem mit einer 7 Achse (Drehpositionierer) an der ein Werkstück befestigt ist.
Das Werkstück liegt horizontal vor dem Roboter und wird beim bearbeiten gedreht.
Auf dem Werkstück wurde eine Base vermessen (Base_Data[3]), da die zu bearbeitenden Punkte auf Vorder und Rückseite identisch sind.

Nun zu meinem Problem:
Wenn ich die 7 Achse um 180° drehe, ist meine Base Negativ. Der Roboter will also von der falschen Seite her anfahren.

ist es hier Sicherer/besser die Base_Data[3] zu manipulieren und mit +/- 180° zu berechnen oder die Tool_Data[5] entsprechend zu ändern?
Da das Werkstück an der 7 Achse befestigt ist, kenne ich durch den Drehwinkel E1 die aktuelle Ausrichtung und könnte bei Übergang von +180 -> +181° die Base_Data[3] / Tool_Data[5] immmer exakt bestimmen?!

Vielleicht kann mir am frühen morgen ja schon jemand einen Tipp geben, wie so etwas am Sinnvollsten und sichersten umgesetzt werden kann/sollte.

Roboter:
Roboter: KR120R2500 PRO C4 FLR
Version Steuerung: V8.3.320/KUKA8.3


Vielen Dank und einen gute Woche.

Gruss Pat
  • gefällt mir    Danke

Heute um 03:02:50
Antwort #1

Werbung

Gast

25. März 2019, 09:36:54
Antwort #1
Offline

Hermann


Da sich das Werkzeug (vermute ich mal) nicht ändert, das hängt ja wohl am Roboter, macht es überhaupt keinen Sinn an diesem irgendwie rumzupfriemeln (tool_data). Es wird eh nicht machbar sein dadurch die Aufgabe zu lösen.

Zitat
.. Wenn ich die 7 Achse um 180° drehe, ist meine Base Negativ...
Hä? Was bitte ist eine negative Base? Eine Base hat 6 Koordinaten, von denen können alle einzeln oder unabhängig voneinander negativ sein.
Zitat
...
Der Roboter will also von der falschen Seite her anfahren.
...
Äh, wenn der Drehtisch um 180 Grad gedreht wird, dann will der Roboter die Punkte selbstredend von 'hinten' anfahren, die liegen ja jetzt auch auf der anderen Seite!

Zitat
...
da die zu bearbeitenden Punkte auf Vorder und Rückseite identisch sind.
...
Ah, jetzt ja. Es soll auf einem Werkstück auf zwei verschiedenen Seiten die selbe Bearbeitung stattfinden, mit nur ein mal einrichten.
Da muss man dem Roboter natürlich auch 'sagen', dass er jetzt das Werkstück auf der anderen Seite bearbeiten soll, von alleine kommt der nicht darauf. Wenn man den Drehtisch einfach nur dreht, dann will der immer noch die alten geteachten Punkte im alten Base bearbeiten, und das hat sich in der Zwischenzeit eben bewegt.

Wenn der Roboter die andere Seite bearbeiten soll, dann muss man die Verschiebung/-drehung der Base durch die Drehung rechnerisch wieder zurückrechnen, wie Du das schon vermutet hast.

Das exakt zu machen dürfte nicht ganz einfach sein, da das Werkstück vermutlich nicht exakt symmetrisch auf dem Drehpunkt des Drehtischs montiert sein wird !?

Einfacher dürfte sein, den Drehtisch gar nicht in der Trafo zu berücksichtigen (also Base ohne mathematische Kopplung verwenden) und auf dem Werkstück zwei Bases (auf jeder Seite eines, mit jeweils entsprechend gedrehtem Tisch) zu vermessen, und für die Bearbeitung jeweils das entsprechende Base verwenden. Dann muss man allerdings vor der Bearbeitung den Tisch richtig hindrehen, und die Punkte der Bearbeitung nicht als E6POS anlegen, sondern nur als POS, oder die 7. Achse vor der Bearbeitung asynchron schalten.

25. März 2019, 13:16:26
Antwort #2
Offline

Pat-187


Hallo Hermann,

danke für deine Ausführliche Antwort.
Meine Art Probleme in Worte zu fassen, ist leider unterirdisch gut  :uglyhammer_2:
Die reine Bearbeitung einer Base ist mir bekannt, auch das es keine negative Base gibt.
Ich meinte genau das, was du korrekt ausgedrückt hast (vielleicht war der 1 Kaffee heute morgen noch zu wenig  :biggrins:)

Eine zweite Base ist natürlich auch möglich und wird aktuell geprüft.

Zum Verständis jedoch. Es ist also besser, die Base Daten entsprechen anzupassen, anstatt an anderer Stelle?

Dann hätte sich das Problem quasi erledigt. Mir ging es um die korrekte Umsetzung, die für jeden nachvollziehbar ist.

Vielen Dank noch mal.

Gruss
  • gefällt mir    Danke

01. April 2019, 19:49:23
Antwort #3
Offline

Pat-187


Servus noch mal,

ich bin aktuell wieder an dem Projekt beschäftigt und habe versucht, die Base entsprechend der zurückgelegten Drehung in E1 umzurechnen.

Beispiel :
E1 = 0° / BASE = (A=6,B=90.3,C=0)
E1 = 180° / BASE = (A=6,B=90.3,C=180) Drehung um X Achse korrekt?

Die Stoßrichtung ändert sich nicht wie gewollt.
Muss ich weitere Änderungen vornehmen?

Ich muss mal gucken, ob ich es irgendwie graphisch darstellen kann. Dann posten ich hier ein Bild.

Danke schon mal.
  • gefällt mir    Danke

02. April 2019, 13:34:31
Antwort #4
Offline

Loipe


Hallo Pat,

wie liegt den deine BASE? wie ist die Orientierung der BASE zum Drehpunkt des Positionierers? wenn die X Richtung rechtwinklig aus der Drehachse kommt ist X richtig
wenn Z aus der Achse rauskommt dann A
wenn Y dann B

und wie schon gefragt wurde und ganz wichtig ist...
ist der Ursprung der Base in der Mitte der Achse.
wenn nicht musst du mehr als nur den Winkel ändern.

Gruß Loipe
  • gefällt mir    Danke
wer das hier liest hat zuviel zeit oder einen viel zu großen bildschirm

Heute um 03:02:50
Antwort #5

Werbung

Gast

02. April 2019, 16:43:43
Antwort #5
Offline

Programmiersklave


Prinzipiell, wenn man weiß, dass die Achse korrekt eingemessen wurde und man die Richtung der Achse kennt, dann würde es auch reichen, die Verdrehung an die EK-Funktion zu übergeben im Stile von
winkelframe=$NULLFRAME
winkelframe.a = 180 ;(Falls es die Z-Achse im "Tool"-Koordinatensystem der ExAx ist)
$base = EK(MACHINE_DEF[kuka_index].ROOT, MACHINE_DEF[kuka_index].MECH_TYPE, (winkelframe:base_data[3]))
(wenn man den Ranz komplett rückgängig machen will) oder, wenn man das vielleicht versetzte Base behalten will, aber wieder um dessen Ursprung zurückdrehen will, andersherum:
winkelframe=$NULLFRAME
winkelframe.a = 180 ;(Falls die Z-Achse im mitfahrenden Base-Koordinatensystem auf der Achse parallel zur Achse selbst liegt, ansonsten muss man sich den ursprünglichen Frame vom BASE angucken und invertiert berücksichtigen)
$base = EK(MACHINE_DEF[kuka_index].ROOT, MACHINE_DEF[kuka_index].MECH_TYPE, (base_data[3]:winkelframe))
(alles ohne Gewähr) aber irgendwie ist das alles durch die Brust ins Knie, wenn es einfach nur darum geht, rotationssymmetrische Bearbeitungen zu machen, und man die Achse sonst weiter gar nicht als synchrone Achse braucht.

Grüße,
Michael
  • gefällt mir    Danke


Teile per facebook Teile per linkedin Teile per pinterest Teile per reddit Teile per twitter
 

über das Roboterforum

Nutzungsbedingungen Impressum Datenschutzerklärung

Sponsoren des Roboterforums

ROBTEC GmbH