Bewegung -- Aktorik in der Praxis

Zweiter Teil der Robotik-Serie. Nach dem Grundmodell Sense-Think-Act geht es hier um die Act-Phase -- die greifbarste der drei.

Handeln heißt beim fahrenden Roboter fast immer: Räder drehen. Das klingt nach dem einfachsten Teil des Systems, und in gewisser Weise stimmt das auch -- die Bauteile dafür sind hier schon beschrieben (Aktoren, Motortreiber, H-Brücke). Interessant wird es an den Übergängen: von der Absicht ("fahr geradeaus") zum Sollwert für zwei Motoren, und vom Sollwert zur tatsächlichen Bewegung auf dem Boden. Genau dort sitzen die Entscheidungen, die den Rest des Roboters prägen.

Lern-Hinweis: Die Leistungselektronik hier ist mein Heimspiel, die Fahrwerks- und Antriebsseite lerne ich beim Schreiben mit. Die Konzepte sind sauber recherchiert, aber wo ich aus eigener Erfahrung spreche und wo aus Literatur, versuche ich kenntlich zu machen.

Antriebskonzepte -- vier Arten, sich in der Ebene zu bewegen

Ein Fahrroboter bewegt sich auf einer Fläche. Wie er das tut, ist eine der ersten Festlegungen -- und sie ist schwer zu revidieren, weil Kinematik, Sensorik und Regelung darauf aufbauen.

Konzept Aufbau Stärken Schwächen
Differentialantrieb zwei angetriebene Räder, ein Stützrad dreht auf der Stelle, minimal, einfach zu rechnen fährt nicht seitwärts, empfindlich auf Raddrehzahl-Unterschiede
Kettenantrieb / Skid-Steer zwei Ketten oder vier starre Räder geländegängig, robust Räder schlupfen beim Drehen -- Odometrie wird unzuverlässig
Ackermann-Lenkung Antrieb hinten, gelenkte Vorderachse fährt wie ein Auto, effizient bei Tempo kann nicht auf der Stelle drehen, Mindestwenderadius
Omni- / Mecanum-Räder drei oder vier Spezialräder fährt in jede Richtung, auch seitwärts teuer, empfindlich, Ansteuerung aufwendiger
Draufsicht der vier Antriebskonzepte: Differentialantrieb mit zwei angetriebenen Rädern und Stützrad, Skid-Steer mit vier starren Rädern und Schlupf beim Drehen, Ackermann mit gelenkter Vorderachse und Mindestwenderadius, Omni/Mecanum mit schrägen Rollen für Bewegung in jede Richtung

Die vier Konzepte in der Draufsicht. Dunkle Räder sind angetrieben, helle laufen mit -- und nur der Ackermann-Antrieb kann sich nicht auf der Stelle drehen.

Für kleine Selbstbau-Roboter ist der Differentialantrieb (engl. differential drive) der Standard, und das aus gutem Grund: zwei Getriebemotoren, ein Stützrad, fertig. Der Ausweichroboter und der Linienfolger fahren beide so. Die restliche Serie nimmt ihn deshalb als Referenzfall.

Warum zwei angetriebene Räder reichen -- und wo die Grenze liegt

Eine Bewegung in der Ebene hat drei Freiheitsgrade: Position in \(x\), Position in \(y\) und Orientierung \(\theta\) (der Winkel, in den der Roboter blickt). Der Differentialantrieb hat aber nur zwei Stellgrößen -- die Drehzahl des linken und des rechten Rades. Zwei Stellgrößen für drei Freiheitsgrade: Das sieht nach zu wenig aus und ist trotzdem genug.

Der Grund: Zwei Stellgrößen genügen, um jeden Punkt in jeder Ausrichtung zu erreichen -- nur eben nicht auf beliebigem Weg. Aus den beiden Raddrehzahlen ergeben sich direkt die zwei Bewegungen, die zählen:

Die drei Fahrfälle des Differentialantriebs: gleiche Radgeschwindigkeiten ergeben Geradeausfahrt, entgegengesetzt gleiche eine Drehung um den Momentanpol in der Radmitte, unterschiedlich große eine Kreisbahn mit Radius R um einen seitlich liegenden Momentanpol

Drei Fälle, zwei Stellgrößen: Aus dem Verhältnis von \(v_L\) und \(v_R\) folgt alles -- bis hin zum Bahnradius. Der Momentanpol ist der Punkt, um den der Roboter sich in diesem Augenblick dreht; bei der Geradeausfahrt liegt er im Unendlichen.

Was nicht geht: seitwärts fahren. Ein Differentialantrieb muss sich erst drehen, dann fahren -- einparken heißt rangieren. Diese Eigenschaft heißt nichtholonom (engl. nonholonomic): Der Roboter kann alle Zielzustände erreichen, aber seine momentanen Bewegungsrichtungen sind eingeschränkt. Omni-Räder heben genau diese Einschränkung auf, deshalb sind sie in der Ansteuerung aufwendiger.

