Ermittlung Drehwinkel im vorgegeben Koordinatensystem UR10e

  • Hallo,


    ich schreibe aktuell ein Programm, welches in Abhängigkeit von Werten die dem UR vorgegeben werden eigenständig Wegpunkte ermitteln soll. Um das Fahren in die Gelenkgrenzen und das Beschädigen von Zuleitungen des Werkzeuges zu vermeiden, benötige ich nun die Rotation des Werkzeugs um die Z-Achse eines gegebenen festen Koordinatensystems. Ich habe aktuell das Problem, dass ich nicht unterscheiden kann, ob sich das Werkzeug zum Beispiel um 90° und nicht um -270° gedreht hat.



    Gruß Hendrik

  • ANZEIGE
  • Hallo Hendrik,


    ich kann dein Problem nachvollziehen. Wenn z. B. eine 2D-Kamera die Koordinaten eines Bauteils ermittelt und der Roboter dieses entsprechend der Orientierung picken soll, plant der Roboter nach meinem Verständnis seine Bahn so, dass er die gegebenen Orientierung schnellstmöglich mit möglichst wenig Achsbewegung erreicht. Damit kannst du erstmal nicht beeinflussen, ob +90° oder -270° gedreht wird. Ich habe mir dabei immer folgendermaßen geholfen:


    1) Die Kabel am Tool müssen eine Drehung um +-180° oder etwas mehr erlauben

    2) Achsbegrenzungen einstellen (Installation>Gelenkgrenzen) z. B. +- 185°

    3) Den Roboter an der letzten geteachten Position vor der Berechnung "günstig" positionieren (Rotation um Z ungefähr 0°)


    Zu 3): Wenn der Roboter an der Position, von wo er die berechnete Position anfährt, in rz bei ca. 0° steht, wird er einen berechneten Punkt mit einer Drehung um +90° anstatt -270° anfahren. +90° ist nämlich der schnellere Weg.


    Ich hoffe das hilft dir weiter. Vielleicht hat ein anderes Forumsmitglied das Problem auch schon auf einen andere Weise gelöst und schlaut uns beide auf.


    Viele Grüße,

    Tobi

  • Hallo,


    da es sich um eine Vielzahl von Wegpunkten handelt, die hintereinander berechnet und angefahren werden, komme ich mit so nicht wirklich weit. Aber ich habe das Problem jetzt gelöst. Es ist zwar ein sehr umfangreiches Programm geworden, aber es funktioniert bisher sehr gut.


    Zur Lösung:

    Ich beginne das Programm immer an der selben Ausgangsposition mit den selben Gelenkwinkeln. Wenn ich meinen TCP nun um z.B. 90 Grad drehe, speichere ich diesen Wert in einer Variable. Je nachdem wie groß der Wert dieser Variable ist, berechnet das Programm den notwendigen Drehwinkel in 90 Gradschritten, z.B. -180 Grad. Bei einem notwendigen Drehwinkel von -180 Grad, dreht sich der TCP zweimal um -90 Grad.

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