Workobject im Programm definieren

  • Hallo Gemeinde,


    bin zur Zeit bei einer Inbetrienahme und stehe etwas auf dem Schlauch.


    Steuerung ist eine IRC5 mit Robotware 6.13.


    Es geht um eine Anwedung zum Kleber auftragen. Die Düse ist feststehend und das Werkstück im Greifer.

    Es ist ein externer TCP für fie Düse eingerichtet. Das Workobejct ist mit hilfe von drei Punkten über das Menü definiert worden.


    Jetzt würde ich gerne eine Service Routine schreiben, dass der Roboter diese Punkte anfährt und der Bediener entsprechend korrigieren kann.


    Das anfahren der Punkte und entsprechendes Menü funktioniert.


    Was ich aber nicht hin bekomme, ist das neu definieren mit dem Befehl "DefFrame". Ich bekomme nicht die Werte vom uframe wie sie übers Menü definiert werden.


    Irgenwie habe ich das Gefühl ich teache die Punkte mit dem Falschen Tool oder sowas. MIr ist einfach nicht ganz klar worauf sich das Workobject, was ja am Robter ist, bezieht.


    Vielleicht hat von euch jemand eine Idee was ich falsch mache...


    Wünsche einen schönen 1.Mai!

  • ANZEIGE
  • Vermutlich fährst Du die Punkte an im Wobj "wobjFra_Top" und Tool "[externer TCP]", korrigierst dann auch darin. Das ist ja dann nur eine additive Verschiebung, deshalb liegen die Werte nahe bei 0.

    Idealerweise ist das dann ein OFrame, bzw. lässt sich über PoseMult einfach aus den Ausgangsframe draufrechnen und ergibt dann den neuen Frame. Ein zusätzlicher Rechenschritt könnte Dein Problem also eigentlich schon lösen.


    Die Robtargets, welche Du oben zitierst hast, können sich eigentlich nicht auf den Flansch beziehen, dazu sind sie im "praktischen Alltag" zu nahe am Flansch. Ich gehe davon aus, dass sie erst NACH der Ur-Vermessung definiert wurden und sich eigentlich auf das benutzte WObj beziehen sollten.

    Selbiges hängt ja in einigem Abstand ziemlich schräg am Flansch.

    Falls Du den Frame wirklich von Grund auf neu definieren willst, musst Du die Punkte im Werkobjekt "Flansch" einmessen bzw. ein solches neu anlegen ( [0.0000,0.0000,0.0000],[1.000000000,0.000000000,0.000000000,0.000000000]) , oder eben in dem Koordinatensystem, was unterhalb von wobjFra_Top liegt.

    Falls die Daten in Deinem Beitrag stimmen, wäre das vermutl. folgende Koordinaten:

    Code
    x1:=[-299.9677,-97.2785,280.3210],[-0.345334379,0.000517954,0.938478280,-0.001554434]
    x2:=[-300.0467,92.7988,281.3762],[-0.345331726,0.000517121,0.938479260,-0.001552616]
    y:=[-391.3723,-52.5576,358.3174],[-0.345332390,0.000517538,0.938479014,-0.001553522]

    Grüße,

    Michael

  • Hallo Michael,


    danke für deine Antwort.


    Dann liegt mein fehler darin das ich beim einrichten (teachen) der Werkobjekte schon falsch vorgegangen bin.

    Das Problem ist, dass man als Tool den externen TCP auswählt diesen aber nicht mit einem Tool0 oder Greifer anfahren kann. Man muss dieses mit einem Werkobjekt machen. Da ich nur mein "wobjFra_Top" hatte, habe ich dieses benutzt.

    Wenn ich dich richtig verstanden habe, muss ich ein Werkobjekt definiere, was der Roboter hält, mit "wobjTool0" mit "0" werten oder ein "wobjGripper" mit den TCP koordinaten vom Greifer und dann neu einrichten.


    Ich werde es wohl erstmal mit dem neu berechen versuchen. Schauen was dort für ein Ergebniss raus kommen oder ein oFrame nutzen....


    Doof ist, wenn ich das "wobjFra_Top" neu einrichte, muss ich alle Punkte neu teachen. Das sind so ca. 140.... ;( und ich habe noch ein zweites Werkobjekt mit dem selben Fehler :rolleyes:


    Gruß

    Frank

  • Hallo Frank,


    nee, das "wobjFra_Top" würde ich lassen, wo es jetzt ist. Auch die Vergleichs/Korrektur-Operation kannst Du so lassen, das mit der Verwendung im OFrame müsste problemlos klappen. Genau dafür ist der ja da.

    Was ich nur vermeiden würde, ist eine Rekursion - wenn Du das UFrame neu berechnest, und dann wieder bei der nächsten Korrektur das korrigierte Koordinatensystem als Grundlage benutzt. Das geht, führt aber zu Verwirrungen, und bringt den Bediener, der das am Ende machen soll, in die Verzweiflung, denn einmal aus Versehen falsch geteacht macht das Start-Koordinatensystem völlig unbrauchbar.

    Ich würde VOR der jeweiligen Korrektur-Routine den OFrame erst einmal wieder nullen, so dass wieder die Ur-Situation zum Messen benutzt wird und jedesmal sauber angefangen wird.


    Klar, wenn man irgendwie von "Null" anfängt, muss man sich die entsprechenden Koordinatensysteme erst einmal selbst basteln. Etwas wie ein "WobjTool0" ist immer ganz brauchbar. Auch den externen TCP an sich hast Du ja irgendwie vermessen - möglicherweise wieder mit einer Meßspitze am Flansch (da noch als echtes Tool, welches ein Werkobjekt einmisst), und dann hinterher den Frame kopiert.


    Grüße,

    Michael

  • Hallo Michael,


    habe mein Programm jetzt so abgeändert, dass nur das OFrame neu berechnet wird.

    Damit funktioniert es so wie ich es mir vorgestellt habe.


    Danke für deine Hilfe und das Erklären der Zusammenhänge. Wieder etwas schlauer geworden.


    Gruß

    Frank

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