Hallo Forum!
Wahrscheinlich wäre ich in einem Modellbauer-Forum besser aufgehoben,
aber ich frage trotzdem mal.
Ich habe mir eine Plattform mit 6 Motoren gebaut, jeweils 3 Motoren
Links und 3 Motoren rechts .
Jeweils 3 Motoren laufen über eine H-Brücke.
Meine Fernsteuerung liefert mir die Geschwindigkeit und den
Lenkeinschlag.
Wie kann ich daraus die Drehzahl für die linke und rechte Seite
berechnen.
Die Plattform soll sich auch im Stand drehen können.
Gruß
Panzer schrieb:> Hallo Forum!
Hallo Gast!
> Ich habe mir eine Plattform mit 6 Motoren gebaut, jeweils 3 Motoren> Links und 3 Motoren rechts .
Warum 3 Motoren für jede Kette?
> Wie kann ich daraus die Drehzahl für die linke und rechte Seite> berechnen.
Wozu brauchst du die Drehzahl? Um diese regeln zu können benötigst du
einen Regelkreis.
> Die Plattform soll sich auch im Stand drehen können.
Nimm die Lenkinformation einfach als Differenz zwischen Stellgröße
linke/rechte Kette. Im Stand (Speed=0) drehen sich die Ketten halt
einfach entsprechend des Lenkausschlages gegeneinander.
> Warum 3 Motoren für jede Kette?>
Ich habe keine Kette, Kettenfahrzeug fand ich aber trotzdem einen
treffenden
Titel. Es ist eher ein Sechsradantrieb.
> Wozu brauchst du die Drehzahl? Um diese regeln zu können benötigst du> einen Regelkreis.
Ich will sie nicht regeln sondern nur steuern. Ich brauche eine Formel
Geschwindigkeit und Einschlag in Drehzahl links und rechts.
Ohne genaue Angaben zur Geometrie wird das nichts.
Also welche Räder werden angetrieben welche Räder werden gesteuert, wie
ist der Radstand in beiden Richtungen und so weiter? Was für Sensoren
stehen zur Verfügung oder was für Motore sind im Spiel?
Vor allem, verabschiede Dich von Überlegungen wie: Radumfang mal
Radumdrehungen = Wegstrecke
Das funktioniert noch nicht mal bei Eisenbahnen auf Stahlschienen - bei
langen Strecken.
Wenn Du rechnen magst, ist ein simples Zweiradmodell ein guter Anfang:
http://www-home.fh-konstanz.de/~bittel/roboMSI/Vorlesung/04_Lokalisierung.pdf
S. 6f
Olivers Formel löst ganz einfach das Problem, dass man bei hohen
Geschwindigkeiten keinen kleinen Wendekreis braucht und will, weil das
Steuern sonst sehr haarig wird. Wenn der Lenkwert (so wie in der Formel)
nicht zusätzlich geschwindigkeitsabhängig ist, ist die
Drehgeschwindigkeit Deines Panzers nur vom Faktor Lenkwert/Einschlag
anhängig, d.h. drehst Du bei Volleinschlag im Stillstand z.B. 180°/s,
hat der Wendekreis bei 1m/s einen Durchmesser von 64cm, bei 2m/s 1.3m
usw.. Das alles gilt nur für geregelte Drehzahl. Wie sich das Fahrzeug
mit ungeregelten Drehzahlen und der riesigen Reibung beim Lenken
verhält und wie das Fahrverhalten in der Praxis ist, ist am sinnvollsten
auszuprobieren.
Panzer schrieb:> Das Teil sieht ungefähr so aus wie im Anhang.
Na passt doch.
Dann verweise ich mal auf
Beitrag "Re: Geschwindigkeit Kettenfahrzeug berechnen"
(falls das untergegangen sein sollte)
mit dem Zusatz, dass der Lenkwert natürlich so beschaffen ist, dass ein
Wert von 0 'geradeaus' bedeutet. positive Werte bedeuten 'nach rechts',
negative 'nach links' (oder umgekehrt, spielt keine große Rolle, da das
ja nur eine Frage des Vorzeichens ist).
Und zur Not kann man ja den Lenkwert noch mit einem Faktor vergrößern
oder verkleinern, um ihn in Relation zum Geschwindigkeitswert zu setzen.
Dieser Faktor darf durchaus ruhig von der Geschwindigkeit abhängen, so
dass sich die Empfindlichkeit auf Lenkenschläge verringert, je schneller
grundsätzlich gefahren wird.
Was aber am Prinzip (und ich zitiere)
1
Drehzahl links = Geschwindigkeit + Lenkwert
2
Drehzahl rechts = Geschwindigkeit - Lenkwert
nicht viel ändert.
Eines noch: nimm bitte den Begriff 'Drehzahl' nicht zu ernst. Denn die
interessiert in Wirklichkeit keinen. Kein Panzerfahrer dieser Welt
interessiert sich für die genaue Drehzahl der Kette links bzw. rechts.
Wenn er nach rechts will, dann gibt er der linken Kette mehr Gas und
bremst die rechte Kette. Mehr braucht es nicht. In diesem Sinne ist
'Drehzahl links' auch einfach nur als ein proportionaler Wert zu sehen.
Je größer, desto schneller. Bei 0 steht die Kette auf dieser Seite. Und
wenn der Wert negativ ist, dann drehen die Ketten eben in die andere
Richtung.
Oliver S. schrieb:> Drehzahl links = Geschwindigkeit + Lenkwert> Drehzahl rechts = Geschwindigkeit - Lenkwert
Diesen Ansatz hatte ich auch erst. Nachteil: je schneller das Ding
fährt, desto weniger hat die Lenkung Einfluß, da der Lenkwert nicht mit
der Geschwindigkeit skaliert ist.
Vielleicht ist dieser Effekt aber sogar erwünscht, werde ich morgen mal
testen.
> Wie kann ich daraus die Drehzahl für die linke und rechte Seite> berechnen.
Gar nicht, denn der Drehwinkel bei unterschiedlicher Drehzahl hängt vom
Untergrund und dem Rutschverhalten der Räder ab. Es sei denn, du
verwendest ein http://de.wikipedia.org/wiki/Mecanum-Rad
Du wirst also schon ein Gyro einbauen müssen.
Panzer schrieb:> Oliver S. schrieb:>> Drehzahl links = Geschwindigkeit + Lenkwert>> Drehzahl rechts = Geschwindigkeit - Lenkwert>> Diesen Ansatz hatte ich auch erst. Nachteil: je schneller das Ding> fährt, desto weniger hat die Lenkung Einfluß, da der Lenkwert nicht mit> der Geschwindigkeit skaliert ist.
Dann skalier ihn halt!
Du bist der Programmierer. Wenn du den Lenkwert mit einem Faktor
multiplizierst, der sich aus der Geschwindigkeit ergibt - wer will dich
daran hindern? Der µC bestimmt nicht.
Karl Heinz Buchegger schrieb:> Dann skalier ihn halt!
Wenn ich es mit der Geschwindigkeit skaliere, dann dreht das Ding im
Stand aber nicht.
Ich suche eine Lösung aus der Praxis, ich bin ja bestimmt nicht der
erste, der so ein Ding steuern will.
MaWin schrieb:>> Wie kann ich daraus die Drehzahl für die linke und rechte Seite>> berechnen.>> Gar nicht, denn der Drehwinkel bei unterschiedlicher Drehzahl hängt vom> Untergrund und dem Rutschverhalten der Räder ab. Es sei denn, du> verwendest ein http://de.wikipedia.org/wiki/Mecanum-Rad>> Du wirst also schon ein Gyro einbauen müssen.
versteh ich nicht. Der entstehende Kraftvektor ist doch auch da vom
Untergrund abhängig, oder?
Panzer schrieb:> Wenn ich es mit der Geschwindigkeit skaliere, dann dreht das Ding im> Stand aber nicht.
Dann addiere zum Betrag der Geschwindigkeit halt von mir aus einen
Offset.
fragender schrieb:> versteh ich nicht. Der entstehende Kraftvektor ist doch auch da vom> Untergrund abhängig, oder?
Nein, es wird 100% Grip angenommen, weil die Räder nicht rutschen müssen
(wenn ein zu schweres Fahrzeug eine zu steile Sanddüne rauf muss, tun
sie das natürlich trotzdem)
Panzer schrieb:> Karl Heinz Buchegger schrieb:>> Dann skalier ihn halt!>> Wenn ich es mit der Geschwindigkeit skaliere, dann dreht das Ding im> Stand aber nicht.>> Ich suche eine Lösung aus der Praxis, ich bin ja bestimmt nicht der> erste, der so ein Ding steuern will.
Mal ein paar Ideen.
grundprinzip ist, dass du ein k für das hier brauchst
1
Drehzahl links = Geschwindigkeit + k * Lenkwert
2
Drehzahl rechts = Geschwindigkeit - k * Lenkwert
und dieses k soll sich mit der Geschwindigkeit verändern.
Dann lass uns doch mal ein bischen mit Formel 'spielen'.
Du hast eine Geschwindigkeit v und du hast eine maximale Geschwindigkeit
v_max.
Bildest du
1
v
2
-----
3
v_max
dann kriehst du damit eine Zahl zwischen 0 und 1, die dir im Grunde
genommen sagt, welchen Prozentsatz der maximalen Geschwindigkeit du
momentan fährst.
Multiplizierst du den Lenkwert damit, dann hast du bei 0 Geschwindikeit
keinen Lenkeinfluss mehr, während du bei maximaler Geschwindigkeit den
vollen Lenkeinschlag hast.
Nicht das was du willst.
Du willst, deiner Idee nach, dass bei Geschwindigkeit 0 der normale
Lenkeinschlag gilt, und bei maximaler Geschwindigkeit zb das doppelte
davon.
Was du also erreichen willst ist
1
bei v gleich 0 soll k gleich 1
2
bei v gleich v_max soll k gleich 2
sein. Also Werte von 1 bis 2. Du hast aber aus obigem nur 0 bis 1.
Na dann zähl halt 1 dazu!
1
k = 1 + ( v / v_max );
und du hast das k, welches dir vorschwebt.
du willst vielleicht nicht Werte von 0 bis 1, sondern von 0.2 bis 1.
Auch das ist ja kein Problem. Nimm den Quotienten mal 0.8 ( weil 1 minus
0.2 gleich 0.8 ist) und zähle 0.2 dazu.
1
k = 0.2 + 0.8 * ( v / v_max );
und du hast Werte die sich von 0.2 bis 1.0 erstrecken.
Jetzt kann es natürlich sein, dass du drauf kommst, das das nicht so
schlau ist, wenn die Lenkung immer stärker wird, je schneller du fährst.
Ist ja beim Auto auch so. Beim langsamen fahren, zb Parken, dreht man
wie wild am Lenkrad, bei 180km/h wird man das tunlichst vermeiden sonst
macht man einen unfreiwillgen Elchtest.
d.h. du könntest auch probieren, wie es sich anfühlt, wenn die Lenkung
schwächer wird, je schneller du fährst. Anstatt einem k von 0 bis 1
willst du ein k von 1 bis 0.
Nichts einfacher als das
1
k = 1 - ( v / v_max )
wenn du willst. kannst du auch den Teil v / v_max noch mit allerlei
anderen Dingen beaufschlagen, zb einer Exponentialfunktion, so dass sich
am Anfang bei kleinen Geschwindigkeitn der k Wert nur wenig ändert und
bei großen viel. Du kansst auch den Lenkausschlag da selber noch mit
reinrechnen: kleine Lenkausschläge werden nicht verstärkt, große dafür
umso mehr.
Du kannst all diese Dinge auch miteinander kombinieren. etc. etc.
es sind alles einfach mathematische Zusammenhänge. Erlaubt ist was
gefällt und was sich für dich bei der Fahrerprobung gut anfühlt.
Das nennt man dann auch 'entwickeln'. Denn wenn du dir alles vorkauen
lässt, dann machst du 'malen nach Zahlen'. Ergibt auch schöne Bilder,
ist aber nichts eigenes. Da hättest du dir auch ein fertiges Fahrzeug
kaufen können.
Also trau dich! Du bist der Boss. So wie du einen Faktor ausrechnest, so
ist das ok. Das ist alles kein Hexenwerk.
Und, ach ja: v_max ist natürlich die absolute Geschwindigkeit. Da gibt
es keine negative Geschw....
Obwohl. Kein Mensch sagt, dass der Faktor für vorwärts und rückwärts
fahren gleich sein muss!
Panzer schrieb:> Ich will sie nicht regeln sondern nur steuern. Ich brauche eine Formel> Geschwindigkeit und Einschlag in Drehzahl links und rechts.
Warum sollten sich die drei Motoren auf einer Seite gleich schnell
drehen? Ohne die Drehzahl der Motoren einer Seite anzugleichen, braucht
man sich um Lenkbewegungen noch keine Gedanken zu machen.
Panzer schrieb:> Diesen Ansatz hatte ich auch erst. Nachteil: je schneller das Ding> fährt, desto weniger hat die Lenkung Einfluß, da der Lenkwert nicht mit> der Geschwindigkeit skaliert ist.
Diese Eigenschaft ist wurde von Automobilherstellern in mühevoller
Kleinarbeit entwickelt:
http://de.wikipedia.org/wiki/Aktivlenkung
Wenn du es proportional zur Geschwindigkeit machen würdest, würde dein
Fahrzeug bei Vollgas und vollem Lenkeinschlag eine Seite voll vorwärts
und eine Seite voll rückwärts drehen. Das willst du bestimmt nicht. Bei
deinem Problem gilt Versuch macht klug.
Simoel schrieb:> Warum sollten sich die drei Motoren auf einer Seite gleich schnell> drehen?
Weil die 3 Räder auf dem gleichen Boden stehen? Und beim Drehen ist es
besser wenn sie sich nicht gleich schnell drehen.
Karl schrieb:>> Warum sollten sich die drei Motoren auf einer Seite gleich schnell>> drehen?>> Weil die 3 Räder auf dem gleichen Boden stehen?
Das nenne ich Effizienz bei Batteriebetrieb. ;-)))
Das Ding sieht aus, wie 3 einzelne Hinterteile eines
Modellautobaukastens zusamengeschraubt. Ohne irgendeine Lenkung. Wenn es
sich wirklich auf der Stelle drehen sollte, dann im Idealfall nur um das
mittlere Radpaar. Die anderen müssen quer rutschen. Sowas funktioniert
bei einem Kettenantrieb, aber nicht bei einem Radantrieb. Da verliert
man unnötig Haftung, die man doch so gerne haben wollte (siehe
Radprofile).
6-Rad-Antriebe verwenden 2 gelenkte Achsen (meist die in der
Hauptfahrrichtung vorn liegenden).
Angetreiben kann man alle Räder, dann aber über Differenziale oder
belastungsgeregelte Einzelantriebe.
Diese Fahrzeug produziert nur Frust, egal welche "Programmierung" der
Antrieb man einsetzt. Es ist vom Ansatz her falsch dimensioniert.
Blackbird
> Angetreiben kann man alle Räder, dann aber über Differenziale oder> belastungsgeregelte Einzelantriebe.>> Diese Fahrzeug produziert nur Frust, egal welche "Programmierung" der> Antrieb man einsetzt. Es ist vom Ansatz her falsch dimensioniert.
So isses!
Blackbird schrieb:> Das Ding sieht aus, wie 3 einzelne Hinterteile eines> Modellautobaukastens zusamengeschraubt. Ohne irgendeine Lenkung. Wenn es> sich wirklich auf der Stelle drehen sollte, dann im Idealfall nur um das> mittlere Radpaar. Die anderen müssen quer rutschen. Sowas funktioniert> bei einem Kettenantrieb, aber nicht bei einem Radantrieb.
das habe ich auch gedacht, als ich das Bild gesehen habe.
> 6-Rad-Antriebe verwenden 2 gelenkte Achsen (meist die in der> Hauptfahrrichtung vorn liegenden).
Bei so einem Fahrzeug (wo die Räder gleich auf die Länge verteilt sind)
würde ich allerdings die äußeren Achsen lenken und die mittlere starr
lassen.
Auf der Stelle drehen ist damit aber sowieso nicht zufriedenstellend
möglich.
Wenn man das will, kann man die äußeren vier Motoren wahrscheinlich auch
abgeschaltet lassen und nur die mittleren drehen lassen.
> Diese Fahrzeug produziert nur Frust, egal welche "Programmierung" der> Antrieb man einsetzt. Es ist vom Ansatz her falsch dimensioniert.
Denk ich auch.
Vlad Tepesch (vlad_tepesch) schrieb:
> Bei so einem Fahrzeug (wo die Räder gleich auf die Länge verteilt sind)> würde ich allerdings die äußeren Achsen lenken und die mittlere starr> lassen.
Naja, dann rutschen die mittleren Räder. Aber viel weniger als bei
dieser Lösung.
Im Orginal gibt es das ja auch - quer rutschende Räder. Das sieht man
bei den Tiefladeanhängern mit vielen Radpaaren. Aber die sind auch nicht
für enge Kurven gmacht.
6-Rad-Antriebe können nicht vernüftig auf der Stelle drehen. Das geht
nur bei 4- oder 3-Rad-Antrieben.
Und alles nur mit gelenkten Achsen!
Blackbird
@ Karl Heinz
Danke schon mal für die Ausführung, mittlerweile sehe ich schon viel
klarer.
Blackbird schrieb:> Diese Fahrzeug produziert nur Frust, egal welche "Programmierung" der> Antrieb man einsetzt. Es ist vom Ansatz her falsch dimensioniert.
Bisher hat das Fahrzeug sehr viel Freude produziert.
Ich wollte ein möglichst einfaches Fahrwerk bauen, wenn ich jetzt noch
gelenkte Achsen hätte, dann wäre das Chassis Faktor 10 aufwendiger
geworden.
Das Fahrzeug dreht übrigens super auf der Stelle, was soll es auch sonst
machen, wenn die Motoren gegenseitig laufen.
Alle Motoren einzeln anzusteuern bringt denke ich kein großen Gewinn.
Ich werde nachher mal ein Bild posten.
Im Video erkennt man, das sich die 3 Räder pro Seite wie mit einer
"Kette"
verbunden verhalten.
Eine 180° Wende lässt die Räder einer Seite stillstehen und die
drehenden Räder der anderen drücken bzw. schieben die äusseren Räder der
stehenden Seite.
Der Autor merkt an, neue Bereifung ausprobiert zu haben(mit mehr Grip),
was das Drehen auf hohem Gras erschwert hat.
Das ist logisch.
Eine Lenkung der ersten bzw./und letzten Radpaare könnte in Abhängigkeit
des "Ruderausschlags[einer Fernbedienung]der Lenkung" und des
"Ruderausschlags des Geschwindigkeit/Richtungs- Knüppels" erfolgen.
Seltverständlich ist dann noch die unterschiedliche
Radialgeschwindigkeit der Räder einer (nicht-starren) Achse zu
berechnen.
Vielleicht helfen Gyros auf der 1. und 3. Achse, die seitliche
Lageänderung
bei Kurvenfahrten auf die "Spurstangen" dieser einzumischen.
Diese Werte müssten dann ebenfalls zur Korrektur der
Umdrehungsgeschwindigkeit der Räder pro "Achse" herangezogen werden .
usw., usw., ...
- ach ja, - für eine möglichst schlupffreie Kurvenfahrt müsste sich das
Fahrzeug mit seinen 3 "Achsen" krümmen können wie eine Raupe(Natur),
also zwischen den Achsen ebenfalls Gelenke ...
Völlig schlupffrei wird es, wenn die mittlere und eine der äußeren
Achsen gelenkt werden. Natürlich nur, wenn die Lenkgeometrie beachtet
wird. Also der Lenkeinschlag jedes ausgelenkten Rades in Abhängigkeit
des Abstandes von der Mitte der ungelenkten Achse.
Das ist eine rein mechanische Lösung, die seit 1 1/2 Jahrhunderten
sauber funktioniert und deren Funktionsprinzip in 1 Million Jahren immer
noch gelten wird.
Für die Odometrie kann eine Erfassung des Gierens nützlich sein, für die
Lenkung selbst ist sowas nicht notwendig.
Blackbird
Anbei zwei Bilder des Gefährts.
Die Akkus sind LiFePo4 4 Stück in Reihe, 2 H-Brücken, Controller ist ein
Arduino Nano aber in C programmiert und ein Bluetooth-Modul.