Hallo
Das Problem ist folgendes:
Ich will einen 3-Achs Luftlagertisch so ausrichten, dass der Mittelpunkt der Kamera (Interferrometer) genau in der Mitte ist.
Dazu wird im anfang vom code über Fourier / Hough Transformationen der Winkel berchenet von auf dem der Mittelpunkt des Interferrogramms liegt.
Da ich dann aber nur die Gerade kenne auf der der Mittelpunkt leigt aber nicht weis in welche Richtung und wie weit ich den tisch verschieben muss verschiebe ich ihn um 0.01 mm (das ist relativ viel) rechtwinklig zur ermittelten geraden, bestimme dann nochmals den Winkel und daraus die neue geradengleichung.
Dann berechne ich den Schnittpunkt der Geraden und verfahre den Tisch dort hin(wo eigentlichg die Mitte sein sollte). ist sie aber nicht.
Das ganze sieht so aus.
jetzt meine Frage.Code:if (m == 1) { // kleine verschiebung rechtwinklig zur geraden versch_x = sin(winkel_rad)*s_1; versch_y = -cos(winkel_rad)*s_1; //aktuelle Tischpostition lesen Aerotech_position(result); pos_x = result[0] + versch_x; pos_y = result[1] + versch_y; pos_z = result[2]; pos_x_alt = result[0]; pos_y_alt = result[1]; // Tisch verschieben Aerotech_move(pos_x ,pos_y ,pos_z); // Geradengleichung der ersten Geraden berechnen m1 = tan(winkel_rad); c1 = 0; // 2. Durchlauf Tisch ist jetz verschoben, 2. Gerade berechnen }else{ m2 = tan(winkel_rad); c2 = pos_y-pos_y_alt - m2*(pos_x-pos_x_alt); // Schnittpunkt der GEraden berechnen pos_x_neu = ((c2-c1)/(m1-m2))+pos_x_alt; pos_y_neu = ((m1*c2-m2*c1)/(m1-m2))+pos_y_alt; pos_z_neu = pos_z; Aerotech_move(pos_x_neu, pos_y_neu, pos_z_neu); statusline(ftoa(m1)+' '+ftoa(m2)+' '+ftoa(c1)+' '+ftoa(c2)+' '+' '+ftoa(winkel_mat)); }
Wo ist der Fehler?
(Das Koordnatensystem bekommt einen neuen nullpunkt für die Rechnung der auf dem Startpunkt der schleife liegt, weil bei dem Tischkoordinatensystem die rundungsfehler zu gross sind.
Bin für alle Tipps dankbar..







Zitieren

Lesezeichen