Drehrichtung bei feststehendem Werkzeug

  • Hallo,


    Dieses Wochenende habe ich zum ersten Mal mit einem feststehenden Werkzeug "gearbeitet". Und da habe ich eine Frage zur Drehrichtung. :kopfkratz:


    Als Tool habe ich das Werkstück angegeben, als Base das Werkzeug.


    Im DAT File
    DECL FRAME BaseTool={X 7.28,Y 1572.8,Z 656.96,A -75.0,B 30.0,C 0.0}
    DECL FRAME ToolPiece={X -250.0,Y -500.0,Z 520.0,A 90.0,B 0.0,C 180.0}


    Im SRC File
    $TOOL=ToolPiece
    $BASE=BaseTool
    $IPO_MODE=#TCP


    Wenn ich nun PTP $NULLFRAME anfahre, stimmen die Koordinatensysteme Tool und Base überein. Wenn ich anschließend manuell den Roboter verfahre (z.B. im Toolkoordinatensystem, das entspricht ja dann dem Koordinatensystems des Werkstücks), ist die X,Y,Z Richtung korrekt (so wie definiert). Nur wenn ich Rotationen ausübe, so sind die genau verkehrt herum. :nocheck:


    Beispiel: A+, ich würde eine Rotation um die Z-Achse gemäß der rechten Hand Regel erwarten (Daumen in Z-Richtung, Drehung in Richtung der Finger). Aber so ist es, wenn ich A- drücke.


    Also meine Frage: Ist das normal, oder habe ich etwas Grundlegendes nicht verstanden?



    Viele Grüße,
    Tilman/Frankreich



    PS :


    1) Wenn jemand von der Firma Kuka hier vorbeischaut... es ist schon erstaunlich, daß im Menü "Vermessen/Feststehendes Werkzeug" sowohl "Werkstück" als auch "Werkzeug" mit "Outil" übersetzt ist.


    2) Zum besseren Verständnis, anbei ein Video der Konfiguration.


    http://www.youtube.com/watch?v=B-vMvDlLEe0


    [edit 20/02/2011]Tooldaten korrigiert. Da hatte ich noch nicht die Drehung um 15° mit einberechnet, was jedoch die ursprüngliche Fragestellung nicht ändert.[/edit]

    Einmal editiert, zuletzt von Tilman ()

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



    Das wundert mich schon sehr, daß keiner die Antwort auf meine Frage kennt... Wahrscheinlich habe ich mich krumm ausgedrückt. Also noch einmal:


    Tool und Werkstück wie im Video, man befindet sich hinter dem Tool (auf der positiven Y-Achse in Roboter-Koordinaten), Blick Richtung Roboter. Das Werkstück ist direkt vor dem Tool, man sieht die dem Greifer abgewandte Seite. Die Z-Achse des Tools ist die Stoßrichtung, x nach unten, y nach links, die Z-Achse des Werkstücks ist in derselben Richtung wie die Stoßrichtung des Tools (B=0 und C=0).


    Im Menü wähle ich Konfiguration –> Setze Werkzeug/Basis und wähle BASE und TOOL wie oben beschrieben. Das Werkzeug wird als extern deklariert.


    Zum manuellen Verfahren wähle ich jetzt das Base-Koordinatensystem. Dann drücke ich die Taste A+.


    Nun die Frage:


    1) Welche Bewegung führt dann das Werkstück aus: Drehung im Uhrzeigersinn, oder gegen den Uhrzeigersinn? Und warum?


    2) Ich würde das auch gerne nachlesen, habe allerdings nur sehr wenig über externe Werkzeuge in der Dokumentation gefunden (eine einzige Seite in "Programmierung Experte".) Gibt es da weiterführende Dokumente?


    3) Mich würde zum Beispiel interessieren, was die Variable $IPO_MODE so alles bewirkt. Im Anhang steht, es wäre der "Interpolationsart Vorlauf". Damit kann ich gar nichts anfangen.



    Viele Grüße,
    Tilman

  • Hallo Stethi,



    Vielen Dank für Deine Antwort. Rumprobiert, das habe ich schon...


    Aber wenn ich gerade Punkte "teache", und leider das Werkzeug kaputt geht, wenn ich in die falsche Richtung fahre... dann würde ich einfach gerne vorher wissen, was der Roboter macht, wenn ich auf einen Knopf drücke. Und merken kann ich mir das am besten, wenn ich verstehe, warum das so ist.


    Der zweite Grund meiner Frage war natürlich zu wissen, ob ich den Roboter richtig parametriert habe. Da habe ich ziemlich rumgeraten, weil mir eine richtige Dokumentation über #TCP fehlt. Wenn Ihr mir schreibt: <<aus Erfahrung dreht das Werkstück im Urzeigersinn, wenn man A+ ausführt>>, dann kann ich daraus schließen - da ja bei mir das Gegenteil passiert - daß ich noch ziemlich im Dunkeln tappe.



    Tilman

  • Naja,normal programmiert man ja auch nicht,wenn man mit falschen Tool- oder Basewerten arbeitet.


    Meine Anregung ging ja dahin, dass du mal mit den Vorzeichen spielst und so auf deine richtige Drehrichtung kommst.Denn meine Erfahrung ist auch,dass sich +A im Uhrzeigersinn dreht. Wenn ich eine Base- oder Toolvermessung frei Schnauze mache, spiele ich solamge mit den Vorzeichen rum,bis es passt. Oder wenn ich aus einer Simulation Werte bekomme und die Stoßrichtung oder Drehwinkel nicht passen,ich vermesse mir das Werkzeug oder die Base einfach provisorisch und schaue mir die Werte an und übertrage mir die Vorzeichen.

  • Zitat


    Naja,normal programmiert man ja auch nicht,wenn man mit falschen Tool- oder Basewerten arbeitet.


    Sind die denn falsch? Programmiere ich unnormal? :P :kopfkratz:


    Das Werkzeug seht ihr ja im Video, das Werkstück hat sein Koordinatensystem oben links in der Ecke (wenn man beim Start von vorne drauf guckt), X-Achse nach rechts, Y-Achse nach unten, Z-Achse in das Werkstück hinein.

    Einmal editiert, zuletzt von Tilman ()

  • Hello NoTime,


    Just a little time for an answer. :)


    Zunächst vielen Danke für Deinen Tipp.

    Zitat


    Bei feststehenden Werkzeugen muss auf $TOOL die Base des Werkstückes und auf $BASE die Tooldaten des Werkzeuges geschrieben werden.


    Aber guck Dir doch mal die Daten an!

    Code
    DECL FRAME BaseTool={X 7.28,Y 1572.8,Z 656.96,A -75.0,B 30.0,C 0.0}
    DECL FRAME ToolPiece={X -250.0,Y -500.0,Z 520.0,A 90.0,B 0.0,C 180.0}


    Das Werkzeug ist, wie beschrieben, auf der positiven Achse des Roboter-Koordinatensystems. BaseTool beschreibt das Koordinatensystem dieses Werkzeugs. Um die Sache ein bißchen interessanter zu machen :wallbash:, habe ich das Tool um 30° geknickt (B 30), und dann noch um 15° gedreht (bzgl. der Z-Achse von $WORLD -> A -75).


    Und das Werkstück ist ein Block mit den Abmessungen 1000x500x500, die Arme des Greifers sind 20mm dick. ToolPiece beschreibt das Koordinatensystem des Ursprungs (linke, obere Ecke).


    Also, meine Deklaration

    Code
    $TOOL=ToolPiece
    $BASE=BaseTool

    ist doch absolut korrekt! Oder? Überzeugt?


    Aber was mich wirklich interessiert. Nach PTP $NULLFRAME, muss da A+ eine Rotation in Uhrzeigersinn geben, wie ich gestern auch noch gedacht habe, oder gegen den Uhrzeigersinn? Und WARUM? :denk:



    Tilman

    Einmal editiert, zuletzt von Tilman ()

  • Tilman


    Wo ich mein erstes externes Werkzeug, ich weis scho nich mer was es war, Kleber Brenner egal was in der Hand hatte, ist mir das selbe aufgefallen.
    Z+ sollte nach oben gehen, tuts aber nicht.


    Man kann nu nachforschen, oder aber das als Gesetzmässigkeit akzeptieren das
    Externe Werkzeuge sich andersrum bewegen.


    Z+ nach unten .... geht NORMALERWEISE gar nicht.
    Z+ wenn ich drück, dann fahr ich weg vom Teil, vom Bocen egal was.


    Die Mathematik die da dahintersteckt ist eigentlich gar nich soo schwer.
    Doch welche Firma will Geld für nen Kurs für Geometrie bezahlen.
    Schwerpunkt: Quaternions, MAT_TO_RPY Trafos oder zurück....
    Das ist doch total unwichtig.


    Meines erachtens sollte jeder angehende Roboterprogrammierer mit Leitfaden... d.h.
    mit Unterricht und Lernansporn sich mindestens 12 Wochen mit Transformationen und dem drumherum rumärgern und das lernen.


    Ich kenn aber keine Firma die solche Kurse anbietet oder solche Kurse bezahlt.


    Doof.
    Richtig doof.


    Da bleibt dann noch der Wiki, der ist gut.
    Eine gewisse akzeptanz des nichtwissens... hab das auch erst Jahre später kapiert warum Z+ nach unten geht und nicht nach oben.
    Konnte es aber überleben... das nichtwissen warum... denn ich wusste ja...
    es geht auch andersrum...
    bei Externen Werkzeugen.


    Warum.... besucht nen Kurs. 12 Wochen lang... dann bleibt keine Frage offen...


    Vielleicht net bei KUKA... gibt noch and're Lehrer....
    Da Wolf, der Werner und seine Crew,... auf jeden Fall net bei KUKA. Zu Teuer, zu wenig Info.

  • Hallo Robotnik,



    Vielen Dank, bin ich also nicht der erste, dem das auffällt. Scheint also normal zu sein – wenn ich Dich richtig verstehe – daß der Roboter sich genau in die andere Richtung bewegt.


    Zitat


    Warum.... besucht nen Kurs. 12 Wochen lang... dann bleibt keine Frage offen...

    Guter Tipp, aber soviel Zeit habe ich leider nicht.... und, ich bin überzeugter Autodidakt. Davon mal abgesehen, und hier gebe ich Deiner sonst etwas emotionalen Kritik an Kuka recht: Solche Fragen müssen in der offiziellen Dokumentation behandelt werden, die dem Roboter beim Kauf beigefügt ist. Ansonsten ist ein sicheres Benutzen des Roboters nicht gewährleistet. :down:


    Ich habe in der Zwischenzeit viel ausprobiert, gelesen, und kann mir das Phänomen erklären. Auf die Idee hat mich dieser Beitrag von Prestorianer gebracht, besten Dank dafür! :applaus:



    Also: Mode #BASE, Werkzeug ist am Roboter


    Es wird das Werkzeug bewegt. Wie die Reaktion des Roboters auf einen Tastendruck bei manuellen Verfahren reagiert, hängt vom gewählten Koordinatensystem ab.


    Z.B. bei BASE: X+ = Bewegung des Tools in Richtung X des Base-Koordinatensystems
    A+ = Rotieren, gemäß der rechten Hand Regel, um die Z-Achse des Base-Koordinatensystems.


    Falls TOOL oder WORLD als Koordinatensystem gewählt wird, dann wird das Tool entsprechend den hier festgelegten Richtungen bewegt.



    Soweit, so gut. Jetzt Mode #TCP, also externes Werkzeug.


    Kuka erklärt (die Reichweite dieses Satzes habe ich auf Anhieb verstanden :globiit::(

    Zitat


    Da nun Werkstück und Werkzeug ihre Position getauscht haben, die Bewegung aber weiter bezüglich des Werkstücks erfolgen soll, muß die Interpolation der Bewegungsbahn jetzt über das $TOOL- Koordinatensystem erfolgen.

    Alles klar?


    Die Bewegung soll also weiter bezüglich des Werkstücks erfolgen. Das Werkstück und das Werkzeug dürfen also gar nicht mitbekommen, daß sie ihre Rolle vertauscht haben.


    Nichts einfacher als das, auch in diesem Mode bewegt man das TOOL!!! Das geht natürlich nicht, es steht ja fest, also wird halt das Werkstück genau in die andere Richtung bewegt.


    Beispiel: manuelles Verfahren, $BASE-Koordinatensystem angewählt (welches ja die Position und die Richtung des Tools beschreibt).


    X+ : das Tool bewegt sich in positive X-Richtung. Da es ja aber auf dem Boden festgenagelt ist, wird einfach vom Roboterarm das Werkstück in die andere Richtung bewegt.


    A+: das Tool dreht sich gemäß der rechten Hand Regel um die Z-Achse. Bedeutet, daß sich das Werkstück genau umgekehrt herum bewegt.


    Oder um auf Dein Beispiel, Robotnik, zurückzukommen. Z+ im WORLD-Koordinatensystem. Das Tool "fährt nach oben", das Werkstück also nach unten. Gar nicht so schwierig zu verstehen :mrgreen:.


    Abschließende Anmerkungen:


    1) Ich kann mit diesem Erklärungsversuch leben.
    2) Es ist scheinbar richtig, wenn sich - wie in der Ausgangsfrage beschrieben wurde - das Werkstück gegen den Uhrzeigersinn bewegt.
    3) Eine ausführlichere Dokumentation zu diesem Thema täte gut. Warum auch nicht ein Dokument, welches die internen Berechnungen beschreibt. Mir würde das helfen!
    4) Falls ich mit diesem Beitrag total daneben liege, bitte ich um Aufklärung.



    Viele Grüße,
    Tilman

    Einmal editiert, zuletzt von Tilman ()

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