Einen Raumabdeckungsroboter bauen, der Böden kehrt
Ein Roboter, der einen Raum allein mit nichts als zwei Bumpern abdeckt – und ein vermessener Beleg dafür, ob Odometrie und Planer sich lohnen.
Was du baust
Einen Roboter, dessen Job nicht ist, irgendwohin zu kommen, sondern überall gewesen zu sein. Das klingt nach dem kleineren Problem als Navigation und ist das größere – denn es gibt kein Ziel, auf das man zulenken könnte, und keine Art, von dort, wo man steht, zu sagen, ob man gewinnt.
Es ist außerdem das Projekt, das Messen vor Bauen am meisten belohnt. Die ganze erste Hälfte ist ein Roboter mit zwei Schaltern und keiner Ahnung, wo er ist – und er funktioniert: was eine wirklich unbequeme Entdeckung ist, wenn man gerade ein Wochenende in eine Karte stecken wollte.
Die Zahl, die das Projekt treibt
Fläche geteilt durch Bürstenbreite ist die Strecke, die ein perfekter Roboter fahren würde:
d_optimal = A / w
Ein 20-m²-Raum und 250-mm-Bürste ergeben 80 m. Jede Strategie wird als Vielfaches davon beurteilt – und die Vielfachen liegen nicht nah beieinander:
| Strategie | Strecke bis 90 % | In diesem Raum, bei 0,25 m/s |
|---|---|---|
| Perfekte Kehrfahrt | 1,0× | 5 Min. |
| Geplante Schlangenfahrt | 1,35× | 7 Min. |
| Zufallsabprall | 2,9× | 15 Min. |
| Spirale mit Versetzen | 5,5× | 30 Min. |
Die stammen aus Läufen des Abdeckungssimulators über fünf Räume. Vor jedem Kauf selbst fahren lassen und Möbel verrücken, während er läuft – die Zahlen wandern mit dem Raum, was der Großteil der Lektion ist.
Stückliste
| Teil | Menge | Ungefähre Kosten | Hinweise |
|---|---|---|---|
| Arduino Uno | 1 | 5–8 $ | Der Zufallsabprallmodus braucht fast nichts; die geplante Kehrfahrt braucht die Encoder |
| Bumper | 2 | 1 $ | Links und rechts, hinter einer umlaufenden Schale. Der Hauptsensor hier |
| IR-Reflexionsarray | 1 | 5 $ | Abgrunderkennung – nach unten auf die Bodenkante gerichtet, nicht auf eine Linie |
| N20-Encodermotoren | 2 | 16 $ | Pflicht für die geplante Kehrfahrt; der Zufallslauf geht ohne sie |
| TB6612FNG | 1 | 3 $ | |
| 2WD-Chassis | 1 | 10 $ | Rund ist hier besser als eckig – es verkeilt sich nicht in Ecken |
| Akkupack | 1 | 8 $ | Kehrfahrten sind lang; Kapazität zählt mehr als an anderen Bauten |
Gesamt: grob 50–65 $.
Das ist das eine Projekt der Seite, wo der billigste Sensor der Hauptsensor ist. Zwei Bumper und eine Zufallsdrehung decken mit genug Zeit einen ganzen Raum ab – genau so arbeitete die erste Staubsaugerrobotergeneration, und es lohnt sich zu bauen, bevor man nach etwas Klügerem greift.
Das IR-Array wird hier ungewohnt genutzt: nach unten auf den Boden als Abgrundsensor gerichtet statt vorwärts auf eine Linie. Ein Roboter, der einen Raum abdeckt, findet die Treppenoberkante.
Baureihenfolge
1 – Die Strategien im Simulator gegeneinander fahren lassen. Eine Stunde hier spart ein Wochenende. Der Abdeckungskurve beim Abflachen zusehen und bemerken, dass alle drei Strategien für die erste Bodenhälfte identisch sind.
2 – Antrieb und Bumper bauen, sonst nichts. Zwei Hebel-Mikroschalter hinter einer gefederten Schale, die mindestens 45° zu jeder Seite umgreift, offen gegen Masse verdrahtet mit internen Pull-ups an. Sauber entprellen – ein Druck sind neun Flanken, und ein zählender Interrupt meldet eine Kollision neunmal.
3 – Die Abgrundsensoren hinzufügen, bevor der Roboter je unbeaufsichtigt läuft. Abwärts-Reflexionssensoren an den Vorderecken, jeden Durchlauf gelesen. Dann ausrechnen, wie schnell man fahren darf: Latenz mal Geschwindigkeit plus v²/2µg Bremsweg muss in die Strecke zwischen Abgrundsehen und Abgrunderreichen passen.
4 – Zufallsabprall schreiben und eine Stunde laufen lassen. Geradeaus fahren; bei Stoß kurz zurücksetzen und um einen Zufallsbetrag zwischen 90° und 270° drehen. Der Zufall trägt – ein fester Reflexionswinkel verwandelt den Raum in einen Billardtisch und der Roboter zieht ewig eine geschlossene Bahn.
5 – Vermessen. Ein Raster mit Kreide oder Klebeband auf den Boden, für feste Zeit fahren lassen und Quadrate zählen. Das ist die Basislinie – und die einzige ehrliche Art zu wissen, ob Schritt 6 dir etwas wert ist.
6 – Erst jetzt Odometrie dazu. Encoder und Differenzial-Odometrie liefern eine Positionsschätzung. Schlangenreihen eine Bürstenbreite auseinander planen, minus 10–20 % Überlappung, und um Möbel herum- statt hineinfahren.
7 – Zusehen, wie die Reihen aufhören, parallel zu sein. Das tun sie, innerhalb etwa zehn davon – denn Odometrie driftet. Das ist kein Fehler in deinem Planer; es ist der Grund, warum kommerzielle Maschinen ein Gyro, eine Deckenkamera oder eine Bake tragen. Zu entscheiden, ob man eine ergänzt, ist das echte Ende dieses Projekts.
Hardwarenotizen, die zählen
Rundes Chassis, Räder auf dem Durchmesser. Ein kreisförmiger Roboter kann sich aus jeder Kollision, in die er hineinfuhr, immer herausdrehen. Ein eckiger kann sich diagonal in eine Ecke verkeilen und braucht Heckbumper und Extraverhalten zur Befreiung.
Die Bürste muss breiter sein als der Roboter. Keine Dekoration. Ein Planer hält den Körper von jeder Wand frei – was der Körper nicht erreicht, ist Boden, der nie abgedeckt wird: Im Simulator liegen 130 der 133 Quadrate, die der Planer verfehlt, innerhalb zweier Zellen einer Wand oder eines Tischbeins. Eine überstehende Bürste holt sie zurück.
Zwei Bumperhälften, nicht eine. Ein einzelner Schalter sagt: Du bist irgendwo angestoßen. Zwei sagen: welche Seite – die Information, die die Drehrichtung braucht, und sie kostet einen Pin.
Die Batterie in Metern budgetieren, nicht Minuten. Eine Stunde bei 0,25 m/s sind 900 m. Ein Raum im Zufallsabprall sind rund 540 m bis 99 %. Drei Räume werden nichts – und diese Rechnung, keine algorithmische Einsicht, trieb die ganze Produktkategorie zur Kartierung.
Wie gut aussieht
Abdeckung ist eines der wenigen Roboterverhalten mit einer sauberen, einzelnen Zahl daran – und der Strategievergleich ist dramatisch:
| Strategie | Abdeckung nach 1× befahrener Raumfläche | Nach 3× | Nach 10× |
|---|---|---|---|
| Zufallsabprall | ~35 % | ~70 % | ~93 % |
| Spirale, dann Abprall | ~45 % | ~78 % | ~95 % |
| Geplante Boustrophedon-Kehrfahrt | ~85 % | ~99 % | ~99 % |
Die Form dieser Spalten ist die ganze Lektion. Zufallsabprall nähert sich voller Abdeckung asymptotisch und kommt nie ganz an – die letzten paar Prozent dauern länger als die ersten neunzig. Eine geplante Kehrfahrt ist in grob einem Durchgang dort und hat dann nichts mehr zu tun.
Das ist der Unterschied zwischen Gedächtnis haben und nicht haben, als Zahl formuliert.
| Messung | Typisch |
|---|---|
| Kehrlinienabstand | 80–90 % der effektiven Roboterbreite, damit sich Durchgänge überlappen |
| Kursdrift über einen 4-m-Durchgang | 3–8° ohne Gyro, unter 2° mit einem |
| Positionsfehler nach zehn Durchgängen | 15–40 cm allein auf Odometrie |
| Praktische Raumgröße für reine Odometrie | Bis etwa 4 × 4 m, bevor sich die Kehrfahrt sichtbar schert |
Die letzte Zeile ist die ehrliche Decke dieses Projekts. Eine geplante Kehrfahrt hängt daran zu wissen, wo man ist – und Odometrie driftet unbegrenzt: Jenseits etwa 4 m hören die parallelen Durchgänge auf, parallel zu sein, und Lücken öffnen sich. Das ist kein Abstimmungsproblem; es ist, warum es Kartierung gibt.
Wenn es schiefgeht
| Symptom | Meist |
|---|---|
| Zieht ewig dieselbe Schleife | Abprallwinkel ist deterministisch; zufällig machen |
| Deckt 90 % schnell ab, scheint dann zu stehen | Konstruktionsbedingt – das ist die exponentielle Abdeckungskurve |
| Ein Stoß mehrfach gezählt | Kein Entprellen oder Fenster kürzer als die 5-ms-Prellzeit |
| Fährt eine Stufe hinunter | Zu schnell fürs Abgrundsensorbudget oder Schleife blockiert |
| Reihen driften aus Parallelität | Odometrie, nicht der Planer. Kursreferenz dazu |
| Verfehlt Streifen zwischen Reihen | Reihenabstand exakt auf Bürstenbreite ohne Überlappung gesetzt |
| Verkeilt sich in einer Ecke | Eckiges Chassis oder kein Heckbumper |
| Kommt nie hinters Sofa | Der Transit zwischen Reihenspannen wurde nie geplant |
Sechs dieser acht sind Wahrnehmung, Mechanik oder Rechnung statt Algorithmus – dieselbe Verteilung wie beim Micromouse, aus demselben Grund.
Für die reaktive Schicht, die das mit jedem anderen mobilen Roboter teilt, ist der Hindernisvermeidungsroboter der sanftere Bau mit großteils derselben Hardware, und der Pfad reaktive Navigation deckt Wahrnehmung und Verhalten unter beiden ab.
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 / 18 erledigt
Bauteile
- ControllerArduino UnoDas gutmütige 8-Bit-Board, über das die meisten die Robotik kennenlernen.
- SensorLever MicroswitchDas eine Bit Sensorik, das einem Roboter sagt, dass er schon irgendwo angestoßen ist.
- SensorIR Reflectance Sensor ArrayEine Reihe Infrarotaugen, die einem Roboter sagt, wo die Linie ist.
- AktorN20-Getriebemotor mit EncoderMikromotor mit Metallgetriebe und Encoder hinten: So weiß der Roboter, wie weit er wirklich gefahren ist.
- TreiberTB6612FNG-MotortreiberEine MOSFET-H-Brücke, die die Volt behält, für die du wirklich bezahlt hast.
- Chassis2WD Robot ChassisDie Plattform, auf die zwei Motoren, eine freie Rolle und die Elektronik geschraubt werden.
- StromversorgungRobot Battery & Power PackDer Unterschied zwischen einem Roboter, der läuft, und einem, der ständig neu startet.
Tutorials in diesem Pfad
- Mittelstufe · 30 Min.Abdeckungsplanung: Einen ganzen Boden kehrenWarum ein Roboter ohne Karte die siebenfache Strecke braucht, um denselben Raum fertig zu bekommen.
- Einsteiger · 25 Min.Bumper-Sensoren und Entprellen bei RoboterkollisionEin Tastendruck, neun Flanken – und der Interrupt zählt jede einzelne davon.
- Mittelstufe · 25 Min.Anhalten an der Kante: Latenz und BremswegWie weit ein Roboter über die gerade gesehene Linie hinausfährt, und das Tempo, das hineinpasst.
- Einsteiger · 17 Min. LesezeitQuadratur-Encoder lesen für Distanz und TempoVerwandle Quadratur-Encoderpulse in zuverlässige Radrichtung, Distanz und Geschwindigkeit.
- Mittelstufe · 20 Min. LesezeitDifferenzial-Odometrie aus RadencodernLinke und rechte Radbewegung in eine mobile Roboterpose integrieren, dann Drift erkennen und kalibrieren.
Ü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
Ist das ein Staubsaugerroboter?
Es ist seine Navigationshälfte – die interessante Hälfte. Saugung dranzubauen ist ein mechanisches Problem – Lüfter, Bürstenwalze, Staubbehälter und deutlich mehr Akku –, und lehrt nichts, was das Abdeckungsproblem nicht lehrt. Mit trockenem Tuch oder Staubwedel unten drunter gebaut reinigt er einen Hartboden wirklich – und jeder Algorithmus darauf ist derselbe, den kommerzielle Maschinen fahren.
Warum mit Zufallsabprall anfangen, wenn eine geplante Kehrfahrt besser ist?
Weil Zufallsabprall mit Wahrnehmung funktioniert, die man an einem Nachmittag baut – und weil er eine vermessene Basislinie liefert, die der Planer schlagen muss. Im Simulator erreicht Zufall die halbe Fläche auf derselben Strecke wie ein Planer – die Lücke öffnet sich erst danach. Wer zuerst den Planer baut, verbringt ein Wochenende mit Odometriedriftkämpfen, ohne je zu wissen, was sie einbrachte.
Wie viel bringt der Planer wirklich?
Vermessen über fünf Räume im Labor: Eine geplante Kehrfahrt erreicht 90 Prozent Abdeckung mit 1,35-facher theoretischer Mindeststrecke, Zufallsabprall braucht 2,9-fache, und eine Spiralstrategie 5,5-fache. In einem 20-Quadratmeter-Raum mit 250-mm-Bürste bei 0,25 m/s sind das 7 Minuten gegen 15 gegen 30. Der Haken: Der Planer erreicht 99 Prozent nie überhaupt – denn er hält Sicherheitsabstand zu jeder Wand und jedem Tischbein.
Brauche ich die Encoder?
Nicht für den ersten Roboter – er hat keine Verwendung dafür. Sie stehen auf der Stückliste, weil die zweite Projekthälfte sie braucht und weil Encoder an ein gebautes Chassis nachzurüsten weit lästiger ist als sie von Anfang an einzubauen. Die Motoren mit Encodern kaufen, die Leitungen unverbunden lassen und aufgreifen, wenn man zur geplanten Kehrfahrt kommt.
Was hindert ihn, die Treppe hinunterzufallen?
Abwärts-Reflexionssensoren an den Vorderecken, jeden Schleifendurchlauf gelesen, und eine Tempogrenze, die aus Rechnung statt Geschmack kommt. Der Roboter fährt eigene Latenz mal eigene Geschwindigkeit, bevor Bremsen überhaupt beginnt – dann einen Bremsweg von v Quadrat durch zweimal mü g. Beide Terme müssen in die Strecke zwischen Abgrunderkennen und Raderreichen passen.
Warum ein rundes Chassis?
Weil sich die Grundfläche eines kreisförmigen Roboters beim Drehen nicht ändert – er kann sich also aus jeder Kollision, in die er hineinfuhr, auf der Stelle herausdrehen. Ein eckiger Roboter, diagonal in eine Ecke gekeilt, muss erst zurücksetzen – was einen Heckbumper und mehr Verhalten braucht. Aus demselben Grund ist fast jeder kommerzielle Bodenroboter rund.