Herzlichen Glückwunsch zu der angemessenen Benotung!
Tut mir leid, ich vermute das wird hier ein bisschen OT. Aber hoffentlich interessant
Der Trick beim Omnidriveantrieb ist ja, dass Translation und Rotation wirklich unabhängig sind. D.h. ich kann zum Beispiel mit einer Geschwindigkeit von 10 cm/s nach vorne (Y-Richtung), einer Geschwindigkeit von 5 cm/s nach rechts (x-Richtung) und mich dabei noch um 5° /s drehen. Dann fahre ich einen Kreis mit dem Mittelpunkt irgendwo links hinten.Bei einem omnidrive-Roboter müsste das rein theoretisch schon mit einem Maussensor zu realisieren sein, ABER: nur bei dem Spezialfall, dass der Roboter nie um die eigene Achse rotiert. Soll heißen, dass der Roboter von Start bis Ende immer in die gleiche Richtung schaut.
Da der Sensor zentral sitzt erkennt er also keine Drehung um die eigene Achse.
Um den Roboter ganz normal benützen zu können, müsste man also einen zweiten Sensor einbauen, der exzentrisch sitzt und die Rotierung um die eigene Achse registriert und jeweils von dem anderen alpha abzieht/hinzuzählt. Allerdings dürfte dieser Sensor nur dann aktiviert werden, wenn sich der Roboter auch wirklich um die eigene Achse dreht. Der zurückgelegte Weg wird nach wie vor über den zentralen Sensor bestimmt.
Unsere Roboter könnte man diese Operation machen lassen, mit einer Funktion omni(5, 10, 5); (die Funktion ist nicht so genau so. In Wirklichkeit werten wir nur die Richtungen aus, Ein Speed parameter sorgt dafür, dass man die Geschwindigkeit anders einstellen kann.)
Habe mal eben eine Zeichnung entworfen: (siehe unten)
Der Roboter dreht sich also um einen Mittelpunkt M. Und bewegt sich von P nach P'.
Das Problem ist also, dass der Roboter sich meistens nicht um eine dir bekannte Achse dreht, sondern dass die Drehachse irgendwo auf der Ebene steht.
Ich habe nochmal einen neuen Ansatz. Die Herleitung ist mir zu kompliziert, auf zuschreiben/zu malen (deutet darauf hin, dass ichs noch nicht ganz verstanden habe). Aber hier jedenfalls mein Ergebnis: (auch im Anhang)
\begin{math}
\tan(\alpha) = \dfrac{|\Delta\overrightarrow{s_2} - \Delta\overrightarrow{s_1}\|}{|\overrightarrow{d}| } \\
\mbox{mit } \Delta\overrightarrow{s_2} = \overrightarrow{s_2}'-\overrightarrow{s_2} \\
\mbox{und } \Delta\overrightarrow{s_1} = \overrightarrow{s_1}'-\overrightarrow{s_1}
\end{math}
Lesezeichen