PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Differentialkinematik



bjoerng
25.08.2010, 15:41
Hallo Leute,

ich sitze gerade an der Kinematik meines differential angetriebenen R2-D2. Der Microcontroller liefert mir alle 50ms die Encoderinkremente, und ich baue die zu einer Trajektorie zusammen. Nach den klassischen Formeln der Differentialkinematik rechne ich aus den Raddrehgeschwindigkeiten die Bewegungsgeschwindigkeit in vx, vy und die Drehrate va (im Roboterkoordinatensystem) aus. x, y und a sind Position und Rotation des Roboters in Weltkoordinaten und starten bei 0.

Wenn ich das Ganze jetzt in Weltkoordinaten umsetzen muß, berechne ich

x += cos(a)*vx - sin(a)*vy
y += sin(a)*vx + cos(a)*vy
a += va

...transformiere also vx und vy mit der aktuellen Roboterdrehung ins Weltkoordinatensystem und addiere sie auf x und y, und a inkrementiere ich einfach mit va.

Meine Frage: Ich nehme also die Bewegung als stückweise geradlinig an, interpretiere also (vx vy)^T als Bewegungsvektor. Dabei mache ich einen Fehler, denn der Robbi bewegt sich ja auf einem Kreisbogen. Macht Ihr das auch so, berechnet Ihr tatsächlich den Kreisbogen (aufwendig!), oder habt Ihr andere Ideen?

Danke für jeden Input!

damfino
25.08.2010, 20:22
Hi,

Also ganz so kompliziert berechne ich die Koordinaten nicht:

Weg=(weg_links+weg_rechts)/2
Drehwinkel=(weg_lins-weg_rechts)/Radstand [rad]
Radstand= Abstand der beiden angetriebenen Rädern.

Position seit letzter Berechnung:
pos_x_temp=weg*sin(Drehwinkel)
pos_y_temp=weg*cos(Drehwinkel)

Absolute Position:
pos_x=pos_x+pos_x_temp
pos_y=pos_y+pos_y_temp

Richtung=Richtung+ Drehwinkel

Hier brauche ich kein eigenes Koordinatensystem für den Roboter, das geht direkt im Weltsystem.

Bei geringen Radien berechne ich den Kreisbogen extra, besser gesagt nach der Drehung berechne ich den aktuellen Endpunkt des Kreisbogens und von dort geht es mit der einfachen Streckenberechung weiter. Dazu brauche ich Roboter und Weltsystem.

Formeln sind auf meiner Homepage unter Software - Positionsbestimmung.
Bis jetzt stimmen die Ergebnisse der Berechnung mit der Wirklichkeit trotz der geringen Tastrate überein.

LG!