PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Omnidirektionale Steuerung: Drehung berechnen



xxxsnowxxx
07.06.2010, 18:10
hallo

ich bin gerade dabei mri einen omnidirektionalen roboter zu bauen, also 3 omniwheels, im Kreis angeordnet, mit 120° Winkel jeweils dazwischen.

http://img696.imageshack.us/f/dsc00062yf.jpg

ich möchte jetzt die kinematik berechnen, dazu folgende frage:

kann ich ohne sensoren, also nur durch die Drehung der Räder den Winkel berechnen den sich mein Roboter dreht / gedreht hat?

Jedes Rad hat einen Motor, jeweils mit Drehgeber, also kann ich für jedes Rad 360 Impulse pro Umdrehung und damit die gefahrene Strecke berechnen.

wenn ich nur um die Hochachse rotiere habe ich auch schon eine Formel aufgestellt:

Winkel = (Impulse eines Rades) * (Radius des Rades) / (Abstand der Räder vom Mittelpunkt)

wenn jetzt allerdings noch eine Translation in eine oder gar zwei Richtungen dazukommen weiß ich nicht mehr weiter, weil ja jedes Rad unterschiedliche Impulse und damit Strecken zurücklegt welche durch das zusammenspiel mit den anderen Rädern wieder unterschiedliche Rotationen des gesamten Roboters hervorruft.

Ich hoffe mir kann jemand helfen :)

Danke

radbruch
07.06.2010, 18:40
Hallo

Mehr noch als vermutlich bei allen anderen Radantrieben tritt bei den Omniwheels ein nicht berechenbarer Schlupf zwischen Rad und Untergrund auf. Das ist mehr oder weniger die Grundlage für die Funktion der Omniwheels. Durch die 120°-Stellung zueinander werden aus dem jeweils nur radial wirkenden Schub eine Querkraft erzeugt die letzlich die Teilrollen der Räder antreibt.

Ich denke, das ist eigentlich der falsche Ansatz. Omnidirektionale Antriebe wie Mecanum oder Omniwheels glänzen durch die Möglichkeit den Kurs jederzeit in alle Richtungen ändern zu können. Mit geeigneten Sensoren und einer entsprechenden Software können sie herrlich elegant um feste oder bewegliche Hindernisse kurven. Wieviele Umdrehungen der Räder dazu nötig sind interessiert dabei niemanden mehr.

Gruß

mic

xxxsnowxxx
07.06.2010, 19:02
danke für deine schnelle antwort :)

über die funktionsweise eines omnibots bin ich mir schon im klaren, ich möchte den roboter mit omniwheels aber nun mit einem joystick steuern und zb eine translation in eine Richtung mit gleichzeitiger drehung um die Hochachse des Roboters erreichen, mein roboter soll also kein "vorne" haben, sondern eben die bewegungen überlagern, bzw die rotation soll die lineare translation in eine vorher bestimmte richtung nicht von der bahn abbringen.
der schlupf erfolgt hier ja nur in axialer richtung des jeweiligen rades, wobei die umfangsgeschwindigkeit bekannt ist.

dass ich sowas mit sensoren wunderbar erreiche ist mir klar, nur ist jetzt eben die frage ob es auch mit formeln über die drehgeberimpulse zu berechnen ist. dazu müsste man die verschiedenen abhängigkeiten der räder bei translation und rotation irgendwie in formeln festhalten. die entscheidende idee habe ich hier noch nicht, und bin mir auch nicht sicher ob es ohne sensoren geht, deswegen wäre es schön wenn mir jemand einen denkanstoss für die kinematik geben würde, wenn es überhaupt so möglich ist :)

radbruch
07.06.2010, 20:15
Hallo


mein roboter soll also kein "vorne" haben,...... aber dein "Joystick" hat es. Selbst wenn du fehler- und rundungsfrei die Radumdrehungen für "Joy nach vorne" berechnen und ansteuern kannst, der Bot wird sich schlupfbedingt drehen und in die Richtung fahren die er selbst aussucht. Ohne eine externe Lagerückmeldung (z.B. Referenzpunkte, Baken oder gar eine Kamera) macht das Omniwheelfahrwerk, was es will.


der schlupf erfolgt hier ja nur in axialer richtung des jeweiligen rades, wobei die umfangsgeschwindigkeit bekannt ist.Gut zu wissen;)

Im Ernst, der Schlupf entsteht überall! Bei den Omniwheels zusätzlich auch an den kleinen quergestellten Rollen. Sie werden zum einen von der Reibung am Boden angetrieben, drücken aber gleichzeitig quer zur Drehrichtung des Rads gegen den Boden. Ein einfacher Test könnte zeigen, was wirklich passiert:

Zwei Räder werden gegenläufig genau (?) gleichschnell angetrieben und ziehen das dritte stehende Rad hinter sich her. Bei günstiger Stellung des dritten Rades (kleine Rolle genau mittig unten) könnte das einigermasen gerade werden, aber sobald das stehende Rad geschoben wird, kann man wohl nicht mehr von "Geradeausfahren" sprechen. Das wird natürlich auch von der Qualität der Räder und des Untergrunds beeinfußt, beseitigen oder gar "rausrechnen" kann man das aber nicht.

