PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Überlagerung der Translation mit der Drehung



loubna
03.07.2007, 13:30
hallo : -)
ich habe einen Problem, wobei ich dringend Hilfe benötige.
es geht um die Regelung eines Roboters mit omnidirektionalem Antrieb.
bis jetzt kann der Roboter translatorisch sowie rotatorisch fahren .
jetzt kommt das aller wichtigste, der Roboter soll in X oder Y fahren dabei soll er auch unabhängig eine saubere Drehung machen(sehen Sie bitte Skizze im Anhang).

Danke für Eure Tipps

zumgwadrad
03.07.2007, 14:39
HI,
habe mal den Raumvektor aufgestellt, hoffe der stimmt!
R=[x+r*sin((phistart)+180°*x/300mm) r*cos((phistart)+180°*x/300mm)]
R ist der Raumvektor mit R=[x y]; r=radius vom Bot; phistart=Startwinkel des Rades, phistart ist der Startwinkel deines Rades für phi=0 auf y-ahcse Weltkoordinaten.
Des muss halt etz in eine Motoransteuerung verpackt werden, und is ja klar das jeder motor nen eigenen Vektor hat!
Viel Spass

loubna
03.07.2007, 17:58
hi zumgwadrad,
danke für deine Antwort, die Skizze oben ist nur ein Beispiel, ich muss ja eine allgemeine Formel rausfinden.

ich hatte eine Lösungsansatz und zwar:

die Drehmatrix:
x'= cos winkel * x + sin winkel *y
y'= -sin winkel *x + cos winkel *y

das habe ich jetzt in meinem Programm, er fährt anders, also er macht nicht nur Drehung vor Ort sondern bewegt er sich noch im Raum, aber das keine gerade Kurve.

alles ist so programmiert: ich rechne aus der Soll-Geschwindigkeiten andere Soll-Geschwindigkeiten mit der Gleichungen oben, damit erhalte ich verdreht Orientierung.
nun bekomme ich mein Ist-Positionen, die sind dann halt verdreht meiner Meinung nach, also Globale Werte und nicht Lokal.
ich dachte ich muss eine Rücktransformation der Werte.
klappt halt alle snoch nicht :-((((((((((
Hilfeeeeeeee

mare_crisium
05.07.2007, 21:55
Loubna,

Du möchtest gern erreichen, dass Dein Fahrzeug sich dauernd um sich selbst dreht, während es sich gleichzeitig linear vorwärts bewegt.

Ich nehme einmal an, Du betrachtest ein dreirädriges Fahrzeug mit zwei gegenüberliegenen angetriebenen Rädern und einem freibeweglichen dritten Rad, dass den Bewegungen der anderen reibungsfrei folgt.

Mit diesem Modell kommst Du auf die Lösung, wenn Du Dir überlegst, was in dem Moment passieren soll, wenn die Antriebsräder Deines Fahrzeugs gerade Quer zur Fahrtrichtung stehen. Die Vorwärtsgeschwindigkeit soll dann möglichst Null sein. Wenn die Räder gerade in Richtung der gewünschten linearen Bewegungsrichtung stehen, soll ihre Geschwindigkeit maximal sein. Und wenn sie gar in der Richtung stehen, die der gewünschten linearen Bewegungsrichtung entgegengesetzt ist, dann soll die Geschwindigkeit sogar negativ sein. - Merkst Du was? Die Summe der Geschwindigkeiten der Antriebsräder muss sich periodisch ändern:

v = (1/2)*(vr +vl) = v*cos(2*pi*chi*t)
omega = (1/2a)*(vr-vl) = konstant.

a ist dabei der Abstand der Räder vom Mittelpunkt des Fahrzeugs, vr ist die Geschwindigkeit des rechten und vl die des linken Antriebsrades. Die Bahn Deines Fahrzeugs entspricht bei richtiger Wahl des Verhältnisses zwischen chi und omega sogenannten Epizyklen.

Wenn Du Dich für die Theorie dazu interessierst, die findest du in meinem Beitrag zu Deinem Thread "Motoren/Impulse pro Radumdrehung". Eine Simulation zum Spielen füge ich hier als Excel-Datei an.

Ciao,

mare_crisium

Edit: Anhang gelöscht wg. Upload-Quota