Für die Praxis reicht die Merkregel: Summe der Raddrehzahlen ⇒ Fahrt, Differenz ⇒ Drehung. Die saubere Rechnung dazu -- wie aus zwei Raddrehzahlen eine Bahn in der Ebene wird -- kommt in Teil 5 (Koordinaten & Kinematik).

Von der Drehzahl zur Geschwindigkeit

Zwischen "Motor dreht" und "Roboter fährt" liegt schlichte Geometrie. Dreht ein Rad mit dem Radius \(r\) (in m) mit der Drehzahl \(n\) (in Umdrehungen pro Sekunde), rollt es ohne Schlupf mit der Geschwindigkeit

\[v = 2\pi\, r\, n\]

ab. Ein typisches Bastelrad mit 65 mm Durchmesser (\(r \approx 0{,}0325\) m) an einem Getriebemotor mit 100 Umdrehungen pro Minute (\(n \approx 1{,}67\ \mathrm{s^{-1}}\)) ergibt rund 0,34 m/s -- gut 1 km/h. Das klingt langsam und ist für einen Zimmerroboter schon zügig: Bei 30 cm Bremsweg-Reserve und einem Ultraschallsensor, der etwa 20-mal pro Sekunde misst, legt der Roboter zwischen zwei Messungen bereits 1,7 cm zurück. Fahrgeschwindigkeit und Zykluszeit hängen zusammen -- der Takt aus Teil 1 taucht hier zum ersten Mal als harte Auslegungsgröße auf.

Genauso wichtig wie die Drehzahl ist das Drehmoment \(\tau\) (in N·m) -- die Fähigkeit, das Fahrzeug überhaupt in Bewegung zu setzen. Ein Getriebe mit der Untersetzung \(i\) (dimensionslos, z. B. 1:48) tauscht das eine gegen das andere: Die Abtriebsdrehzahl sinkt um den Faktor \(i\), das Abtriebsmoment steigt näherungsweise um denselben Faktor (abzüglich Getriebewirkungsgrad). Deshalb sitzt an praktisch jedem Roboterrad ein Getriebemotor und kein nackter DC-Motor: Ein ungetriebener Motor dreht schnell und hat fast kein Moment -- er würde das Fahrzeug nicht anfahren können.

Welcher Motor für welchen Zweck

Motortyp Typischer Einsatz Ansteuerung Anmerkung
DC-Getriebemotor Antriebsräder PWM + H-Brücke Standardfall; billig, robust, keine Positionsrückmeldung
Modellbau-Servo Sensor schwenken, Greifer, Lenkachse ein PWM-Signal (Pulsweite = Winkel) regelt seine Position selbst, Stellbereich meist ~180°
Servo mit Dauerlauf-Umbau Antriebsrad bei Mini-Robotern wie Servo, Pulsweite = Drehrichtung/-tempo bequem, aber ungenau und schwach
Schrittmotor präzise Positionierung, kein Fahrantrieb Schrittfolge über Treiber-IC zählbare Schritte, dafür schwer, stromhungrig, laut
BLDC schnelle oder große Fahrzeuge elektronische Kommutierung leistungsdicht, aber Regler nötig

Für den Einstieg gilt fast immer: DC-Getriebemotoren für die Räder, ein Servo für den schwenkbaren Sensorkopf. Der Servo ist dabei eine kleine Besonderheit -- er ist selbst schon ein vollständiger Sense-Think-Act-Kreis im Miniaturformat: Ein Potentiometer misst die Ist-Position, eine kleine Elektronik vergleicht mit dem Sollwert aus der Pulsweite und stellt den Motor nach. Wer einen Servo ansteuert, delegiert eine Regelung, die man sonst selbst schreiben müsste.

PWM -- Drehzahl stellen, ohne die Spannung zu verstellen

Ein Mikrocontroller-Pin kennt nur an und aus. Für halbe Geschwindigkeit die Spannung zu halbieren wäre elektrisch möglich, aber verlustbehaftet und aufwendig. Stattdessen wird geschaltet: Pulsweitenmodulation (engl. PWM) legt die volle Spannung an, aber nur für einen Bruchteil der Zeit. Das Verhältnis von Ein-Zeit zur Periodendauer ist das Tastverhältnis \(D\) (engl. duty cycle, 0 bis 1); die wirksame Mittelspannung am Motor ist

\[\bar{U} = D \cdot U_{\mathrm{B}}\]

mit \(U_{\mathrm{B}}\) als Betriebsspannung. Motor und Fahrzeugmasse sind träge genug, dass daraus eine gleichmäßige Drehung wird und kein Ruckeln -- die Induktivität der Motorwicklung glättet zusätzlich den Strom \(I\).

Links das PWM-Signal: Rechteckpulse zwischen 0 und Betriebsspannung mit eingezeichneter Periode, Einschaltzeit und gestricheltem Mittelwert. Rechts die Kennlinie Geschwindigkeit über Tastverhältnis: ideal eine Gerade, real eine Totzone bei kleinen Tastverhältnissen und danach ein krummer, abflachender Verlauf

Links das Prinzip, rechts die Ernüchterung: Der Zusammenhang zwischen Tastverhältnis und Geschwindigkeit ist weder linear noch geht er durch den Nullpunkt.

