Positionen berechnen - in Bezug zum Tool-Koordinatensystem

  • Hallo, zusammen.
    Habe da mal ne Frage zum Berechnen von Positionen:


    So sieht mein Programm aus:



    PTP test Vel= 100 % PDAT3 Tool[2]:probegreifer Base[2]:Test
    PTP test2 Vel= 100 % PDAT4 Tool[2]:probegreifer Base[2]:Test



    Berechneter_Offset = (Polzahl * Teilung) / 2


    XTEST2.y = XTEST.y + Berechneter_Offset


    PTP XTEST2



    Zur Erklärung:


    Die Variablen Berechneter_Offset, Teilung und Polzahl sind als REAL deklariert.
    Basis 2 ist gleich dem World-Koordinatensystem


    Ich habe zwei Punkte geteacht, Test und Test2. Beide haben an Anfang die gleichen Koordinaten und wurden mit Tool 2 und Base 2 geteacht.
    Ich nehme also den Y-Wert von Punkt "Test", rechne den Wert von "Berechneter_Offset" dazu und schreibe das Ganze in den Y-Wert vom Punkt "Test2"
    Anschließend fahre ich den Punkt "Test2" an.
    Das Ganze funktioniert auch soweit und der Robbi fährt um den berechneten Wert in Richtung Y. :)


    Soweit sogut.
    Allerdings bezieht sich Y immer auf das Koordinaten-System der Basis 2.
    Ich möchte aber die Berechnung auf das Koordinaten-System des Greifers beziehen, also die Berechnung in Stoßrichtung des Greifers vornehmen, egal, wo der Greifer gerade steht.


    Geht das überhaupt, und wenn ja, wie?


    In der KUKA-Doku habe ich leider nichts Passendes dazu gefunden.


    Vielleicht weiss jemand von Euch da ne Lösung.


    Vielen Dank schonmal
    MfG
    Markus

  • Schritt für Schritt zum Roboterprofi!
  • Servus,


    vorausgesetzt dein Tool und Base ist korrekt vermessen, würd ich mal den geometrischen Operator vorschlagen:

    Code
    $BASE=BASE_DATA[2]:TOOL_POS_BEZOGEN_AUF_BASE2 ;Dein neues Base ist nun die aktuelle POS des TCP und senkrecht dazu
    LIN {Z 100}


    Das Ganze ist aber mit Vorsicht zu genießen !


    HTH


    Tobi

  • Hi,
    ja das sollte wohl dann doch eher $base=$pos_act heissen. Aber unbedingt vorher das Base auf nullframe setzen,
    ansonsten passt's wieder nicht. Also:

    Code
    $base=$nullframe
    $base=$pos_act


    Die saubere Lösung wäre allerdings mit dem Doppelpunktoperator.


    Hermann

  • Hi,


    ich habe das schon einmal in "Berechnung der Basis" beschrieben.



    Trotzdem :


    Punkt P1 gegeben


    ;1. Verschieben bezügliche Tool-System


    FRAME f
    f=$nullframe
    f.x=100 ; Tool Stossrichtung


    P1=P1:f



    ;2. Verdrehen bezügliche Tool-System
    f=$nullframe
    f.c=10 ; Tool Stossrichtung


    P1=P1:f


    Meine Erfahrung ist das beides nicht gleichzeitig geht, da war es aber alles etwas
    komplizierter und ich hatte da Probleme mit der ganzen verschieberei und verdreherei:


    f=$nullframe
    f.x=100
    f.c=10 ; Tool Stossrichtung
    P1=P1:f


    Macht man es in zwei Schritten funktionierts auf jeden Fall. Vielleicht täusch ich mich
    auch, probiers einfach aus.


    Gruss


    Berrad

Erstelle ein Benutzerkonto oder melde dich an um zu kommentieren

Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können

Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Geht einfach!
Neues Benutzerkonto erstellen
Anmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden