Berechnung Position

  • Hallo zusammen,


    bei einem KR150-L110 mit KRC2 Steuerung habe folgendes Problem. Ich habe ein Greifwerkzeug mit welchem ich Säcke in unterschiedliche Ablagevorrichtungen lege. Nach dem Ablegen ist immer eine Offsetfahrt von y-100 nach Toolkoordinaten erforderlich. Anschließend wird der Greifer mit einem festen C-Wert =-175 und einem Offset von Z+200 freigefahren. Ich habe das bis jetzt wie folgt gelöst:



    $TOOL=TOOL_DATA[1]
    $BASE=$WORLD


    pActPos1=$POS_ACT
    LIN (pActPos1:{x 0,y -100,z 0,a 0,b 0, c 0}) C_DIS


    pActPos2=$POS_ACT
    pActPos2.c=-175
    pActPos2.z=pActPos2.z + 200
    LIN pActPos2 C_DIS



    Um die Leistung zu verbessern, möchte ich die beiden Punkte verschleifen. Das geht aber nicht da ich den Punkt pActPos2 mit $POS_ACT einlese.


    FRAGE: Wie kann ich den zweiten Verfahrpunkt (pActPos2) aus dem ersten Punkt (pActPos1) berechnen, um nicht ein zweites Mal $POS_ACT verwenden zu müssen?


    Ich stelle mir das dann so vor...


    $TOOL=TOOL_DATA[1]
    $BASE=$WORLD


    pActPos1=$POS_ACT


    LIN (pActPos1:{x 0,y -100,z 0,a 0,b 0, c 0}) C_DIS
    pActPos2= --> Hier eine Berechung von pActPos2 bezogen auf pActPos1
    pActPos2.c=-175
    pActPos2.z=pActPos2.z + 200
    LIN pActPos2 C_DIS



    Ich hoffe ihr wißt was ich meine. :denk: Hat jemand einen Tipp für mich?


    Gruß HarryH

  • Schritt für Schritt zum Roboterprofi!
  • servus,
    weiss nicht, ob ich das jetzt richtig verstanden habe, aber wie wärs denn dann mit:


    pActPos1=$POS_ACT
    pActPos1.y=pActPos1.y-100


    pActPos2=pActPos1
    pActPos2.c=-175
    pActPos2.z=pActPos2.z + 200


    LIN pActPos1 C_DIS
    LIN pActPos2 C_DIS


    mist, sorry, hab nen denkfehler, bzw die toolkoordinaten ignoriert... :wallbash:

    „Welten, regiert von künstlichen Intelligenzen,<br />mußten oftmals ihre schmerzlichen Erfahrungen machen.<br />Logik kennt keine Gefühle.“

    Einmal editiert, zuletzt von Anubis ()

  • kann nicht sagen ob das so möglich ist, da ich gerade an keinem robi testen kann, aber wie wärs mit:
    (habe etwas ähnliches schonmal irgendwo gesehen)



    $TOOL=TOOL_DATA[1]
    $BASE=$WORLD


    pActPos1=$POS_ACT
    pActPos1=pActPos1:{x 0,y -100,z 0,a 0,b 0, c 0}


    pActPos2=pActPos1
    pActPos2.c=-175
    pActPos2.z=pActPos2.z + 200


    LIN pActPos1 C_DIS
    LIN pActPos2 C_DIS

    „Welten, regiert von künstlichen Intelligenzen,<br />mußten oftmals ihre schmerzlichen Erfahrungen machen.<br />Logik kennt keine Gefühle.“

  • Anubis:danke:


    KLAR das ist es, so sollte es gehen! Ich verwende ja schon die Syntax "... pActPos1:{x 0,y -100,z 0,a 0,b 0, c 0}" für Offset im Toolkoordinatensystem. Bin nicht auf die Idee gekommen diese Position erstmal zu speichern und dann die 2. Position daraus abzuleiten. So werde ich das jetzt ändern. Nochmal vielen Dank für die Lösung :blumen:


    Gruß HarryH

  • Hi,
    du kannst auch folgendes machen:


    $TOOL=TOOL_DATA[1]
    $BASE=$WORLD


    pActPos1=$POS_ACT


    LIN (pActPos1:{x 0,y -100,z 0,a 0,b 0, c 0}) C_DIS
    LIN (pActPos1:{x 0,y 0,z 200,a 0,b 0, c -175}) C_DIS



    Gruß


    Sven

    Wer nichts macht, macht keine Fehler!

    Wer keine Fehler macht, kann nichts daraus lernen!

    Wer nichts lernen kann, kann sich nicht weiterentwickeln!

    Wer sich nicht entwickelt, geht unter!

  • guten morgen,


    LIN (pActPos1:{x 0,y -100,z 0,a 0,b 0, c 0}) C_DIS
    LIN (pActPos1:{x 0,y 0,z 200,a 0,b 0, c -175}) C_DIS


    nicht ganz, es soll ja nur die erste position auf tool bezogen sein.
    in deinem beispiel wäre die zweite ja auch wieder vom tool abhängig.

    „Welten, regiert von künstlichen Intelligenzen,<br />mußten oftmals ihre schmerzlichen Erfahrungen machen.<br />Logik kennt keine Gefühle.“

  • Hi,
    dann drehen wir halt die letzte Zeile. ;)


    $TOOL=TOOL_DATA[1]
    $BASE=$WORLD


    pActPos1=$POS_ACT


    LIN (pActPos1:{x 0,y -100,z 0,a 0,b 0, c 0}) C_DIS ; Bewegung in Bezug aufs Tool
    LIN ({x 0,y 0,z 200,a 0,b 0, c -175}:pActPos1) C_DIS ; Bewegung in Bezug aufs Base


    Gruß


    Sven

    Wer nichts macht, macht keine Fehler!

    Wer keine Fehler macht, kann nichts daraus lernen!

    Wer nichts lernen kann, kann sich nicht weiterentwickeln!

    Wer sich nicht entwickelt, geht unter!

  • :gutidee:


    ok, so passts auch :D


    wobei halt! nicht ganz. die c -175 passen so nicht. er soll ja nicht von seinem jetzigen punkt um -175 drehen.

    „Welten, regiert von künstlichen Intelligenzen,<br />mußten oftmals ihre schmerzlichen Erfahrungen machen.<br />Logik kennt keine Gefühle.“

    Einmal editiert, zuletzt von Anubis ()

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