Zwei Dinge, die in keiner Formel stehen und in der Praxis sofort auffallen:

Bei der PWM-Frequenz lohnt ein Blick: Zu niedrig, und man hört den Motor pfeifen (die üblichen ~490 Hz eines Arduino liegen mitten im Hörbaren); zu hoch, und die Schaltverluste im Treiber steigen. Wenige Kilohertz sind ein brauchbarer Kompromiss.

Zwischen Pin und Motor: der Treiber

Ein GPIO-Pin liefert wenige Milliampere -- ein Getriebemotor zieht im Anlauf leicht das Hundertfache. Dazwischen sitzt zwingend Leistungselektronik, in aller Regel eine H-Brücke: vier Schalter, die den Motor in beiden Polaritäten an die Versorgung legen können und damit beide Drehrichtungen ermöglichen. Wie der Strom dort wirklich läuft -- besonders in der PWM-Aus-Phase, wenn die Motorinduktivität ihren Strom weitertreiben will --, steht ausführlich im H-Brücken-Artikel; die Bauteil-Auswahl im Motortreiber-Artikel.

Für die Aktorik-Sicht reichen drei Konsequenzen:

  1. Rückwärts ist kein Sonderfall. Mit der H-Brücke ist Rückwärtsfahren nur eine andere Schalterkombination -- der Grund, warum ein Differentialantrieb ohne jede Mechanik auf der Stelle drehen kann.
  2. Bremsen und Ausrollen sind verschiedene Dinge. Schaltet man beide Motoranschlüsse auf Masse, wirkt der Motor als Generator gegen seine eigene Bewegung und bremst aktiv (brake); lässt man ihn offen, rollt der Roboter aus (coast). Das ist eine echte Verhaltensentscheidung, keine Nebensache -- beim Anhalten vor einem Hindernis will man in der Regel bremsen.
  3. Der Motor speist zurück. Beim Bremsen und beim Abschalten wird der Motor kurzzeitig zum Generator. Die Gegen-EMK und die in der Wicklung gespeicherte Energie müssen einen Weg haben (Freilaufdioden bzw. die Body-Dioden der Brücke), sonst leidet die Elektronik.

Praxisfallen, die jeden ersten Roboter erwischen

Diese vier haben mich am meisten Zeit gekostet -- und keine davon steht in einem Datenblatt.

Geradeaus fahren gibt es nicht. Zwei baugleiche Motoren am selben PWM-Wert drehen unterschiedlich schnell: Fertigungstoleranzen, Getriebespiel, ungleiche Gewichtsverteilung. Der Roboter zieht eine flache Kurve. Es hilft, den schwächeren Motor per Korrekturfaktor anzuheben -- aber das ist Steuern, kein Regeln, und gilt nur für diese Batteriespannung und diesen Bodenbelag. Die saubere Lösung sind Encoder an den Rädern, also eine Rückmeldung: Damit wird aus der Fahrt eine Regelung. Genau hier greift Teil 1 wieder -- ohne Sense keine verlässliche Act-Phase.

Ein Differentialroboter startet mit 100 Prozent Leistung links und 98 Prozent rechts. Statt der gestrichelten Sollgeraden fährt er einen Bogen nach links und weicht nach zwei Metern deutlich ab

Zwei Prozent Unterschied reichen. Der Roboter meint, geradeaus zu fahren -- ohne Encoder hat er keine Möglichkeit, das Gegenteil zu bemerken.

Die Batterie verändert das Verhalten. Sinkt die Batteriespannung im Betrieb, sinkt bei gleichem Tastverhältnis auch die Mittelspannung und damit das Tempo. Ein Roboter, der frisch geladen sauber um Hindernisse fährt, kommt eine halbe Stunde später zu spät um die Kurve. Alles, was auf feste Zeiten oder feste PWM-Werte kalibriert ist, driftet mit dem Ladezustand weg.

Der Motor legt den Mikrocontroller lahm. Der Anlaufstrom lässt die Versorgungsspannung einbrechen; der Controller resettet mitten in der Fahrt (Brownout). Gegenmittel: getrennte Versorgungszweige für Logik und Motoren mit gemeinsamer Masse, ein ausreichend dimensionierter Stützkondensator direkt am Treiber und kurze, dicke Leitungen im Leistungspfad. Wer einen Roboter beim Anfahren neu starten sieht, sucht meist zuerst im Code -- der Fehler steckt in der Versorgung.

Ein Rad in der Luft merkt niemand. Ohne Rückmeldung ist ein durchdrehendes oder blockiertes Rad für die Software nicht existent: Der Roboter "fährt" laut Programm munter weiter. Das ist das Kernproblem offener Steuerung und der eigentliche Grund, warum die Serie danach zur Sensorik und zur Regelung geht.

Was bleibt hängen

Als Nächstes ist die Sense-Phase dran: Was liefert ein Sensor eigentlich wirklich? Ultraschall, Infrarot, Encoder und IMU haben alle denselben Haken -- sie messen einen Ausschnitt, verrauscht und mehrdeutig.


Erstellt: 28.07.2026 · Zuletzt geändert: 29.07.2026