Componente · Telaio
Set di ruote Mecanum
La ruota che spinge a 45°: quale delle quattro è mancina, come il controllo a X rivela un montaggio rovescio e quanta trazione scambi per il movimento laterale.
Che cos’è
Una ruota mecanum è una ruota ordinaria con una corona di rulli a rotazione libera fissati attorno al cerchione, ciascuno con l’asse impostato a 45° rispetto a quello della ruota. Bengt Ilon la brevettò nel 1972 presso l’azienda svedese Mecanum AB, da cui deriva il nome, e da allora i robot dei magazzini le usano in silenzio.
La conseguenza dei 45° è tutta la storia. Una ruota normale può spingere soltanto lungo la direzione in cui rotola. Una ruota mecanum può spingere soltanto lungo l’asse del suo rullo, perché il rullo gira liberamente in ogni altra direzione e semplicemente rifiuta di trasmettere forza. Perciò la forza di una singola ruota mecanum sul terreno è fissata a 45° rispetto al telaio, in modo permanente, indipendentemente da ciò che fa il motore.
Una sola ruota così è inutile. Quattro ruote, due mancine e due destre, forniscono quattro vettori di forza ad angoli alternati di 45°, e la somma di quattro vettori può puntare in qualsiasi punto del pavimento e includere una rotazione. Questa è una base olonomica: tre gradi di libertà controllabili — avanti, laterale, rotazione — con quattro motori ordinari senza sterzo.
Verso e perché non è facoltativo
Le ruote mecanum esistono in due forme speculari, di solito vendute come sinistra (A) e destra (B), oppure semplicemente contrassegnate L e R sul mozzo. Un robot ne richiede due per ciascun verso, abbinate in diagonale:
| Angolo | Verso | Vettore di forza, visto dall’alto |
|---|---|---|
| Frontale sinistro | Mancino (A) | Punta in avanti a destra quando la ruota gira in avanti |
| Frontale destro | Destro (B) | Punta in avanti a sinistra |
| Posteriore sinistro | Destro (B) | Punta in avanti a sinistra |
| Posteriore destro | Mancino (A) | Punta in avanti a destra |
Gli angoli diagonali condividono lo stesso verso. Acquistare quattro ruote identiche è un errore reale e comune: un «gruppo di quattro ruote mecanum» di un venditore affidabile contiene due ruote per verso, ma due unità acquistate separatamente molto spesso no.
Controllo a X
Il test affidabile non richiede alcun contrassegno.
- Metti il robot sul banco, con le ruote a terra.
- Stai in piedi davanti a lui e guarda dall’alto.
- Su ogni ruota segui la disposizione dei rulli visibili sulla parte superiore.
- Queste quattro linee devono puntare al centro del robot e disegnare una X.
Se disegnano un rombo, la configurazione a O, scambia due ruote in diagonale e ricontrolla.
C’è una sfumatura che fa inciampare chi tenta di ragionarci invece di guardare: i rulli visibili in alto sono speculari rispetto a quelli che toccano il pavimento, perché un rullo in alto è lo stesso rullo portato per metà giro. I rulli che spingono puntano nella direzione opposta. Non importa: la X visibile resta il test giusto ed è quello che tutti usano, propriamente perché puoi vederla.
Collegamento di quattro ruote a un Arduino
Una trazione mecanum usa quattro motori, quindi un solo L298N non basta. Servono due doppi ponte H, oppure una scheda a quattro canali:
| Ruota | Driver | Pin di direzione | Pin PWM | Encoder A/B |
|---|---|---|---|---|
| Frontale sinistra | Driver 1, canale A | 2, 4 | 3 | 18, 30 |
| Frontale destra | Driver 1, canale B | 7, 8 | 5 | 19, 31 |
| Posteriore sinistra | Driver 2, canale A | 24, 26 | 6 | 20, 32 |
| Posteriore destra | Driver 2, canale B | 28, 22 | 11 | 21, 33 |
Due dettagli che possono complicare la vita:
- Quattro canali PWM che condividono un timer non funzionano tutti. Su un Uno ci sono sei pin PWM distribuiti su tre timer e la libreria Servo o
tone()ne ruba uno. Mega o ESP32 eliminano il problema; su Uno controlla la mappa dei timer prima di saldare. - Quattro encoder richiedono quattro pin di interrupt. Un Uno ne ha due. È il motivo più comune per cui una realizzazione mecanum finisce su Mega 2560 o ESP32.
Codice minimo funzionante
La cinematica inversa richiede quattro righe. Tutto il resto riguarda i collegamenti.
// 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() è il punto in cui si trova il ciclo di velocità, se ne hai uno. In anello aperto è
soltanto una scrittura PWM, e il mecanum in anello aperto deriva: consulta
come chiudere il ciclo sulla velocità delle ruote.
I numeri che contano
Sono tre e dipendono tutti dalla geometria, non da qualcosa che tu possa acquistare per aggirarli.
| Grandezza | Mecanum | Ruote semplici | Perché |
|---|---|---|---|
| Trazione in linea retta | 71% (1/√2) | 100% | L’attrito limita l’intero vettore di forza a 45°; solo la componente in avanti ti muove |
| Limite di accelerazione con μ = 0.85 | 5.9 m/s² | 8.3 m/s² | Stesso rapporto e la massa del robot si cancella in entrambi i casi |
| Velocità diagonale massima | 71% della velocità massima della ruota | n/d | Un comando a 45° chiede tutto a due ruote e niente alle altre due |
| Gradi di libertà | 3 | 2 | Ciò per cui le hai acquistate |
L’ultima riga è ciò che stai pagando. Le prime tre sono il conto.
Risoluzione dei problemi
| Sintomo | Causa | Soluzione |
|---|---|---|
| Avanti va bene, il movimento laterale curva e ruota | Una ruota nell’angolo sbagliato | Esegui il controllo a X; scambia due ruote in diagonale |
| Si sposta lateralmente nella direzione opposta | Tutte e quattro le ruote sono speculari: la X è capovolta | Scambia la coppia sinistra con quella destra |
| Deriva leggermente da un lato su un tratto lungo | I motori non corrispondono sotto carico | Chiudi il ciclo di velocità per ruota oppure abbina e calibra i motori |
| Il diagonale è molto più lento dell’avanti | Funziona come previsto, non è un guasto | Limite di 1/√2; aumenta la velocità massima oppure evita i diagonali |
| Il robot vibra e striscia lateralmente | I rulli slittano invece di rotolare: attrito eccessivo, carico insufficiente o rullo bloccato | Fai girare ogni rullo a mano; devono tutti ruotare liberamente |
| Odometria buona in avanti, disperata lateralmente | I rulli scivolano per progetto, quindi l’encoder non misura il pavimento | Aggiungi un IMU per la direzione e ruote passive per la posizione |
| Un angolo suona diverso dagli altri | Il cuscinetto di un rullo si è bloccato | Sostituisci il rullo; uno bloccato trasforma quell’angolo in una ruota semplice a 45° |
Mecanum o alternative?
| Opzione | Movimento laterale | Forza di spinta | Terreno | Costo e complessità |
|---|---|---|---|---|
| Mecanum, 4 motori | Sì, in qualsiasi direzione e orientamento | Scarsa: 71% prima della gomma dei rulli | Solo pavimenti piatti e duri | 4 motori, 4 driver, 4 encoder |
| Ruote omnidirazionali a X, 4 motori | Sì: stesso ingombro a rombo, ruotato di 45° e √2 più alto | Scarsa, con √2 meno forza per quella velocità | Solo pavimenti piatti | Stesso numero di motori, ingombro scomodo |
| Trazione differenziale, 2 motori | No: deve prima girare | Migliore sulle stesse ruote | Gestisce molto di più | 2 motori, economico, semplice, robusto |
| Swerve, 8 motori | Sì, con trazione completa | Eccellente | Buono | Quattro volte il lavoro e il costo |
In sintesi: una base mecanum è la scelta giusta quando il pavimento è piatto e pulito, lo spazio è stretto e il robot deve mantenere un orientamento mentre si sposta, per esempio in un corridoio di magazzino, su un campo da competizione o su una piattaforma con telecamera. È la scelta sbagliata quando il robot deve spingere, scalare o conoscere esattamente la propria posizione usando solo le ruote.
Dove viene usata
Monta queste ruote sotto un telaio e stai costruendo il robot omnidirezionale mecanum. Prima di tagliare qualsiasi metallo, trascorri venti minuti nel simulatore della trazione mecanum: montare una ruota al contrario lì non costa nulla, ed è il guasto che rischi più di introdurre.
Esplora il grafo
Usato in queste costruzioni
Progetti, percorsi di apprendimento e simulatori che includono Set di ruote Mecanum.
Confronto
Alternative
Domande
FAQ su Set di ruote Mecanum
Come faccio a sapere quale ruota mecanum va dove?
Metti il robot sul banco, stà in piedi davanti a lui e guarda dall'alto. Segui la disposizione dei rulli visibili sulla parte superiore di ogni ruota. Su una base montata correttamente, queste quattro linee puntano verso il centro del robot e insieme disegnano una X. Se disegnano un rombo, una O, due ruote sono negli angoli sbagliati. Il controllo richiede cinque secondi, non serve alcun contrassegno e rileva l'errore di montaggio mecanum più comune. I contrassegni L e R stampati sul mozzo aiutano, ma la X è ciò a cui puoi fidarti, perché verifica ciò che conta davvero.
Cosa succede se una ruota mecanum è montata al contrario?
Il robot continua a guidare, ed è questo che rende il problema così confuso. Avanti e indietro sembrano normali perché le componenti laterali si annullano ancora in gran parte. È il movimento laterale a sbagliare: l'angolo montato al contrario spinge trasversalmente invece che in direzione del comando, così un comando laterale diventa una curva lenta con una rotazione. Nel simulatore, un quadrato di movimento laterale che si chiude a 17 mm con tutte e quattro le ruote corrette finisce a più di un metro di distanza e ruotato di decine di gradi con una sola ruota al contrario. Nel codice non c'è nessun errore e nessuna regolazione PID lo risolverà. Il sintomo osservabile su un robot reale è l'errore residuo dell'encoder, che passa da zero a circa 0.28 e vi rimane.
Le ruote mecanum richiedono encoder?
Ne hanno più bisogno di un robot a trazione differenziale e ne ricavano meno. Ne richiedono di più perché le quattro ruote devono mantenere i rapporti di velocità affinché il robot vada nella direzione impostata, e un motore che cede sotto carico ti devia silenziosamente dalla traiettoria. Ne ricavano di meno perché i rulli scivolano per progetto, quindi un encoder della ruota misura la ruota e non il terreno: la componente laterale dell'odometria è il dato meno affidabile del robot. La maggior parte delle realizzazioni mecanum serie mantiene gli encoder per il ciclo di velocità e aggiunge un IMU, oppure ruote omnidirazionali passive, per la posizione.
Perché il mio robot mecanum si sposta così facilmente?
Perché una ruota mecanum può mordere solo lungo l'asse del rullo, che si trova a 45 gradi rispetto alla direzione desiderata. L'attrito limita l'intero vettore di forza, ma solo la componente lungo la direzione di rotolamento muove il robot: ottieni quindi 1/√2, circa 71%, della trazione che lo stesso robot e lo stesso pavimento offrirebbero con ruote semplici. La gomma dei rulli offre di solito più attrito di quanto suggerisca questo calcolo, ma la penalità geometrica è reale e nessuna impostazione la elimina. Se lo spostamento con forza è l'obiettivo, non usare ruote mecanum.
Posso usare ruote mecanum sul tappeto o all'aperto?
Sul tappeto funzionano, ma divorano velocità e precisione: i rulli affondano invece di scivolare, quindi il movimento laterale diventa rumoroso e l'odometria peggiora. All'aperto no. Ghiaia, erba e qualsiasi superficie con un gradino bloccano un rullo o lo fermano del tutto, e un rullo bloccato trasforma quell'angolo in una ruota semplice puntata a 45 gradi, vale a dire ancora il guasto della ruota al contrario, ma intermittente. Le ruote mecanum sono per pavimenti piatti, duri e puliti, esattamente quelli di magazzini e campi da competizione.
Quanti motori servono a un robot mecanum?
Quattro, uno per ruota, ciascuno controllabile in modo indipendente in entrambe le direzioni. Non esiste una trazione mecanum a due motori: l'intero meccanismo è formato da quattro vettori di forza la cui somma dà il risultato richiesto, e vincolare due ruote a un solo motore ne elimina due. Servono quindi quattro canali di ponte H, quattro gruppi di cavi encoder se vuoi un ciclo di velocità e un fabbisogno di corrente dimensionato per quattro motori anziché due.
Per approfondire