4-Punkt-Toolvermessung - Mathematik dahinter

  • Hallo,


    meine Frage habe ich 1-2x hier und/oder im Netz gefunden, jedoch keine wirkliche Antwort dafür gefunden; es geht um die Mathematik hinter der KUKA 4-Punkt-Toolvermessungs-Methode.


    Was ich bisher habe:
    1. Nachdem ich einen Punkt mit meinem Tool von 4 verschiedenen Positionen angefahren habe, kann ich durch diese 4 Flanschpositionen (im World-Koordinatensystem ), eine Kugelgleichung aufstellen und mir die Koordinaten des Kugelmittelpunktes ausrechnen (Kugel müsste durch 4 Punkte eindeutig sein, sofern die Punkte nicht auf einer Ebene liegen).
    2. Diesen Kugelmittelpunkt muss ich, da er im World-Koordinatensystem gegeben ist, ins Tool-Koordinatensystem transformieren.
    3. Das mache ich, in dem ich eine Rotationsmatrix aufstelle (Roll-Pitch-Yaw-Konvention, dabei verwende ich die Flansch-Orientierungen von einem meiner 4 Punkte), und multipliziere diese Matrix mit den XYZ-Koordinaten desselben Punktes, und multipliziere nun die dabei entstandene Matrix mit meinem Kugelmittelpunkt. Dadurch erhalte ich meinen TCP.


    Das Problem ist nur: Anscheinend verwendet KUKA mir nicht bekannte Optimierungsalgorithmen, denn ich bekomme bestenfalls ähnliche Ergebnisse (~5mm Unterschied), schlimmstenfalls Unterschiede im 100mm Bereich. Rundungsfehler oder ähnliches sollten eigentlich nicht aufgetreten sein, habe das Ergebnis mit Anderen verglichen.



    Weiß jemand vielleicht im Detail, was KUKA intern rechnet? Ich habe mich schon an die Hotline gewand und mir wurde gesagt, dass es an die Entwicklungsabteilung weitergeleitet wird - ob ich jedoch eine Antwort erhalten werde, weiß ich nicht.

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


    Wenn du Unterschiede von 5-100mm rausbekommst sind es nicht nur Optimierungsalgorithmen die da reinspielen . Ich denke das an deiner Berechnung grundsätzlich etwas nicht stimmt.


    Grüße

  • Da haben Leute schon ihren Doktor dran gebaut....

    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.

  • WolfHenk
    Weißt du zufällig, wo man eine Doktorarbeit, welche dieses Thema behandelt, finden kann, oder welchen Titel sie trägt?


    hustrac
    Das mit den Differenzen von 5-100mm muss meiner Meinung nach nicht zwingend mit grundlegend falschen Berechnungen zu tun haben: es reicht nämlich, wenn irgendwo Nachkommastellen verändert werden, damit das Ergebnis stark variiert --> Optimierungsproblem :)

  • jo, klar weiß ich sowas.


    Hier gucken!

    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.

  • Ich denke nicht, dass das ein Optimierungsproblem ist.


    - Die Kugel ist durch 4 Punkte exakt gegeben. Wenn sich kleine Fehler in den Punkten stark auf die Kugel auswirken, sind die Punkte schlecht gewählt (sehr nahe zueinander zb, oder alle fast in derselbe Ebene).
    - Durch den Mittelpunkt der Kugel sind die x-y-z tooldaten exakt gegeben und es ist egal aus welchem der 4 Punkte man sie bestimmt.



    Wenn Du einen Punkt so anfährst, dass die Orientierung des Punktes in World "gerade" ist, also alle Winkel abc 0,00000° oder +-90,0000, dann sollte die Bestimmung der xyz Toolkoordinaten aus diesem Punkt mit einfacher Vektorrechnung ohne Transformationen möglich sein.

  • WolfHenk
    Danke, diese Arbeit habe ich schonmal überflogen gehabt, leider behandelt die Arbeit die Toolvermessung mittels eines externen Messsystems, die 4-Punkt-Methode wird nur kurz angesprochen, jedoch nicht weiter erläutert.


    atw12az5
    Laut Kuka schon :)


    Habe heute nämlich von KUKA eine Antwort erhalten. Es heißt, dass ein best-fit durchgeführt wird, da nicht nur die Position, sondern auch die Orientierung betrachtet wird. Nur bin ich mir nicht sicher: Wie kann die Position (des Flansches?) die Position der Kugel (oder doch nicht von der Kugel?) beeinflussen? Wo wird da ein best-fit durchgeführt?

  • Nur so ne Idee, wie man den TCP aus vier Spitze-auf-Spitze-Antastungen ein und desselben Punktes berechnen kann:


    R_1 * t + r_1 = p
    R_2 * t + r_2 = p
    R_3 * t + r_3 = p
    R_4 * t + r_4 = p


    Dabei ist R_1 die Flanschorientierung (Rotationsmatrix) beim ersten Spitze-auf-Spitze-Antasten. Die Flanschposition (Punkt mit x, y, z) ist r_1. Analog dann für die restlichen drei Antastungen r_2 und R_2 usw. Der gesuchte und konstante TCP-Vektor ist t und schließlich p der angetastete Punkt, ebenfalls konstant, da ja immer der selbe Punkt angetastet wird.


    Die vier Gleichungen kann man umformen, um den – eigentlich wenig interessanten – Punkt p herauszukürzen.


    R_1 * t + r_1 = R_2 * t + r_2
    R_1 * t + r_1 = R_3 * t + r_3
    R_1 * t + r_1 = R_4 * t + r_4


    Nochmal nen bisschen Umformen und als Matrix zusammenfassen ergibt dann


    [R_1 - R_2] [r_2 - r_1]
    [R_1 - R_3] [ t ]= [r_3 - r_1]
    [R_1 - R_4] [r_4 - r_1]


    9x3 3x1 9x1


    Jetzt hat man eine überbestimmte Matrixgleichung in der Form A x = b, die man mit den üblichen an Verdächtigen von Lösungsalgorithmen (Householder-Algorithmus) berechnen kann und zusätzlich auch noch eine Güte der Lösung angeben kann. Ein „echter“ Optimierungsalgorithmus ist nicht notwendig, aber die Lösung ist natürlich irgendein Best-Fit, weil das Gleichungssystem überbestimmt ist. Die Anstastrichtungen müssen sicher unterschiedlich sein und dürfen nicht in einer Ebene liegen.


    Bye Puck

    Einmal editiert, zuletzt von puck ()

  • puck
    Das ist die erste mathematische Erklärung, die ich im Netz zur TCP-Bestimmung sehe - vielen vielen Dank dafür!


    An der Uni wurde mir ein (glaube ich) sehr ähnlicher Ansatz vermittelt, und Berechnungen mittels Excel und Wolframalpha liefern passable Ergebnisse - muss das nur noch gescheit implementieren :)



    Jetzt habe ich aber noch ein weiteres Problem: Die ABC-2-Punkt Methode muss ich nämlich auch noch implementieren :)
    Dabei werden ja drei Punkte im Tool-Koordinatensystem angefahren, wobei diese - so wie ich das sehe - eine Ebene aufspannen. Nun denke ich, dass ich auch eine Ebene im Flansch-Koordinatensystem bestimmen muss, und dann die Ausrichtungen dieser Ebene mit den Richtungen meiner Ebene im Tool-Koordinatensystem vergleichen muss, woraus sich dann der Orientierungsunterschied zwischen Tool und Flansch ergibt.


    Würdet ihr sagen, dass das in die richtige Richtung geht?

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