BaupfadMittelstufeEin Wochenende

Einen Mecanum-Roboter bauen, der seitwärts fährt

Ein Roboter, der ein 1-m-Quadrat straft, innerhalb 5 cm zurückkommt, ohne je zu drehen – und weiter gleich über den Boden fährt, während du ihn drehst.

Technisches Schema: Einen Mecanum-Roboter bauen, der seitwärts fährtBASE_LINKVxVyωzFOUR WHEELS · THREE DEGREES OF FREEDOMROLLERS AT 45° MAKE AN X

Was du baust

Einen vierrädrigen Roboter, der sich in jede Bodenrichtung bewegen kann, ohne erst zu drehen – und drehen kann, ohne zu ändern, wohin er fährt. Ihn seitwärts durch eine Gasse schieben, in die er kaum passt; eine Kamera auf etwas gerichtet halten, während man es umkreist; 3 cm neben einer Linie per 3-cm-Schritt korrigieren statt heraus- und hereinzubogen.

Das ist der erste Roboter dieser Seite mit drei einzeln steuerbaren Geschwindigkeiten statt zwei. Es ist auch der erste, dessen Antriebsstrang wirklich schwerer ist als seine Sensoren – weshalb fast der ganze Bau Motoren, Encoder und Regelschleifen ist.

Der Abnahmetest ist bewusst plump: Ein 1-m-Quadrat strafend fahren und innerhalb 5 cm heimkommen, bei unverändertem Kurs. Kein Differenzialroboter kann diesen Test überhaupt antreten.

Die Zahl, die das Projekt treibt

Alles an diesem Bau kommt auf eine Konstante zurück:

k = lx + ly

wobei lx der halbe Radstand ist (Vorderachse zu Hinterachse, halbiert) und ly die halbe Spur (linke Räder zu rechten Rädern, halbiert). Am Referenzbau 75 mm und 85 mm, also k = 0,160 m.

Diese eine Zahl koppelt Drehung an die Räder. Falsch, und der Roboter fährt weiter – aber ein reiner Drehbefehl kriecht über den Boden, und reines Strafen kurvt, weil Drehung und Translation ineinander bluten. Radmitte zu Radmitte messen, nicht die Chassisplatte, die meist breiter ist als gedacht.

Die anderen Zahlen, die man vor Beginn mit Marker aufs Chassis schreibt:

Größe Referenzbau Woher sie kommt
Radradius r 48,5 mm 97-mm-Mecanum-Räder
Zählwerte pro Radumdrehung 1440 12 CPR × 30:1 × 4 Quadraturflanken
Meter pro Zählwert 212 µm 2πr ÷ 1440
Radtopdrehzahl V_MAX 0,60 m/s Aufgebockt gemessen, dann 15 % abgewertet
Diagonaldecke 0,424 m/s V_MAX ÷ √2, und kein Motorupgrade beseitigt sie
Beschleunigungsdecke 5,9 m/s² μg/√2 bei μ = 0,85 – Masse kürzt sich heraus

Stückliste

Teil Menge Ungefähre Kosten Hinweise
Mecanum-Räder, 80 oder 97 mm 4 28–70 £ Als Viererset kaufen – zwei linkshändige, zwei rechtshändige
N20-Getriebemotor mit Encoder, 30:1 4 9–14 £ pro Stück Abgestimmt. 100–250 U/min am Rad sind das nutzbare Band
TB6612FNG-Doppel-H-Brücke 2 4–8 £ pro Stück Ein L298N geht und verschwendet ~3 V dabei; an einem 2S-Pack ist das der Großteil deiner Topdrehzahl
ESP32-Entwicklungsboard 1 6–12 £ Vier PWM-Kanäle, vier Encoder-Interruptpaare und WLAN-Telemetrie gratis
MPU6050-IMU 1 2–4 £ Flach montieren, weg von Motoren, auf der Chassismittellinie
2S-LiPo, 1500–2200 mAh, 25C 1 12–20 £ Nach Strom dimensioniert, nicht Kapazität – vier Motoren blockieren bei ~5 A gesamt
5-V-BEC oder Abwärtswandler 1 3–5 £ Den ESP32 nicht an der Motorschiene betreiben
Chassisplatte, 200 × 180 mm 1 10–25 £ Lasergeschnittenes Acryl, 3-mm-Alu oder selbst schneiden
Motorhalter, Naben, Schrauben 1 Satz 8–15 £ Nabenbohrung an Motorwelle anpassen – 3, 4 oder 6 mm
Stützkondensator, 470 µF 2 1 £ Einer über jede Treibermotorschiene

