Orientierungsloser Robi

  • Hiho zusammen.


    Mein Robi verwirrt mich im Moment mit seiner Orientierung.



    Ich probiere gerade ein wenig mit dem Orientierungsverhalten meines Robis rum (KR 30 L16 mit KR C2)


    z.B.:


    LIN {a 0,b 90,c 0} ;Hier "schaut" meine Schweißpistole senkrecht nach unten
    LIN {a 0,b 90,c -90} ;Hier dreht sich die Pistole um die Z-Achse??? Drehung um X Achse erwartet
    LIN {a 90,b 90, c 0} ;Hier bewegt sich der Robi nicht, die Orientierung scheint identisch zu sein.


    Bisher habe ich immer gemeint, in kartesischen Koordinaten bewirken die Achsen a,b,c folgendes:


    a --> Drehung um Z-Achse
    b --> Drehung um Y-Achse
    c --> Drehung um X-Achse


    Wenn ich von LIN{a 0,b 90,c 0} ausgehend von Hand den Winkel C Verfahre, dann dreht sich das Tool um die X Achse. Bei der LIN Bewegung allerdings dreht er sich um die Z-Achse und macht exakt die gleiche Bewegung wie bei Drehung um Winkel a.


    :nocheck:
    Versteh ich nicht, in meinen Augen sind die Orientierungen {a 0,b 90,c -90} und {a 90,b90,c 0} nicht gleich...
    Bin ich da in einen Spezialfall geraten, bei dem dann noch s bzw. t Wert gesetzt werden müssten???

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

    Zitat

    Versteh ich nicht, in meinen Augen sind die Orientierungen {a 0,b 90,c -90} und {a 90,b90,c 0} nicht gleich...
    Bin ich da in einen Spezialfall geraten, bei dem dann noch s bzw. t Wert gesetzt werden müssten???


    Hab mir gerade die rechte Hand gebrochen, und komme zu dem Ergebnis, dass die beiden Drehungen identisch
    sind.

    Zitat

    a --> Drehung um Z-Achse
    b --> Drehung um Y-Achse
    c --> Drehung um X-Achse


    sollte eher heissen:
    a --> Drehung um Z-Achse
    b --> Drehung um die um a gedrehte Y-Achse
    c --> Drehung um die um a und b gedrehte X-Achse



    Hermann

  • Ochje, hoffe dein Arm erholt sich schnell wieder ;)


    Mein Problem ist an der Stelle


    LIN {a 0,b 90,c 0}
    LIN {a 0,b 90,c -90}


    Von der ersten auf die zweite Bewegung müsste doch eine Drehung erfolgen. Laut meiner Vorstellung von Winkel c müsste diese Drehung um die X Achse sein. Wenn ich von Hand C in negativer Richtung Drehe kommt auch genau die Drehung, die ich erwarte. Wenn ich aber LIN {c -90} mache kommt die gleiche Drehung wie wenn ich LIN {a 90} machen würde?
    Warum ist da ein Unterschied zwischen Handfahren und T2 Programmfahrt? :denk: :kopfkratz:




    Auffällig sind auch die eingeblendeten Istwerte der Koordinaten.


    Während des Drehvorgangs springt der C Wert auf -100er Werte (von 0 aus).
    Sobald ich die Bewegung anhalte springt der C Wert zurück auf z.B. -24.
    Der Wert a ist IMMER GENAU 0.000000, das passt doch nicht...

    Einmal editiert, zuletzt von Eagle ()

  • Ich glaube wenn du deinen Roboter von Hand verfährst mach du das im TOOL-Koordinatensystem.
    Wenn du aber "LIN {a 0,b 90,c 0}" abfähst wird dein Tool um diese Winkel im BASE-Koordinatensystem gedreht.

    Kontrolle ist eine Illusion, denn niemand weiss was als nächstes passiert.

    Einmal editiert, zuletzt von notime ()

  • Hm könnte sein, erklärt aber nicht, warum die bei b=90 die Beziehung a=-c gilt...
    Egal zu welcher Basis ich die Bewegungen durchführe, a, b und c sind doch immer senkrecht aufeinander und somit ist a=-c in meinen Augen unmöglich. Dann wären ja X-Achse und Z-Achse identisch!?!

  • Zitat


    Hm könnte sein, erklärt aber nicht, warum die bei b=90 die Beziehung a=-c gilt...
    ...
    a=-c in meinen Augen unmöglich. Dann wären ja X-Achse und Z-Achse identisch!?!


    jetzt hast Du es quasi schon selber erklärt:
    bei A 0, B 90, C -90 wird nämlich mit der Drehung um die Y-Achse die X-Achse parallel zur Ausgangslage der Z-Achse gedreht, nur zeigt die X-Achse dann in die engegengesetzte Richtung als die Z-Achse vorher.
    Wie schon vorher gesagt es wird immer um die gedrehten Achsen weitergedreht, daher ist die Reihenfolge der
    Drehungen entscheidend (zuerst Z dann die gedrehte Y dann die gedrehte X). Wird dann um die X-Achse gedreht
    entsteht quasi die selbe Drehung wie um die ALTE Z-Achse, nur in die andere Richtung.


    Dass eine Stellung durch unterschiedliche Drehungen dargestellt werden können ist DER entscheidende Nachteil
    der Eulerwinkel-Darstellung (daher werden immer öfter Quaternionen verwendet, weiss nicht ob Kuka die evtl.
    intern sogar verwendet). Bei der Anzeige der Winkel muss der Programmierer sich halt auf eine Drehung festlegen,
    daher kommen die Sprünge in der Anzeige, normalerweise werden da irgendwelche Kriterien wie z.Bsp. Winkel A zwischen -90 und +90 Grad (oder etwas ähnliches) angewandt. Die anderen Winkel ergeben sich dann daraus.
    Liegt jetzt der massgebliche Winkel (hier A) genau an einer Grenze, dann können die Winkel halt hin- und
    herspringen.


    Hermann
    PS: Es geht auch ohne Arm brechen, bieg' Dir aus einer Büroklammer ein Dreibein und spiel mal damit rum, da wird
    einiges klarer.

    Einmal editiert, zuletzt von Hermann ()

  • Zitat


    Wie schon vorher gesagt es wird immer um die gedrehten Achsen weitergedreht, daher ist die Reihenfolge der Drehungen entscheidend (zuerst Z dann die gedrehte Y dann die gedrehte X). Wird dann um die X-Achse gedreht entsteht quasi die selbe Drehung wie um die ALTE Z-Achse, nur in die andere Richtung.


    Hier liegt genau mein Problem... Die Reihenfolge ist in diesem Moment nicht mehr entscheidend...


    LIN {a 0,b 90,c 0} ;Ausgangsposition
    > LIN {c -90} ==> Drehung um alte Z-Achse


    oder


    LIN {a 0,b 90,c 0} ;Ausgangsposition
    > LIN {a 90} ==> Drehung um alte Z-Achse


    liefern das gleiche Ergebnis. Aus der Position mit a=0, b=90, c=90 kann ich mit einer LIN Bewegung keine Rotation um die alte X-Achse (neue Z Achse)erzeugen.
    Reihenfolge: b=90 dreht das Koordinatensystem um y. x-Achse schaut jetzt also quasi nach unten. Wenn ich jetzt im Winkel a ODER c fahre, dann dreht sich beidemale das Tool um die alte Z-Achse (neue X-Achse). Wieder Winkel b dreht das Tool auch wieder um die alte und neue Y-Achse. Weder a noch b noch c ergeben eine Drehung um die alte X Achse (neue Z-Achse). Nach b=90 liegen X- und Z-Achse parallel. Ich habe kein Dreibein mehr...


    Ist das korrekt? Wenn ich dich richtig verstehe, dann bleibt die Z-Achse immer konstant, aber X- und Y-Achse können sich verändern? Dann wäre es ja tatsächlich unmöglich aus einer Ausgangsposition wie A=0, B=90, C=0 oder A=0, B=-90, C=0 das Tool um die originale X-Achse zu drehen. Irgendwie schmeckt mir das garnicht.

    Einmal editiert, zuletzt von Eagle ()

  • Hallo Eagle,


    ob das Verhalten nun schön ist oder nicht, es lässt sich bei der Darstellung von Orientierungen über Eulerwinkel leider nicht vermeiden. Konkret passiert das bei der KUKA-Konvention von ZYX-Eulerwinkeln immer für den Wert B ungefähr 90°. Dort fallen dann rein mathematisch Z und X-Achse aufeinander und nur noch die Summe von A und C ist eindeutig definiert. Du kannst ja mal in Wikipedia nach Eulerwinkel, Eulersingularität oder Gimbal Lock suchen.


    Einzige Abhilfe wären hier wie Herrmann schon sagt Quaternionen oder 3x3-Rotationsmatrizen zu verwenden. Quaternionen sind aber in ihrer Darstellung deutlich schwieriger handzuhaben und Rotationsmatrizen, die KUKA übrigens intern zur Darstellung der Orientierung verwendet, durch die notwendige Angabe von 9 Werte unpraktikabel.


    Fazit: Die auch für nicht-Cracks einfach interpretierbare Darstellung über ZYX-Eulerwinkel funktioniert gut splange man von B=90° weg bleibt.


    Gruß
    Fubini

  • Ok danke.
    Dachte halt es wäre ein Fehler, dass 2 Achsen zusammenfallen hierbei, weil ich bisher gedacht habe, dass alle 3 Achsen verdreht werden... Naja, werde deinem Ratschlag mal folgen und dann muss ich die Position mal anders anfahren.


    :roll:

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