Parcours de constructionIntermédiaireUn week-end

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.

Schéma technique : Construire un robot Mecanum qui roule de côtéBASE_LINKVxVyωzFOUR WHEELS · THREE DEGREES OF FREEDOMROLLERS AT 45° MAKE AN X

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.

Deux vues de dessus du même robot à quatre roues, nez en haut. Dans le panneau supérieur, intitulé correct, un X, bras de rotation lx plus ly égal 160 millimètres, des lignes cyan en pointillés prolongées depuis les rouleaux visibles de chaque roue se croisent au centre du robot et forment un X. Dans le panneau inférieur, intitulé faux, un O, bras de rotation valeur absolue de lx moins ly égal 10 millimètres, les mêmes lignes depuis des roues marquées en rouge forment un losange autour du robot et ne passent jamais par le centre. Une légende dit de se placer au-dessus du robot et de suivre les rouleaux visibles sur le dessus.
Étape 1, et les cinq secondes les moins chères de tout le montage. Prolongez les rouleaux visibles sur le dessus de chaque roue : ils doivent se croiser au milieu du robot. Télécharger le SVG

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

100%
Objectif

Un robot qui balaie un carré et rentre

Tout le projet

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

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.