Flansch senkrecht zu WORLD?

  • Moin Forum,


    habe ein mathematisches Problem bei der Umsetzung einer Rückzugsstrategie.


    Ich möchte erkennen, ob sich der Flansch senkrecht zum Boden (Weltkoordinatensystem) befindet (z.B. in einem Kegel mit 90° Öffnungswinkel).
    Das muss über die Abfrage der Orientierungswinkel B und C von $POS_ACT lösbar sein, aber deren Vorzeichen machen mir im Moment noch das Leben schwer.


    Freue mich auf gute Ratschläge...
    :merci:

    Es grüßt<br /><br />der Nils

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



    Das muss über die Abfrage der Orientierungswinkel B und C


    im allgemeinen Fall ist das etwas komplizierter, du musst wie hier beschrieben
    http://www.roboterforum.de/rob…erator/msg13660/#msg13660
    die Position in Matrixdarstellung bringen.


    Die drei oberen Elemente der dritten Spalte bilden einen Einheitsvektor, der in die Richtung der Z-Achse der Position zeigt.


    Mit dieser Formel
    http://www.mathe-online.at/mat…kel_zwischen_vektoren.htm
    und dem entsprechenden Vektor des Koordinatensystems erhältst du deinen Winkel.


    Vielleicht hat der Kuka da schon was fertiges ...


    Grüße


    Urmel

    Einmal editiert, zuletzt von Urmel ()

  • Etwas einfacher ist vielleicht dieser Ansatz, habe ihn aber nicht getestet:


    frame p1,p2
    real dx,dy,dz,winkel


    ; vektor 1 aus p1 und p2
    p1=$base:$pos_act:inv_pos($tool)
    p2=p1:{x 0,y 0,z 1000,a 0,b 0,c 0}
    dx=p2.x-p1.x
    dy=p2.y-p1.y
    dz=p2.z-p1.z


    ;vektor 2: x=y=0,z=1000 (willkürlich)
    winkel=acos( (dz*1000) / (sqrt((dx*dx)+(dy*dy)+(dz*dz))*1000) )


    Gruß


    Berrad


  • Ich möchte erkennen, ob sich der Flansch senkrecht zum Boden (Weltkoordinatensystem) befindet ...


    Das muss über die Abfrage der Orientierungswinkel B und C von $POS_ACT lösbar sein, aber deren Vorzeichen machen mir im Moment noch das Leben schwer.


    Hallo ROBOter_Nils,


    so auf die Schnelle würde ich tippen, dass Du Dich genau in Singularität der KUKA-ABC-Winkel befindest (B = 90°) und die Vorzeichen deshalb etwas "seltsame" Werte haben. Wenn Du aus den KUKA-ABC-Winkel eine Orientierungsmatrix berechnest (siehe KUE_WEG.SRC), dann kannst Du dieses Problem umgehen.


    Bye
    Puck

  • Vielen Dank für Eure Beiträge!!!


    Habe das jetzt ähnlich wie Berrad gelöst:
    =============================


    frame p1,p2
    real dx,dy,dz,winkel


    $BASE=$NULLFRAME
    $TOOL=$NULLFRAME


    p1=$pos_act
    p2=p1:{x 0,y 0,z 1000,a 0,b 0,c 0}
    dx=p2.x-p1.x
    dy=p2.y-p1.y
    dz=p2.z-p1.z


    winkel=abs(acos(dz/(sqrt((dx*dx)+(dy*dy)+(dz*dz))))-180)


    ==========================================


    Habe alle möglichen Positionen getestet, Winkel wird ordnungsgemäß bestimmt. *FREU*

    Es grüßt<br /><br />der Nils

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