Parcours de constructionIntermédiaireUn week-end, puis un second

Construire un robot de couverture qui balaie une pièce

Un robot qui couvre seul une pièce avec rien que deux microrupteurs — et un cas mesuré pour dire si ajouter odométrie et planificateur vaut le coup.

Schéma technique : Construire un robot de couverture qui balaie une pièceBRUSHSERPENTINE COVERAGE PATH

Ce que vous construisez

Un robot dont le travail n’est pas d’aller quelque part mais d’être passé partout. Cela semble un problème plus petit que la navigation et c’en est un plus grand, car il n’y a aucun objectif vers lequel diriger et aucun moyen de dire d’où vous êtes si vous gagnez.

C’est aussi le projet qui récompense le plus de mesurer avant de construire. Toute la première moitié est un robot avec deux interrupteurs et aucune idée d’où il est, et ça marche — ce qui est une découverte vraiment inconfortable si vous alliez passer un week-end sur une carte.

Le nombre qui pilote le projet

La surface au sol divisée par la largeur de votre brosse est la distance que parcourrait un robot parfait :

d_optimal = A / w

Une pièce de 20 m² et une brosse de 250 mm donnent 80 m. Chaque stratégie est jugée en multiple de cela, et les multiples ne sont pas proches :

Stratégie Distance à 90 % Dans cette pièce, à 0,25 m/s
Balayage parfait 1,0× 5 min
Serpentin planifié 1,35× 7 min
Rebond aléatoire 2,9× 15 min
Spirale puis relocalisation 5,5× 30 min

Ceux-ci viennent de l’exécution du simulateur de couverture sur cinq pièces. Avant tout achat, lancez-le vous-même et déplacez les meubles pendant — les nombres bougent avec la pièce, ce qui est l’essentiel de la leçon.

Nomenclature

Pièce Qté Coût approx. Notes
Arduino Uno 1 $5–8 Le mode rebond aléatoire n’exige presque rien ; le balayage planifié exige les codeurs
Microrupteurs 2 $1 Gauche et droit, derrière une coque enveloppante. Le capteur principal ici
Barrette de réflectance IR 1 $5 Détection de vide — pointée vers le bas au bord du sol, pas vers une ligne
Moteurs à codeurs N20 2 $16 Exigés pour le balayage planifié ; la marche aléatoire marche sans eux
TB6612FNG 1 $3
Châssis 2 roues motrices 1 $10 Rond vaut mieux que carré ici — il ne se coince pas dans les coins
Pack batterie 1 $8 Les parcours de couverture sont longs ; la capacité compte plus que sur d’autres montages

Total : environ $50–65.

C’est le seul projet du site où le capteur le moins cher est le principal. Deux microrupteurs et un virage aléatoire couvriront une pièce entière avec assez de temps — c’est exactement ainsi que marchait la première génération d’aspirateurs robots, et cela vaut d’être construit avant de saisir quoi que ce soit de plus malin.

La barrette IR est utilisée ici de façon inhabituelle : pointée vers le bas au sol comme capteur de vide plutôt qu’en avant vers une ligne. Un robot qui couvre une pièce trouvera le haut des escaliers.

Ordre de montage

1 — Faites courir les stratégies en simulateur. Une heure ici économise un week-end. Regardez la courbe de couverture s’aplatir et remarquez que les trois stratégies sont identiques sur la première moitié du sol.

2 — Construisez la transmission et le pare-chocs, et rien d’autre. Deux microrupteurs à levier derrière une coque sur ressort qui enveloppe jusqu’à au moins 45° de chaque côté, câblés normalement ouverts vers la masse avec les pull-ups internes. Anti-rebond correctement — un appui fait neuf fronts, et une interruption qui compte signalera une collision neuf fois.

3 — Ajoutez les capteurs de vide avant que le robot tourne sans surveillance. Capteurs de réflectance vers le bas aux coins avant, lus à chaque passage. Puis calculez à quelle vitesse vous pouvez rouler : latence fois vitesse, plus v²/2µg de freinage, doit tenir dans la distance entre voir le vide et l’atteindre.

4 — Écrivez le rebond aléatoire et laissez-le tourner une heure. Roulez droit ; sur un choc, reculez brièvement et tournez d’un montant aléatoire entre 90° et 270°. L’aléatoire est structurel — un angle de réflexion fixe transforme la pièce en billard et le robot trace un chemin fermé pour toujours.

