Skip to main content

Rotatorische Achsen mit einem Wertebereich von mehr als 360°

Einleitung

Roboter haben oft rotatorische Achsen mit einem Wertebereich von mehr als 360°. Zum Beispiel kann die letzte Achse (Orientierungsachse A3) eines SCARA-Roboters oft mehr als eine Umdrehung fahren, etwa von -540° bis 540°.

Dies bedeutet, dass dieselbe Position und Orientierung auf mehrere Arten angefahren werden kann. Um beim SCARA zu bleiben, ist beispielsweise die Orientierung und Position des Werkzeuges identisch, egal ob die letzte Achse bei -170° oder bei 190° (= -170° + 360°) steht. Folglich ist die Umrechnung von kartesischer Position und Orientierung zu Achswerten (die kinematische Rückwärtstransformation) nicht eindeutig, sondern hat mehrere Lösungen.

Dies kann beispielsweise bei Pick & Place-Anwendungen genutzt werden, um Zeit zu sparen, indem man von 170° nach 190° und nicht nach -170° fährt.

Hinweis: Die Bewegung der Orientierungsachse des SCARA kann bei solchen Anwendungen schnell zum begrenzenden Faktor für die Taktzeit werden.

Auflösung der Mehrdeutigkeit

Wenn die zu verfahrenden Punkte im Achskoordinatensystem (ACS) kommandiert werden, dann ist für jede Achse klar, welchen Wert sie im Zielpunkt annehmen wird. Dagegen gibt es bei kartesischer Kommandierung (Position in X/Y/Z und Orientierung in A/B/C) die besagte Mehrdeutigkeit für rotatorische Achsen.

Zur Auflösung dieser Mehrdeutigkeit wird die sogenannte Konfiguration der Kinematik verwendet. Beim SCARA-Roboter enthält die Konfiguration bereits die Einstellung, ob der SCARA einen Punkt mit ElbowRight oder ElbowLeft anfahren soll. Zusätzlich enthält die Konfiguration des SCARA auch die Einstellung nPeriodA3, mit der festgelegt werden kann, wie die Mehrdeutigkeit für Achse A3 aufgelöst werden soll.

Dazu wird der gesamte Wertebereich in sogenannte Perioden der maximalen Länge von 360° aufgeteilt:

  • Periode -1 von -540° bis -180°

  • Periode 1 von -180° bis 180°

  • Periode 2 von 180° bis 540°

(Bei einem größeren Wertebereich der Achse gibt es entsprechend weitere mögliche Perioden.)

Dazu gibt es noch einen speziellen Wert. Setzt man nPeriodA3 := 0, dann ist eine automatische Auflösung der Mehrdeutigkeit aktiviert. Für PTP-Bewegungen bedeutet dies, dass die Periode so gewählt wird, dass für Achse 4 der Abstand zwischen Start- und Zielposition möglichst klein ist. (Das Verhalten bei CP-Bewegungen wird weiter unten beschrieben.)

Es ist also möglich, die Auflösung der Mehrdeutigkeit einer rotatorischen Achse zu steuern, indem man die kinematische Konfiguration entsprechend setzt (siehe SMC_SetKinConfiguration). Kinematiken, die diese Funktionalität unterstützen, implementieren die Schnittstelle SMKinematicWithConfigurations3.

Hinweis

Die Funktionsbausteine SMC_GroupReadSetPosition, MC_GroupReadActualPosition und SMC_GroupTargetPosition geben die Konfiguration immer mit aktivierter automatischer Auflösung der Perioden aus. Die aktuelle Konfiguration mit explizit gesetzten Perioden kann ausgelesen werden, indem die Position im ACS ausgelesen und dann mittels SMC_GroupConvertPosition ins MCS konvertiert wird. Die dabei zurückgegebene Konfiguration hat explizit gesetzte Perioden.

Für weitere Informationen siehe: Konfigurationen von Kinematiken

Verhalten bei CP-Bewegungen

Während einer CP-Bewegung (MC_MoveLinearAbsolute/MC_MoveLinearRelative, MC_MoveCircularAbsolute/MC_MoveCircularRelative) werden rotatorische Achsen immer im Automatikmodus (Period 0) verfahren. Es wird immer die Periode der Achse gewählt, so dass es nicht zu einem Sprung der Achse kommt.

Dabei kann es unter Umständen vorkommen, dass am Ende der CP-Bewegung nicht der kommandierte Achswert erreicht würde, sondern die Achse wegen der automatischen Auswahl der Periode in einer anderen Periode ankommt. Dies bedeutet, dass die kommandierte Position mit der gewählten Bewegungsart nicht erreichbar ist. Dieser Konflikt wird vor Erreichen der Zielposition erkannt, die Achsgruppe wird gestoppt und ein Fehler wird ausgegeben.

Beispiel: Sie verwenden einen SCARA-Roboter mit drei rotatorischen Achsen A1, A2 und A3. A3 hat einen Wertebereich von -360° bis +360°. Sie teachen zwei Positionen in Achskoordinaten. Position1 = (A1 = 0°, A2 = 90°, A3 = 170°), Position2 = (A1 = 10°, A2 = 90°, A3 = -170°).

Dann kommandieren Sie eine Linearbewegung (MC_MoveLinear/MC_MoveAbsolute) mit Orientierungsmodus GreatCircle.

Diese Kombination von Kommandierung im ACS und Großkreis-Orientierungsinterpolation erzeugt einen Konflikt. Um der Orientierungsinterpolation zu folgen, müsste die Achse A3 von 170° in positiver Richtung nach 190° fahren. Sie kann daher die geforderte Zielposition (-170°) nicht erreichen.

Anmerkung: bei CP-Bewegungen wird die Periode der rotatorischen Achse durch die gewählte Interpolationsart bestimmt. Das bedeutet auch, dass die Zielposition der Achse von der Bahn abhängt, auf der der Zielpunkt angefahren wird. Es ist daher beipielsweise möglich, dass durch das Blending zwischen zwei Bewegungen eine Achse in einer anderen Periode ankommt als dies bei Buffered-Bewegungen der Fall gewesen wäre.

Für weitere Informationen siehe: Orientierungsinterpolation bei CP-Bewegungen