Construire un robot Mecanum qui roule de côté
Un robot qui balaie un carré de 1 m, revient à 5 cm sans jamais tourner, et garde le même cap au sol pendant que vous le faites pivoter.
Ce que vous construisez
Un robot à quatre roues capable de se déplacer dans toute direction au sol sans d’abord tourner, et capable de tourner sans changer où il va. Poussez-le latéralement dans une allée où il tient à peine ; gardez une caméra pointée sur quelque chose en l’orbitant ; corrigez 3 cm d’écart à une ligne en faisant 3 cm de côté, au lieu de sortir en arc et de revenir en arc.
C’est le premier robot de ce site avec trois vitesses indépendamment contrôlables au lieu de deux. C’est aussi le premier dont la transmission est vraiment plus dure que ses capteurs, et c’est pourquoi presque tout le montage est moteurs, codeurs et boucles de commande.
Le test de réception est délibérément brutal : roulez un carré de 1 m en latéral, et rentrez à 5 cm avec le cap inchangé. Aucun robot différentiel ne peut même tenter ce test.
Le nombre qui pilote le projet
Tout sur ce montage revient à une constante :
k = lx + ly
où lx est la moitié de l’empattement (essieu avant à essieu arrière, divisé par deux) et ly la moitié de la voie (roues gauches à roues droites, divisé par deux). Sur le montage de référence, 75 mm et 85 mm, donc k = 0,160 m.
Ce seul nombre couple la rotation aux roues. Faux, le robot roule quand même — mais une commande de rotation pure dérive au sol, et un latéral pur se courbe, car rotation et translation se mélangent. Mesurez de centre de roue à centre de roue, pas la plaque de châssis, généralement plus large que vous pensez.
Les autres nombres à écrire au marqueur sur le châssis avant de commencer :
| Grandeur | Montage de référence | D’où elle vient |
|---|---|---|
| Rayon de roue r | 48,5 mm | Roues Mecanum 97 mm |
| Tops par tour de roue | 1440 | 12 CPR × 30:1 × 4 fronts en quadrature |
| Mètres par top | 212 µm | 2πr ÷ 1440 |
| Vitesse max de roue V_MAX | 0,60 m/s | Mesurée sur cales, puis réduite de 15 % |
| Plafond diagonal | 0,424 m/s | V_MAX ÷ √2, et aucune amélioration moteur ne le supprime |
| Plafond d’accélération | 5,9 m/s² | μg/√2 à μ = 0,85 — la masse s’annule |
Nomenclature
| Article | Qté | Coût approx. | Notes |
|---|---|---|---|
| Roues Mecanum, 80 ou 97 mm | 4 | £28–70 | Achetez en kit de quatre — deux à gauche, deux à droite |
| Motoréducteur N20 avec codeur, 30:1 | 4 | £9–14 chacun | Appariez-les. 100–250 tr/min à la roue est la plage utile |
| Double pont en H TB6612FNG | 2 | £4–8 chacun | Un L298N fonctionne et gaspille ~3 V pour le faire ; sur un pack 2S c’est l’essentiel de votre vitesse |
| Carte de développement ESP32 | 1 | £6–12 | Quatre voies PWM, quatre paires de codeurs sur interruptions, et télémétrie Wi-Fi gratuite |
| Centrale inertielle MPU6050 | 1 | £2–4 | Montez-la à plat, loin des moteurs, sur l’axe du châssis |
| LiPo 2S, 1500–2200 mAh, 25C | 1 | £12–20 | Dimensionné sur le courant, pas la capacité — quatre moteurs calés font ~5 A au total |
| BEC 5 V ou convertisseur abaisseur | 1 | £3–5 | Ne faites pas tourner l’ESP32 sur le rail moteur |
| Plaque de châssis, 200 × 180 mm | 1 | £10–25 | Acrylique découpé laser, alu 3 mm, ou découpée vous-même |
| Supports moteurs, moyeux, visserie | 1 kit | £8–15 | Adaptez l’alésage du moyeu à l’arbre moteur — 3, 4 ou 6 mm |
| Condensateur bulk, 470 µF | 2 | £1 | Un sur chaque rail moteur de pilote |
£90–170 au total. Les roues et le quadruple de moteurs sont là où les £50 d’un robot deux roues deviennent ceci.
Comment tout se relie
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 ─┘
Trois décisions de câblage pas évidentes :
- L’ESP32 a son propre régulateur. Quatre moteurs qui démarrent ensemble font chuter le pack fort, et un contrôleur partageant ce rail fait une microcoupure et redémarre en pleine commande. Cela ressemble exactement à un crash de micrologiciel. Lisez le tutoriel de budget puissance avant d’accuser votre code.
- Un condensateur bulk sur chaque pilote. 470 µF près de la carte. Les ponts en H tirent par rafales et l’inductance des fils transforme ces rafales en pics.
- La centrale va sur l’axe, à plat, et aussi loin des moteurs que la plaque permet. La dérive de lacet est déjà assez mauvaise sans un champ magnétique de quatre moteurs dedans.
Construisez par étapes
Chacune a un test. Ne reportez pas un échec — sur un robot à quatre moteurs ils se multiplient.
1. Roues montées, et le contrôle en X
Vissez les quatre roues et placez-vous juste au-dessus du robot. Suivez la ligne des rouleaux visibles sur le dessus de chaque roue.
Test : ces quatre lignes visent le milieu du robot et dessinent un X. Si elles dessinent un losange, échangez deux roues en diagonale. Réussi : un X. C’est un contrôle de cinq secondes qui économise une journée.
2. Chaque moteur individuellement
Câblez les quatre, et écrivez un croquis qui pilote une roue à la fois à 40 % pendant une seconde.
Test : appelez chacune et confirmez que la bonne roue tourne dans le bon sens. Réussi : quatre roues, quatre bons sens, aucune paire échangée. Corrigez le câblage en matériel, pas avec des signes moins dans le code — vous perdrez le fil.
3. Codeurs
Un tour de chaque roue, tournée à la main.
Test : affichez le compte. Réussi : à 2 % près de 1440, et positif quand la roue tourne en avant. Un compte qui saute ou part en arrière signifie que vous interrompez sur un canal au lieu de deux, ou que vous lisez un volatile long sans couper les interruptions.
4. Cinématique sur cales
Mettez le robot sur cales et commandez un latéral pur.
Test : les paires diagonales s’opposent — avant-gauche et arrière-droit vont d’un côté, avant-droit et arrière-gauche de l’autre. Réussi : exactement ce motif. Puis commandez une rotation pure : côté gauche d’un côté, côté droit de l’autre. Si une roue désobéit, elle est dans le mauvais coin et l’étape 1 vous a menti.
5. Une boucle de vitesse
Réglez l’anticipation puis le PI sur une seule roue, sur cales, puis en charge.
Test : commandez 0,3 m/s et appuyez un doigt sur le pneu. Réussi : la vitesse tient et le PWM monte visiblement. Faites-le une fois correctement ; les trois autres sont des copies avec leurs propres kS et kV.
6. Les quatre, ligne droite
Quatre boucles, 100 Hz, au sol. Roulez 3 m droit.
Test : mesurez la dérive latérale à la fin. Réussi : moins de 20 mm, et répétable sur trois parcours. En boucle ouverte c’est typiquement 80–200 mm et différent à chaque fois.
7. Latéral 1 m
Test : roulez exactement un mètre de côté et mesurez la distance et le changement de cap. Réussi : à 5 cm près, cap à 3° près. Une courbe systématique signifie une constante k fausse ; une aléatoire signifie une boucle de vitesse qui ne tient pas.
8. Centrale et orienté terrain
Calibrez le biais au démarrage, ajoutez le bouton de reset de cap.
Test : tenez le manche en avant et tournez le robot à la main sur un tour complet. Réussi : il garde la même direction au sol. À l’arrêt, le lacet dérive de moins de 3° par minute.
9. Le carré
Le test de réception. Roulez 1 m en avant, 1 m à droite, 1 m en arrière, 1 m à gauche, sans aucune rotation commandée.
Test : distance au point de départ, et changement de cap. Réussi : à 5 cm et 3° près.
À quoi ressemble un bon résultat
| Mesure | Première tentative, boucle ouverte | Réglé, boucle fermée |
|---|---|---|
| Dérive latérale sur 3 m droit | 80–200 mm, varie avec la batterie | Moins de 20 mm, répétable |
| Précision latérale 1 m | 10–20 cm, avec une courbe visible | À 5 cm près |
| Changement de cap sur le carré latéral | 10–30° | Moins de 3° |
| Vitesse max en diagonale | Ce qui survit à l’écrêtage | 0,42 m/s — le plafond √2, atteint proprement |
| Vitesse quand le pack chute 8,4 → 7,0 V | Chute ~17 % | Inchangée jusqu’à saturation des moteurs |
| Erreur d’odométrie sur le carré | Pas la peine de mesurer | 2–5 cm sur bon sol, bien pire sur sol poussiéreux |
Cette dernière ligne est honnête plutôt que décevante. Sur cette transmission le patinage des rouleaux est le mécanisme, donc l’odométrie est le nombre le plus faible du robot même quand tout marche. Intégrez l’attente plutôt que de la pourchasser.
Notes matérielles importantes
La latéralité des roues est une propriété du kit. Deux unités commandées séparément sur la même annonce sont très souvent de la même main. Vérifiez avant de percer quoi que ce soit.
Chaque rouleau doit tourner librement. Faites tourner chacun à la main avant de monter les roues. Un rouleau grippé transforme ce coin en roue ordinaire pointée à 45°, par intermittence, ce qui se lit exactement comme un bug logiciel.
Les roues Mecanum sont lourdes. 180–400 g chacune, donc jusqu’à 1,6 kg de robot en roues, et c’est de la masse tournante aux bouts des bras de levier. Cela rend le robot pataud et c’est pourquoi le plafond d’accélération compte.
Le sol est un composant. Béton poli et vinyle sont autour de μ = 0,8. Un sol de gym poussiéreux, une couche de laque utilisée sur un autre robot, ou un joint dans le lino le divisera localement par deux, et le robot changera de comportement en le traversant. Regardez ce que fait μ = 0,25 avant d’accuser le réglage.
Quand ça tourne mal
| Symptôme | Cause | Correctif |
|---|---|---|
| Avant correct, latéral qui courbe et tourne | Une roue dans le mauvais coin | Le contrôle en X ; le résidu cinématique sera grand et stable |
| Va de côté à l’opposé de la commande | Les quatre roues en miroir | Échangez la paire gauche avec la paire droite |
| La rotation sur place translate aussi | k faux, ou mesuré sur le châssis | Remesurez de centre de roue à centre de roue |
| Le robot redémarre quand les quatre moteurs démarrent | Microcoupure, pas un crash | Régulateur séparé pour l’ESP32 ; condensateurs bulk ; vérifiez la résistance interne du pack |
| Diagonale bien plus lente que la droite | Le plafond √2 — fonctionnement nominal | Rien à corriger |
| Sort des virages en sous-virage sous toute commande auto | Écrêtage par moteur au lieu de mise à l’échelle | Mettez à l’échelle par la pire roue |
| Bien conduit à la main, sans espoir en autonome | Odométrie, pas commande | Centrale pour le cap ; parcours courts ; envisagez des roues libres |
| Une roue toujours saturée | Sur-commande, ou ce moteur est le faible | Baissez V_MAX à ce que les quatre peuvent vraiment tenir |
| Les comptes codeurs dérivent en minutes | Fronts ratés à vitesse | Interrompez sur les deux canaux ; vérifiez que l’ISR est courte |
Pour aller plus loin
Roues libres. Deux ou trois roues omnidirectionnelles non motrices sur suspensions à ressort, avec leurs propres codeurs. Elles ne portent aucun couple donc ne patinent pas, et elles transforment le pire nombre de ce robot en meilleur.
Suivi de trajectoire holonome. La poursuite pure et Stanley supposent un robot qui dirige. Une base qui va de côté peut mieux faire — suivez la position sur trajectoire et le cap indépendamment, car vous avez des actionneurs séparés pour eux.
Une caméra sur une base qui tient le cap. L’association naturelle : une chaîne de vision est bien plus facile quand la caméra peut rester pointée sur la cible pendant que la base se repositionne. C’est à cela que sert vraiment la conduite holonome.
ROS 2. Cette transmission est la première ici où le linear.y de cmd_vel — explicitement ignoré par un robot différentiel — signifie enfin quelque chose. Échanger la fonction torsion-vers-roues contre la version Mecanum à quatre lignes représente l’essentiel du travail.
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 / 17 terminés
Composants
- ChâssisMecanum Wheel SetDes galets libres à 45° transforment quatre moteurs ordinaires en robot capable de rouler de côté.
- 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.
- ContrôleurESP32Un microcontrôleur double cœur avec Wi-Fi et Bluetooth — l'évolution sans fil depuis un Uno.
- CapteurMPU-6050 IMUUn capteur de mouvement à six axes — comment un robot sent sa propre inclinaison, rotation et accélération.
- AlimentationRobot Battery & Power PackLa différence entre un robot qui roule et un qui redémarre sans cesse.
Tutoriels de ce parcours
- Débutant · 25 min de lectureTransmissions holonomes : omni, Mecanum, swerve comparéesQuatre transmissions, trois degrés de liberté, et ce que chacune vous facture pour les obtenir.
- Intermédiaire · 35 min de lectureCinématique des roues mecanum : quatre roues, trois axesUn galet à 45° donne toute la matrice — et une quatrième équation que personne n'utilise.
- Intermédiaire · 35 min de lectureCommande de vitesse des roues en boucle fermée avec encodeursL'anticipation fait le travail, l'intégrateur nettoie, et le robot roule enfin droit.
- Intermédiaire · 25 min de lectureCommande orientée terrain : faire qu'avant veuille dire avantTournez le manche de moins le cap, et le robot cesse de se disputer avec le pilote.
- Débutant · 17 min de lectureLire des encodeurs en quadrature pour distance et vitesseTransformez les impulsions d'un encodeur en quadrature en mesures fiables de sens, distance et vitesse de roue.
- Intermédiaire · 30 min de lecturePatinage des roues : pourquoi l'odométrie dériveChaque page d'odométrie dit que le patinage ruine l'estimée. Voici ce qu'est le patinage et ce qu'il coûte.
- Débutant · 30 min de lecturePourquoi votre robot redémarre quand les moteurs démarrentLe redémarrage qui ressemble à un bogue est presque toujours la batterie. Budgétez le courant, puis mesurez l'affaissement.
- Débutant · 30 min de lecturePourquoi delay() casse les robots : timing avec millis()Un robot assis dans delay() est aveugle. Remplacez-le par millis(), et faites juste la comparaison de bouclage.
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
Puis-je construire ceci avec un Arduino Uno ?
Pas confortablement, et la raison est le nombre de broches plutôt que la puissance de calcul. Quatre roues exigent quatre sorties PWM et quatre codeurs en quadrature exigent quatre paires de broches sur interruptions. Un Uno a six broches PWM sur trois timers — et dès que vous utilisez la bibliothèque Servo ou tone(), deux cessent de fonctionner — et exactement deux broches d'interruption externe. On peut bricoler avec des interruptions sur changement d'état et abandonner un codeur, mais vous passerez le week-end à combattre la carte au lieu du robot. Un ESP32 ou un Mega 2560 coûte quelques livres de plus et supprime tout le problème. Ce montage utilise un ESP32 car il donne aussi la télémétrie Wi-Fi, vraiment utile quand on règle quatre boucles à la fois.
Combien coûte un robot Mecanum à construire ?
Environ 90–170 £ selon la taille des roues et la qualité des moteurs, soit à peu près le double d'un robot deux roues équivalent. Les augmentations sont à des endroits prévisibles : quatre roues Mecanum au lieu de quatre roues simples est le plus gros poste, quatre moteurs au lieu de deux, quatre voies en pont en H, quatre câbles de codeurs, et une batterie plus grosse car quatre motoréducteurs calés font le double du courant pire cas. La montée en gamme du contrôleur surprend — prévoyez-la au départ plutôt qu'après avoir percé le châssis.
Pourquoi mon robot Mecanum avance bien mais tourne quand il va de côté ?
Une roue est dans le mauvais coin, et c'est de loin l'erreur de montage Mecanum la plus fréquente. L'avant semble normal car les composantes latérales s'annulent encore en grande partie ; c'est le mouvement latéral qui l'expose, car la roue mal montée pousse à travers la commande au lieu de dedans. Placez-vous au-dessus du robot, regardez droit vers le bas et suivez les rouleaux visibles sur le dessus de chaque roue : ces quatre lignes doivent viser le milieu du robot et dessiner un X. Si elles dessinent un losange, échangez deux roues en diagonale. Vous pouvez voir exactement ce que fait une roue à l'envers, avant d'en posséder une, dans le préréglage une roue montée à l'envers du simulateur.
Faut-il la centrale inertielle ?
Pour les essais autonomes, non — le robot fera son carré sans elle. Pour le piloter à la main, oui, dans les dix secondes après avoir pris la manette. Un robot holonome peut pointer d'un côté tout en allant d'un autre, donc un humain perd presque aussitôt où est passé le côté. La commande orientée terrain le corrige avec une matrice de rotation, et il lui faut un angle de lacet de quelque part. C'est une pièce à 2 £ et six lignes de code, et chaque équipe qui l'a sautée l'a ajoutée après la première fois où quelqu'un a conduit le robot dans une table.
Quelle est la précision de l'odométrie sur une base Mecanum ?
Moins bonne que les robots deux roues de ce site, et ce n'est pas un problème de réglage. Le patinage des rouleaux est la façon dont le mouvement latéral se produit, donc un codeur de roue mesure la roue et pas forcément le sol. Attendez-vous à une estime en avant à peu près aussi bonne que tout robot différentiel et à une estime latérale nettement moins bonne — quelques pourcents sur un bon sol, bien plus sur un sol poussiéreux. Prévoyez-le : utilisez la centrale pour le cap, gardez les parcours autonomes courts, et si le robot doit vraiment savoir où il est, ajoutez des roues libres omnidirectionnelles non motrices qui ne portent aucun couple et donc ne patinent pas.
Ce robot peut-il pousser des choses ?
Mal. Une roue Mecanum ne peut mordre que le long de l'axe de son rouleau à 45 degrés, le frottement limite tout le vecteur de force, et seule la composante le long de la direction de roulement vous déplace vraiment — vous obtenez donc environ 71 pour cent de la traction qu'aurait le même robot sur roues simples, avant de compter que le caoutchouc des rouleaux accroche généralement moins bien qu'un pneu. Ajouter du poids n'aide pas, car plus de masse achète proportionnellement plus de frottement et proportionnellement plus d'inertie et les deux s'annulent exactement. Si pousser est le but, construisez plutôt un mini robot sumo sur roues simples ; il gagnera à chaque fois.