Vektor umrechnen in Winkel

  • Guten Tag


    Ich stehe grad voll auf dem Schlauch. Und zwar habe ich einen Punkt im Raum beschrieben durch erstens translatorische Werte X,Y und Z und zweitens einem Vektor x,y,z. Wie kann ich dies nun umrechnen in Stäubli-Konforme Winkel? Stäubli verwendet ja die intrinsische Drehung x,y',z''. Ich denke es müsste doch mit den Transformationsmatrizen gehen z.B. hier"Eulersche Winkel – Wikipedia"? Aber mir fehlen ja gerade diese Winkel? Kann mir jemand auf die Sprünge helfen?


    Danke und Gruss

  • ANZEIGE
  • Sven Weyer

    Hat das Thema freigeschaltet.
  • Was du willst sind Rotationsmatrizen in diesem Fall. Damit kannst du das Problem lösen. Natürlich musst du dann nach den Winkeln auflösen. Die Formeln hab ich bei mir rumliegen, kann ich dir bei Gelegenheit mal hier posten.

  • Also ich gehe mal davon aus, dass Stäubli ZYX Euler-Winkel hat. Falls das nicht der Fall ist, gilt diese Lösung nicht.


    Erstmal müsstest du für deinen Vektor festlegen, welche Achse des Koordinatensystems dieser repräsentieren soll (meistens Z). Den normalisierst du, dann brauchst du noch 2 Vektoren die X und Y repräsentieren, entweder wählst du die frei( beachte dass diese nach rechter Hand-Regel gewählt werden) oder legst einen fest, woraus sich der andere automatisch berechnet.


    Jetzt hast du ein Koordinatensystem mit 3 Einheitsvektoren. Diese bilden eine 3x3 Matrix (X,Y,Z) = R.


    Die Winkel berechnen sich nun folgendermaßen:



    Z-Winkel = arctan2(R21,R11)

    Y-Winkel = arcsin(-R31)

    X-Winkel = arctan2(R32,R33)

  • Danke EricH für deine Antwort


    Ich habe ein Dokument gefunden wo das schön beschrieben ist:

    Euler Angle Formulas (geometrictools.com)


    Dort wird bei der Formel (4) Ru(theta) berechnet. Entspricht das deinen Ausführungen für die Festlegung der Achsen auf eine elegante Art?:


    Zitat von EricH

    Erstmal müsstest du für deinen Vektor festlegen, welche Achse des Koordinatensystems dieser repräsentieren soll (meistens Z). Den normalisierst du, dann brauchst du noch 2 Vektoren die X und Y repräsentieren, entweder wählst du die frei( beachte dass diese nach rechter Hand-Regel gewählt werden) oder legst einen fest, woraus sich der andere automatisch berechnet.

    1) Bei der Formel (4) ist mir allerdings nicht klar was theta sein soll. Ist das der Winkel der Ebene welche der gewählte Z-Vektor aufspannt? Und wenn ja wie berechnet sich der?


    2) Entspricht dann "Ru(theta)" von der Formel (4) der Matrix "R = [rij]" bei Formel (6)?


    3) Beim Abschnitt 2.6 wird die Reihenfolge Rz,Ry,Rx behandelt wie du sie vorgeschlagen hast. (Stäubli verwendet zwar Rx,Ry,Rz). Dort kommen sie allerdings auf andere Formeln als du, weisst du warum?

    pasted-from-clipboard.png

  • Theta ist der Winkel, welcher in der Rotationsmatrix eingegeben wird. Also in dem Fall die Drehung um die Achse der Rotationsmatrix.


    Dieses RU ist eine spezielle Rotation um eine benutzerdefinierte Achse. Hat mit deinem Problem eigentlich nix zu tun.


    Nochmal zum Verständis, die 3 Rotationsmatrizen sind jeweils für die Rotation einmal um X, einmal um Y und einmal um Z. Du willst ja die Berechnung Rückwärts. Also nach Theta auflösen.

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