5 — Mesurez-le. Quadrillez le sol à la craie ou au ruban, roulez un temps fixe, et comptez les cases. C’est la base, et la seule façon honnête de savoir si l’étape 6 vous apporte quelque chose.

6 — Seulement maintenant, ajoutez l’odométrie. Codeurs et odométrie différentielle donnent une estimation de position. Planifiez des rangées en serpentin espacées d’une largeur de brosse, moins 10–20 % de recouvrement, et routez autour des meubles plutôt que dedans.

7 — Regardez les rangées cesser d’être parallèles. Elles le feront, en une dizaine de rangées, car l’odométrie dérive. Ce n’est pas un bug de votre planificateur ; c’est la raison pour laquelle les machines du commerce embarquent un gyro, une caméra de plafond ou une balise. Décider d’en ajouter un est la vraie fin de ce projet.

Notes matérielles importantes

Châssis rond, roues sur le diamètre. Un robot circulaire peut toujours sortir en rotation d’une collision où il est entré. Un carré peut se coincer en diagonale dans un coin et exige un pare-chocs arrière et un comportement en plus pour s’échapper.

La brosse doit être plus large que le robot. Ce n’est pas décoratif. Un planificateur garde le corps à l’écart de chaque mur, donc tout ce que le corps ne peut pas atteindre est du sol jamais couvert — en simulateur, 130 des 133 cases manquées par le planificateur sont à deux cellules d’un mur ou d’un pied de table. Une brosse en surplomb les récupère.

Deux moitiés de pare-chocs, pas une. Un seul interrupteur dit que vous avez heurté quelque chose. Deux disent de quel côté, ce qui est l’information dont la direction du virage a besoin, et cela coûte une broche.

Budgétez la batterie en mètres, pas en minutes. Une heure à 0,25 m/s fait 900 m. Une pièce en rebond aléatoire fait environ 540 m à 99 %. Trois pièces n’arriveront pas, et cette arithmétique — pas une intuition algorithmique — est ce qui a poussé toute la catégorie de produits vers la cartographie.

À quoi ressemble un bon résultat

La couverture est l’un des rares comportements robotiques avec un seul nombre propre attaché, et la comparaison entre stratégies est spectaculaire :

Stratégie Couverture après 1× la surface roulée Après 3× Après 10×
Rebond aléatoire ~35 % ~70 % ~93 %
Spirale, puis rebond ~45 % ~78 % ~95 %
Balayage planifié en serpentin ~85 % ~99 % ~99 %

La forme de ces colonnes est toute la leçon. Le rebond aléatoire approche la couverture complète asymptotiquement sans jamais tout à fait arriver — les derniers pourcents prennent plus longtemps que les quatre-vingt-dix premiers. Un balayage planifié y arrive en à peu près une passe et n’a ensuite plus rien à faire.

C’est la différence entre avoir une mémoire et ne pas en avoir, énoncée en nombre.

Mesure Typique
Espacement des lignes de balayage 80–90 % de la largeur effective du robot, pour que les passes se recouvrent
Dérive de cap sur une passe de 4 m 3–8° sans gyro, moins de 2° avec un
Erreur de position après dix passes 15–40 cm sur odométrie seule
Taille de pièce pratique en odométrie pure Jusqu’à environ 4 × 4 m avant que le balayage biaise visiblement

La dernière ligne est le plafond honnête de ce projet. Un balayage planifié dépend de savoir où vous êtes, et l’odométrie dérive sans borne — donc au-delà d’environ 4 m les passes parallèles cessent d’être parallèles et des bandes s’ouvrent. Ce n’est pas un problème de réglage ; c’est pourquoi la cartographie existe.

Quand ça tourne mal

Symptôme Habituellement
Trace la même boucle pour toujours L’angle de rebond est déterministe ; rendez-le aléatoire
Couvre 90 % vite, puis semble s’arrêter Fonctionnement nominal — c’est la courbe de couverture exponentielle
Un choc compté plusieurs fois Pas d’anti-rebond, ou une fenêtre plus courte que les 5 ms de rebond
Tombe d’une marche Trop vite pour le budget capteur de vide, ou la boucle est bloquante
Les rangées dérivent hors parallèle Odométrie, pas planificateur. Ajoutez une référence de cap
Rate des bandes entre rangées Espacement réglé à exactement la largeur de brosse sans recouvrement
Se coince dans un coin Châssis carré, ou pas de pare-chocs arrière
Ne va jamais derrière le canapé Le transit entre travées n’a jamais été planifié

