Composant · Châssis
Mecanum Wheel Set
La roue qui pousse à 45°. Laquelle des quatre est gauche, le contrôle du X qui repère un montage inversé, et la traction sacrifiée pour le mouvement latéral.
Présentation
Une roue mecanum est une roue ordinaire avec un anneau de galets libres boulonnés autour de sa jante, l’axe de chaque galet étant à 45° du sien propre. Bengt Ilon l’a brevetée en 1972 chez la société suédoise Mecanum AB, d’où son nom, et les robots d’entrepôt l’utilisent discrètement depuis.
La conséquence de ce 45° est toute l’histoire. Une roue normale ne peut pousser que dans sa direction de roulement. Une roue mecanum ne peut pousser que le long de l’axe de son galet — parce que le galet tourne librement dans toute autre direction et refuse simplement d’y transmettre une force. La force au sol d’une roue mecanum est donc bloquée à 45° du châssis, en permanence, quoi que fasse le moteur.
Une telle roue seule est inutile. Quatre d’entre elles, en deux paires gauches et droites, donnent quatre vecteurs de force à 45° alternés, et la somme de quatre vecteurs peut pointer n’importe où sur le sol et porter une rotation. C’est une base holonome : trois degrés de liberté commandables — avant, latéral, rotation — depuis quatre moteurs ordinaires, non directeurs.
Le sens, et pourquoi il n’est pas optionnel
Les roues mecanum existent en deux formes miroirs, généralement vendues comme gauche (A) et droite (B), ou simplement marquées L et R sur le moyeu. Un robot a besoin de deux de chaque, appariées en diagonale :
| Coin | Sens | Son vecteur de force, vu du dessus |
|---|---|---|
| Avant gauche | Gaucher (A) | Pointe avant-droit quand la roue avance |
| Avant droit | Droitier (B) | Pointe avant-gauche |
| Arrière gauche | Droitier (B) | Pointe avant-gauche |
| Arrière droit | Gaucher (A) | Pointe avant-droit |
Les coins en diagonale partagent un sens. Acheter quatre fois la même roue est une erreur réelle et fréquente — un « jeu de quatre roues mecanum » chez un vendeur sérieux contient deux de chaque, mais deux pièces commandées séparément très souvent non.
Le contrôle du X
Le test fiable n’a besoin d’aucun marquage.
- Posez le robot sur l’établi, roues en bas.
- Placez-vous au-dessus et regardez droit vers le bas.
- Sur chaque roue, suivez la ligne des galets visibles dessus.
- Ces quatre lignes doivent viser le milieu du robot et dessiner un X.
Si elles dessinent un losange — la configuration en O ou rhombe — permutez deux roues en diagonale et vérifiez de nouveau.
Une subtilité qui piège quand on raisonne au lieu de regarder : les galets visibles dessus sont en miroir de ceux qui touchent le sol, car un galet en haut de roue est le même galet amené un demi-tour plus loin. Les galets qui poussent pointent dans l’autre sens. Peu importe — le X visible reste le bon test, et c’est celui que tout le monde utilise, précisément parce qu’on peut le voir.
En câbler quatre à un Arduino
Mecanum est une transmission à quatre moteurs, donc un seul L298N ne suffit pas. Deux doubles ponts en H, ou une carte à quatre canaux :
| Roue | Contrôleur | Broches de sens | Broche PWM | Codeur A/B |
|---|---|---|---|---|
| Avant gauche | Contrôleur 1, canal A | 2, 4 | 3 | 18, 30 |
| Avant droit | Contrôleur 1, canal B | 7, 8 | 5 | 19, 31 |
| Arrière gauche | Contrôleur 2, canal A | 24, 26 | 6 | 20, 32 |
| Arrière droit | Contrôleur 2, canal B | 28, 22 | 11 | 21, 33 |
Deux détails qui mordent :
- Quatre canaux PWM partageant un minuteur ne marcheront pas tous. Sur un Uno, il y a six broches PWM sur trois minuteurs, et la bibliothèque Servo ou
tone()en volera un. Un Mega ou un ESP32 en fait un non-problème ; sur un Uno, vérifiez la carte des minuteurs avant de souder. - Quatre codeurs veulent quatre broches d’interruption. Un Uno en a deux. C’est la raison la plus fréquente pour laquelle un montage mecanum finit sur un Mega 2560 ou un ESP32.
Code minimal fonctionnel
La cinématique inverse tient en quatre lignes. Tout le reste est plomberie.
// Mecanum inverse kinematics: a chassis command in, four wheel speeds out.
// x is forward, y is to the robot's LEFT, omega is counter-clockwise.
const float LX = 0.075; // half the wheelbase, m
const float LY = 0.085; // half the track, m
const float K = LX + LY; // the only place geometry enters
void driveMecanum(float vx, float vy, float omega) {
float fl = vx - vy - K * omega;
float fr = vx + vy + K * omega;
float rl = vx + vy - K * omega;
float rr = vx - vy + K * omega;
// Scale, do not clip. Clipping each wheel on its own keeps the speed and
// throws the direction away, which is a bug you will chase for a week.
float peak = max(max(fabs(fl), fabs(fr)), max(fabs(rl), fabs(rr)));
if (peak > V_MAX) {
float s = V_MAX / peak;
fl *= s; fr *= s; rl *= s; rr *= s;
}
setWheel(FL, fl); setWheel(FR, fr);
setWheel(RL, rl); setWheel(RR, rr);
}
setWheel() est l’endroit où vit la boucle de vitesse, s’il y en a une. En boucle ouverte, c’est juste une écriture PWM, et un mecanum en boucle ouverte dérive — voir boucler la vitesse des roues.
Les nombres qui comptent
Trois, et tous trois sont de la géométrie plutôt que quelque chose à acheter.
| Grandeur | Mecanum | Roues lisses | Pourquoi |
|---|---|---|---|
| Traction en ligne droite | 71 % (1/√2) | 100 % | Le frottement plafonne tout le vecteur de force à 45° ; seule sa composante avant vous déplace |
| Plafond d’accélération sur μ = 0,85 | 5,9 m/s² | 8,3 m/s² | Même rapport, et la masse du robot s’annule des deux côtés |
| Vitesse max en diagonale | 71 % de la vitesse roue max | n/a | Une consigne à 45° demande tout à deux roues et rien à deux autres |
| Degrés de liberté | 3 | 2 | Ce pour quoi vous les avez achetées |
La dernière ligne est ce que vous payez. Les trois premières sont la facture.
Dépannage
| Symptôme | Cause | Solution |
|---|---|---|
| L’avant va bien, le latéral courbe et tourne | Une roue dans le mauvais coin | Faites le contrôle du X ; permutez deux roues en diagonale |
| Va de côté dans le mauvais sens | Les quatre roues en miroir — le X est inversé | Permutez la paire gauche avec la paire droite |
| Dérive un peu d’un côté sur une longue droite | Les moteurs ne s’accordent pas en charge | Bouclez la vitesse par roue, ou appairez et étalonnez |
| La diagonale est bien plus lente que l’avant | Fonctionnement nominal, pas une panne | Le plafond 1/√2 ; augmentez la vitesse max ou évitez les diagonales |
| Le robot broute et couine en latéral | Galets qui ripent au lieu de rouler — trop d’adhérence, trop peu de charge, ou un galet grippé | Tournez chaque galet à la main ; chacun doit tourner librement |
| Odométrie bonne en avant, nulle en latéral | Les galets glissent par conception, le codeur ne mesure pas le sol | Ajoutez une centrale inertielle pour le cap ; ajoutez des roues libres pour la position |
| Un coin sonne différemment des autres | Le roulement d’un galet s’est effondré | Remplacez le galet ; un galet grippé fait de ce coin une roue lisse à 45° |
Mecanum, ou les alternatives ?
| Option | Va de côté | Puissance de poussée | Terrain | Coût et complexité |
|---|---|---|---|---|
| Mecanum, 4 moteurs | Oui, toute direction, tout cap | Faible — 71 % avant le caoutchouc des galets | Sols plats et durs seulement | 4 moteurs, 4 contrôleurs, 4 codeurs |
| Roues omni en X, 4 moteurs | Oui — même enveloppe en losange, tournée de 45° et √2 plus haute | Faible, et √2 moins de force pour cette vitesse | Sols plats seulement | Même nombre de moteurs, délicat à loger |
| Entraînement différentiel, 2 moteurs | Non — doit d’abord tourner | Meilleure sur les mêmes roues | Gère bien plus | 2 moteurs, économique, simple, robuste |
| Swerve, 8 moteurs | Oui, avec pleine traction | Excellente | Bon | Quatre fois le travail et le coût |
Le résumé honnête : une base mecanum est la bonne réponse quand le sol est plat et propre, l’espace serré, et que le robot doit tenir un cap en se déplaçant — une allée d’entrepôt, un terrain de compétition, une plateforme caméra. C’est la mauvaise réponse quand le robot doit pousser, grimper, ou savoir exactement où il est depuis ses roues seules.
Où c’est utilisé
Mettez-les sous un châssis et vous construisez le robot omnidirectionnel mecanum. Avant de couper du métal, passez vingt minutes dans le simulateur d’entraînement mecanum — y monter une roue à l’envers ne coûte rien, et c’est la panne que vous risquez le plus de construire.
Explorer le graphe
Utilisé dans ces réalisations
Projets, parcours d'apprentissage et simulateurs qui intègrent le composant Mecanum Wheel Set.
Comparer
Alternatives
Questions
FAQ : Mecanum Wheel Set
Comment savoir quelle roue mecanum va où ?
Posez le robot sur l'établi, placez-vous au-dessus et regardez droit vers le bas. Suivez la ligne des galets visibles sur le dessus de chaque roue. Sur une base bien montée, ces quatre lignes visent le milieu du robot et dessinent ensemble un X. Si elles dessinent un losange — un rhombe, un O — deux de vos roues sont dans les mauvais coins. Ce contrôle prend cinq secondes, sans marquage, et repère l'erreur de montage mecanum la plus fréquente. Les tampons L et R imprimés sur le moyeu aident, mais c'est le contrôle du X qu'il faut croire, car il teste ce qui compte vraiment.
Que se passe-t-il si une roue mecanum est montée à l'envers ?
Le robot roule quand même, ce qui rend la panne si déroutante. Avant et arrière semblent normaux car les composantes latérales s'annulent encore à peu près. C'est le déplacement latéral qui échoue : le coin mal monté pousse en travers de la consigne au lieu de dedans, donc une consigne latérale sort en courbe lente avec une rotation dedans. Dans le simulateur, un carré latéral qui se referme à 17 mm avec quatre roues correctes finit à plus d'un mètre et des dizaines de degrés de rotation avec une roue inversée. Rien dans le code n'est faux, et aucun réglage PID ne corrigera cela. L'indice lisible sur un vrai robot est le résidu des codeurs, qui passe de zéro à environ 0,28 et y reste.
Les roues mecanum ont-elles besoin de codeurs ?
Elles en ont plus besoin qu'un robot à entraînement différentiel, et en tirent moins. Plus, car les quatre roues doivent tenir leurs rapports de vitesse pour que le robot aille où on l'a pointé, et un moteur qui s'affaisse en charge vous déroute discrètement. Moins, car les galets glissent par conception, donc un codeur de roue mesure la roue et pas le sol — la partie latérale de votre odométrie est le nombre le moins fiable du robot. La plupart des montages mecanum sérieux gardent les codeurs pour la boucle de vitesse et ajoutent une centrale inertielle, ou des roues libres omnidirectionnelles non motrices, pour la position.
Pourquoi mon robot mecanum est-il si facile à pousser ?
Parce qu'une roue mecanum ne peut mordre que le long de l'axe de son galet, qui est à 45 degrés de la direction voulue. Le frottement limite tout le vecteur de force, mais seule la composante le long du roulement déplace le robot — vous obtenez donc 1/√2, environ 71 %, de la traction que le même robot et le même sol donneraient en roues lisses. Le caoutchouc des galets accroche généralement mieux que cela, mais la pénalité géométrique est réelle et aucun réglage ne la supprime. Si pousser fort est le but, n'utilisez pas de roues mecanum.
Peut-on utiliser des roues mecanum sur moquette ou dehors ?
La moquette marche mais mange vitesse et précision : les galets s'enfoncent au lieu de glisser, donc le mouvement latéral devient bruité et l'odométrie pire. Dehors, non. Gravier, herbe et tout rebord bloqueront un galet ou l'arrêteront net, et un galet bloqué fait de ce coin une roue ordinaire pointée à 45 degrés de travers — soit la panne de roue inversée, par intermittence. Les roues mecanum sont pour sols plats, durs et propres, soit exactement où sont entrepôts et terrains de compétition.
Combien de moteurs faut-il pour un robot mecanum ?
Quatre, un par roue, chacun commandable indépendamment dans les deux sens. Il n'existe pas d'entraînement mecanum à deux moteurs — tout le mécanisme est quatre vecteurs de force se sommant en ce que vous avez demandé, et lier deux roues à un moteur en supprime deux. Cela signifie quatre canaux de pont en H, quatre faisceaux de codeurs si vous voulez une boucle de vitesse, et un budget de courant profond de quatre moteurs plutôt que deux.
Pour aller plus loin