Kreisbewegung wird kleiner bei höherer Geschwindigkeit

  • Hallo zusammen


    Nur zur Info bzw. als Bestätigung:
    Ich fräse mit einem 6mm Fräser Löcher in der Dimension zwischen 7.5mm und 94mm. Der Roboter ist ein KR16/KRC2/V 5.5.12. So ab 40mm habe ich kein Problem mehr mit "Eierform" oder Dimensionsänderungen. Die Löcher werden alle gleich bearbeitet: Lineares Einstechen um das Zentrum herum, cirkulares Anfahren an den Enddurchmesser (ohne Überschleifen), cirkulares fräsen direkt auf den Enddruchmesser, crikulares wegfahren gegen die Mitte und lineares wegfahren aus dem Loch. Grundvorschub ist zwischen 20 und 50mm/s. Sobald ich kleinere Löcher (<20mm) fräse muss ich den Vorschub auf rund 1mm/s reduzieren (kleinst Möglicher Vorschub), was eine relativ saubere Geometrie ergiebt. Ich kenne mich zuwenig mit der Regelungstechnik der KUKA Roboter aus, vermute aber auch, dass es sich um ein Massenträgheitsproblem handelt. Diese Annahme beruht aber nur auf einem gefühlsmässigen Empfinden beim Betrachten des Prozesses (Geräusche, Nachregelung) mit hohem Vorschub.


    Interessantes Thema...


    Grüsse aus der Schweiz...Casmen

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


    hier jetzt das Beispiel zur Korrektur der Kreise in KRL. Nachdem du ja einen SmallRobot hast musst du aber noch daran denken, dass neben der zeitlichen Verzögerung durch $FILTER die Verzögerung durch die Densoantriebe berücksichtigt werden muss. Dazu gibt es unter C:/KRC/Config/AXIS ein xml-File pro Achse. In jedem dieser Files gibt es ein Tag CmdValueDelay=*, das bei jeder Achse gleich sein sollte. Dieser Eintrag gibt in Nanosekunden die Verzögerung der Densoantriebe an, d.h. du musst in RED_RADIUS() diese Zeit noch auf $Filter (eff-filter = $Filter + CmdValueDelay/1000) hinzuaddieren. Solltest du keinen Eintrag CmdValueDelay=* in den xml-Files finden, wird der Default von 80500 Nanosekunden verwendet.


    Gruß
    Fubini

  • fubini:
    :huh: :denk: :kopfkratz::nocheck:


    Da muss ich erstmal schlucken! Da begebe ich mich jetzt mit gefährlichem Halbwissen auf die Jagd nach dem perfekten Kreis. Werde mein Bestes tun und mir das erstmal durchdenken. Melde mich dann wieder.


    :merci:

    Greetings, Irrer Polterer!

    Wie poste ich falsch? Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.


    Life is a beta version. Full of bugs and no Manual.

  • Benötigst du rechnerisch berechnete Kreise, die immer unterschiedlich sein können, oder reichen Kreise, die immer gleich sind und manuell angepasst werden können?


    Im zweiten Fall wäre es relativ einfach, aus einem Oval wieder einen Kreis zu machen. Das gilt natürlich auch dann, wenn deine Kreise immer die gleiche Abweichung aufweisen.


    Ich hatte hier das gleiche Problem und konnte nach diversen Versuchen feststellen, in welche Richtung das Oval orientiert ist (je nach Kreisposition relativ zum Roboter) und wie stark die Abweichung ist (abhängig von Geschwindigkeit und Durchmesser).


    Dann eine kleines Modul zu schreiben, was das ausgleicht ist dann relativ schnell gemacht.

    Einmal editiert, zuletzt von Grubba ()

  • Ich habe das Programm mal auf meine Bedürfnisse angepasst. Da bei mir die Base anders gedreht ist. Zur Zeit mach die Berechnung aus einem 13mm Radius einen Radius von 62mm! Das geht natürlich nicht.
    Meine feste Koordinate ist X. Hoffe nicht, dass dadurch die Berechnung falsch ist.


    Grubba: Der Kreis berechnet sich aus Aussendurchmesser - Materialstärke. Es sind Werte von 10-55mm für den Aussendurchmesser und 1-12mm für die Materialstärke möglich. Diese werden vom Bediener eingegeben.
    Ausserdem können verschiedene Werkzeuge benutzt werden, bzw. die Werkzeugparameter geändert werden. Also sehr dynamisch das Ganze!

    Greetings, Irrer Polterer!

    Wie poste ich falsch? Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.


    Life is a beta version. Full of bugs and no Manual.

  • Jetzt habe ich exakt das Programm benutzt, welches Fubini gepostet hat. Habe nur die Zeile: $BASE=$POS_ACT ersetzt in $BASE=BASE_DATA[16], sodass mein Kreis aus X und Y gebildet wird.


    Vor dem Aufruf des UPs Kreis() sind die Koordinaten: X 0,y 0,z 0,a 90, b 0, c 0!
    $VEL.CP ist 0.27
    Nach der Berechnung steht SP.Y auf 101 - da RADIUS von 13mm auf 101mm gerechnet wurde. Der Kreis ist also viel zu groß!


    In der Berechnung wird mit $EKO_DAT[2] gerechnet - hat bei mir den Wert 0! $FILTER hat den Wert 60.


    Wie Fubini geschrieben hat, habe ich folgende Berechnug eingefügt: eff_filter = $Filter + 80500000 (Defaultwert*1000, da der Eintrag CmdValueDelay in den XML-Files fehlt).
    Nach der Berechnung steht SP.Y auf 143 - da RADIUS von 13mm auf 143mm gerechnet wurde. Der Kreis ist also noch größer!


    Langsam kommt mir der Verdacht, dass dies (wie soviele andere Dinge) mit dem Kr5Sixx nicht machbar ist... :(

    Greetings, Irrer Polterer!

    Wie poste ich falsch? Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.


    Life is a beta version. Full of bugs and no Manual.

  • fubini: habe ich schon ausprobiert. :biggrins: Ergibt immer noch 96mm statt Radius 13mm.


    FÜR HEUTE IST ERSTMAL FEIERABEND!!!! :beerchug:

    Greetings, Irrer Polterer!

    Wie poste ich falsch? Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.


    Life is a beta version. Full of bugs and no Manual.

  • Ich bin's wieder...


    habe heute mal versucht den Kreis in 4 Viertelkreisen zufahren. Das Verhalten ist das gleiche. :bawling: Je höher der Vorschub, desto kleiner der Kreis. Zur Zeit arbeite ich mit Offsets ich gaukle dem Roboter also einen größen Radius vor. Das ist aber mehr "Try and Error"!


    Das Ergebnis ist abhängig vom Werkzeug und Vorschub. Jedesmal, wenn ich mit dem Vorschub experimentiere, muss ich erstmal umständlich den Offset des Kreises ermitteln. Bei einem Radius von 7mm und einem Vorschub von 0,27m/s lässt sich auch nicht sehr gut erkennen, ob die Kreisbahn sauber gefahren wird, was also auch eine Bewertung des Ergebnisses unmöglich macht. Das Ganze ist nicht zufriedenstellend. Ich möchte den Kreis mit 0,01m/s fahren, um zu sehen, ob das Werkzeug vernünftig auf der Bahn befindet und dann die Bahn mit verschiedenen Geschwindigleiten abfahren, um das beste Ergebnis zu ermitteln.

    Dies scheint jedoch nicht möglich. :zweifel:

    Greetings, Irrer Polterer!

    Wie poste ich falsch? Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.


    Life is a beta version. Full of bugs and no Manual.

    Einmal editiert, zuletzt von IrrerPolterer ()

  • Zitat


    Bei einem Radius von 7mm und einem Vorschub von 0,27m/s lässt sich auch nicht sehr gut...


    Das ist natürlich aber auch schon allerhand. Da dauert dein Kreis ja gerade mal noch 0.16s. Bei einem IPO Takt von 12ms kann der KUKA ja gerade mal noch 13-14 mal die Position auf dem Kreis einlesen und die Bahn entsprechend korrigieren. Ich denke mal, das du bei den kleinen Radien wohl ein wenig langsamer werden müssen wirst.


    Ansonstem versuch doch mal, dich von den Kreissegmenten zu verabschieden und stattdessen überschliffene Lin Bewegungen zu fahren. Vielleicht tritt dann der Effekt der unterschiedlichen Radien nicht so stark auf.


    Zitat


    Bei einem Radius von 7mm und einem Vorschub von 0,27m/s lässt sich auch nicht sehr gut erkennen, ob die Kreisbahn sauber gefahren wird, was also auch eine Bewertung des Ergebnisses unmöglich macht.


    Kannst du einen Stift am Werkzeug befestigen? Ich vermute da mal, das bei dem Radius und der Geschwindigkeit (sofern er die denn überhaupt einhalten kann) alles rauskommt, aber kein runder Kreis.


    Bei unserer Schneidanlage mit Plasmaschneider ist bei solchen Lochgrößen bei 20mm/s schluss, wenns noch halbwegs rund sein soll...

  • Hi,



    Das ist natürlich aber auch schon allerhand. Da dauert dein Kreis ja gerade mal noch 0.16s.


    das scheint mir in der Tat für einen Knickarmroboter sehr schnell zu sein.


    Ich habe diese Woche auch Tests mit einem 0.2s langen Bewegungsablauf auf einen Mitsubishi Knickarm und einem Scara gemacht. Da sieht man doch deutliche Unterschiede, schon wegen der günstigeren Masseverteilung beim Scara.


    Wenn man nur so wenige IPO-Schritte für die Bewegung hat, lohnt es sich meist, die direkt zu berechnen und anzusteuern, die normale Bewegungsplanung der Roboter ist sicher nicht für solche Bewegungen optimiert. Außerdem kann man da für jeden Schritt Command- und Feedbackposition (wie immer das beim Kuka auch heißen mag) anschauen und so sehen, wie weit die Mechanik der Bahn in etwa folgen kann.


    Grüße


    Urmel

  • Hallo zusammen,


    ich misch mich auch noch mal kurz ein. Nachdem ich heute früh etwas Zeit übrig hatte, habe ich das gepostete Programm zur Filterkompensation noch mal angeschaut. Zu meiner Schande muss ich gestehen, dass sich noch ein kapitaler Fehler eingeschlichen hat, der zu den beobachteten viel zu großen Korrekturen führt. Konkret wurde ein um den Faktor 100 zu großer Wert bei der Berechnung des Winkels Phi verwendet :oops:.


    Fazit: traue nie einem Programm, dass du nicht selber geschrieben hast ohne es vorher zu testen. Daher poste ich hier noch mal eine korrigierte Version und ein paar Bilder die meine Resultate für einen 500 mm Kreis bei einem KR2150 zeigen. Spaßeshalber hab ich dann das ganze mal mit einem Spline probiert, der deutlich das beste Resultat liefert.


    Gruß
    Fubini

  • Hallo,



    Hallo zusammen,


    ich misch mich auch noch mal kurz ein.


    Liegt das Problem denn wirklich an dieser Kompensation, oder daran, dass der Kreis vom Polterer so schnell gefahren wird ?


    Hab gerade noch mal nachgerechnet:


    Kreisumfang = 2 * Pi * Radius = 6.28 * 7 mm = 43.98 mm


    macht bei 0,27 m/s etwa 163 Millisekunden für die Bewegung, wenn man die Beschleunigung vernachlässigt. Ist das von der Massenträgheit her überhaupt möglich ?


    Grüße


    Urmel

  • Hallo Urmel,


    Zitat

    Ist das von der Massenträgheit her überhaupt möglich ?


    Hier handelt es sich ja um die kleinen KR 5sixx, die deutlich agiler und leichter sind als die großen Standardmaschinen. Außerdem wird hier CP gefahren, so dass die Steurung knallhart mit $ACC.CP beschleunigt (unabhängig davon ob die Maschine das schafft). Sollte sie es aber nicht schaffen, d.h. der Istwert hängt dem Sollwert zu weit hinterher, würde ich erwarten, dass eine Schleppfehlerüberwachung zuschlägt. Meine Erfahrung zeigt aber, dass Soll und Ist in der Regel recht gut passen.


    Zitat

    Liegt das Problem denn wirklich an dieser Kompensation, oder daran, dass der Kreis vom Polterer so schnell gefahren wird ?


    Die Ursache für die Einschnürung setzt sich wahrscheinlich aus vielen Effekten zusammen, deren einer eben durch den $FILTER bedingt ist. Ich weis das die Kompensation nur den Filtereffekt positiv beeinflussen kann und nachdem IrrerPolterer danach gefragt hat, habe ich es unabhängig davon ob das schon alle Problemem behebt hier rein gestellt. Meines Erachtens schadet der Versuch ja nichts :biggrins:.


    Gruß
    Fubini


  • Zu meiner Schande muss ich gestehen, dass sich noch ein kapitaler Fehler eingeschlichen hat, der zu den beobachteten viel zu großen Korrekturen führt.


    :icon_rofl:


    Fazit: traue nie einem Programm, dass du nicht selber geschrieben hast ohne es vorher zu testen.


    Vor allem nicht, wenn du - so wie ich - überhaupt keine Ahnung hast was dieses Programm eigentlich so genau macht. :beerchug:



    d.h. der Istwert hängt dem Sollwert zu weit hinterher, würde ich erwarten, dass eine Schleppfehlerüberwachung zuschlägt.


    Bei ca 3.5 m/s ist eh Schluss, da steigt mein kleiner weisser Freund aus... :pfeif:


    Fazit ist ja nun eigentlich, dass mein geschildertes Problem nicht mit den zur Verfügung stehenden Mitteln zu lösen ist. So muss ich also doch bei Try and Error bleiben.


    BTW: Wo finde ich dieses tolle Programm FramesVisu?

    Greetings, Irrer Polterer!

    Wie poste ich falsch? Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.


    Life is a beta version. Full of bugs and no Manual.

  • Hallo,


    auch wenn ich inzwischen wahrscheinlich nerve :lol:. Nachdem Irrer Polterer sehr kleine Kreise gefahren ist, habe ich mich noch mal hingesetzt und auch das mal mit einem Kreisradius von 7mm bei $VEL.CP = 0.27 ausprobiert. Und siehe da ich sehe mit wachsender Geschwindigkeit auch das extreme Einschnüren (siehe Bilder im Anhang) und das bereits am Office, also ohne echten Roboter nur auf Basis der Sollwerte. Die Kreiskorrektur scheint aber auch da sehr gut zu helfen.


    Gruß
    Fubini

  • fubini:


    Du nervst nicht, ist doch ein wirklich interessantes Thema!
    Ist es sinnvoll, den Kreis in mehrere Kreiseabschnitte aufzuteilen? Sagen wir statt 360° 4*90° oder 8*45°...


    Werde heute nochmal mit der Kompensation herumspielen und dann berichten.

    Greetings, Irrer Polterer!

    Wie poste ich falsch? Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.


    Life is a beta version. Full of bugs and no Manual.

  • JOHO!!!! :OLA:


    Mit dem neuen Kreiskompensierungsprogramm habe ich nun folgende Durchmesser getestet.


    1. DM: Innen 27 mm Aussen 30 mm / Radius: Innen 13.5 mm Aussen 15 mm
    2. DM: Innen 13 mm Aussen 15 mm / Radius: Innen 6.5 mm Aussen 7.5 mm


    Zuerst wurden Innen- und Aussendurchmesser mit 0.1 m/s gefahren danach mit 0.27 m/s. Bei beiden Geschwindigkeiten, waren die Bahnen (nahezu) identisch - jedenfalls mit bloßem Auge nicht mehr unterschiedlich erkennbar. Beide Abmessungen konnten also nur durch Änderung der Durchmesser - ohne Offsets und Mogelwerte - gefahren werden.


    Außerdem benutze ich 2 Kreisbahnen. Eine um Schwung zu holen - ca. 90 Grad Kreisbewegung mit etwas kleinerem Radius für Innen und etwas größerem Radius für Aussen. Die zweite ist der eigentliche Kreis CA 360+90 Grad.


    Danke an alle, die sich so intensiv damit beschäftigt haben - allen vorran Fubini! :heildir:

    Greetings, Irrer Polterer!

    Wie poste ich falsch? Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.


    Life is a beta version. Full of bugs and no Manual.

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