Guten Morgen,
seit ein paar Tagen verfolgt mich ein Problem für das mir die Lösungsansätze ausgehen...
Folgendes Szenatio. (Roboter ist ein IRB14000)
Auf einem Objekttäger, welcher mittels Kamera eine Positionsvermessung durchläuft (Lage und Rotation) sollen Objekte Platziert werden.
Die Plätze stammen aus dem CAD und wurden auch verifiziert. (Plätze 1-7)
Im Zuge der Fehlersuche habe ich mit einem Tool welches an dem Saugeranschluss des Smartgrippers ("Daumen") angebracht ist (Spitze), die Positionen abgefahren. (name "tCalib")
Diese Spitze fährt die Kalibrierte (fixe) Aufnahmeposition an, und dann jede Setzposition für sich ohne zur Aufnahmeposition zurückzukehren.
Fahre ich diesen Test, wird jede Position so angefahren wie gewünscht. Hier findet keine Umorientierung statt.
Mache ich einen ähnlichen Test mit dem Greifwerkzeug (angebracht am Servo - Name "tGripper") bekomme ich Probleme.
Diese Routine nimmt ein "ideales" Objekt mit tGripper aus der selben definierten Position und fährt ebenfalls über die Setzpositionen.
Positionen 1 und 2 werden normal angefahren, 3 bis 7 um Z 180° gedreht.
Soweit hoffentlich verständlich.
Das Problem ist nun, dass Positionen 1 und 2 wie gewünscht "getroffen" werden, Positionen 3 bis 7 allerdings in X und Y um jeweils >1mm verschoben sind.
Die Positionsbestimmung wird folgendermaßen durchgeführt:
Kamera und UFrame haben den selben Ursprung.
Der OFrame wird mit PoseMult an die jeweilige Setzposition verschoben und dann der Punkt 0,0,0 angefahren (also der OFrame selbst). Hierbei sind der Versatz und die Rotation welche die Kamera mitteilt bereits eingerechnet (das würde nun zu weit führen denke ich)
Meine bisherigen Ansätze waren:
- Würde das Tool nicht passen, hätte ich den selben Versatz an allen Positionen
- Würde die "Kalibrieraufnahme" nicht passen, hätte ich den selben Versatz ebenfalls an allen Positionen
- Würde die Kamera und damit das PoseMult falsch arbeiten, hätte ich variierenden Versatz an allen Positionen
Die Tools habe ich Rotatorisch geprüft (Spitze - Spitze und dann rotieren lassen => blieben aufeinander)
Vielleicht gibt es hier eine Muse die den entscheidenden Hinweis geben kann...