Posts by fubini

    Na so ganz falsch ist das gar nicht. Sunrise hat in Teilen so gearbeitet und auch bei iiqka wollte man das dann wieder machen. Da haben manche davon geträumt die Bahnplanung in einer Cloud laufen zu lassen und sich damit den Windows pc zu sparen. Das hat aber dann so schöne Nebeneffekte wie nicht mehr deterministische Trigger, da quasi kein Rückkanal von der strengen Echtzeit in den Interpreter möglich ist, was man z.B. für Unterprogrammaufrufe im Trigger braucht. War ich nie ein Fan und für die Praxis eine Katastrophe meiner Meinung nach. Aber was solls. Werden sie bei KUKA schon lösen solche Probleme oder das Feature gibts dann halt nicht mehr.


    Fubini

    Na klar ist das alles in Echtzeit unter VxWorks. Windows ist nur die GUI. Der KRL Interpreter und das Sampling sind beide im Echtzeitsystem. Allerdings darfst du nicht erwarten dass du immer alle 12 ms Interpolationstakt eine Bahnplanung machen kannst. Die Bahnplanung bereitet im Vorlauf alles azyklisch für den Hauptlaufinterpolator vor. Wie das genau funktioniert was den Vorlauf hemmt und damit den Hauptlauf unter Umständen nicht schnell genug gefüttert werden kann und wie sich das System dann verhält findest du in den Dokus beschrieben.


    Fubini

    Jein. Die Quaternionen können sicher etwas effizienter sein um den Preis, dass sie schlechter lesbar sind. Man rechnet hier in der Regel aber auch nicht direkt mit den Eulerwinkeln, sondern mit der Framematrix (homogene Transformationsmatrix) die über die Eulerwinkel definiert sind. Intern werden eigentlich nur die Matrizen verwendet und die Darstellung nach außen zum Anwender über ZYX-Eulerwinkel hin ist Usabilty.


    Fubini

    Kannst du dein Programm oder einen Auszug davon was du meinst hier reinstellen?


    Wahrscheinlich ist es eine Mischung aus Inlineforms und Expertenprogramm. Inlineforms sind sowas wie Makros die Komplexität vom Anwender verstecken. Insbesondere für Neulinge ist das erstmal leichter, da man Inlineformulare über Auswahlmenüs der Benutzeroberfläche anlegen/ändern kann. Die von dir erwähnten FDAT und LDAT verwendet die Benutzeroberfläche um die Daten der Inlineformulare zu verwalten.


    Bei Expertenprogrammen musst alles zu Fuss selbst machen. Ist zwar mächtiger aber du musst dafür die Programmiersprache KRL lernen.


    Such dir aus dem KUKA portal die Doku zur Anwenderprogrammierung, die erklärt Inlineformulare. Die Doku für Systemintegratoren dagegen die Programmierung mit KRL.


    Fubini

    Ich weiß jetzt nicht ob das damals schon existiert hat aber letzten Endes wird das mit den Buttons rechts unten auf Systemvariablen $phgbright und $phgcont (vielleicht auch $phg_bright und $phg_cont bin mir da auswendig nicht sicher) gemapped. Kannst ja mal probieren ob du die Setzen kannst. Damit kannst das sogar in Programmen ändern.


    Fubini

    Quote

    Mich beschäftigt momentan die Frage ob ich bei der Systemvariablen $TARGET_STATUS von #SOURCE auf #BEST potentiell den Fehler wegbekomme.

    Eher nein. Ob die Achse links oder rechts rum dreht hat nichts mit dem Status zu tun, sondern ist erstmal ein Turnproblem, d.h. in deinem Problemfall müsstest du das Turnbit für die Problemachse flippen. Nachdem der Turn aber für endlos drehende Achsen keine Bedeutung hat muss du auf alle Fälle erstmal das "endlos drehend" wieder abstellen. Danach kannst du über INVERSE und durch Vorgabe von Status und verschiedenen Turns dir denjenigen Achswinkel raussuchen den du haben willst und dann entsprechend die kartesische Position für den SPTP kommandieren.


    Fubini

    Brauchst du nicht. Programmwechsel verhält sich identisch wie wenn die gleich Abfolge an Kommandos in einem Programm stehen würden. Ist glaube ich meistens eine Verzweiflungstat weil viele Leute nicht wissen, dass im INI Fold Vorlaufstoppende Anweisungen stehen. Meistens kann also in solchen Fällen geholfen werden, wenn der INI-Fold rausgenommen wird oder über ein IF im relevanten Fall übersprungen wird.


    Fubini

    Und am besten nicht direkt die Daten ändern sondern mit Offsets arbeiten. Also quasi das Delta (=Korrektur) über den Doppelpunktoperator draufaddieren. Evtl. bietet sich hier aber auch an nicht direkt den Offset auf die Koordinaten des Zielpunkts anzuwenden sondern je nach Bezugssystem direkt das Tool oder Base zu shiften.


    Fubini

    Dann schau dir mal $rot_sys und $trans_sys an.



    Fubini

    Theoretisch ja. Am Ende des Tages musst du "nur" die richtigen Konfigurationsfiles mit den richtigen Inhalten befüllen. Praktisch nein, als Anfänger schon gleich gar nicht. Dafür ist ja gerade WorkVisual gedacht und da ist es wesentlich einfacher weil viel zu beachtende Komplexität einfacher einzustellen ist. Warum willst du WorkVisual nicht benutzen?


    Fubini

    Für KUKA liegt auf jedem Installationsmedium das Programm kue_weg.src bei. Da ist inbesondere auch eine Implementierung von INV_POS() in KRL enthalten und man kann da abschreiben. Ansonsten ist das keine Raketenwisssenschaft. INV_POS ist nichts anderes als die Invertierung einer 4x4 homogenen Transformationsmatrix und das findet man auch in Google/Wikipedia. Einfach mal mit "homogene Transformationsmatrix" googlen. Grob geht es so: Rotationsanteil invertieren durch transponieren, transponierten Rotationsanteil auf den Positionsanteil anwenden.


    Fubini

    Wir haben die gleiche Systematik an Stäubli TX200 Robotern mit CS8 versuchsweise getestet. Hier lässt sich sehr gut eine geänderte Last anhand den aktuellen Motorströmen der einzellnen Achsen erkennen.

    Kein Kritik: Ja und ein VW Golf ist das gleiche wie ein Ferrari SF90 :).


    Ich kann jetzt nicht beurteilen wie der Stäubli das macht bei dem Rauschen und sonstigen Einflüßen oder ob er z.B. zusätzliche Sensorik in der Hardware zur Verfügung hat aber leider ist nicht alles was bei einem funktioniert bei allen anderen Roboterherstellern auch so ohne weiteres möglich.


    Fubini