Einstellung der Messposen
Die Messposen sind die Stellungen der beiden Drehachsen, in denen die Kalibrierkugel gemessen wird. Es gibt 2 Varianten, die Posen einzustellen:
- Messpunkte werden durch Rotation einer Achse bei festgehaltener zweiter Achse erzeugt.
- Direkt über alle Achswinkel der zu messenden Pose.
Eingabe mit festgehaltener 2.ter Achse
In diesem Fall werden die einzelnen Posen als Array definiert. Dies muss für jede Drehachse durchgeführt werden. Dabei wird eine Achse festgehalten (V.P.POS_2ND_AXIS[i]) und die zweite Achse an einer mit V.P.NUMBER_SPHERE_MEAS[i] festgelegten Anzahl von Positionen zwischen Anfangs- und Endwinkel gemessen. Wenn die Differenz zwischen Anfangs- und Endwinkel größer ist als:
[360/V.P.NUMBER_SPHERE_MEAS[i]] * [V.P.NUMBER_SPHERE_MEAS[i] - 1]
…wird dieser berechnete Winkel als Endwinkel verwendet.
Beispiel:
- Anfangswinkel = 0
- Endwinkel = 360
- Anzahl der Posen = 4
- [360/4] * 3 = 270
Es werden also die Posen 0, 90, 180 und 270 gemessen.
Parameter | Einheit | Bedeutung |
V.P.NUMBER_MEAS_PROC | - | Anzahl der Messvorgänge (Arrays) |
V.P.MEAS_AXIS[i] | - | zu messende Achse; A=1, B=2, C=3 |
V.P.NUMBER_SPHERE_MEAS[i] | - | Anzahl der Messposen |
V.P.START_ANGLE_MEAS[i] | °, Grad | Anfangsposition der bewegten Achse |
V.P.END_ANGLE_MEAS[i] | °, Grad | Endposition der bewegten Achse |
V.P.POS_2ND_AXIS[i] | °, Grad | Position der zweiten Drehachse |
Programmierbeispiel
Anzahl der Messungen einzelner Rotationsachsen
Im folgenden Programmierbeispiel sind die notwendigen Parameter für die Einstellung der Messposen dargestellt.
#VAR
V.P.NUMBER_MEAS_PROC
#ENDVAR
V.P.NUMBER_MEAS_PROC = 2
#VAR
V.P.MEAS_AXIS[V.P.NUMBER_MEAS_PROC]
V.P.NUMBER_SPHERE_MEAS[V.P.NUMBER_MEAS_PROC]
V.P.START_ANGLE_MEAS[V.P.NUMBER_MEAS_PROC]
V.P.END_ANGLE_MEAS[V.P.NUMBER_MEAS_PROC]
V.P.POS_2ND_AXIS[V.P.NUMBER_MEAS_PROC]
#ENDVAR
(Erste Messung, hier A-Achse)
(A-Achse wird in den Stellungen A-45, A0 und A45 gemessen)
(Die C-Achse steht auf 0)
V.P.MEAS_AXIS[0] = 1 (Achse: 1: A; 2: B; 3: C - haengt)
(von Kinematik und Variante ab)
V.P.NUMBER_SPHERE_MEAS[0] = 3 (Anzahl zu messenden Posen)
V.P.START_ANGLE_MEAS[0] = -45 (Anfangswinkel [Grad])
V.P.END_ANGLE_MEAS[0] = 45 (Endwinkel [Grad])
V.P.POS_2ND_AXIS[0] = 0 (Position der zweiten Achse)
(waehrend der Messung)
(Zweite Messung, hier C-Achse)
(Die C-Achse wird in den Stellungen C0, C90, C180 und C270)
(gemessen. Die A-Achse steht auf A35)
V.P.MEAS_AXIS[1] = 3
V.P.NUMBER_SPHERE_MEAS[1] = 4
V.P.START_ANGLE_MEAS[1] = 0
V.P.END_ANGLE_MEAS[1] = 360
V.P.POS_2ND_AXIS[1] = 35
Direkte Eingabe der Posen
Wenn die einzelnen Posen direkt eingegeben werden sollen, muss zuerst ein Array V.P.MEAS_POSE[3][Anzahl Messposen]
definiert werden. Es setzt sich aus den 3 Drehrichtungen und der Anzahl der zu messenden Posen zusammen. Die Winkel der nicht vorhandenen Drehachse müssen mit 0 initialisiert werden.
Die Positionierung der Drehachsen erfolgt in der Reihenfolge, in der sie im Array parametriert wurden.
Programmierbeispiel
Array definieren
Das folgende Programmierbeispiel stellt die Parametrierung von 9 Posen für eine BC-Kinematik dar.
#VAR
V.P.MEAS_POSE[3][9]
#ENDVAR
(A-Achse B-Achse C-Achse)
V.P.MEAS_POSE[0][0] = 0 V.P.MEAS_POSE[1][0] = 0
V.P.MEAS_POSE[0][1] = 0 V.P.MEAS_POSE[1][1] = 0
V.P.MEAS_POSE[0][2] = 0 V.P.MEAS_POSE[1][2] = 0
V.P.MEAS_POSE[0][3] = 0 V.P.MEAS_POSE[1][3] = 0
V.P.MEAS_POSE[0][4] = 0 V.P.MEAS_POSE[1][4] = 90
V.P.MEAS_POSE[0][5] = 0 V.P.MEAS_POSE[1][5] = 180
V.P.MEAS_POSE[0][6] = 0 V.P.MEAS_POSE[1][6] = 270
V.P.MEAS_POSE[0][7] = 0 V.P.MEAS_POSE[1][7] = 45
V.P.MEAS_POSE[0][8] = 0 V.P.MEAS_POSE[1][8] = 84
V.P.MEAS_POSE[2][0] = -45
V.P.MEAS_POSE[2][1] = 0
V.P.MEAS_POSE[2][2] = 45
V.P.MEAS_POSE[2][3] = 35
V.P.MEAS_POSE[2][4] = 35
V.P.MEAS_POSE[2][5] = 35
V.P.MEAS_POSE[2][6] = 35
V.P.MEAS_POSE[2][7] = 40
V.P.MEAS_POSE[2][8] = 40
Mindestanzahl von Posen
Um die Kinematik-Parameter erfolgreich bestimmen zu können wird eine Mindestanzahl von anzufahrenden Posen benötigt. Diese Mindestanzahl hängt von der Kinematik ab und ist in der folgenden Tabelle angegeben:
Kinematik und Variante | Aufbau | Mindestanzahl Posen |
Kinematik 9 | CA-Kopfkinematik (kartesisch) | 4 Messposen |
Kinematik 57 | BC-Tischkinematik (kartesisch) | 5 Messposen |
Kinematik 58 | AC-Tischkinematik (kartesisch) | 5 Messposen |
Kinematik 59 | CA-Kopfkinematik (kardanisch) | 5 Messposen |
Kinematik 60 | CB-Kopfkinematik (kardanisch) | 5 Messposen |
Kinematik 80 | AB-Tischkinematik (kartesisch) | A und B müssen jeweils mindestens 2 verschiedene Werte annehmen |
Kinematik 90, Variante 0 | AB-Kopfkinematik (kartesisch) | 4 Messposen |
Kinematik 90, Variante 2 | CA-Kopfkinematik (kartesisch) | 4 Messposen |
Kinematik 90, Variante 8 | CA-Kopfkinematik (kardanisch) | 5 Messposen |
Diese Mindestanzahl muss sowohl bei der automatischen wie auch manuellen Messung eingehalten werden.
Allerdings gibt es auch Posen, die keine weitere Information über die Kinematik liefern.
Des weiteren wird der Effekt von Messfehlern auf das Berechnungsergebnis verringert, wenn mehr Posen als nötig gemessen werden. Daher wird empfohlen, mehr Posen als die angegebene Mindestanzahl zu messen.
Weiterhin sollten die gemessenen Posen gleichmäßig im gesamten Verfahrbereich der Rotationsachsen verteilt sein.
Hinweis
Posenwahl
Generell gilt, dass bei einer größeren Anzahl von Posen eventuelle Messfehler besser herausgemittelt werden. Weiterhin verringert sich die Gefahr der Wahl von Posen, die keine weiteren Information liefern und damit zu einer Messfahrt ohne Ergebnis führen.
Es sollte darauf geachtet werden, dass die Messposen einen möglichst großen Schwenkbereich der Drehachsen abdecken.