90–170 £ gesamt. Räder und vierfache Motorzahl sind der Ort, wo aus den 50 £ eines Zweiradroboters das hier wird.

Wie alles zusammenhängt

        2S LiPo ──┬── 470 µF ── TB6612FNG #1 ── FL motor ── FL encoder ─┐
                  │                         └── FR motor ── FR encoder ─┤
                  ├── 470 µF ── TB6612FNG #2 ── RL motor ── RL encoder ─┼── ESP32
                  │                         └── RR motor ── RR encoder ─┘   (4 PWM,
                  └── 5 V BEC ──────────────────────────────── ESP32 ──────  8 GPIO,
                                                                   │         I²C)
                                                   MPU6050 ── I²C ─┘

Drei Verdrahtungsentscheidungen, die nicht offensichtlich sind:

  • Der ESP32 bekommt einen eigenen Regler. Vier gemeinsam startende Motoren drücken den Pack hart, und ein Controller an derselben Schiene setzt per Brownout zurück und startet mitten im Befehl neu. Sieht exakt aus wie ein Firmwareabsturz. Das Leistungsbudget-Tutorial lesen, bevor man dem Code die Schuld gibt.
  • Ein Stützkondensator über jeden Treiber. 470 µF nah an der Platine. H-Brücken ziehen stoßweise und Leitungsinduktivität verwandelt diese Stöße in Spitzen.
  • Die IMU auf die Mittellinie, flach und so weit von den Motoren, wie die Platte erlaubt. Gierdrift ist schlimm genug ohne Magnetfeld vierer Motoren darin.

In Meilensteinen bauen

Jeder hat einen Test. Keinen Fehler nach vorne tragen – an einem Viermotorroboter multiplizieren sie sich.

1. Räder dran, und die X-Probe

Die vier Räder anschrauben und direkt darüberstellen. Der sichtbaren Rollenlinie auf der Oberseite jedes Rads folgen.

Zwei Draufsichten desselben vierrädrigen Roboters, Nase oben. Im oberen Feld mit Titel korrekt bilden gestrichelte cyanfarbene Linien, verlängert von den sichtbaren Rollen jedes Rads, ein X durch die Robotermitte. Im unteren Feld mit Titel falsch bilden dieselben Linien rot markierter Räder stattdessen eine Raute um den Roboter und laufen nie durch die Mitte. Eine Bildunterschrift sagt: Über den Roboter stellen und den sichtbaren Rollen oben folgen.
Meilenstein 1, und die billigsten fünf Sekunden am ganzen Bau. Die sichtbaren Rollen oben auf jedem Rad verlängern: Sie müssen sich in der Mitte des Roboters kreuzen. SVG herunterladen

Test: Diese vier Linien zielen auf die Robotermitte und zeichnen ein X. Zeichnen sie eine Raute, zwei Räder diagonal tauschen. Bestanden: ein X. Das ist eine Fünf-Sekunden-Probe, die einen Tag spart.

2. Jeden Motor einzeln

Alle vier verdrahten und einen Sketch schreiben, der jeweils ein Rad eine Sekunde mit 40 % treibt.

Test: Jedes aufrufen und bestätigen, dass das richtige Rad richtigherum dreht. Bestanden: vier Räder, vier korrekte Richtungen, keine vertauschten Paare. Verdrahtung in Hardware richten, nicht mit Minuszeichen im Code – man verliert den Überblick.

3. Encoder

Je eine Umdrehung jedes Rads, von Hand gedreht.

Test: Den Zählwert ausgeben. Bestanden: innerhalb 2 % von 1440, und positiv bei Vorwärtsdrehung des Rads. Ein springender oder rückwärts laufender Zählwert heißt: Auf einem statt zwei Kanälen interruptet, oder ein volatile long ohne gesperrte Interrupts gelesen.

