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

Motor

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:

PID-Regelung

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

  1. Encoder an den Motoren messen die Ist-Drehzahl
  2. Mikrocontroller berechnet Soll-Ist-Abweichung
  3. PID-Algorithmus korrigiert die PWM-Ausgabe
  4. Spannungsregelung am H-Bridge-Motorcontroller

Wichtige Formeln

ω_links = (2v + ω·d)/(2r)  
ω_rechts = (2v - ω·d)/(2r)  

wobei: - v = Lineargeschwindigkeit - ω = Winkelgeschwindigkeit - d = Achsabstand - r = Radradius