Tool korrigieren bei nicht vermessenem Tool

  • Hallo


    Ausgangssituation:
    Ein Roboter mit Wechselsystem. Der Greifer der angedockt wird hat 3 Werkstückgreifer ~120° im kreis angeordnet. Im Roboter sind 3 Tools dafür vorhanden die allerdings nicht vermessen wurden sondern nur mit den Maßen von Hand eingegeben wurden. Mechanisch also nicht passen. Der gesamte Ablauf ist damit geteacht wurden.


    Problem:
    Es wurde ein neuer Greifer gebaut der als Ersatz für den alten Dient falls mal was schief geht. Der neue Greifer ist baugleich hat aber minimalste Abweichungen was die Positionen angeht. Die Abweichungen sind nicht nur linear sondern auch in der Orientierung (Greifer Grundkörper ist geschweist). Leider muss der Roboter recht genau fahren was eine Korrektur der Tools unumgänglich macht. Der Kunde wünscht das der Greifer vermessen und getestet wird und z.B. über eine Variable einfach aktiviert werden kann (simple if abfrage).


    Frage:
    Wie kann man am besten die Werte des neuen Tools herausbekommen? Der alte Greifer funktioniert noch tadellos könnte also als Muster genommen werden.
    Überlegt hatte ich mir den alten Greifer zu vermessen dann irgendwie die Korrektur zum alten TCP zu berechnen der ja nicht vermessen wurde, dann den neuen Greifer zu vermessen und dort die Korrektur wieder drauf zu rechnen.
    Geht soetwas? wenn ja wie (die Rechnerei)?


    Ich bedanke mich schon einmal für alle Lösungsvorschläge/Ansätze


    PS: KRC 5.3 - 6 Achs Roboter 250kg Traglast


    Mfg Eistee

    Einmal editiert, zuletzt von Eistee ()

  • Schritt für Schritt zum Roboterprofi!
  • .... das ist natürlich ärgerlich, allerdings müsstest du ja eigentlich auch 3 Tools einmessen, wenn ich dich richtig verstanden habe!!


    Ich könnte mir vorstellen den Ursprungsgreifer auf ne Messmaschine zu nehmen, den an den relevanten Punkten zu messen - das gleiche mit dem zweiten Greifer machen - die Differenz bezogen auf den Ursprung der Hand als Korrekturwert für den zweiten Greifer nehmen !!

    Die Abnahme von GOTO Anweisungen verhält sich reziprok zur Qualität einer Programmierung

  • Hallo Eistee,


    Es gibt ja schon interessante Aufgaben :-> Ein neues Tool extra falsch vermessen, so daß die vorher gerteachten Punkte (mit einem ungenau, von der Hand konfigurierten Tool) dann aber noch richtig angefahren werden. Toll :supi:


    Meine erste Idee: XYZ-Referenz Methode. Da wird ein Punkt im Raum mit dem alten Werkzeug vermessen. Der Robi denkt, daß er so die Koordinaten von dem Punkt genau kennt. Dann wird das neue Werkzeug eingesetzt und derselbe Punkt angefahren (aus irgendeiner Richtung). Da der Robi die Koordinaten des Flansches kennt, berechnet er so die XYZ Ausdehnung des neuen Tools. Die berechnet er natürlich falsch... aber wenn er jetzt diese Position anfährt, ist das Werkzeug ja dort wo es hingehört.


    Anschließen müßte dann noch die Orientierung neu kalibriert werden (ABC-2 Punkt?)


    Ist aber wirklich nur eine Idee. Habe ich noch nie ausprobiert und wird wohl auch nicht zur Nachahmung empfohlen...


    Tilman

    Einmal editiert, zuletzt von Tilman ()

  • Frage: sind die 3 Tools rotationssymmetrisch? Also sind es z.B. 3 Düsen oder sowas?

    Wolfram (Cat) Henkel

    never forget Asimov's Laws at the programming of robots...

    "Safety is an integral part of function. No safety, no production. I don't buy a car without brakes."


    Messages und Mails mit Anfragen wie "Wie geht das..." werden nicht beantwortet.

    Diese Fragen und die Antworten interessieren jeden hier im Forum.


    Messages and Mails with questions like "how to do..." will not be answered.

    These questions and the answers are interesting for everyone here in the forum.

  • Im Prinzip ist es, glaube ich, gar nicht so kompliziert.
    Man fährt mit dem alten Greifer einen physikalisch exakt bestimmten Punkt an. Für das, was man dann tut, muss man allerdings die Koordinatensysteme mit Bedacht wählen.
    Ich würde jetzt
    -den neuen Greifer an den Flansch hängen
    -das alte TOOL aktivieren
    -$BASE=NULLFRAME
    -einen fixen Punkt (incl. Orientierung, also 3 Auflagepunkte!) damit anfahren
    -den Punkt teachen
    -den erhaltenen Frame nach BASE_DATA[16] kopieren
    -ein neues Programm schreiben mit einem Punkt, der BASE_DATA[16] als EXTERNES TOOL verwendet, das (alte) TOOL als flanschmontiertes BASE und $IPO_MODE=#TCP
    -zur Kontrolle dort hinfahren: die Position müsste jetzt ein Nullframe sein.
    -dann den alten Greifer montieren
    -und denselben physikalischen Punkt in obigem Programm teachen.
    Das Ergebnis sollte ein FRAME sein, den Du mit dem Doppelpunkt-Operator auf das alte Tool anwenden kannst, um das neue auszurechnen.
    (Über die Reihenfolge der Greifer bin ich gerade nicht ganz sicher...)


    Natürlich geht das auch per Hand, immer geometrisch verknüpfen und invertieren, online gibt es dafür sogar ein Tool, habe ich mal gefunden... wo war das noch... ah, hier:
    http://www.soft-designer.de/WebCalcVector/invert.jsp


    Grüße,
    Michael


  • Frage: sind die 3 Tools rotationssymmetrisch? Also sind es z.B. 3 Düsen oder sowas?


    Nein es sind Werkstückgreifer die unsymetrisch sind. Also die Position und Orientierung müssen passen bzw. genauso schief im Raum liegen wie bei dem alten Greifer.

  • Tja... Ich wüsste, was Dir hilft. Aber das Ding ist nicht umsonst.


    Frag mal Uli Wiest, hier im Forum oder über Google zu finden. Dem sein laserLAB löst Dein Problem problemlos.

    Wolfram (Cat) Henkel

    never forget Asimov's Laws at the programming of robots...

    "Safety is an integral part of function. No safety, no production. I don't buy a car without brakes."


    Messages und Mails mit Anfragen wie "Wie geht das..." werden nicht beantwortet.

    Diese Fragen und die Antworten interessieren jeden hier im Forum.


    Messages and Mails with questions like "how to do..." will not be answered.

    These questions and the answers are interesting for everyone here in the forum.

  • Hallo,


    also ich hätte auch noch ein Vorschlag. Ich weiß nicht wie viele Punkte du ändern musst
    aber wenns nur ca. 50Stk. sind dann geht das wohl schon noch. Aber nach meiner
    Meinung sollte man so früh wie möglich in den sauren Apfel beißen und klar Schiff machen.


    Vorgehensweise:
    1)Datensicherung
    2)Alten Greifer genau vermessen und auf z.b. Tool_data[16] speichern.
    3)Programm normal im T2 ablaufen lassen bis du an einen Teachpunkt kommst
    4)nun per "Konfiguration->Basis/Tool wechseln" auf die akt. Basis und Tool 16 wechseln
    5)nun diesen Punkt neu teachen
    6)nun per "Konfiguration->Basis/Tool wechseln" auf die akt. Basis und dein altes Tool wechseln
    7)Schritt 3) bis 6) wiederholen bis alle Punkte neu geteacht sind
    8)nun dein altes Tool_data[x] durch Tool_data[16] ersetzen und du hast ein Lupenreines Programm
    welches aus die nächsten Jahre keine Missverständisse auf wirft


    Anschließend kannst du alle vermessenen Greifer einbauen ohne nochmals mit Problemen zu kämpfen.



    Gruß
    Twister

    Kleinere Wunder werden sofort erledigt... größere nach der Mittagspause...

  • Hallo,


    Wenn ich das richtig verstehe sollte das eigentlich nicht schwierig sein:


    Sei


    at alter falscher Toolvektor
    ag alter gemessener Toolvektor
    d Fehler zwischen dem aktuellen Programm und dem eigentlichen
    Toolvektor d = at - ag


    Gesucht ist ein neuer Toolvektor (nt) so, dass der Fehler zwischen dem neuen
    Toolvektor und dem eigentlich gemessenen neuen Toolvektor (ng) gleicht
    dem alten Fehler (d) ist.


    also es muss gelten: d = nt - ng
    nt = d + ng


    mit d = at - ag ergibt sich: nt = at - ag + ng



    Also:


    1) alten Toolvektor notieren (x1,y1,z1,a1,b1,c1)
    2) altes Werkzeug drauf, genau vermessen;
    Ergebnis notieren (x2,y2,z2,a2,b2,c2)
    3) neues Werkzeug drauf, genau vermessen;
    Ergebnis notieren (x3,y3,z3,a3,b3,c3)
    4) neuen Toolvektor ausrechnen (x4,y4,z4,a4,b4,c4)
    und eingeben
    5) freuen weil die alte Bahn jetzt mit dem neuen Werkzeug
    abgefahren wird


    Übrigens ist x4 = x1 - x2 + x3 und entsprechend y4 = y1 - y2 + y3 usw. ....


    Siehe Skizze.


    Ich hoffe das war jetzt halbwegs verständlich.


    Viele Grüße
    Flo

  • Eistee


    Wenn wir genau wüßten, was Du berechnen willst, so könnten wir Dir sicher mit der Mathematik helfen. Ich habe auch noch eine Frage zu der Aufgabe: Sind im augenblicklichen Programm eigentlich für die 3 Werkzeuge, die auf dem Greifer sind, die Tooldaten eingegeben worden? Beziehen sich diese Tooldaten auf das Gesamtsystem: also Greifer + Werkstückgreifer + Werkzeug?


    frist


    Ähnlich, wahrscheinlich sogar identisch, war auch meine Idee. Nur daß das ohne Rechnerei gehen sollte. Bei der XYZ-Referenzmethode wird ja zunächst ein Punkt mit einem bekannten Tool angefahren. So kennt der Roboter die Koordinaten dieses Punktes, nennen wir die mal KP. Wenn man nun das neue Tool einspannt und denselben Punkt anfährt, so berechnet der Roboter automatisch die neuen Tooldaten als Differenz zwischen der neuen Flanschposition und KP. Konsequenz ist: schreibt man nun in einem Bewegungsprogramm, daß KP angefahren werden soll, so klappt das, selbst wenn das vorherige Tool bereits falsch vermessen war.


    Eistee


    Hast Du das eigentlich mal probiert :?:, oder ist dieser Ansatz abwegig. Wenn ja, warum?

    Einmal editiert, zuletzt von Tilman ()

  • Hallo Tilman,
    ja, dein Vorschlag dürfte auf's gleiche hinauslaufen. Ich kenne mich nur mit den verschiedenen Teachmethoden nicht aus. Und man darf wohl die Orientierung des Werkzeugs nicht vergessen, ein Punkt reicht also (wie Du auch schreibst) nicht aus. Ich weiß allerdings gar nicht, wie man die Werkzeugwinkel bei einem Greifwerkzeug z.B. normalerweise vermisst.


    Grüße
    Flo


    PS: WolfHenk hat noch was auf seiner Seite, das vielleicht interessant ist: "Punktkoordinaten in anderes Tool und Base umrechnen" http://roboterszene.de/index.php/kuka.html

  • Das nicht von mir. Ehre wem Ehre gebührt; das ist Adrians Schreibe

    Wolfram (Cat) Henkel

    never forget Asimov's Laws at the programming of robots...

    "Safety is an integral part of function. No safety, no production. I don't buy a car without brakes."


    Messages und Mails mit Anfragen wie "Wie geht das..." werden nicht beantwortet.

    Diese Fragen und die Antworten interessieren jeden hier im Forum.


    Messages and Mails with questions like "how to do..." will not be answered.

    These questions and the answers are interesting for everyone here in the forum.

    Einmal editiert, zuletzt von WolfHenk ()

  • Hallo


    > Das nicht von mir.


    Oh, ich bin über Deine Signatur dahin gestolpert., drum dachte ich es ist deine Seite. Danke für den Hinweis.


    Grüße
    Flo

  • mit, nicht allein. Roboterszene.de ist erdacht von Adrian und mir. Mitmachen kann da jeder.

    Wolfram (Cat) Henkel

    never forget Asimov's Laws at the programming of robots...

    "Safety is an integral part of function. No safety, no production. I don't buy a car without brakes."


    Messages und Mails mit Anfragen wie "Wie geht das..." werden nicht beantwortet.

    Diese Fragen und die Antworten interessieren jeden hier im Forum.


    Messages and Mails with questions like "how to do..." will not be answered.

    These questions and the answers are interesting for everyone here in the forum.

  • Und wenn Du Dich dann auch mal zur Abwechslung zum Thema äußern könntest, Wolfram?
    Zum Beispiel zu der Frage, die ich Dir gestellt hatte?


    :danke:

    Einmal editiert, zuletzt von Tilman ()


  • Wenn wir genau wüßten, was Du berechnen willst, so könnten wir Dir sicher mit der Mathematik helfen. Ich habe auch noch eine Frage zu der Aufgabe: Sind im augenblicklichen Programm eigentlich für die 3 Werkzeuge, die auf dem Greifer sind, die Tooldaten eingegeben worden? Beziehen sich diese Tooldaten auf das Gesamtsystem: also Greifer + Werkstückgreifer + Werkzeug?


    Das was frist geschrieben hat ist schon ziemlich genau das worauf ich nicht gekommen bin. Vielen Dank dafür. Ich habe wahrscheinlich viel zu kompliziert gedacht.


    Neben jedem Werkstückgreifer befindet sich eine starre Messspitze. Diese ist mit XYZ 4-Punkt vermessen wurden. Die Stoßrichtung wurde mit einer Maschinenwasserwage gemessen (4. Punkt). Die Drehung um die Stoßrichtung ist von Hand eingegeben wurden "0° 120° 240°". Auf den TCP der Messspitze wurde anhand von Maßen aus der CAD Zeichnung der TCP des Greifers errechnet und von Hand eingegeben. Das Problem sehe ich so das die "0° 120° 240°" mechanisch nicht passen und somit der errechnete TCP entsprechend nicht passen kann da außer die Stoßrichtung keine weitere Richtung passt. Mit den Tooldaten wurde dann aber alles geteacht. Hätte man also einen Greifer der keine mechanischen Abweichungen hat würde alles passen. Vom Programm her muss aber auf ca. 2-3 Zehntel genau gefahren werden. Der Greiferkörper ist geschweißt somit sind die Abweichungen auch nicht ohne.


    Probieren ist nicht ganz so einfach da ich nur einen VKRC zum testen zur Verfügung hätte. Der Roboter um den es geht (KRC) steht leider ein paar km entfernt. Ich wollte daher am besten irgendwie eine Vorgehensweise erarbeiten die dann funktioniert. Am besten gerechnet da man das auch auf dem VKRC dann testen könnte (neue Tooldaten extern berechnen und von Hand eingeben). Im rechnen/programmieren sind die VKRC ja leider nicht so freizügig bzw. kenn ich mich da mit den Eigenarten der VKRC zu wenig aus.

  • Tilman: Die Frage ist aber schon beantwortet gewesen, bevor sie gestellt war:


    ...Dem sein laserLAB löst Dein Problem problemlos...

    Wolfram (Cat) Henkel

    never forget Asimov's Laws at the programming of robots...

    "Safety is an integral part of function. No safety, no production. I don't buy a car without brakes."


    Messages und Mails mit Anfragen wie "Wie geht das..." werden nicht beantwortet.

    Diese Fragen und die Antworten interessieren jeden hier im Forum.


    Messages and Mails with questions like "how to do..." will not be answered.

    These questions and the answers are interesting for everyone here in the forum.

  • Guten Morgen,



    Nur der Vollständigkeit halber, habe ich mal gerade versucht nachzuweisen, daß die Methode von Frist und das Ausmessen mit der Referenzmethode dasselbe Ergebnis bringen. Hat aber nur einen theoretischen Wert.


    Frists Ansatz: das Tool muß denselben Fehler reproduzieren, also nt=ng+at–ag. Dabei stellt (d=at-ag) den Fehler des alten Tools dar.


    Nun zur Referenzmethode:


    sei p0 der bei dieser Methode angefahrene Punkt.


    pr1=p0-ag ist die Flanschposition nach Anfahren des Punktes p0 mit dem alten Tool. Daraus berechnet der Roboter pa=pr1+at=p0-ag+at als Position des Referenzpunktes (dieses Ergebnis ist natürlich falsch, da ja "at" nicht stimmt). Dann Anfahren mit dem neuen Tool: pr2=p0-ng. Daraus berechtet der Robot nun die Abmessungen des neuen Tools mit nt=pa-pr2=(p0-ag+at)-(p0-ng)=ng+at-ag.


    Also, gleiches Ergebnis, alles im grünen Bereich.


    Schöne Grüße,
    Tilman/Frankreich



    @Wolfram
    Es ist wirklich nicht böse gemeint, aber ein Meßwerkzeug löst ja zunächst ja überhaupt kein Problem. Deswegen wiederhole ich meine Frage: Wie würdest Du das Werkzeug einsetzen, damit der Roboter, trotz falsch geteachter Punkte, weiterhin korrekt das Programm abarbeitet? Wenn das einfacher ist als die Lösungen von Frist und mir, dann solltest Du das mal im Interesse von allen erläutern.

    Einmal editiert, zuletzt von Tilman ()

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