Eulerwinkel und Orientierung

  • Hallo allerseits,
    ich hab mal ne Frage an die Kundigen:
    Kann es vielleicht sein, dass die Sache mit den Eulerwinkeln durch die Verwendung von tool und base/ world koordinatensystemen kommt? also quasi durch die Überlagerung...
    oder ist das so eine Kuka festlegung?
    Hätte man das nicht auch umgehen können, in dem man zb Z als Stoßrichtung im Tool-System vereinbart und dann ganz normal im Worldkoordinatensystem die Winkel um XYz angiebt?
    dankesehr,
    Mfg der Roland

  • Schritt für Schritt zum Roboterprofi!
  • welche "Sache" mit den Eulerwinkel meinst du denn?
    Auf Eulerwinkel wirst du meines Wissens bei den meisten Roboterhersteller stoßen, mit all den Vorteilen und Nachteilen die diese mit sich bringen.

  • hmm, achso, die ham das nur von euler geklaut:)
    aber was sollen die Vorteile der eulerwinkelsache sein? man spart ja nicht einen parameter zur beschreibung oder sowas, kann mir da keinen vorteil ausmahlen..
    der nachteil ist wohl, dass man sich das nicht gut vorstellen kann..
    wenn ich ein prog schreib um den robo vom rechner aus zu steuern und möchte was bauen, damit der user schön die ori eingeben kann, dann ist das sehr von nachteil, weil dann zb A nicht immer um die Z-achse zu drehen scheint...
    schönes wochenende..

  • hä?


    A ist (beim KUKA immer) die Rotation um Z
    Wenn Das bei Dir nicht so ist, dann gibts drei Möglichkeiten warum:


      • Die Mathematik (Im Sinne von Naturgesetz) wurde verändert

      • Dein Roboter lügt

      • Du fährst im falschen Koordinatensystem


    1 und 2 halte ich für weniger wahrscheinlich. Ich würde mal zuerst die Möglichkeit 3 genauer betrachten...

    Wolfram (Cat) Henkel

    never forget Asimov's Laws at the programming of robots...

    "Safety is an integral part of function. No safety, no production. I don't buy a car without brakes."


    Messages und Mails mit Anfragen wie "Wie geht das..." werden nicht beantwortet.

    Diese Fragen und die Antworten interessieren jeden hier im Forum.


    Messages and Mails with questions like "how to do..." will not be answered.

    These questions and the answers are interesting for everyone here in the forum.

  • ;) ach manoe..
    durch die eulerwinkel-sache wird ja alles rumgedreht...wenn ich um y gedreht hab, dann ist A nichtmehr die rot um Z...
    aber wo die advantages of euler winkel liegen sollen weißich nicht..
    grüße..

  • Naja, mit eulerwinkeln lässt sich die Rotation recht einfach beschreiben und (gefährliches Halbwissen) möglicherweise auch einfacher berechnen als beispielsweise mit Quaternions.


    Un A ist im mathematischen Sinne schon noch die Rotation um Z, allerdings wenn du den Roboter einfach per externem System nur um A drehen lässt, dann fehlt Dir die restliche Drehung noch. (Also ROT_B und ROT_C)

  • Genau. Immer die ganze Kette begucken.
    Drehungen nacheinander mitdenken und schon passts....


    Hilfen: Rechte-Hand-Regel...

    Wolfram (Cat) Henkel

    never forget Asimov's Laws at the programming of robots...

    "Safety is an integral part of function. No safety, no production. I don't buy a car without brakes."


    Messages und Mails mit Anfragen wie "Wie geht das..." werden nicht beantwortet.

    Diese Fragen und die Antworten interessieren jeden hier im Forum.


    Messages and Mails with questions like "how to do..." will not be answered.

    These questions and the answers are interesting for everyone here in the forum.

  • haben hier ja schon einige bemerkt, A bleibt immer dia Rotation um z.


    Ich vermute mal eher, Du meinst das sich eine Orientierung im Raum mit verschiedenen Rotationsmatrizen darstellen laesst.
    Es gibt 6 Notationen, wobei sich je zwei nur in den Vorzeichen untersscheiden. Bin aber kein Experte fuer sowas...

  • Ich vermute eher, Kleinstar denkt zu zweidimensional und betrachtet seine BASE-Koordinaten IMMER als XY-Ebene parallel zur XY-Ebene des Roboters. Das muss bei Anfängern erst einmal "klick" machen, ehe sie wirklich begreifen, dass die Orientierungen beliebig sein dürfen.
    Vorschlag an Kleinstar, zur Veranschaulichung: schmeiss irgendwas in die Zelle und darauf eine Platte, kreuz und quer und schräg, und nimm irgendeinen verbogenen Draht als Tool am Flansch. Dann damit auf der Platte ein Base einmessen, und anschließend das Ganze nochmal, aber mit der Platte anders liegend (anders schräg im Raum) und den Draht anders gebogen. Dann geht Dir irgendwann auf, dass Du ALLE 2 * 3 Winkel brauchst.

  • Ja, das wäre vielleicht schon mal Aufschlussreich, aber das Problem ist einfach, wenn er dem Roboter sagt, drehe dein Tool 90° um A, dann verändert sich die Lage auch in B/C, wenn er die Kette nicht komplett durchrechnet.

  • Wolfram (Cat) Henkel

    never forget Asimov's Laws at the programming of robots...

    "Safety is an integral part of function. No safety, no production. I don't buy a car without brakes."


    Messages und Mails mit Anfragen wie "Wie geht das..." werden nicht beantwortet.

    Diese Fragen und die Antworten interessieren jeden hier im Forum.


    Messages and Mails with questions like "how to do..." will not be answered.

    These questions and the answers are interesting for everyone here in the forum.

  • Erster Beitrag und gleich ein Besserwisserkind, naja vielleicht kann ich ja doch helfen:


    Zitat

    aber was sollen die Vorteile der eulerwinkelsache sein? man spart ja nicht einen parameter zur beschreibung oder sowas, kann mir da keinen vorteil ausmahlen..
    der nachteil ist wohl, dass man sich das nicht gut vorstellen kann..


    Eben nicht, im Vergleich zu anderen Parametrisierungen von Orientierungen ist das praktische Arbeiten mit Eulerwinkeln ziemlich intuitiv. Von der Theorie ist die Achse/Winkel-Parametrisierung vielleicht einleuchtender, aber probier mal praktisch mit der Achse/Winkel-Parametrisierung oder Quaternionen ein Tool auszurichten.


    Zitat

    wenn ich ein prog schreib um den robo vom rechner aus zu steuern und möchte was bauen, damit der user schön die ori eingeben kann, dann ist das sehr von nachteil, weil dann zb A nicht immer um die Z-achse zu drehen scheint...


    Meinst Du mit der Z-Achse, die raumfeste Z-Achse eines unbeweglichen Koordinatensystems (World, Base, RobRoot ...) oder die Z-Achse eines mitbewegten Koordinatensystems (z.B. Flansch, Tool, ...)?


    Die Eulerwinkel sind so ein bisschen heimtückisch, denn man kann sie verschieden interpretieren. Die KUKA-ABC-Winkel werden meist als Eulerwinkel in der Drehfolge Z-Y-X um mitrotierende Achsen in aktiver Darstellung erklärt (google nach "Euler Angles" oder "Tait-Bryan-Angles"). Mitrotierende Achsen kannst Du Dir vorstellen, wenn Du Dir die unten folgenden Drehungen des Flansches vorstellst. Flansch-Koordinatensystem (in der Doku Flange-Koordinatensystem) und World-Koordinatensystem sollen dabei anfangs gleich ausgerichtet sein. Bei dieser Orientierung zeigt Z-Flansch nach oben, d.h. die Flanschfläche ist parallel zum Boden ausgerichtet:


    1. Drehung des Flansches um Z-Achse des Flansch-Koordinatensystems mit Winkel A
    2. Drehung des Flansches um die Y'-Achse des jetzt einmal um Z mitrotierten Flansch-Koordinatensystems mit Winkel B
    3. Drehung des Flansches um X''-Achse des jetzt einmal um Z und anschließend um Y' mitrotierten Flansch-Koordinatensystems mit Winkel C


    Die KUKA-ABC-Winkel kann man auch als Eulerwinkel in der Drehfolge X-Y-Z um raumfeste Achsen in aktiver Darstellung deuten (google nach "Fixed Angles", sei etwas vorsichtig mit Begriffen wie "roll-pitch-yaw"). Feste Achsen kannst Du Dir vorstellen, wenn Du Dir die Drehungen des Flansches folgend vorstellst. Flansch-Koordinatensystem und World-Koordinatensystem sollen dabei anfangs wieder gleich ausgerichtet sein:


    1. Drehung des Flansches um X-Achse des raumfesten, also nicht bewegten World-Koordinatensystems mit Winkel C
    2. Drehung des Flansches um Y-Achse des raumfesten, also nicht bewegten World-Koordinatensystems mit Winkel B
    3. Drehung des Flansches um Z-Achse des raumfesten, also nicht bewegten World-Koordinatensystems mit Winkel A


    Es ist etwas überraschend, dass bei beiden der oben beschriebenen Wege, am Schluss die selbe Flanschorientierung herauskommt, obwohl die beiden Wege tatsächlich unterschiedlich sind. Probiers einfach aus.


    Vielleicht hilft auch Google Books: Handbook of Robotics von Bruno Siciliano und Oussama Khatib noch weiter.


    ciao Puck


    p.s.: Beitrag nochmal editiert, hoffe meine Aussagen werden dadurch etwas klarer.


    p.p.s: Die Singularität der KUKA-ABC-Winkel tritt bei B = +/-90° auf, also nicht wundern, wenn in der mech. Nullstellung (z.B. nach der EMT-Justage) seltsame Werte für A und C angezeigt werden.

    Einmal editiert, zuletzt von puck ()

  • Hallo, Dankeschön für die Erklärungen,
    hab mal in dem Buch über die Drehmatritzen gelesen..und langsam dämmerts..
    aus den drei Grundlegenden Drehmatritzen multiplizier ich in der Richtigen Reihenfolge eine Matritze, welche ich dann mit nem vektor multiplizieren kann und meinen neuen Rotierten Vektor rausbekomme.
    Mein Problem ist noch:
    - ich hab doch vom Robo drei Winkel, aus diesen muss ich ja einen, oder gar 2 Vektoren machen (weil ein Vekt reicht ja nicht aus, weil die drehung um ihn selbst nicht erfasst ist), welche ich dann mit der Gesammt-Drehmatrix multipliziere...dafür muss ich eine funktion schreiben, mit der ich winkel zu vektor machen kann..
    -der Gimbal Lock, kann ich den wegprogrammieren indem ich zb Winkel von 0gad zu 0,000000001grad mache?


    das ziel soll auf jeden fall sein, dass der Benutzer immer fest die drehung um x,y,z angeben kann und sich keine Eulerwinkel vorstellen muss...
    Grüße


  • - ich hab doch vom Robo drei Winkel, aus diesen muss ich ja einen, oder gar 2 Vektoren machen (weil ein Vekt reicht ja nicht aus, weil die drehung um ihn selbst nicht erfasst ist), welche ich dann mit der Gesammt-Drehmatrix multipliziere...dafür muss ich eine funktion schreiben, mit der ich winkel zu vektor machen kann..


    Ist schon etwas länger her bei mir, aber ich glaube du suchst das hier: http://kos.informatik.uni-osna…wnload/diplom/node26.html
    Da ist beschrieben wie du die Eulerwinkel einsetzt um die Rotationsmatrix zu bekommen.

  • Ähhmmmm,... haben die Quaternion wirklich etwas damit zu tun? Ich habe dashier gerade bei Wikipedia nachgelesen:
    "Die Quaternionen entstehen aus den reellen Zahlen durch Hinzufügung dreier neuer Zahlen i, j und k. So ergibt sich in Analogie zu den Komplexen Zahlen ein vierdimensionales Zahlensystem mit einem eindimensionalen Realteil und einem dreidimensionalen Imaginärteil, der auch Vektoranteil genannt wird."


    Ich würde sagen Quaternion sind eine weitere Darstellungsform neben der Rotationsmatrix.

  • ja das stimmt soweit, hab ich auch gelesen und das man damit den gimbal lock verhindern kann..das sind mehrdeutigkeiten die bei eulerwinkeln entstehen, wenn bestimmte drehachsen sich überschneiden..
    ach ja, das ist schon alles furchtbar
    um von den roboter - euler - winkeln zu kommen, seh ich das so:
    - eine rotationsmatrix aus den drei elementaren matritzen zusammenmultiplizieren
    - diese gesamtmatrix beschreibt nun die drehun, mit dieser lassen sich vektoren in ein neues koord. drehen
    - dann 3 Vektoren der koordinatenachsen mit der gesammt- rot- matrix um die angezeigten eulerwinkel drehen..
    - dann die 3 entstandenen vektoren nutzen um die winkel im neuen koord.sys auszurechnen..das sind dann die festen winkel?


    sieht das jemand genauso:)?
    nur wie zurücktransformieren in eulerwinkel, muss ich nochmal überlegen...
    das dauert alles, eh sich das im magen gesetzt hat..
    grüße


  • - eine rotationsmatrix aus den drei elementaren matritzen zusammenmultiplizieren
    - diese gesamtmatrix beschreibt nun die drehun, mit dieser lassen sich vektoren in ein neues koord. drehen


    Ich würde sagen: Ja.



    - dann 3 Vektoren der koordinatenachsen mit der gesammt- rot- matrix um die angezeigten eulerwinkel drehen..
    - dann die 3 entstandenen vektoren nutzen um die winkel im neuen koord.sys auszurechnen..das sind dann die festen winkel?


    Das verstehe ich nicht ganz. Nach deinen ersten zwei Schritten hast du ja eine Matrix die dir die Orientierung deines neuen Koordinatensystems beschreibt. Was willst du nun machen?





    nur wie zurücktransformieren in eulerwinkel, muss ich nochmal überlegen...


    Bei der Formel von "R" siehst du ja oben rechts, dass da ein einzelnes "-sin(Teta y)" steht. Damit hast du schonmal "A". Dann kannst du durch einsetzen in "cos(Teta y)*cos(Teta z)" und "cos(Teta x)*cos(Teta y)" die anderen beiden Winkel ausrechnen.

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