TCP in Programm berechnen

  • Hallo,

    ich suche eine Möglichkeit bei einem Kuka Roboter den TCP in einem Programm berechnen zu lassen. Ich würde also einen Punkt automatisch in 4 verschiedenen Stellungen anfahren und möchte dann aus den 4 verschiedenen Stellungen den TCP automatisch berechnen lassen. Leider habe ich dazu bisher keine Funktion gefunden.

  • Schritt für Schritt zum Roboterprofi!
  • dann kann man einfach eine eigene Funktion schreiben – es handelt sich lediglich um ein Geometrieproblem. Die vier Punkte befinden sich auf der Kugel und der TCP befindet sich im Mittelpunkt der Kugel. Wenn die Punkte gemessen werden, müssen die Punkte mit dem Flanschkoordinatensystem aufgezeichnet werden...


    zB


    https://math.stackexchange.com…anes%20between,B%2BA)%2F2.

  • Danke für die schnelle Antwort.


    Die Idee und auch Umsetzung ist mir klar. Die Frage ist, warum muss man das noch einmal schreiben, wo doch der Algorithmus eigentlich in der 4-Punkt Kalibrierung von Kuka schon vorhanden sein muss. Gibt es keine Funktion, wo ich die Variablen einfach übergeben kann oder hat vielleicht schon einmal jemand diesen Algortihmus geschrieben?

  • Das wurde schon wiederholt hier im Forum diskutiert und ich meine da war teilweise auch der Code dabei. Müsste sich eigentlich über die Suchfunktion finden lassen. Genauso kann man mal im englischen Partnerforum nachsuchen.


    Müsstest dir halt überlegen wo und wie du das haben willst. In KRL? Offline in C/C++/Python/Whatever?


    Fubini

  • Ich bräuchte den Code in KRL. Wir haben ein Gerät zur Vermessung des TCPs und brauchen jetzt noch die Schnittstelle auf der Roboterseite.

  • ich habe ein wenig freizeit gefunden und habe es selber versucht. habe es das ganze nur schnell in Visual Studio getestet aber es sieht aus dass korrekte werte rauskommen...


    die einfachste Loesung war von herren wie Dr. Sonnhard Graubner oder Stephen R. Schmitt bereits beschrieben:


    Code
    x0 =  0.5·M12/M11
    y0 = -0.5·M13/M11
    z0 =  0.5·M14/M11
    r02 = x02 + y02 + z02 - M15/M11 

    Sieht gut aus aber man muss zuerst M11,M12,M13,M14 berechnen.

    Ich habe zuerst 4x4 Determinante geschrieben:

    Code
    +a11(a22*a33*a44+a23*a34*a42+a24*a32*a43-a22*a43*a34-a32*a23*a44-a42*a33*a24)    
    -a12(a21*a33*a44+a23*a34*a41+a24*a31*a43-a21*a43*a34-a31*a23*a44-a41*a33*a24)                
    +a13(a21*a32*a44+a22*a34*a41+a24*a31*a42-a21*a42*a34-a31*a22*a44-a41*a32*a24)        
    -a14(a21*a32*a43+a22*a33*a41+a23*a31*a42-a21*a42*a33-a31*a22*a43-a41*a32*a23)

    und mit text editor alle Elementen mit entsprechenden variablen getauscht.


    in KRL solte dass ganze etwa so aussehen (soweit nicht getested auf KRC oder OL):

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account
Sign up for a new account in our community. It's easy!
Register a new account
Sign in
Already have an account? Sign in here.
Sign in Now