4. Kinematik aufgebockt

Den Roboter aufbocken und reines Strafen befehlen.

Test: Diagonalpaare gegenläufig – vorne links und hinten rechts in eine Richtung, vorne rechts und hinten links in die andere. Bestanden: exakt dieses Muster. Dann reinen Dreh befehlen: linke Seite eine Richtung, rechte die andere. Widerspricht ein Rad, sitzt es in der falschen Ecke und Schritt 1 hat gelogen.

5. Eine Drehzahlschleife

Feedforward dann PI an einem Rad abstimmen, aufgebockt, dann unter Last.

Test: 0,3 m/s befehlen und einen Finger auf den Reifen drücken. Bestanden: Die Drehzahl hält und das PWM steigt sichtbar. Einmal sauber tun; die anderen drei sind Kopien mit eigenem kS und kV.

6. Alle vier, gerade Linie

Vier Schleifen, 100 Hz, auf dem Boden. 3 m geradeaus fahren.

Test: Die Seitwärtsdrift am Ende messen. Bestanden: unter 20 mm, und über drei Läufe wiederholbar. Ungeregelt sind das typisch 80–200 mm und jedes Mal anders.

7. 1 m strafen

Test: Exakt einen Meter seitwärts fahren und Strecke wie Kursänderung messen. Bestanden: innerhalb 5 cm, Kurs innerhalb 3°. Eine konsistente Kurve heißt: k-Konstante falsch; eine zufällige heißt: Eine Drehzahlschleife hält nicht.

8. IMU und feldorientiert

Beim Start Bias-kalibrieren, Kurstaste dazu.

Test: Den Steuerknüppel vorne halten und den Roboter von Hand eine volle Drehung drehen. Bestanden: Er fährt weiter gleich über den Boden. Im Stillstand driftet Gier unter 3° pro Minute.

9. Das Quadrat

Der Abnahmetest. 1 m vor, 1 m rechts, 1 m zurück, 1 m links fahren, ohne irgendwo Drehung zu befehlen.

Test: Abstand zum Startpunkt und Kursänderung. Bestanden: innerhalb 5 cm und 3°.

Wie gut aussieht

Messung Erster Versuch, ungeregelt Abgestimmt, geregelt
Seitwärtsdrift über 3 m Gerade 80–200 mm, je nach Akku verschieden Unter 20 mm, wiederholbar
1-m-Strafgenauigkeit 10–20 cm, mit sichtbarer Kurve Innerhalb 5 cm
Kursänderung über dem Strafquadrat 10–30° Unter 3°
Top-Diagonaltempo Was Übersteuerung überlebt 0,42 m/s – die √2-Decke, sauber erreicht
Drehzahl bei sackendem Pack 8,4 → 7,0 V Fällt ~17 % Unverändert, bis die Motoren sättigen
Odometriefehler über dem Quadrat Nicht messenswert 2–5 cm auf gutem Boden, viel schlechter auf staubigem

Die letzte Zeile ist ehrlich statt enttäuschend. An diesem Antrieb ist Rollenschlupf der Mechanismus – die Odometrie ist also die schwächste Zahl am Roboter, selbst wenn alles arbeitet. Die Erwartung einbauen statt ihr hinterherjagen.

Hardwarenotizen, die zählen

Radhändigkeit ist eine Seteigenschaft. Zwei einzeln bestellte Einzelräder aus derselben Anzeige sind sehr oft dieselbe Hand. Prüfen, bevor man irgendetwas bohrt.

Jede Rolle muss sich frei drehen. Jede einzeln von Hand schnippen, bevor die Räder montiert werden. Eine blockierte Rolle verwandelt diese Ecke intermittierend in ein Normalrad, das 45° daneben zeigt – was exakt wie ein Softwarefehler liest.

Mecanum-Räder sind schwer. 180–400 g pro Stück – bis 1,6 kg des Roboters sind also Räder, und das ist rotierende Masse an den Enden der Hebelarme. Der Roboter fühlt sich träge an, und darum zählt die Beschleunigungsdecke.

