Sind Quaternionen eindeutig?

  • Guten Tag zusammen,


    da ich hier neu bin erstmal ein nettes Hallo in die gesamte Runde. Ich bin von dem Forum hier sehr angetan, weil man beim lesen merkt das sich hier kompetente Leute finden und diese auch nett miteinander umgehen können (ohne diese ganzen Spielchen wie flamewars und persönlichen Angriffen oder dergleichen). :supi:


    Nun zu meinem Problem:
    Ich habe einen ABB "bekommen", der elektrisch und softwaremäsig in eine Anlage integriert ist und uns vom Hersteller so hingestellt wurde. Seit diesem Zeitpunkt und bis zu der Übergabe an mich ist viel passiert und gemacht worden an den Programmen, da er in eine Versuchsanlage integriert ist. Ich soll mich nun mal detailierter damit auseinandersetzen und auch verlorenes Wissen wieder herstellen. Dabei habe ich gemerkt das alle Progs nur mit einem tool funktionieren. Bei allen anderen tools kann er die Positionen nicht anfahren weil das Koordinatensystem im TCP so verdreht wurde das er die quasi "von hinten" anfahren will und diesen Punkt nicht erreichen kann. Ich habe mir dann erstmal die tooldata vorgenommen und gesehen das das eine tool anders definiert ist (q-Werte).
    Allerdings liefert mir das Orient-Tool das diese Werte keine Drehung ergeben sondern die Achsen auf sich selbst abbilden.
    Mit dem WINXYZ-Tool habe ich durch probieren herausgefunden das sich die gleichen Werte erreichen lassen wenn eine Drehung um y mit -90° ausgeführt wird.


    Damit kommen wir zu meiner Vermutung und Frage: Ist es möglich das die Quaternionen nicht eindeutig sind? Hatte vielleicht schon einmal jemand ähnliche Probleme?


    Da beide Soft-Tools (Orient und WINXYZ) vorgeben von ABB zu sein gehe ich davon aus das beide die Umrechnung in der jeweils richtigen Reihenfolge machen weil die Richtigkeit und Umkehrbarkeit auf jeden Fall davon abhängen. Oder liegt mein Fehler etwa in dieser Annahme?


    Grüße
    Patrick

    System: Abb IRB4600/2.55-40 M2004; IRC5; RW 5.14_01.00.1032; RS 5.14.01 SP1

  • ANZEIGE
  • Prinzipiell sind Quarternions gemauso eindeutig wie Eulerwinkel. Was nicht eindeutig ist, ist die Bewegung wie Du da hin kommst. Einfaches Beispiel: Wenn Du die Toolverdrehung um z um 180° ändern willst, geht das um +180 und -180. Das Endergebnis ist das Gleiche und auch eindeutig.


    Wenn jetzt in Deinem Programm alle Positionen mit einem, ich sag mal ungeschickt, definierten Tool geteacht sind und Du dann versuchst mit einem "normalen" Tool da hin zu fahren, dann passiert das was Du beschrieben hast. Der Roboter versucht seinen neuen TCP genau so hin zu stellen, wie den alten.


    Es gibt da jetzt zwei Möglichkeiten: Alle Positionen neu teachen oder das neue Tool so definieren wie das alte.


    Gruß
    Stromer

  • Hm.... ok.


    Danke erstmal für die schnelle Antwort.


    Das der Weg unterschiedlich sein kann ist klar. Was mir aber noch zu denken gibt ist dass das Ergebnis der einen Funktion aussagt, das die Achsen doch auf sich selbst abgebildet sind. Da in Quaternionen der Weg quasi enthalten ist (Berechnungsreihenfolge der einzelnen Achsen) würde es ja dann bedeuten, das beim teachen eine komplette Rotation des Koordinatensystems bis zum Ursprungszustand vorgenommen wurde (denkbar über mehrere Teilverschiebungen in unterschiedlichen KOS hintereinander?) und diese Information gespeichert ist.
    Oder es liegt doch an der Berechnungsfunktion....


    Das tool war in der Tat gelinde gesagt "ungeschickt" definiert und noch ein paar andere Sachen. Da wurde die ganze Zeit nur erfolgreich drumherum getrickst. Ich werde vermutlich alles neu teachen, weil es danach konsistent und vor allem auch verständlich ist, aber vorher kann ich ja noch ein wenig probieren....


    Grüße
    Patrick

    System: Abb IRB4600/2.55-40 M2004; IRC5; RW 5.14_01.00.1032; RS 5.14.01 SP1

  • Hallo Patrick,


    vielleicht liegt auch ein Denkfehler vor. Zumindest hab ich noch nicht verstanden, was zu mit "auf sich selbst abgebildet" meinst.
    Die Qarternions im Tool beschreiben die Verdrehung zwischen Deinem Tool und dem Tool0 und die Q's im Robtarget beschreiben die Verdrehung zwischen Tool und Welt bzw. Tool und Werkobjekt. Wenn Du z.B. Achse 1, 4 und 6 auf 0 stellst und dann den Flansch parallel zum Boden stellst, dann hast Du im Robtarget 0,0,1,0. Dreht man die Z-Richtung des Tools um 180° hat man wieder 1,0,0,0, dafür steht dann im Tool 0,0,1,0.


    Gruß
    Stromer

  • Hallo Stromer,


    ich habe gerade einen groben Schnitzer entdeckt! Aber der Reihe nach:
    - "auf sich selbst abbilden" heißt in der Mathematik das eine Achse nach einer Umformung wieder da aus kommt wo sie vorher war.d.h.: x´=x usw.


    - weiter gab es evtl. noch ein Missverständnis was mir so aufgefallen ist beim lesen: Mit "tool" (kleingeschrieben) meine ich ein Werkzeug (entspr. RAPID-Code). Mit "Tool" (großgeschrieben) habe ich die kleinen Softwarehilfen zu den Quaternionen, WINXYZ, Orient usw gemeint.


    - Und der Hauptgrund warum ich so verwirrt war (ich gebe ja zu, dass es auch in meinen Augen inkonsistent war) ist ,dass das Softwareprogramm "Orient" als Windowstool falsche bzw keine passenden Werte und noch dazu keine Fehlermeldung ausgibt. Mein Fehler war die Quaternionen mit einem Komma statt einem Punkt als Dezimalzahlen einzugeben. Wenn man das macht gibt Orient die Einheitsmatrix {1,0,0|0,1,0|0,0,1}, bzw drei mal den Winkel 0° aus, was falsch ist.....


    Inzwischen nutze ich den Frame_Converter und zumindest die Mathematik passt wieder. Beim Rest happerts noch ein wenig, aber ich denke das liegt daran das die Steuerung die Daten nicht direkt aktualisiert (oder ich vergesse das zu tun..).


    Vielen Dank das du dich meinem Problem angenommen hast. Manchmal sind es halt die kleinen Dinge im Leben.....


    Viele Grüße
    Patrick

    System: Abb IRB4600/2.55-40 M2004; IRC5; RW 5.14_01.00.1032; RS 5.14.01 SP1

Hilfe und Support für ABB Roboter Programmierung, Konfiguration, Inbetriebnahme finden Sie hier im ABB Roboter Forum. ABB Rapid Programmierung ist einfach, die Roboterforum Community hilft sehr gerne.

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