Hallo Leute,
im Rahmen meines Praktikums für mein Studium darf ich mich intensiver mit einem Kuka KR6/2 (BOF Version V 2.2.8, Grundsystemversion KS V2.38_14) beschäftigen. Und zwar wollen wir ein Loch (Durchmesser=17mm) in einem Blech mit einem Stabschleifer (Durchmesser Schleifer=12,5mm), der am Roboter montiert ist, abschleifen. Also recht kleine Kreisradien. Bin jetzt seit ca. 3 Wochen Neuling am Robi und verzweifle gerade an unerklärlichen Phänomenen.
Hatten uns das so gedacht, das wir ins Loch rein fahren, schräg anstellen und die untere Lochkante schleifen, danach gerade stellen und schleifen, danach wieder schräg stellen und obere Lochkante schleifen. Das ganze je nach bedarf mit mehreren runden. Und um den Schleifer auch noch gleichmäßig abzunutzen muss dann nach jedem Zyklus etwas tiefer eingetaucht werden.
Habe da schon einiges Programmiert was auch recht gut funktioniert. Jedoch bekomme ich mit der Orientierung während meiner Kreisbahn bei bestimmten Werten Probleme.
Der Roboter soll hierbei die Orientierung im Hilfspunkt beibehalten, wobei diese in den einzelnen Kreispunkten durch abkippen der Winkel B und C erreicht wird. Tut er eigentlich auch, jedoch fängt er irgendwann an (unerklärlicher Weise) die Orientierung nicht wie normal zu halten, sondern durch eine komplette Umorientierung auch über den Winkel A. Das ist unerwünscht, da sonst eine Kollision auftreten würde...ausserdem wäre somit auch die Anzahl der Kreise beschränkt, wegen des endlichen Achsenwinkels...!? Haben lange rumprobiert bis wir die Geschichte mit der Orientierung raus hatten, aber $ORI_TYPE=#VAR und $CIRC_TYPE=#PATH waren die einzigen Einstellungen bei denen es (ab und zu) so funktioniert hat wie wir wollten.
Dieses Problem tritt auf, wenn der TCP während der Kreisbewegung einen kleineren Radius als 0,25mm beschreibt!
Wenn die dritte Nachkommastelle die Werte 2-4 (z.B. 3.122-3.124mm), und die erste und zweite Nachkommastelle den Wert 58-62 (z.B. 3.58-3.62mm) annimmt! sehr komisch.........!
Oder sobald wir versuchen durch Variablen eine Zustellung des Kreisradius zu erreichen! Hierbei wird der erste Kreis dann normal abgefahren und der zweite mit der komischen Orientierung.
Diese unterschiedlichen Bereiche haben wir beim rumprobieren herausgefunden, und sie lassen sich für unterschiedliche TCP's sowie verschiedene Arbeitsbereiche wiederholen. Eine Singularität lag auch nicht vor.
Eines der Programme bei denen sich das Phänomen hervorrufen lässt sieht so aus:
Variablen müssten eigentlich alle richtig deklariert sein...funktioniert ja des öfteren...
INI
PTP Home Vel=100% Default
;Kreismittelpunkt berechnen
MPKT[1,1].X=Wert_X
MPKT[1,1].Y=Wert_Y
MPKT[1,1].Z=Wert_Z
MPKT[1,1].A=-178.214
MPKT[1,1].B=0
MPKT[1,1].C=180
;Kreispunkte berechnen
KP1[1,1]=MPKT[1,1]
KP1[1,1].X=KP1[1,1].X-RAD
KP1[1,1].B=KP1[1,1].B+ANG
KP2[1,1]=MPKT[1,1]
KP2[1,1].Y=KP2[1,1].Y+RAD
KP2[1,1].C=KP2[1,1].C+ANG
KP3[1,1]=MPKT[1,1]
KP3[1,1].X=KP3[1,1].X+RAD
KP3[1,1].B=KP3[1,1].B-ANG
KP4[1,1]=MPKT[1,1]
KP4[1,1].Y=KP4[1,1].Y-RAD
KP4[1,1].C=KP4[1,1].C-ANG
PTP Ueberloch Vel=100% PDAT1
$APO.DIS=3
LIN MPKT[1,1] C_DIS
Set Greifer1 State=Zu CONT at START Delay 0ms
$VEL.CP=0.02
LIN KP1[1,1] C_DIS
FOR ZAEHLER 1 TO 2
$VEL.CP=0.01
$ORI_TYPE=#VAR
$CIRC_TYPE=#PATH
CIRC KP2[1,1], KP3[1,1] C_DIS ; Halbkreis1
CIRC KP4[1,1], KP1[1,1] C_DIS ; Halbkreis2
;KP1[1.1].X=KP1[1.1].X-OFFSET ; Mit Offset die Zustellung im Kreisradius berechnen
;KP2[1.1].Y=KP2[1.1].Y+OFFSET
;KP3[1.1].X=KP3[1.1].X+OFFSET
;KP4[1.1].X=KP4[1.1].Y-OFFSET
ENDFOR
$VEL.CP=0.5
LIN MPKT[1,1]
SET Greifer1 State=Auf CONT at START Delay 0ms
PTP Home Vel=100% Default
Erster Beitrag und dann gleich so einen Roman...vielen Dank wenn ihr euch die Zeit genommen habt das ganze zu lesen...vielleicht hat der ein oder andere ja einen nützlichen Tipp, wie ich diese Fehler beheben kann, oder wie ich sie umgehen kann.
MfG
Nilsbert