Der Boden ist ein Bauteil. Polierter Beton und Vinyl liegen um μ = 0,8. Ein staubiger Hallenboden, eine Haarsprayschicht fremder Roboter oder eine Linoleumnaht halbieren ihn lokal – und der Roboter ändert sein Verhalten beim Überqueren. Ansehen, was μ = 0,25 tut, bevor man der Abstimmung die Schuld gibt.

Wenn es schiefgeht

Symptom Ursache Lösung
Geradeaus gut, Strafen kurvt und dreht Ein Rad in der falschen Ecke Die X-Probe; das Kinematikresiduum wird groß und stabil sein
Straft gegen den Befehl Alle vier Räder gespiegelt Linkes Paar mit rechtem Paar tauschen
Drehen auf der Stelle versetzt auch k falsch oder am Chassis gemessen Radmitte zu Radmitte neu messen
Roboter setzt zurück, wenn alle vier Motoren starten Brownout, kein Absturz Separater Regler für den ESP32; Stützkondensatoren; Packinnenwiderstand prüfen
Diagonale deutlich langsamer als geradeaus Die √2-Decke – konstruktionsbedingt Nichts zu reparieren
Lehnt sich unter jeder Automatik aus Kurven Pro-Motor-Clipping statt Befehls skalieren Am schwächsten Rad skalieren
Von Hand gut fahrbar, autonom hoffnungslos Odometrie, nicht Regelung IMU für den Kurs; Fahrten kurz halten; Messräder erwägen
Ein Rad immer gesättigt Überbefohlen, oder dieser Motor der schwächste V_MAX senken auf das, was alle vier wirklich halten
Encoderzählungen driften über Minuten Verlorene Flanken bei Drehzahl Auf beiden Kanälen interrupten; prüfen, ob die ISR kurz ist

Wohin als Nächstes

Messräder. Zwei oder drei ungetriebene Omniräder auf Federhaltern, mit eigenen Encodern. Sie tragen kein Drehmoment, rutschen also nicht – und verwandeln die schlechteste Zahl dieses Roboters in die beste.

Holonome Pfadfolge. Pure Pursuit und Stanley setzen einen Roboter voraus, der lenkt. Eine Basis, die strafen kann, kann Besseres – Pfadposition und Kurs unabhängig verfolgen, denn dafür hat man getrennte Aktoren.

Eine Kamera auf einer kurs haltenden Basis. Die natürliche Paarung: Eine Visionspipeline wird weit leichter, wenn die Kamera aufs Ziel gerichtet bleiben kann, während sich die Basis umpositioniert. Dafür ist holonomer Antrieb wirklich da.

ROS 2. Dieser Antriebsstrang ist der erste hier, wo cmd_vels linear.y – von einem Differenzialroboter explizit ignoriert – endlich etwas heißt. Die Twist-zu-Räder-Funktion gegen die vierzeilige Mecanumvariante zu tauschen ist der Großteil der Arbeit.

Projekt-Roadmap

Der Baupfad

Folge dem Technikbaum von den Bauteilen bis zum funktionierenden Roboter. Jeder Knoten wird freigeschaltet, sobald seine Voraussetzungen erledigt sind, und dein Fortschritt wird auf diesem Gerät gespeichert.

0 / 17 erledigt

100%
Ziel

Ein Roboter, der ein Quadrat straft und heimkommt

Das ganze Projekt

Bauteile

Tutorials in diesem Pfad

Üben, bevor du verdrahtest

Im Live-Simulator abstimmen

Der Baupfad führt durch ein Browser-Labor. Bring das Verhalten hier in Ordnung und übertrage deine Einstellungen dann auf den echten Roboter.

Häufig gestellte Fragen

Kann ich das mit einem Arduino Uno bauen?

Nicht bequem – und der Grund ist Pinzahl statt Rechenleistung. Vier Räder brauchen vier PWM-Ausgänge und vier Quadraturencoder vier interruptfähige Pinpaare. Ein Uno hat sechs PWM-Pins auf drei Timern – und sobald man die Servo-Bibliothek oder tone() nutzt, fallen zwei davon aus –, sowie exakt zwei externe Interrupts. Mit Pin-Change-Interrupts und Verzicht auf einen Encoder lässt es sich basteln – aber man verbringt das Wochenende mit dem Board statt dem Roboter. Ein ESP32 oder Mega 2560 kostet wenige Euro mehr und beseitigt das ganze Problem. Dieser Bau nutzt einen ESP32, weil er außerdem WLAN-Telemetrie gibt – wirklich nützlich, wenn man vier Regelschleifen zugleich abstimmt.

