Winkelkorrektur beim Absetzen (Palettierroboter)

  • Schritt für Schritt zum Roboterprofi!
  • Ich versteh das Problem immer noch nicht, glaube ich.

    - Der Bediener hat ein Koordinatensystem im Kopp, um das er drehen möchte. Dies ist zwar in der Position richtig, aber nicht in der Orientierung, denn im Kopp des Bedieners ist es global?

    - Der Bediener möchte das anpassen, aber eben nicht toolbezogen? Toolbezogen wäre aber nötig, um Greiferfehler auszugleichen. Aber egal, er will das global ausgleichen?


    Man rechne also die Korrektur darauf, wo man sie haben möchte. Angenommen, man wolle sie gegen die Vernunft jetzt tatsächlich "global" ausgleichen, dann rechnet man eben in mehreren Schritten und macht Lage und Orientierung unabhängig voneinander und schiebt die Korrektur dazwischen:


    {xpos,ypos,zpos,0,0,0}: //Position (ohne Orientierung) im Base

    {0,0,0,akorr,bkorr,ckorr}: // globale Winkelkorrektur

    {0,0,0,apos,bpos,cpos} //und hier dann die Orientierung des Zielpunktes hinten drauf auf die Korrektur.


    Wenn man dann noch jedes Zwischenergebnis in eine eigene Variable sichert und nicht nur, weil es cool ist, in einer Zeile rechnet, dann sieht man step by step, was man da macht und kann sogar probehalber hinfahren.


    Oder was?

  • Hallo Programmiersklave,

    ja im Prinzip hast du Recht mit deiner Beschreibung: ich möchte um den TCP drehen aber eben in dem Koordinatensystem der Base. Das ist nämlich das was der Bediener noch halbwegs verstehen kann. Ich kann ihm nicht erklären, dass das TCP mal so und mal so orientiert ist für unterschiedliche Setzpositionen mit verschiedenen Winkelwerten.
    Es wurden ja jetzt 2 Vorschläge genannt die ich sobald ich kann mal testen werde letzterer wäre ja dann auch dein Vorschlag (nur nicht so ausführlich), nämlich dass ich Hilfs-Frames bastle.

    Stelle ich mir momentan so vor:

    Setzpos_x1 = {x Setzpos.X, y Setzpos.Y, z Setzpos.Z, 0, 0, 0} : {0, 0, 0, a Korr.A, b Korr.B, c Korr.C}

    Setzpos_x2 = Setzpos_x1 : {0, 0, 0, a Setzpos.A, b Setzpos.B, c Setzpos.C}

    LIN Setzpos_x2



    Für Setpos_x1 werden die Drehungen auch in der "richtigen" Orientierung ausgeführt weil ich das $Tool so angelegt habe dass es für 0-Winkelorientierung genau zur Base orientiert ist...
    Und die beiden geom. Operatoren verstehe ich momentan als zwei "hintereinander" ausgeführte Drehungen und sind nich gleichzusetzen mit einer Addition der Werte oder ?
    Also nicht:
    Setzpos_x2 = {x Setzpos.X, y Setzpos.Y, z Setzpos.Z, a Setzpos.A+Korr.A, b Setzpos.B+Korr.B, c Setzpos.C+Korr.C}


    Oder wie bei den anderen Kommentaren angedeutet (also mittels geom. Op auf der linken Seite oder ansatzweise die Idee mit der Vektorberechnung aber da muss ja noch ein Zwischenschritt passieren. Danke schonmal jedenfalls ich glaube ich komme zum Ziel :thumbup: ;)

  • Setzpos_x1 = {x Setzpos.X, y Setzpos.Y, z Setzpos.Z, 0, 0, 0} : {0, 0, 0, a Korr.A, b Korr.B, c Korr.C}

    Setzpos_x2 = Setzpos_x1 : {0, 0, 0, a Setzpos.A, b Setzpos.B, c Setzpos.C}

    LIN Setzpos_x2

    Habe ich gar nicht mehr getestet.. (führt evtl. auch zum Ziel)

    Um das vorherige Wirr-Warr etwas aufzuklären:
    Also was ich wollte ist die Drehung des Tools (TCP) gemäß den Winkeln der aktuellen Base..

    Bin jetzt zum Ziel gekommen:


    Code
    mk_setzpos = setzpos
    setzpos = winkelkorrektur:setzpos
    setzpos.x = mk_setzpos.x
    setzpos.y = mk_setzpos.y
    setzpos.z = mk_setzpos.z


    der geometrische Operator auf der linken Seite führt zum Ziel!! Denn der dreht das Frame gemäss den Base Koordinatenachsen so wie ich das möchte.. Musste jedoch beachten, dass dabei die Translationen der Setzpositionen entsprechend manipuliert werden. Deshalb hier in Zeile 3-5 nochmal das rücksetzen auf die alten Translationswerte.. :dance:

    Grüsse,

    Robin

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