Beiträge von R2D2

    Hallo Matu,


    Du kannst es auch so machen:


    WAIT FOR ($SEN_PREA_C[1]>ConvDist)


    In der Variablen ConvDist kannst du fest legen wie lange du mit Conveyor mit fährst.
    z.B. 500mm
    d.h. wenn die aktuelle Conveyor distanz größer ist, wird das Programm fortgesetzt. Der Robi fährt währen der wartezeit mit dem Conveyor mit.


    Bei uns hat es so funktioniert.


    Gruß R2D2

    Hallo Jung,


    Ich habe es geschaft und eine Excel Tabelle Erstellt in der man die Transformation berechnen kann.


    Das einzige was ich noch nicht ganz vestehe ist dass ich bei der Funktion ARCTAN2 die Parameter vertauschen muss zb. arctan2(sin_C;soc_C) muss bei mir arctan2(cos_C;sin_C) sein, damit die Werte Stimmem :denk:.


    hat vielleich einer von euch eine Idee woran es leigen kann??


    die Datei habe ich mit angehängt.


    und danke noch mal für eure Hilfe.


    Gruß R2D2

    Bei meiner Berechung orientiere ich mich an das Programm KUE_WEG.
    und dort wird es mit der arctan2 funktion gemacht also kass es nicht so falsch sein.
    nur es funktioniert Leider nicht.


    Gruß
    R2D2

    :danke: erstmal.


    Also wie das so aussieht mache ich eigentlich alles richtig, aber ich bekomme bei der berechnung der A,B,C winkeln kommische ergebnise.
    Meine Vorgehnsweise:
    Ich habe die 2 Frames, für diese 2 Frames erzeuge ich jeweils eine Rotationsmatrix
    RNG=Rot(z,A)*Rot(y,B)*Rot(x,A).
    dann wird jeweils eine Homogene 4X4 Matrix erzeugt, die Beiden so erhaltenen Matrizen werden mit einander Multipliziert, als ergebnis bekomme ich natürch wieder eine Homogene 4X4 Matrix. Nun kann ich die Werte X=(1,4) Y=(2,4) Z=(3,4) Ablesen, soweit so gut.


    Um nun auf die Winkel zu kommen muss ich der Orthogonale 3X3 Matrix Transponieren.
    und Anschließend über die arctan2 funktion die Winkel bestimmen. das kalppt aber nicht.


    was mache ich falsch?? :hilfe:

    Morgen Jungs,


    ich hoffe ihr könnt mir helfen.


    was passiert eigentlich in diesem Programm:
    DEF INV_ORI_MAT (O[,])
    ; Invertieren der orthogonalen 3x3-Orientierungsmatrix durch Transponieren


    REAL O[,]


    REAL TAUSCH
    INT I, J


    FOR I=1 TO 3
    FOR J=I+1 TO 3
    TAUSCH = O[I,J]
    O[I,J] = O[J,I]
    O[J,I] = TAUSCH
    ENDFOR
    ENDFOR


    END


    Habe ich das richtig verstanden, das eine 3X3-Matrix transponiert wird?


    ABC ADG
    DEF =>BEH
    GHI CFK


    Mehr passiert dort nicht, oder??


    Gruß

    Hallo Jungs,


    ich habe da eine Frage bezüglich der Berechnung. ich will für eine studienarbeit die Funktionalität des operators, anhand der Basistransformation beschreiben. habe aber folgendes problem.


    1. die RNG-matrix habe ich rausbekommen
    2.durch die multiplikation der beiden matrizen bekomme ich die X,Y,Z werte ziemlich genau raus.


    jetzt zu meinem Problem:


    wie kann ich jetzt die winkel ABC der neuen Basis rausbekommen?


    danke.
    Gruß Alex

    Danke erstmal für eure schnelle Hilfe. :danke:


    also ist es möglich in echtzeit die position des werkstückes auszugeben. soweit ganz gut.
    es müsste dann ja auch möglich sein einen bestimmten offset davon abzuziehen, damit ich die 2te seite des Werkstückes beabeiten kann. Die Länge des werkstückes wird mir durch eine Kammeramessung übergeben, wie bereits beschrieben die Länge kann Variieren.
    Dann weis ich ja nachdem die erste seite bearbeitet wurde, wo sich die 2te Seite dannach befindet, oder????

    Hallo Leute,


    bin ein Neuling auf dem Roboter Gebiet. und habe ein paar Fragen bezüglich eines Conveyor Betriebes.
    1. ich muss ein ca.2m langes Werkstück im fleißbetrieb bearbeiten, die Synchronisierung erfolgt über ConveyorTech, mittels eines Trigger Signals. Ich bearbeite zuerst die 1te Seite, das Problem ist dass ich kurzeitig aus dem Conveyor Betrieb raus muss um mir die notwendigen teile zur Bearbeitung der zweiten Seite holen muss, und anschließend erfolg die Bearbeitung an der 2te Seite. So wie ich verstanden habe ist das kein Problem, denn die Synchronisierung läuft im Hintergrund weiter. Ich weis aber nicht wo genau das Ende ist, denn die Länge kann variieren

    Meine Frage ist jetzt:


    Kann ich mir den Istposition des Werkstückes durch irgendeine Variable Ausgeben??
    Die Synchronisierung erfolgt durch einen Resolver.


    2. kann mir jemand vielleicht folgenden Zeilen erklären?


    TOOL_DATA[1] = TOOL_DATA[11]:TOOL_OFF[1]
    BASE_DATA[1] = BASE_DATA[11]:BASE_OFF[1 ]



    Vielen Dank in Voraus.