Was kostet ein Mecanum-Roboter im Bau?

Etwa 90–170 £ je nach Radgröße und Motorqualität – grob das Doppelte eines gleichwertigen Zweiradroboters. Die Steigerungen sitzen an vorhersehbaren Stellen: vier Mecanum-Räder statt vier normalen als größte Einzelposition, vier Motoren statt zwei, vier H-Brücken-Kanäle, vier Encoderkabel und ein größerer Akku, weil vier blockierte Getriebemotoren den doppelten Worst-Case-Strom heißen. Das Controller-Upgrade erwischt Leute – von Anfang an budgetieren statt nach dem Bohren des Chassis.

Warum fährt mein Mecanum-Roboter geradeaus gut, dreht aber beim Strafen?

Ein Rad sitzt in der falschen Ecke – mit Abstand der häufigste Mecanum-Baufehler. Geradeaus sieht normal aus, weil sich die Querkomponenten weiter großteils aufheben; der Strafflug entlarvt es, weil das falsch montierte Rad quer zum Befehl statt hinein schiebt. Über den Roboter stellen, gerade nach unten schauen und den sichtbaren Rollen oben auf jedem Rad folgen: Diese vier Linien sollten auf die Robotermitte zielen und ein X zeichnen. Zeichnen sie eine Raute, zwei Räder diagonal tauschen. Was ein verkehrtes Rad tut, sieht man im Simulator-Preset mit einem verkehrt montierten Rad, bevor man eines besitzt.

Brauche ich die IMU?

Für die autonomen Tests nein – das Quadrat fährt der Roboter auch ohne. Zum Handfahren ja, innerhalb etwa zehn Sekunden nach Aufnehmen des Controllers. Ein holonomer Roboter kann woandershin zeigen als er fährt – ein Mensch verliert also fast sofort den Überblick, wohin seitwärts geraten ist. Feldorientierte Regelung behebt das mit einer Rotationsmatrix und braucht einen Gierwinkel von irgendwo. Es ist ein 2-£-Teil und sechs Codezeilen – und jedes Team, das es ausließ, rüstete es nach, nachdem erstmals jemand den Roboter in einen Tisch fuhr.

Wie genau ist die Odometrie auf einer Mecanumbasis?

Schlechter als die Zweiradroboter dieser Seite – und kein Abstimmungsproblem. Dass die Rollen rutschen, ist der Mechanismus der Seitwärtsfahrt – ein Radencoder misst also das Rad und nicht unbedingt den Boden. Vorwärts-Koppelnavigation grob so gut wie jeder Differenzialroboter erwarten, Quer-Koppelnavigation merklich schlechter – wenige Prozent auf gutem Boden, viel mehr auf staubigem. Dafür planen: IMU für den Kurs, autonome Fahrten kurz halten – und muss der Roboter wirklich wissen, wo er ist, ungetriebene Omni-Messräder ergänzen, die kein Drehmoment tragen und daher nicht rutschen.

Kann dieser Roboter Dinge schieben?

Schlecht. Ein Mecanum-Rad greift nur entlang seiner Rollenachse bei 45 Grad, Reibung begrenzt den ganzen Kraftvektor, und nur die Komponente entlang der Rollrichtung bewegt dich wirklich – man bekommt also etwa 71 Prozent der Traktion, die derselbe Roboter auf normalen Rädern hätte, bevor man einrechnet, dass Rollengummi meist schlechter greift als ein Reifen. Mehr Gewicht hilft nicht – denn mehr Masse kauft proportional mehr Reibung und proportional mehr Trägheit, und sie kürzen sich exakt. Ist Schieben der Sinn, lieber einen Mini-Sumo-Roboter auf normalen Rädern bauen; er gewinnt jedes Mal.