Grundprinzip der Differenziallenkung
Zweiradroboter nutzen unabhängig angesteuerte Motoren für jedes Rad. Die Bewegung entsteht durch die Differenz der Drehgeschwindigkeiten (ω₁ für links, ω₂ für rechts). Ein drittes passives Stützrad oder Kugelcaster verhindert das Umkippen.
Kinematik-Diagramm
Kurventypen und Motoransteuerung
1. Geradeausfahrt
Beide Räder gleich schnell:
ω_links = ω_rechts = v / r # v: gewünschte Geschwindigkeit, r: Radradius
2. Bogenfahrt
Kurvenradius | Motorkonfiguration | Beispielwerte (r=0.05m) |
---|---|---|
Großer Bogen | ω_links = 1.2ω_rechts | ω_links=8 rad/s, ω_rechts=6 rad/s |
Enger Bogen | ω_links = 2ω_rechts | ω_links=10 rad/s, ω_rechts=5 rad/s |
3. Drehung auf der Stelle (Pivot-Turn)
ω_links = -ω_rechts # z.B. +5 rad/s (rechts) und -5 rad/s (links)
4. Seitliche Verschiebung
Erfordert komplexe Trajektorienplanung mit:
θ_desired = arctan2(y_target - y_current, x_target - x_current)
Motorregelungstechnik
Ein PID-Controller sorgt für präzise Drehzahlregelung:
Regelkreis
Die Ansteuerung erfolgt typischerweise über PWM-Signale:
def set_motors(v_left, v_right): pwm_left = Kp*(v_left - actual_left) + Ki*∫error + Kd*d(error)/dt pwm_right = # analog für rechtes Rad send_to_motors(pwm_left, pwm_right)
Praktische Implementierung
- Encoder an den Motoren messen die Ist-Drehzahl
- Mikrocontroller berechnet Soll-Ist-Abweichung
- PID-Algorithmus korrigiert die PWM-Ausgabe
- Spannungsregelung am H-Bridge-Motorcontroller
Wichtige Formeln
ω_links = (2v + ω·d)/(2r) ω_rechts = (2v - ω·d)/(2r)
wobei: - v = Lineargeschwindigkeit - ω = Winkelgeschwindigkeit - d = Achsabstand - r = Radradius