Das mit den Differentialen bringt übrigens nur was, wenn die Lenkung auch aktiv ist. So, wie ich das jetzt aber mitbekommen habe, wird die Knickachse nicht gelenkt, sondern bewegt sich indirekt dadurch, dass sich die Räder unterschiedlich schnell drehen. Wäre der Antrieb dann über Differentiale gelöst, würde sich das Fahrzeug zwar vorwärts bewegen, die Lenkrichtung wäre aber völlig willkürlich.
Bei indirekter Lenkung bin ich mir eigentlich schon sicher, dass man da irgendwie die Gelenkstellung der Achse messen muss, sonst driftet einem der Roboter extrem umher, wenn man diese nur irgendwie abschätzt, vor allem, weil es sonst auch schon schwierig wird, eine definierte Ausgangsstellung zu schaffen.
Schon im Eingangspost steht es:Bei indirekter Lenkung bin ich mir eigentlich schon sicher, dass man da irgendwie die Gelenkstellung der Achse messen muss, sonst driftet einem der Roboter extrem umher, wenn man diese nur irgendwie abschätzt, vor allem, weil es sonst auch schon schwierig wird, eine definierte Ausgangsstellung zu schaffen.
Dabei ist offenbar kein extra Stellglied für die Lenkachse vorhanden. Trotzdem hat man immer noch zuviele Freiheitsgrade für die Eingabe, nämlich 4 Raddrehwinkel, die unabhängig angesteuert werden können. Das gesamte Fahrzeug hat aber nur 2 Freiheitsgrade, Geschwindigkeit und Lenkwinkel. Damit ist es schon irgendwie klar, dass nicht jede mögliche Eingabekombination schlupffrei möglich ist. In diesem Sinne ist es durchaus sinnvoll nicht an allen Rädern Wege (Raddrehwinkel) sondern statt dessen Antriebsmoment (Motorstrom) vorzugeben. Die Vorschläge zu Differenzialgetrieben gehen genau in diese Richtung.Dabei wird jedes Rad einzeln angetrieben und der Knickwinkel mithilfe eines Potis gemessen.
Vorstellbar wäre ein Konzept in dem man nur die beiden Vorderräder nach Radenkodern steuert (damit sind Geschwindigkeit und Lenkwinkel des Fahrzeugs bereits eindeutig definiert). Die hinteren Motoren steuert man über den Motorstrom so, dass sie etwa das selbe Antriebsmoment wie die vorderen erbringen (gleiche Radlast für alle 4 Räder angenommen). Damit bekommt man die gewünschte Traktion, ohne zusätzliche Freiheitsgrade in die Ansteuerung zu bringen. Die Radencoder an der Hinterachse kann man trotzdem brauchen um zu prüfen ob die Winkelgeschwindigkeiten plausibel sind für schlupffreie Fahrt.
ranke, du bist ein Genie!!
Und damit das nicht nur für Geradeausfahrt funktioniert, sondern auch für Kurven, steckt man die Motorstromwerte für die vorderen Räder in die Umrechnungsfunktion für die hinteren Räder!
Theoretisch würde es auch mit den Geschwindigkeiten gehen, aber da meine Messung bei kleinen Geschwindigkeiten nicht allzu genau ist (BackEMF -> jeweiliger Motor wird in den Generatormodus gschalten und nach 1ms die erzeugte Spannung gemessen) funktioniert das auf glatten Böden nicht zu 100%, weil die Regelung immer mit aller Kraft versucht die Geschwindigkeit für alle Räder genau zu halten. Ich glaube ich mache 2 Modi:
- Glatter Boden/wenig natürlich Schlupf: Wie von ranke vorgeschlagen über Motorströme
- Teppich/Sand/Gras: Über die Geschwindigkeiten (dort macht es nicht viel aus wenn die Radgeschwindigkeiten nicht ganz genau zueinander passen, dafür werden Räder die im Leerlauf sind oder fast blockieren besser ausgeglichen)
Ansonsten, wie ihr schon richtig bemerkt habt, wird nur passiv geknickt. Genaugenommen besteht das Knickgelenk nur aus einem Scharnier aus dem Baumarkt an dem ein Poti für die Winkelmessung befestigt ist
Vielen vielen Dank
schumi
PS: Weil warscheinlich gleich jemand fragt warum ich BackEMF und keine Encoder nehme: Ich habe quasi einfach drauflosgebaut und hatte noch welche von den Motoren da: http://www.pollin.de/shop/dt/Nzc1OTg...HM_2435_1.html
In Sachen Drehmoment (bei 15V) eine gute Wahl, dummerweise lässt sich dort aber nirgends eine Encodescheibe anbringen, da alles ein Block ist den ich nicht vermocht habe auseinanderzubauen...
Lesezeichen