Forum: Mechanik, Gehäuse, Werkzeug Bewegung eines omnidirektionale Fahrwerks berechnen


von Jim B. (logicgate)


Lesenswert?

Hallo zusammen,

ich stehe derzeit vor einem Problem und benötige etwas Hilfe um meine 
Gedanken zu ordnen. Da ich damals in der Schule aufgrund Lehrermangels 
leider nur ein halbes Jahr Physik hatte, muss ich mir nun diverse Themen 
der Mechanik aufarbeiten und habe dabei Probleme den Bezug herzustellen.

Folgende Problem:
Ich habe ein omnidirektionales Fahrwerk mit vier bürstenlosen Motoren 
und Mecanum-Rädern (https://de.wikipedia.org/wiki/Mecanum-Rad) und die 
für jedes Rad angestrebten RPMs. Daraus soll ich im ersten Schritt nun 
die resultierende Bewegung (m/s) berechnen, d.h. ausgehend vom 
Fahrzeugmittelpunkt soll ich Werte für X, Y (Vorwärts- und 
Seitwärtsbewegung) und Z (Rotation) berechnen. Dabei gehe ich erst 
einmal davon aus, dass das Fahrzeug nur gerade aus oder seitwärts fährt, 
damit ich erst einmal Fliehkraft in der Kurvenfahrt ignorieren kann. Das 
wäre Schritt 2.

Ich habe mich schon in diverse Themen wie Kraft, Reibung etc. eingelesen 
und versuche dies nun irgendwie zusammenzufügen, woran ich derzeit noch 
scheitere. Vielleicht findet sich der ein oder andere, der mir mit 
Denkanstößen helfen kann.

Folgende Fakten sind mir gegeben:
- Masse des Fahrzeuges
- Von einem PID-Regler angestrebte RPM jedes einzelnen Rades
- Durchmesser eines Rades
- Max. Rotationsgeschwindigkeit eines einzelnen Motors
- Max. Drehmoment eines einzelnen Motors
- Max. Ausgangsleistung eines einzelnen Motors

Die Formeln um aus den RPM-Werten den Richtungsvektor (X, Y, Z) zu 
berechnen habe ich. Jedoch muss ich nun vom PID-Regler irgendwie zu 
diesen potenziell realen RPM-Werten kommen.

Wenn ich es richtig verstanden habe, dann muss ich nun folgendes 
Vorgehen wählen:

- Der PID-Regler strebt eine RPM für jedes Rad an. Diese kann aber nicht 
1:1 umgesetzt werden, z.B. wegen der Reibhaftung, welche erst überwunden 
werden muss.

- Um dies zu diese Haftung zu berechnen benötige ich die Masse des 
Objektes (vorhanden) und einen Koeffizient (müsste ich ermitteln).

- Nun müsste ich ermitteln ab wann sich das Rad wirklich dreht und wie 
schnell. Hier scheitere ich nun die ganzen Fäden zusammen zu bekommen. 
Wenn ich es richtig verstehe, dann benötige ich die Kraft, welche der 
Motor ausübt. Formel, welche ich dazu gefunden habe, benötigen alle die 
Spannung des Motors.

Bin ich hier auf dem richtigen Weg oder muss ich das ganz anders 
angehen? Ich bin für jede Hilfe, Hinweise o.ä. sehr dankbar!

: Bearbeitet durch User
von Yalu X. (yalu) (Moderator)


Lesenswert?

Jim B. schrieb:
> Ich habe ein omnidirektionales Fahrwerk mit vier bürstenlosen Motoren
> und Mecanum-Rädern (https://de.wikipedia.org/wiki/Mecanum-Rad) und die
> für jedes Rad angestrebten RPMs. Daraus soll ich im ersten Schritt nun
> die resultierende Bewegung (m/s) berechnen, d.h. ausgehend vom
> Fahrzeugmittelpunkt soll ich Werte für X, Y (Vorwärts- und
> Seitwärtsbewegung) und Z (Rotation) berechnen.

Sollst bzw. willst du das wirklich?

Da das Fahrwerk vier Bewgungsparameter hat (die Drehzahl der vier
Räder), das gesamte Fahrzeug aber nur drei (Geschwindigkeit, Richtung
und Drehrate), ist das System überbestimmt, d.h. i.Allg. wird mindestens
eines der Räder auf dem Boden rutschen. Der Radschlupf lässt sich aber
kaum berechnen, da er von vielen, teilweise nur schwer vorhersehbaren
Faktoren abhängt.

Die meisten Leute wollen aber etwas ganz anderes, nämlich dass das
Fahrzeug eine vorgegebene Bewegung ausführt. Gegeben ist also die
Geschwindigkeit, die Richtung und die Drehrate, gesucht sind die
Drehzahlen der vier Räder. In dieser Richtung ist das Problem nicht
überbestimmt, d.h. bei richtiger Berechnung fährt das Fahrzeug
schlupffrei (wenn man mal von irgendwelchen Dreckeffekten absieht).
Damit spielt die Fahrzeugmasse, die Antriebsdrehmomente, die Leistung,
die Reibungskoeffizienten keine Rolle, denn das verbleibende Problem ist
rein geometrischer Natur.

Falls du schon etwas Vektorrechung gelernt hast, ist es am leichtesten,
das Problem damit anzugehen. Es gibt sicher viele Veröffentlichungen zu
dem Thema, da es Mecanum-Räder schon seit einem halben Jahrhundert gibt.

Das schlupfbehaftete Fahren spielt vor allem dann eine Rolle, wenn das
Fahrzeug mit maximaler Beschleunigung (d.h. mit durchdrehenden Rädern)
anfahren und wie ein Rallye-Auto um die Kurven driften soll. Das ist
aber eher etwas für Fortgeschrittene. Löse erst einmal das sehr viel
einfachere Problem, nämlich das Fahrzeug anständig fahren zu lassen :)

von Jim B. (logicgate)


Lesenswert?

Yalu X. schrieb:
> Sollst bzw. willst du das wirklich?

Japp. Ausgang ist ein Vektor, welcher an die in ROS 
(https://www.ros.org/) wohl üblichen Vektoren angelehnt ist. Aus dem X, 
Y, Z-Werten lassen sich dann die RPM für jedes Rad berechnen, Formeln 
habe ich schon vorliegen. Beispiel wie man aus X, Y, Z die RPM 
berechnet, findet man z.B. hier: 
https://seeeddoc.github.io/4WD_Mecanum_Wheel_Robot_Kit_Series/

Was bei mir nun auf der Agenda steht ist das Fahrzeug-Modell bestmöglich 
zu simulieren, bzw. das Verhalten, wieder auf X, Y, Z bezogen. Ich 
möchte bzw. muss die Realität bestmöglich abbilden. Gewisse Kompromisse 
sind in ersten Iterationen erst einmal okay. Ich möchte erst einmal 
überhaupt das auf die Reihe bekommen. Daher auch die Reduktion auf 
simples gerade aus fahren.

Einen PID-Regler, welche die Motorsteuerung bzgl. der RPM nachbildet 
habe ich schon als Konzept. Somit kann ich aus dem Vektor die RPM, 
welche das Fahrzeug, erzeugen würde, nachbilden.

Nun muss ich dies für alle drei Motoren aber unter einen gemeinsamen Hut 
bekommen. Unter Berücksichtigung von u.a. besagter Reibung.

Aufkommende Parameter (z.B. die das PID-Reglers) sollen per 
heuristischer Optimierung bestmöglich gefunden werden.

Bei mir scheitert es leider an dem Zusammenfügen all der losen Enden. 
Hab schon bestmöglich versucht mich in alle notwendigen Grundlagen 
einzuarbeiten, habe jedoch bislang null praktische Erfahrung, was es - 
für mich als Lerntyp - durchaus erschwert.

: Bearbeitet durch User
von emaN oN (Gast)


Lesenswert?

Jim B. schrieb:
> Ich habe ein omnidirektionales Fahrwerk mit vier bürstenlosen Motoren
> und Mecanum-Rädern

Welches? Einzelradaufhängung? Richtige Mecanum-Räder (es gibt seit 
einiger Zeit Spielzeug, das leider nicht taugt)?

von Yalu X. (yalu) (Moderator)


Lesenswert?

Jim B. schrieb:
> Was bei mir nun auf der Agenda steht ist das Fahrzeug-Modell bestmöglich
> zu simulieren, bzw. das Verhalten, wieder auf X, Y, Z bezogen.

Ok, das ist natürlich schon sehr viel komplizierter.

In einem ersten Schritt könntest du dich auf die Reibung zwischen Rädern
und Boden konzentrieren und alle anderen Effekte (Beschleunigungskräfte
usw.) außen vor lassen. Des Weiteren kannst du evtl. davon ausgehen,
dass der Fahrzeugschwerpunkt genau im Zentrum liegt. Wenn das Fahrwerk
so konstruiert ist, dass es kleinere Bodenunebenheiten ausgleicht (bspw.
mittels einer Pendelachse oder gefederten Rädern) sind alle vier Räder
gleich belastet, so dass du in der Berechnung den Schlupf gleichmäßig
auf alle vier Räder verteilen kannst. Ist die Belastung der Räder nicht
gleich, kannst der Schlupf entsprechend umgekehrt proportional zu den
Radlasten verteilen.

Das kann aber nur eine ganz grobe Schätzung sein, denn schon kleinste
Unterschiede in den Reibungskoeffizienten zwischen den Rädern und dem
Boden, können die berechnete Schlupfverteilung komplett über den Haufen
schmeißen.

Wenn du dann auch noch Beschleunigungen berücksichtigen möchtest, musst
du neben der sich dadurch ändernden Radlastverteilung die auf die
passiven Rollen der Mecanum-Räder wirkenden Axialkräfte in die
Berechnung eingehen lassen. Der Schlupf ist dann proportional zum
Quotienten aus Axialkraft und Radlast.

Es ist sicher eine interessante Aufgabe, sich mit solchen Dingen zu
beschäftigen, ich würde aber die Erwartungen in das Ergebnis nicht zu
hoch stecken. Du kannst ja mal versuchsweise das Fahrzeug mit
absichtlich nicht zueinander passenden Raddrehzahlen (bspw. für drei
Räder den gleichen positiven Wert, für das vierte null) fahren lassen,
so dass ein großer Schlupf entsteht. Wenn du das Fahrzeug damit zehnmal
von der selben Position aus startest und 10 Sekunden fahren lässt, wird
es an zehn deutlich voneinander abweichenden Endpositionen ankommen.
Daran erkennst du, dass hier auch der Zufall eine große Rolle spielt,
den du in deiner Simulation leider nicht vorhersagen kannst.

von Jim B. (logicgate)


Lesenswert?

emaN oN schrieb:
> Welches? Einzelradaufhängung? Richtige Mecanum-Räder (es gibt seit
> einiger Zeit Spielzeug, das leider nicht taugt)?

Genaues Modell muss ich in Erfahrung bringen. Sollte aber für ein 
einfaches Modell nicht von Belang sein. Ich möchte ja nicht eine 100%ig 
akkurate Simulation haben.

Yalu X. schrieb:
> Ok, das ist natürlich schon sehr viel komplizierter.
>
> In einem ersten Schritt könntest du dich auf die Reibung zwischen Rädern
> und Boden konzentrieren und alle anderen Effekte (Beschleunigungskräfte
> usw.) außen vor lassen. Des Weiteren kannst du evtl. davon ausgehen,
> dass der Fahrzeugschwerpunkt genau im Zentrum liegt. Wenn das Fahrwerk
> so konstruiert ist, dass es kleinere Bodenunebenheiten ausgleicht (bspw.
> mittels einer Pendelachse oder gefederten Rädern) sind alle vier Räder
> gleich belastet, so dass du in der Berechnung den Schlupf gleichmäßig
> auf alle vier Räder verteilen kannst. Ist die Belastung der Räder nicht
> gleich, kannst der Schlupf entsprechend umgekehrt proportional zu den
> Radlasten verteilen.

Im ersten Schritt würde ich das Modell gerne so einfach wie möglich 
halten, damit ich es auch verstehe und mich langsam rantasten kann. 
Daher würde ich von einem zentralen Schwerpunkt in der Mitte ausgehen. 
Gefedert sind die Räder nicht.

Vielleicht muss ich dazu erwähnen, dass der Roboter einer kleinerer 
Natur ist. 30-40cm in der Länge vielleicht.

> Das kann aber nur eine ganz grobe Schätzung sein, denn schon kleinste
> Unterschiede in den Reibungskoeffizienten zwischen den Rädern und dem
> Boden, können die berechnete Schlupfverteilung komplett über den Haufen
> schmeißen.

Hier soll später die Optimierung eintreten. Es werden aus der realen 
Welt Verhalten etc. aufgezeichnet, welche dann als Optimierungsziel 
verwendet werden. Es wird also versucht die Parameter zu finden, welche 
die Realität bestmöglich abbbilden.

> Es ist sicher eine interessante Aufgabe, sich mit solchen Dingen zu
> beschäftigen, ich würde aber die Erwartungen in das Ergebnis nicht zu
> hoch stecken.

Das wird sich dann am Ende zeigen bzw. ist auch Gegenstand der zu 
gewinnenden Erkenntnis. Wenn sich raus stellt, dass man so nicht an ein 
sinnvolles Modell kommen kann, dann ist dies auch eine Erkenntnis.

von emaN oN (Gast)


Lesenswert?

Jim B. schrieb:
> Ich habe ein omnidirektionales Fahrwerk mit vier bürstenlosen Motoren
> und Mecanum-Rädern

Jim B. schrieb:
> Genaues Modell muss ich in Erfahrung bringen. Sollte aber für ein
> einfaches Modell nicht von Belang sein. Ich möchte ja nicht eine 100%ig
> akkurate Simulation haben.

Ok, offenbar hast du ein theoretisches Fahrwerk und suchst die 
Simulation, während ich keine Simulation habe, aber ein reales Fahrwerk 
suche (DJI Robomaster ist mir zu teuer, der hat offenbar BLDC Motoren) 
:-)

von Jim B. (logicgate)


Lesenswert?

emaN oN schrieb:
> Ok, offenbar hast du ein theoretisches Fahrwerk und suchst die
> Simulation, während ich keine Simulation habe, aber ein reales Fahrwerk
> suche (DJI Robomaster ist mir zu teuer, der hat offenbar BLDC Motoren)
> :-)

Die Lösung die ich suche soll bestenfalls nicht an ein spezielles 
Fahrwerk gebunden sein, so weit soll mein Modell abstrahiert sein.

Robomaster S1 und EP stehen mir aber zur Verfügung und würden dann zum 
Test verwendet, ob mein Modell der Realität entspricht.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.