Construire un mini robot sumo : adhérence et coin
Un mini robot sumo qui cherche son adversaire, le pousse hors du ring, et s'arrête à la bordure blanche au lieu de sortir.
Ce que vous construisez
Deux robots, un ring, aucun capteur pointé sur autre chose que l’autre et le sol. Celui encore dedans à la fin gagne.
C’est l’objectif le plus simple de ce site et ce n’est pas le projet facile qu’il semble, car le sumo est le seul robot où la mécanique décide du résultat et le code doit seulement ne pas le gâcher. Tous les autres montages ici récompensent de meilleurs algorithmes. Celui-ci récompense un coin plus affûté.
Cette inversion vaut d’être vécue une fois. C’est aussi pourquoi l’ordre de montage ci-dessous passe sa première journée sur l’arithmétique et sa dernière sur le comportement, l’inverse de la façon dont la plupart commencent.
Les trois nombres qui le décident
La poussée est de 5,9 N, et vos moteurs pourraient faire 25 N. Un robot 500 g sur pneus silicone est limité par l’adhérence d’un facteur quatre. La transmission n’est pas la contrainte et ne le sera jamais, donc construisez à la limite de poids, mettez chaque gramme sur les roues motrices, et dépensez le budget moteur en réduction plutôt qu’en puissance.
Un coin qui soulève 40 % de l’adversaire vous donne 2,3× sa poussée. Le poids retiré atterrit sur vous, donc le rapport est (1+f)/(1−f) et il grimpe vite. Aucun autre changement unique n’en approche.
Vous pouvez rouler à environ 0,8 m/s. Non parce que les moteurs s’épuisent, mais parce que 25 mm de bordure plus 25 ms de latence sont toute la place d’arrêt disponible. La plupart des premiers robots sont conçus pour le double et perdent contre le bord, pas l’adversaire.
Ces trois phrases sont toute la conception. Tout ci-dessous explique comment les atteindre.
Nomenclature
Le mini sumo a une catégorie formelle : empreinte 10 × 10 cm au départ, 500 g maximum, sur un ring 77 cm avec une bordure blanche 2,5 cm. Les règles façonnent la liste de montage.
| Pièce | Qté | Coût approx. | Notes |
|---|---|---|---|
| Arduino Uno ou Nano | 1 | $5 | Un Nano tient bien plus confortablement dans l’empreinte 10 cm |
| Capteurs de réflectance IR | 2–4 | $5 | Détection de bord. Un à chaque coin avant minimum |
| VL53L0X | 2–3 | $10–15 | Détection d’adversaire. Le faisceau étroit bat le sonar dans un ring |
| Moteurs N20 à codeurs | 2 | $16 | Rapport de couple élevé — 1:100 ou plus lent. La vitesse n’est pas l’objectif |
| TB6612FNG | 1 | $3 | |
| Châssis avec coin acier | 1 | $10–25 | Le coin est l’arme ; l’acier est aussi le lest |
| Pack batterie | 1 | $10 | Aussi une masse utile — mettez-le sur les roues motrices |
| Pneus silicone ou haute adhérence | 2 | $5 | L’amélioration au meilleur rapport de la liste |
Total : environ $65–90.
Deux notes qui décident des matchs plutôt que de simplement marcher.
Le poids va sur les roues motrices, jusqu’à la limite. La poussée est du frottement, et le frottement est le coefficient fois la charge normale. Chaque gramme pas sur un pneu moteur est gaspillé, et c’est pourquoi les robots sumo visent exactement 500 g et en mettent presque tout sur deux roues.
Les pneus comptent plus que les moteurs. Un robot qui a atteint sa limite d’adhérence ne gagne rien à plus de couple — les roues patinent simplement. Passer du plastique dur (µ ≈ 0,4) au silicone (µ ≈ 1,2 ou mieux) triple à peu près la poussée disponible pour cinq dollars, ce qu’aucune amélioration moteur ne peut égaler.
Ordre de montage
1 — Décidez d’abord masse et pneus. Ils fixent votre poussée avant qu’une ligne de code existe. Visez la limite 500 g, avec la masse basse et sur les roues motrices ; utilisez des pneus silicone ou uréthane souple, pas ceux livrés avec le kit châssis. µ 1,2 contre µ 0,7 fait 72 % de poussée en plus et coûte le prix d’un jeu de roues.
2 — Réduisez pour le couple et vérifiez le courant de calage. Le sumo vit au côté couple de la courbe moteur, autour de 0,8 m/s à la roue plutôt que le 1,5 supposé par un kit châssis. Puis calculez ce que deux moteurs tirent au calage — environ 3 A — et dimensionnez le pack pour cela plutôt que pour le courant de croisière. Toute une manche est un calage prolongé.
3 — Faites-le s’arrêter à la bordure, seul dans le ring. C’est l’étape clé. Montez des capteurs de réflectance aux deux coins avant, aussi en avant qu’ils voient encore la ligne blanche, calibrés pour le vrai ring plutôt que votre bureau. Foncer à pleine vitesse vers la bordure, cinquante fois, sous tous les angles. Tant que ce n’est pas ennuyeusement fiable, inutile d’ajouter un adversaire — un robot qui sort seul perd sans jamais être poussé.
4 — Lisez les capteurs de bord à chaque passage de boucle. Les quatre cinquièmes de votre distance de réaction attendent la prochaine itération, et une seule lecture de distance bloquante fait 20 ms de cécité exactement au mauvais moment. Le timing non bloquant est l’augmentation de vitesse la moins chère disponible.
5 — Ajoutez la perception d’adversaire. Un VL53L0X vers l’avant, et optionnellement deux autres inclinés à 45° vers l’extérieur. Le faisceau étroit compte : un capteur à ultrasons dans un ring trouve surtout le ring.
6 — Écrivez le comportement en états explicites. Recherche, charge, poussée, repli, avec le réflexe de bord préemptant le tout. C’est un cas d’école pour une machine à états finis, car le contrôle de bord doit tourner dans chaque état et il ne doit exister aucun chemin de code où il ne tourne pas.
7 — Construisez le coin en dernier, et itérez dessus sans fin. C’est la pièce à plus fort levier et la plus facile à changer.
Le comportement, en un paragraphe
Commencez par un délai obligatoire — la plupart des règlements exigent cinq secondes. Puis recherche : tournez sur place, ou roulez un petit arc, jusqu’à ce que le capteur avant signale quelque chose dans environ 40 cm. Chargez droit dessus à pleine puissance. Poussez jusqu’à ce que la distance s’ouvre (ils ont bougé) ou que vous détectiez la bordure. Repliez-vous sur toute détection de bord : pleine marche arrière d’abord, arrêt, puis retour vers le centre du ring. Le repli prime sur tout, depuis tout état, à tout moment.
La subtilité est que pousser et être bloqué se ressemblent depuis le capteur avant. Avec des codeurs, une vitesse de roue nulle à commande pleine signifie un calage, et c’est votre signal pour reculer et réapprocher sous un autre angle plutôt que de labourer jusqu’à épuiser la batterie.
Notes matérielles importantes
La pointe du coin décide des matchs. Tôle d’acier ou d’aluminium fine, affûtée, tenue à une fraction de millimètre du sol par quelque chose de rigide. Sur un support flexible elle monte sur l’adversaire au lieu de passer dessous, ce qui inverse le signe de tout le calcul de transfert de poids.
Gardez l’avant bas. Le coin adverse applique une force vers le haut à votre bord d’attaque, et combien cela vous bascule dépend de la hauteur de votre centre de masse au-dessus. Les robots hauts se font retourner par des robots qui ne pouvaient pas les surpasser en poussée.
Pas de roulette si vous pouvez l’éviter. Du poids sur une roue libre ne fait aucune traction. Deux roues motrices et un patin basse friction — un bouton PTFE ou une tête de vis arrondie — mettent presque toute votre masse au travail.
Protégez le câblage. C’est le seul robot du site délibérément percuté. Tout ce qui est dehors se fait frapper ; tout ce qui est sur connecteur se débranche.
Réducteurs métalliques. Les trains plastique cassent dans un robot dont la condition normale est le calage, et un réducteur cassé en pleine manche est indistinguable d’une batterie morte.
À quoi ressemble un bon résultat
| Mesure | Montage typique | Compétitif |
|---|---|---|
| Masse | 400–500 g | 499 g — la limite, exactement |
| Fraction de masse sur roues motrices | 70 % | 90 %+ |
| Coefficient de frottement des pneus | 0,6–0,8 (caoutchouc) | 1,2–1,5 (silicone) |
| Poussée | 2,5–4 N | 6–7 N |
| Temps de réaction bord | 60–100 ms | Moins de 30 ms |
| Distance d’arrêt depuis pleine vitesse | 8–15 cm | Moins de 5 cm |
| Portée de détection d’adversaire | 30–40 cm | 60–80 cm |
Le temps de réaction au bord est le nombre qui gagne ou perd les matchs, et c’est un effet plus grand que la poussée. La bordure blanche du ring fait 2,5 cm de large. Un robot à 0,5 m/s traverse cette bordure en 50 ms — donc 100 ms de réaction signifie que le robot est déjà dehors avant d’avoir fini de décider de s’arrêter.
Ce budget se décompose en temps de lecture capteur, période de boucle, et distance de freinage. Les trois sont attaquables : interrogez les capteurs de bord bien plus souvent que tout le reste, gardez la boucle de commande serrée, et freinez plutôt que roue libre — court-circuiter le moteur via le pont en H arrête le robot bien plus vite que couper la puissance.
Le plafond d’adhérence mérite d’être posé en arithmétique. Avec 500 g sur deux roues motrices et des pneus silicone à µ = 1,4 :
maximum pushing force = 0.5 kg x 9.81 x 1.4 = 6.9 N
Au-delà les roues patinent quel que soit le couple moteur — et c’est pourquoi un robot sumo est un problème de traction déguisé en problème moteur.
Quand ça tourne mal
| Symptôme | Habituellement |
|---|---|
| Sort seul du ring | Trop vite pour le budget bordure, ou capteurs de bord lus trop lentement |
| Les roues patinent, le robot n’avance pas | Limité par l’adhérence, par conception — ajoutez masse ou changez pneus |
| Perd contre un robot semblable | Leur coin est passé sous le vôtre ; garde au sol, pas puissance |
| Redémarre en pleine poussée | Courant de calage affaissant le rail — dimensionnez pour le calage |
| Voit une bordure inexistante | IR ambiant ou ring réfléchissant ; capotez les capteurs et recalibrez |
| Chasse le mur du ring au lieu de l’adversaire | Faisceau trop large — c’est ce que corrige le temps de vol |
| Tombe en arrière | Pas de capteurs de bord arrière |
| S’arrête à la ligne, puis sort quand même | A tourné en bougeant encore ; arrêtez-vous complètement d’abord |
Six de ces huit sont des défauts mécaniques ou de perception, soit la même distribution que la Micromouse et pour la même raison : l’algorithme est la petite partie.
Si vous voulez la géométrie de perception et d’arrêt sans la course mécanique aux armements, le simulateur d’évitement exécute la même arithmétique de distance d’arrêt avec un capteur avant, et le robot éviteur d’obstacles est le montage plus doux qui partage l’essentiel de ce matériel. Pour la théorie de transmission sous tout cela, le parcours commande moteur commence au dimensionnement et finit à l’odométrie.
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
Composants
- ContrôleurArduino UnoLa carte 8 bits indulgente par laquelle la plupart découvrent la robotique.
- CapteurIR Reflectance Sensor ArrayUne rangée d'yeux infrarouges qui indique au robot où se trouve la ligne.
- CapteurVL53L0X ToF SensorTélémétrie laser à temps de vol — un faisceau fin au millimètre là où le sonar est trop grossier.
- ActionneurN20 Encoder GearmotorUn micromoteur à réducteur métal avec codeur à l'arrière : le robot sait jusqu'où il est vraiment allé.
- PiloteTB6612FNG Motor DriverUn pont en H MOSFET qui garde les volts réellement payés.
- Châssis2WD Robot ChassisLe plateau sur lequel se fixent deux moteurs, une roulette libre et votre électronique.
- AlimentationRobot Battery & Power PackLa différence entre un robot qui roule et un qui redémarre sans cesse.
Tutoriels de ce parcours
- Intermédiaire · 25 min de lectureCombien fort un robot peut pousser : traction et poidsDeux plafonds fixent l'effort de poussée, et sur un petit robot le sol est presque toujours le plus bas.
- Intermédiaire · 25 min de lectureS'arrêter à un bord : latence et distance de freinageQuelle distance un robot parcourt après la ligne qu'il vient de voir, et la vitesse qui la fait tenir.
- Débutant · 17 min de lectureMachines à états finis pour le comportement robotiqueRemplacez les conditionnels robotiques emmêlés par des états, événements, transitions, temporisations et récupération explicites.
- Débutant · 20 min de lectureLire une barrette IR de réflectance pour le suivi de ligneTransformez une rangée de capteurs IR en une position de ligne unique et lisse sur laquelle braquer.
- Intermédiaire · 35 min de lectureComment choisir un motoréducteur CC : couple, vitesse et blocageCalculez le couple et la vitesse dont votre robot a vraiment besoin, puis lisez une fiche technique avec de vrais nombres.
Questions fréquentes
Qu'est-ce que le mini sumo ?
Une catégorie de combat de robots où deux robots autonomes tentent de se pousser hors d'un ring circulaire, sans armes ni dégâts de contact. Le mini sumo plafonne le robot à 500 grammes et une empreinte de 10 sur 10 centimètres, avec hauteur illimitée, et le ring est un disque noir de 77 centimètres avec une bordure blanche de 25 millimètres peinte autour. Une manche finit quand le corps d'un robot touche le sol hors du ring, ce qui arrive bien plus souvent en sortant seul qu'en étant poussé.
Pourquoi une limite de poids si les robots lourds poussent plus fort ?
Parce que c'est exactement le but. La poussée d'un petit robot est limitée par le frottement — le coefficient de frottement fois le poids sur les roues motrices, et ce nombre ne fait qu'environ un quart de ce que les moteurs pourraient fournir. Plafonner la masse plafonne la poussée, ce qui empêche la catégorie de devenir un concours de plus gros moteurs. Cela signifie aussi que chaque concurrent doit être construit à la limite, car dans les règles la masse est la ressource et abandonner 100 grammes abandonne 20 pour cent de votre poussée.
Faut-il des codeurs sur les moteurs ?
Pas pour un premier robot. Le sumo n'a aucune exigence d'odométrie — rien n'a besoin de savoir où il est sur le ring, seulement s'il s'apprête à le quitter. Les codeurs deviennent utiles ensuite pour détecter que vous êtes calé contre un adversaire plutôt que de rouler librement, ce qui est un état vraiment différent et que votre code de comportement aimerait connaître. Commencez sans eux et ajoutez-les quand la machine à états en aura besoin.
Ultrasons ou temps de vol pour trouver l'adversaire ?
Temps de vol, dans un ring. Un faisceau ultrasonore s'ouvre d'environ 15 degrés et se réfléchit sur le sol et toute surface proche, donc un robot en recherche trouve murs, tables et sa propre bordure de ring. Un VL53L0X a un cône étroit et lit en environ 20 millisecondes sans interférence acoustique. L'alternative classique est une paire de capteurs IR analogiques courte portée inclinés vers l'extérieur, bon marché et rapides mais qui voient des adversaires sombres bien plus tard que des clairs.
À quelle vitesse le robot doit-il vraiment rouler ?
Plus lentement que voulu. Avec 25 millisecondes de latence perception-freinage et des pneus silicone, un robot dont le capteur de bord est 40 millimètres devant l'axe peut rouler à environ 0,98 mètre par seconde avant de ne plus pouvoir s'arrêter dans la bordure — et comme une inversion brutale fait glisser les roues sur le coefficient cinétique plus faible, environ 0,8 mètre par seconde est le chiffre honnête. La plupart des premiers robots sont conçus pour un mètre et demi par seconde et perdent chaque manche contre le bord plutôt que contre l'adversaire.
Pourquoi mon robot perd-il contre un sosie ?
Presque toujours le coin avant. Deux robots de masse et adhérence égales poussent également jusqu'à ce que l'un passe sous l'autre, et soulever 40 pour cent du poids adverse fait votre poussée 2,3 fois la sienne — car le poids soulevé s'ajoute à votre traction et se retire de la sienne. C'est un effet plus grand que tout changement moteur, pneu ou batterie disponible, et il se décide à une fraction de millimètre de garde au sol à la pointe du coin.