Gruß

mic

mare_crisium
07.06.2010, 20:49
xxxsnowxxx,

guck' mal in das .pdf. Gilt natürlich alles nur im Idealfall ;-) !

Ciao,

mare_crisium

EDIT: Anhang gelöscht wg. UpLoad-Limit

xxxsnowxxx
07.06.2010, 21:49
@radbruch: ja dass ich durch irgendwelche kleinen unregelmäßigkeiten des untergrunds oder so etwas abkomme vom theoretischen kurs kann ich mir schon vorstellen, aber ich möchte mal annehmen dass die omniwheels drehen nur an den quergestellten rollen durch und sonst ist auch alles optimal, bodenhaftung 100% und so... =)


Im Ernst, der Schlupf entsteht überall! Bei den Omniwheels zusätzlich auch an den kleinen quergestellten Rollen
ja hoffentlich! das ist doch der gewollte schlupf (eben in achsialer richtung), deswegen nimmt man ja omniwheels.


@mare_crisium: DANKE!!! genau so etwas habe ich gesucht :)

bei meinem joystick habe ich 3 achsen: Vx, Vy und Rotation um Z (also in deiner Formel omega). ich nehme an um phi rauszubekommen integriere ich omega über die zeit die ich drehe, richtig? da muss ich mal noch ein bisschen rechnen :)
hast du zufällig auch die herleitung für die formeln? würde mir noch mehr weiterhelfen :)

xxxsnowxxx
07.06.2010, 23:44
ich habe dank mare_crisiums formeln gerade gemerkt dass ich meine geschwindigkeitsdreiecke bei meinen berechnungen ganz falsch angetragen hab... da war dann wohl alles grübeln wieso das nicht so aufgeht wie ich wollte für die katz :D

hab nochmal alles neu durchgerechnet, hab jetzt zwar ganz andere formeln als du aber es kommt das gleiche raus, bis auf einen faktor 0,5 aber das is wohl egal wenn es bei u1, u2 und u3 immer die hälfte von deinen ergebnissen ist. außerdem stimmen die vorzeichen noch nicht immer überein, aber das war schonmal ein schöner schritt weiter in die richtige richtung, thx a lot mare_crisium

xxxsnowxxx
08.06.2010, 00:46
hier mal zum vergleich, oben deine formeln, unten meine:

keine ahnung warum da so ein unterschied ist, die werte sind die selben (bis auf die vorzeichen...) :)

http://img685.imageshack.us/i/formelnomniwheels.jpg

wer fehler in meiner version findet darf sie mir gerne mitteilen, ich bin sogar froh darum :)

mare_crisium
08.06.2010, 14:26
xxxsnowxxx

immer schön, jemanden zu finden, der auch noch selber rechnet :-) !

Die Herleitung meiner Formeln habe ich diesmal vollständig angehängt. Es soll schon vorgekommen sein, dass ich mich verrechnet habe ;-).

Ja, den aktuellen Drehwinkel kannst Du aus den Drehgeschwindigkeiten aufintegrieren; das ist dann schon ein Teil eines Koppelnavigations-Algorithmus, mit dem Du, im Prinzip, den Standort Deines Fahrzeugs laufend mitrechnen kannst.

Ciao,

mare_crisium

EDIT: Anhang gelöscht wg. Upload-Limit

Rubaddl-King
05.08.2011, 19:28
Hallo,

ich möchte mich an RoboSoccer ranarbeiten und habe deswegen schon die Grundzüge eines omnidirektionalen Roboters mit drei Omniwheels stehen. Ich habe mir die Formeln, die auf dem Bild abgelegt sind angeguckt, konnte aber nicht genau erkennen für was phi und für was omega stehen.
Leider sind die pdf-Anhänge mittlerweile gelöscht, sonst würde ich auch kein Thema, was schon ein Jahr alt ist aufgreifen:(, aber ich fand die Formeln "relativ" leicht für eine Steuerung in alle Richtungen mit Drehwinkel etc.
Es wäre echt cool, wenn einer von euch das liest und mir die ganze Sache mal erläutern könnte, oder die gelöschten pdf's zur Verfügung stellen könnte.

Danke, Rubaddl

Chypsylon
08.08.2011, 19:06
Zu den Formeln im Bild kann ich dir auch nicht mehr sagen aber ich hab hier noch ein paar Links zu anderen(?) Formeln:
http://robocup.quantumtorque.com/de/robots/05striker/calculations.htm

http://www.google.com/m/url?ei=DyVATqDmEsfz8QPK5fWSAQ&q=http://www.tu-chemnitz.de/etit/proaut/rk/fileadmin/user_upload/RK2008/Downloads/roboking2008_technischedokumentation.pdf&ved=0CBMQFjAA&usg=AFQjCNF_ly3Yk9Kn2Rv5bJ6W-7EeBGy_OA

http://holonomicwheel.com/template.jsp?p=my/RobocupRobot.html (formel ist im code versteckt)