Six de ces huit sont de la perception, de la mécanique ou de l’arithmétique plutôt que de l’algorithme — la même distribution que la Micromouse, et pour la même raison.

Pour la couche réactive partagée avec tous les autres robots mobiles, le robot éviteur d’obstacles est le montage plus doux avec l’essentiel du même matériel, et le parcours navigation réactive couvre la perception et le comportement sous les deux.

Parcours du projet

Le parcours de construction

Suivez l'arbre technologique, des pièces jusqu'à un robot qui fonctionne. Chaque nœud se débloque quand ses prérequis sont terminés, et votre progression est enregistrée sur cet appareil.

0 / 18 terminés

100%
Réalisation

Le faire couvrir une pièce sur deux interrupteurs

Montage

Réalisation

Ajouter le balayage planifié

Montage

Objectif

Couvrir une pièce sur une charge

Objectif

Composants

Tutoriels de ce parcours

Entraînez-vous avant de câbler

Réglez-le dans le simulateur interactif

Le parcours de construction passe par un labo dans le navigateur. Obtenez ici le bon comportement, puis reportez vos réglages sur le vrai robot.

Questions fréquentes

Est-ce un robot aspirateur ?

C'est la moitié navigation d'un aspirateur, qui est la moitié intéressante. Ajouter l'aspiration est un problème mécanique — un ventilateur, une brosse rotative, un bac à poussière et bien plus de batterie — et n'enseigne rien que le problème de couverture n'enseigne pas. Construisez-le avec un chiffon sec ou une houppette dessous et il nettoie vraiment un sol dur, et chaque algorithme dessus est le même que celui d'une machine du commerce.

Pourquoi commencer par le rebond aléatoire si un balayage planifié est meilleur ?

Parce que le rebond aléatoire marche avec une perception constructible en un après-midi, et parce qu'il donne une base mesurée que le planificateur doit battre. En simulateur, l'aléatoire atteint la moitié du sol à même distance qu'un planificateur — l'écart ne s'ouvre qu'après. Si vous construisez le planificateur d'abord, vous passerez un week-end à combattre la dérive odométrique sans jamais savoir ce qu'elle vous a rapporté.

Que gagne vraiment le planificateur ?

Mesuré sur cinq pièces en laboratoire : un balayage planifié atteint 90 pour cent de couverture en 1,35 fois la distance minimale théorique, le rebond aléatoire en 2,9 fois, et une stratégie spirale en 5,5. Dans une pièce de 20 mètres carrés avec une brosse de 250 mm à 0,25 m/s, cela fait 7 minutes contre 15 contre 30. Le hic est que le planificateur n'atteint jamais 99 pour cent, car il garde une marge de sécurité loin de chaque mur et pied de table.

Faut-il les codeurs ?

Pas pour le premier robot — il n'en a aucun usage. Ils sont sur la liste car la seconde moitié du projet en a besoin et car ajouter des codeurs sur un châssis construit est bien plus pénible que les monter au départ. Achetez les moteurs avec codeurs, laissez les fils débranchés, et reprenez-les au balayage planifié.

Qu'est-ce qui l'empêche de tomber dans les escaliers ?

Des capteurs de réflectance vers le bas aux coins avant, lus à chaque passage de boucle, et une limite de vitesse qui sort de l'arithmétique plutôt que du goût. Le robot parcourt sa latence fois sa vitesse avant même que le freinage commence, puis une distance de freinage de v au carré sur deux fois mu g. Les deux termes doivent tenir dans la distance entre où le capteur voit le vide et où les roues l'atteignent.

Pourquoi un châssis rond ?

Parce que l'empreinte d'un robot circulaire ne change pas quand il tourne, donc il peut toujours sortir sur place d'une collision où il est entré. Un robot carré coincé en diagonale dans un coin doit d'abord reculer, ce qui exige un pare-chocs arrière et plus de comportement. C'est la même raison pour laquelle presque tous les robots de sol du commerce sont ronds.