TCP in Worldkoordinaten definieren

  • Hallo Zusammen!

    Ich bin zwar schon langer stiller Mitleser in diesem Forum gewesen und habe in meiner jungen Roboterkarriere auch schon so manchen Trick und Hinweis hier absaugen können. Vielen Dank im Nachhinein dafür! ;)

    Meine aktuelle Herausforderung hat mich dann aber veranlasst mich endlich einmal anzumelden. Hier bin ich also, ein Middreißiger, Maschinenbauer und Roboterneuling.


    Um nun aber zu meinem Anliegen zu kommen:

    Wir untersuchen in einem Laboraufbau die Aufnahme von Bauteilen hoher Geometrievielfalt. Dabei möchten wir aus Kostengründen auf Sensoren und Warenträger verzichten. Wir arbeiten also über eine Art Anschlag, an die das Bauteil angelegt wird und so alle 6 Freiheitsgrade gehemmt werden. Anschließend berechnen wir in Octave durch Koordinatentransformation die möglichen Greifpunkte im World-KOS in Abhängigkeit zur Anschlagposition. Der Greifpunkt wird dann per SocketMSG an den Controler geschickt und dort mit einem kleinen Karel-Script abgefischt und über ein PR dem TP-Programm übergeben. Das ganze funktioniert erstaunlich gut und auch die Absolutgenauigkeit des Roboters und die Bauteiltoleranzen machen uns da keinen Strich durch die Rechnung.


    Nun würde ich jedoch gerne den TCP vom berechneten Greifpunkt an das Bauteilende verschieben. XYZWPR des Bauteilendes im World-KOS kenne ich durch den Anschlag. XYZWPR des Greifpunktes kenne ich auch und LPOS des Roboters ist ja auch bekannt, da er den Greifpunkt anfährt. Nun meine Frage. Kann ich ohne weitere externe Koordinatentransformation, unmittelbar bevor der Greifer schließt den TCP verschieben?


    Der TCP wird ja in Bezug auf die mechanische Schnittstelle definiert und nicht im World-KOS. Aber irgendwie muss das doch innerhalb des Controllers zu lösen sein. Gerne auch als Karel-Skript. Aber leider sehe ich hier gerade den Wald vor lauter Bäumen nicht. ;)


    Was wäre hier grundsätzlich sinnvoller? Ein Tool Offset oder ein neues utool? Ich möchte das Bauteilende in eine Bearbeitungmaschine einführen und wenn der TCP im Bauteilende liegt fällt mir das weitere Programmieren leichter.

    Für Eure Antwort besten Dank im Voraus!


    nico

  • ANZEIGE
  • Kurze Wasserstandsmeldung für Interessierte...

    Ich habe die XYZ Verschiebung in Karel hinbekommen. War ziemliches Try&Error weil ich aus der Karel Reference nicht so recht schlau wurde. Auf jeden Fall sind "Relative Position" und die "INV" Funktion hier hilfreich.

    Code
    AEnd_Diff = INV(no_tool_WORLD) : AEnd_WORLD
    
    --AEnd_WORLD -- Bauteilende in XYZWPR
    --no_tool_WORLD -- mech. Schnittstelle (Handgelenk) in XYZWPR
    --AEnd_Diff -- Differenz der beiden "Positionen" in POSITION

    Ich habe das ganze auch in einer Koordinatentransformation in Octave hinbekommen, aber so ist es natürlich eleganter.

    Grüße!


    nico

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