Hallo,
ich bin gerade an der Programmierung der Motorsteuerplatine meines Roboters dran:
(Morgen kann ich bei Tageslicht bessere Bilder machen)
Wie man auf den Bildern sehen kann besitzt er eine Knicklenkung. Dabei wird jedes Rad einzeln angetrieben und der Knickwinkel mithilfe eines Potis gemessen. Die Motorregelung funktioniert auch schon sehr gut: Für jedes Rad kann eine Geschwindigkeit festgelegt werden, die dann via PWM gehalten wird.
Was jetzt tatsächlich schwieriger ist als ich gedacht habe, ist:
Wenn der Roboter fährt soll als "Hauptpunkt" der Mittelpunkt zwischen den beiden Vorderrädern genommen werden, d.h. die Motorsteuerplatine bekommt den Befehl den Hauptpunkt zu einer bestimmten relativen Koordinate unter einem bestimmten Winkel heranzufahren. Davon lässt sich dann ableiten, wie sich die Vorderräder zu drehen haben. Was sich jetzt ableiten lassen sollte ist, wie sich die Hinterräder zu drehen haben; nämlich so, als würde sie sich frei drehen können.
Geradeaus ist einfach: Alle gleich schnell
Im Kreis ist auch einfach, da kann man die einzelnen "Bahngeschwindigkeiten" herausrechnen:
Aber das schwierige sind alle anderen Möglichkeiten:
- Vom Geradeausfahren in eine Kurve übergehen
- Die Vorderräder können sich in unterschiedliche Richtungen drehen
Im Endeffekt braucht man also eine Funktion, der man Übergibt:
- Geschwindigkeit linkes Vorderrad
- Geschwindigkeit rechtes Vorderrad
- Knickwinkel
und die errechnet
- Geschwindigkeit linkes Hinterrad
- Geschwindigkeit rechtes Hinterrad
Aber daran scheitert es bei mirZwar habe ich es hinbekommen, dass es ungefähr passt, aber eben nicht genau -> Die Konstruktion schiebt sich teilweise über den Boden, reifen Quitschen und die Motoren freuts auch nicht...
Hätte den jemand von euch eine Idee wie man da dran gehen könnte? Oder einen Link der irgendwie weiterhelfen könnte?
Viele Grüße und vielen Dank im vorraus
schumi
Lesezeichen