0
Answered

große Abweichungen bei Robot - IK - Targets

Nico 3 weeks ago in General Questions updated 3 weeks ago 2

Image 1308

Hallo,

ich arbeite mit realvirtual Pro und nutze die Inverse Kinematik, um Roboterpfade zu programmieren. Dabei fällt mir auf, dass ich nach jeder Verschiebung eines Targets mehrfach auf „Set Correction“ klicken muss, da sonst eine erhebliche Abweichung entsteht. Besonders problematisch wird dies, wenn die Abweichung so groß ist, dass das Ziel nicht mehr erreichbar ist.

Liegt der Fehler in meiner kinematischen Kette?

Ich verwende einen KUKA-Roboter, den ich in realvirtual nachgebildet habe. Dazu habe ich die Roboter-Vorlage von realvirtual genutzt und die Achspositionen entsprechend angepasst. Die Positionen habe ich in meinem CAD-Programm gemessen. Anschließend habe ich die Körper hinzugefügt. Das beigefügte Bild zeigt die Abweichung ohne Korrekturdaten.

Was könnten Gründe für die großen Abweichungen sein?

Falls dieses Verhalten normal ist: Gibt es einen Weg den "Set Correction"-Vorgang zu Automatisieren, zum Beispiel mit dem selection-manager? (Habe nämlich bereits gut 100 Targets und es werden mehr werden...)

Viele Grüße,

Nico

Answered

Hallo Nico,

ehrlicherweise haben wir schon wie verrückt gesucht, die Gründe der Abweichung zu finden und aus der Not das Set Correction eingeführt (die Inverse Kinematik Mathematik selbst stammt nicht von uns). Aktuell gibt es keinen Weg drumrum, bei Gelegenheit machen wir aber nochmals einen DeppDive. Den Vorgang zu automatisieren müsste möglich sein, Du könntest Dir hier selbst ein Script schreiben und die Methode des Buttons mehrmals aufrufen.

Gruß

Thomas

Hallo,
vielen Dank für die Antwort! Ich habe ein Skript geschrieben, das SetCorrection und ClearCorrection für alle Objekte, denen ich einen entsprechenden Tag gebe ausführt. Damit dies richtig geschieht wähle ich über den Code das Target-Objekt im Unity-Fenster an, sodass der Offset von der in SetCorrection-Methode verwendet wird stimmt. 
Einziges Problem: Damit der Code durchläuft muss ich den Cursor die ganze Zeit aus dem Scene-Window heraus und wieder hinein bewegen. (Das liegt an einem "delay" den ich eingebaut habe, damit Unity Zeit hat den Roboter richtig zu positionieren. Aus irgendeinem Grund bleibt der Code hier stehen bis ich mit dem Cursor in das Fenster fahre. Einerseits nervig andererseits notwendig, damit der Roboter seine Position einnimmt. Der "Follow in Edit Mode" wird anscheinend zum gleichen Zeitpunkt aktualisiert. Ohne diese Pause scheint die SetCorrection-Methode nicht den richtigen Offset zu verwenden sondern vielleicht den zu der TCP-Grundposition (?). Aber das ist ja dann ein Problem das ich mit Unity habe.)
Das ist jetzt alles ziemlich umständlich erklärt und wahrscheinlich auch falsch. Ich habe keine Erfahrung mit C# oder Unity, deshalb arbeite ich jetzt erstmal damit.
VG