Numerik » Steuerung eines Roboter-Arms


Hintergrundinformationen

Koordinatenumrechnungen

Da die Winkel Alpha und Beta jeweils auf einen Bereich zwischen 0 und 180 Grad eingeschränkt sind, ist die Abbildung zwischen (x,y)-Koordinaten und (Alpha, Beta)-Koordinaten eineindeutig. Der Ursprung des Koordinatensystems befindet sich im Verankerungspunkt des Arms. Die Formeln für die Koordinatentransformationen lauten wie folgt (a und b sind die Längen der beiden Roboter-Arm-Glieder):

alpha = phi+arccos((a*a+r*r-b*b)/(2*a*r))

beta = arccos((a*a+b*b-r*r)/(2*a*b))

x = a*cos(alpha)-b*cos(alpha+beta)

y = a*sin(alpha)-b*sin(alpha+beta

Der beste Weg

Was ist nun der beste, d.h. der effizienteste Weg fuer den Roboterarm von einem Punkt zum nächsten? Die Effizienz wird nach zwei Kriterien beurteilt:

  1. Der Arbeitsaufwand sollte minimal sein. Die Vorstellung ist, dass die Winkelstellungen der beiden Gelenke des Roboterarms je durch einen Elektromotor verändert werden. Der Arbeitsaufwand ist optimal, wenn die durchlaufenen Winkel (werden im Status-Fenster angezeigt) minimal sind. (Anmerkung: in diesem einfachen Modell werden diverse Einflüsse wie z.B. der je nach Stellung des zweiten Glieds unterschiedliche Arbeitsaufwand, den Winkel Alpha zu verändern, vernachlässigt).

  2. Die Zeitdauer der Bewegung (Anzahl Zeitschritte im Status-Fenster) sollte minimal sein.

Bewegt man sich auf einer Gerade in den (Alpha, Beta)-Koordinaten, dann sind beide Kriterien erfüllt; der beste Weg zwischen zwei Punkten ist eine Gerade im (Alpha, Beta)-Raum. Insbesondere werden beide Winkel gleichzeitig verändert ("beide Motoren laufen gleichzeitig"). Bei einer sequentiellen Winkelveränderung (z.B. zuerst Alpha, dann Beta) ist zwar der Arbeitsaufwand ebenfalls minimal, die Bewegung dauert aber viel länger ("nur ein Motor läuft zu einer gewissen Zeit"). Bemerkenswert ist auch die Tatsache, dass der effizienteste Weg nicht der kürzeste Weg in den (x,y)-Koordinaten ist, wie man vielleicht im ersten Moment vermuten könnte.