Basis auf einer Linearachse

  • 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

  • AD
  • 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.

    Die Abnahme von "GOTO" Anweisungen verhält sich reziprok zur Qualität einer Programmierung


  • 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

    Die Abnahme von "GOTO" Anweisungen verhält sich reziprok zur Qualität einer Programmierung

  • 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 FL


    KL 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 FL


    Mit 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

    Edited once, last by 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#msg70961


    Zum 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

    Manche Maenner bemuehen sich lebenslang, das Wesen einer Frau zu verstehen. Andere befassen sich mit weniger schwierigen Dingen z.B. der Relativitaetstheorie.

  • AD