DaFae
Neuling

Offline
Beiträge: 11
|
 |
« am: 08. Juli 2010, 12:26:37 » |
|
Hallo, ich habe ein Problem beim Anfahren von Absolutpositionen in BASE-KoSy.
Bei meiner Aufgabe (automatische Hand-Auge-Kalibrierung) soll die Kamera von dem Roboter automatisch um ein Kalibrierobjekt (Schachbrett) bewegt werden. Dieses Schachbrett ist als BASE vermessen. Nun habe ich es bislang so gemacht, dass ich
1) Kamera zentral oberhalb des Schachbrettes ausrichte 2) Schnittpunkt von Kamera-Sehstrahl und Schachbrett-Ebene berechne
Jetzt startet die Kalibrierung, indem ich eine Liste mit Positionsänderungen einlese und diese nacheinander abarbeite. (zb. 0 0 0 0 0 15 = x y z a b c also einer Rotation um die BASE-X-Achse)
Bisher habe ich folgendes gemacht:
1) Translation des Schnittpunktes von Kamera-Sehstrahl und Schachbrett in den BASE-Ursprung (einfach -S.x, -S.y) 2) Rotation ausführen 3) Schnittpunkt zurücktranslatieren
=> Das Ergebnis entspricht einer Rotation der Kamera um einen Punkt P auf dem Schachbrett. (Nur so ist sichergestellt, dass die Kamera weiterhin das komplette Schachbrett im Bild hat)
Nachdem diese Position abgearbeitet wurde fahre ich zurück zur Ausgangsposition. Dabei führe ich die Bewegungen von oben in umgekehrter Reihenfolge aus.
Jetzt brauche ich für eine Kamera-Position beim Kalibrieren 3 Bewegungen hin und 3 auch wieder zurück. Das wollte ich nun optimieren, in dem ich die Endpositionen, die angefahren werden, im Vorraus berechnen und dann als absolute Position anfahre.
Da genau ist das Problem. Die Positionen zu berechen ist kein Problem, aber der Roboter macht eben nicht das was ich gerne hätte. (Um Nachfragen zu unterdrücken: Ich habe die Endpositionen verglichen. Sie stimmen nahezu identisch überien)
Ich erwarte vom Roboter, dass er die Position in BASE anfährt. Der Roboter macht folgendes: Translation in BASE und Rotationen in TCP-KoSy. Mir will einfach nicht einleuchten warum?! Und auch nicht, wie ich das ändern könnte.
Gruß Daniel
|