Hallo zusammen,
Ich habe einen Roboter, der auf einer Linearachse fährt. Am Roboter hängt einen Werkzeugmagzin, das mit dem Roboter auf der Linearachse mitfährt. Der Roboter soll seine Werkzeuge aus dem Magazin holen.
Mich würde interessieren, ob es eine Möglichkeit gibt, eine Basis am Magazin zu definieren, die dann sich mit dem Roboter bewegt. Ich würde nämlich die Bewegungen für den Werkzeugwechsel kartesich programmieren.
Gruß,
Zicorob
Basis auf einer Linearachse
- zicorob
- Thread is marked as Resolved.
-
-
Hallo Zicorob,
wenn du noch verrätst von welchem Roboter und welcher Steuerung du sprichst könnte man dir fachgerecht weiterhelfen.
Gruß
Z750 -
Hey,
sorry habe ich vergessen!
Roboter KR420
LA: KL4000T
Steuerung: KRC4 -
Hallo Zicorob,
da dein Magazin mitfährt kannst du das eigentlich wie eine normale Base behandeln, der Bezug Roboter zum Magazin bleibt ja immer gleich.
-
Hallo Zicorob,da dein Magazin mitfährt kannst du das eigentlich wie eine normale Base behandeln, der Bezug Roboter zum Magazin bleibt ja immer gleich.
Hallo Martin,
ich hätte gedacht, dass eine Basis sich immer auf dem Welt-KS bezieht, das sich am fest Fußpunkt der LA befindet. Wenn ich nun eine Basis am Magazin vermesse und da einen Punkt teache. und dann die LA um 1m verfahre (X+) und dann Punkt anfahren will, würde sich der Roboter nicht zu einem Punkt bewegen, der eine 1m in X- liegt und damit nicht mehr am Magazin?
oder habe ich das Prinzip missverstanden? -
Hallo Martin,
ich hätte gedacht, dass eine Basis sich immer auf dem Welt-KS bezieht, das sich am fest Fußpunkt der LA befindet. Wenn ich nun eine Basis am Magazin vermesse und da einen Punkt teache. und dann die LA um 1m verfahre (X+) und dann Punkt anfahren will, würde sich der Roboter nicht zu einem Punkt bewegen, der eine 1m in X- liegt und damit nicht mehr am Magazin?
oder habe ich das Prinzip missverstanden?Hast du richtig verstanden
Ich habe so was auch mal gebraucht. Von Haus aus kann Kuka das nicht. Ich habe mir das damals selbst gebastelt und in einer Sub die Base dem Robi hinterher geschoben.
-
...und dann die LA um 1m verfahre (X+) und dann Punkt anfahren will, würde sich der Roboter nicht zu einem Punkt bewegen, der eine 1m in X- liegt und damit nicht mehr am Magazin?
oder habe ich das Prinzip missverstanden?Hallo,
Wenn du aber dann bei den Koordinaten die Externe Achse E1... löschst, müsste es doch Funktionieren ?
oder hab ich da auch einen Gedankenfehler ? Teachen darf man dann nur an der 1. Station.Mfg
-
Wenn du aber dann bei den Koordinaten die Externe Achse E1... löschst, müsste es doch Funktionieren ?
Achsspezifisch ja, kartesisch nein.
oder hab ich da auch einen Gedankenfehler ? Teachen darf man dann nur an der 1. Station.
Über das geführte Teachen aus dem Menü würde das dann nicht mehr funktionieren. Du müsstest die Base-Verschiebung und das Teachen selbst programmieren.Beim Teachen musst du sicherstellen, dass die Achse an allen drei Positionen an der gleichen Stelle steht (macht's zumindest einfacher) und die errechnete Base noch entsprechend der aktuellen Postion der Linearachse verschieben.
So viel Aufwand war das nicht, wenn ich mich recht entsinne. Sollte in weniger als 100 Zeilen erledigt sein.
-
.... warum sollte das nicht gehen, du kannst doch deine Base um den Betrag deiner Lineareinheit verschieben... Stichwort Doppelpunktoperator
-
Natürlich kann man das mit der KRC machen. Man muss zugegeben aber ein bißchen tricksen. Wenn ich das Problem richtig verstehe willst du eine Base, die sich mit der KL mitbewegt, ähnlich einem Base auf z.B. einem Dreh-Kipptisch und dann auf diesem Base verfahren. Nun hast du ja schon eine Konfiguration bei der die Zusatzachskinematik konfiguriert ist als Robroot-Kinematik (vom Typ $EX_KIN = ERSYS laut R1/$machine.dat), d.h. der Roboter steht auf dieser Kinematik. Du kannst nun eine zweite Zusatzachskinematik anlegen, die exakt wie deine KL konfiguriert ist, nur eben vom Typ $EX_KIN = EASYS, also wie ein Dreh-Kipp-Tisch als Basekinematik. Wichtig ist hier nur, dass diese Kinematik wieder die Achswinkel wie die KL bekommt, d.h. falls die KL die E1 ist, musst du nur dieser zweiter Kinematik auch sagen dein Achswinkel ist E1.
Beispielauszug aus der R1/$machine.dat:
DECL EX_KIN $EX_KIN={ET1 #ERSYS,ET2 #EASYS,ET3 #NONE,ET4 #NONE,ET5 #NONE,ET6 #NONE} ;Die erste Zusatzachskinematik ist vom Typ #ERSYS (Robroot-Kinematik), die zweite vom Typ #EASYS (Base-Kinematik)
KL als RobRoot-Konfiguration:
DECL ET_AX $ET1_AX={TR_A1 #E1,TR_A2 #NONE,TR_A3 #NONE} ;KL ist in der ersten Zusatzachskinematik die E1
CHAR $ET1_NAME[20] ;NAME DER TRANSFORMATION ET2 MAX. 20 ZEICHEN
$ET1_NAME[]="KL4000S_Q_64"
FRAME $ET1_TA1KR={X 0.0,Y 0.0,Z 689.000,A 0.0,B -90.0000,C 0.0} ;FRAME ZWISCHEN A1 UND FUSSPUNKT DER KIN IN TRAFO ET1
FRAME $ET1_TA2A1={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN A2 UND A1
FRAME $ET1_TA3A2={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN A3 UND A2
FRAME $ET1_TFLA3={X 0.0,Y 0.0,Z 0.0,A -90.0000,B 0.0,C -90.0000} ;ZWISCHEN FL UND A3
FRAME $ET1_TPINFL={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN MESSPUNKT UND FLKL als Externe Basekinematik:
DECL ET_AX $ET2_AX={TR_A1 #E1,TR_A2 #NONE,TR_A3 #NONE} ;;Wieder ist die E1 der Zusatzachskinematik zugewiesen
CHAR $ET2_NAME[20] ;NAME DER TRANSFORMATION ET2 MAX. 20 ZEICHEN
$ET2_NAME[]="KL4000S_Q_64"
FRAME $ET2_TA1KR={X 0.0,Y 0.0,Z 689.000,A 0.0,B -90.0000,C 0.0} ;FRAME ZWISCHEN A1 UND FUSSPUNKT DER KIN IN TRAFO ET2
FRAME $ET2_TA2A1={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN A2 UND A1
FRAME $ET2_TA3A2={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN A3 UND A2
FRAME $ET2_TFLA3={X 0.0,Y 0.0,Z 0.0,A -90.0000,B 0.0,C -90.0000} ;ZWISCHEN FL UND A3
FRAME $ET2_TPINFL={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN MESSPUNKT UND FLMit etwas Glück kannst du deinem Workvisual Projekt auch einfach nochmal die KL reinziehen aber eben den Roboter nicht auf den Flansch der KL ziehen und dieser zweiten KL dann als Achse die E1 zuweisen. Ich weiß aber nicht ob WorkVisual damit zurechtkommt, falls auf dem Katalogelement einer KL kein Roboter platziert wird und ob man eine Zusatzachse mehreren Zusatzachskinematiken zuweisen kann. Die eigentliche Steuerungssoftware hat damit kein Problem.
Hat diese Konfiguration soweit geklappt, kannst du die KL genauso wie einen Dreh-Kipptisch behandeln und darauf Bases vermessen.
Fubini
-
Hallo,
ich habe zu der 7. Achse und den Werten in der machine.dat eine Frage:
Die Transformation von der A1 zum Fußpunkt der Kinematik verändert ja das Robroot des Roboters zur 7. Achse.
Warum wird dort um B 90° gedreht? Nach meinem Kenntnisstand wäre doch die Drehung um A korrekt?
Ist dann der z-Wert die Translation vom Boden zum Roboterfuß?
Wenn die Fahrtrichtung geändert werden soll, wird dann dort die Orientierung um 180° geändert?Danke
-
Hallo Church90,
sieh mal hier ins Attachment:
https://www.roboterforum.de/ro…n/14872/msg70961#msg70961Zum Prinzip:
1. Lege fest, wie Du das Weltkoordinatensystem im Raum festlegen willst.
2. Verdrehe es im $ETx_TA1KR so, dass die Z-Achse des Koordinatensystems in Laufrichtung der Kinematik schaut.
3. Verdrehe mit $ETx_TFLA3 das Koordinatensystem, dass es passt mit dem Robroot der Robotermechanik.Wenn man frei ist, wie Weltkoordinatensystem liegen soll, macht es Sinn, es parallel zu Robroot auszurichten, ausser Robi ist im 45 Grad Winkel montiert. So sind auch die Werte in der Doku entstanden.
Antwort zu Z-Wert und Laufrichtung haste auch im Dokument.
Gruss SJX
-
Hallo fubini
ich habe hier 18 Base Koordinatensysteme, die ich auf einer KL mitnehmen muss, und probiere gerade deinen Vorschlag aus.
Hier der Ausschnitt aus der Mada:
INT $EX_AX_NUM=1 ;ANZAHL EXTERNER ACHSEN (0-6)
INT $EX_AX_ASYNC='B0000' ;EXTERNE ACHSEN ASYNCHRON
INT $ASYNC_T1_FAST='B0000' ;GESCHW.-RED. DEAKTIVIERT ( T1 )
DECL EX_KIN $EX_KIN={ET1 #ERSYS,ET2 #EASYS,ET3 #NONE,ET4 #NONE,ET5 #NONE,ET6 #NONE} ;EXTERNE KINEMATIKEN #NONE,#EASYS,#EBSYS,#ECSYS,#EDSYS,#EESYS,#EFSYS,#ERSYS
DECL ET_AX $ET1_AX={TR_A1 #E1,TR_A2 #NONE,TR_A3 #NONE} ;EXTERNE ACHSEN #NONE, #E1, #E2, #E3, #E4, #E5, #E6
CHAR $ET1_NAME[20] ;NAME DER TRANSFORMATION ET1 MAXIMAL 20 ZEICHEN
$ET1_NAME[]="KL4000_Q_40"
FRAME $ET1_TA1KR={X 0.0,Y 0.0,Z 1089.00,A 0.0,B -90.0000,C 0.0} ;FRAME ZWISCHEN A1 UND FUSSPUNKT DER KIN IN TRAFO ET1
FRAME $ET1_TA2A1={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN A2 UND A1
FRAME $ET1_TA3A2={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN A3 UND A2
FRAME $ET1_TFLA3={X 0.0,Y 0.0,Z 0.0,A -90.0000,B 90.0000,C -90.0000} ;ZWISCHEN FL UND A3
FRAME $ET1_TPINFL={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN MESSPUNKT UND FL
DECL ET_AX $ET2_AX={TR_A1 #E1,TR_A2 #NONE,TR_A3 #NONE} ;EXTERNE ACHSEN #NONE, #E1, #E2, #E3, #E4, #E5, #E6
CHAR $ET2_NAME[20] ;NAME DER TRANSFORMATION ET2 MAX. 20 ZEICHEN
$ET2_NAME[]="mitfahrende_Basis"
FRAME $ET2_TA1KR={X 0.0,Y 0.0,Z 1089.00,A 0.0,B -90.0000,C 0.0} ;FRAME ZWISCHEN A1 UND FUSSPUNKT DER KIN IN TRAFO ET2
FRAME $ET2_TA2A1={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN A2 UND A1
FRAME $ET2_TA3A2={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN A3 UND A2
FRAME $ET2_TFLA3={X 0.0,Y 0.0,Z 0.0,A -90.0000,B 90.0000,C -90.0000} ;ZWISCHEN FL UND A3
FRAME $ET2_TPINFL={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0} ;ZWISCHEN MESSPUNKT UND FLNun meine Fragen:
-Muss ich die Anzahl der externen Achsen von 1 auf 2 erhöhen?
-Ich habe den Fußpunkt der #EASYS gleich gewählt, wie die Linearachse, ist das korrekt?
-Wie kann ich nun meine 18 Bases auf der #EASYS definieren? Sonst haben wir das immer geführt bei der Fußpunktvermessung zugewiesen, was hier ja nicht der Fall ist.
Ich bin morgen wieder an der Anlage und werde testen.
Vielen Dank schonmal!
lg
-
ok, Problem scheint gelöst zu sein, mit der "neuen" Funktion EO Treiber klappt das über Workvisual.
Siehe Doku:
"Konfiguration von Kinematiken
Für KUKA System Software 8.5
Montage- und Betriebsanleitung
KUKA Roboter GmbH
Stand: 05.04.2017"
ab Seite 24.
Muss es zwar erst testen, aber ich glaub das passt
lg
Create an account or sign in to comment
You need to be a member in order to leave a comment