Perché le ruote Mecanum deviano nella fase autonoma di FTC (e come risolvere senza dead wheel)

La deviazione delle ruote Mecanum è causata dalla cancellazione imperfetta dei vettori di forza sulle piastrelle in schiuma comprimibile. È possibile eliminare la maggior parte degli errori nella fase autonoma senza pod odometrici bloccando l'orientamento con l'IMU interna del Control Hub e profilando l'accelerazione.
Le trasmissioni con ruote Mecanum deviano durante le routine autonome di FTC perché il loro movimento si basa sulla precisa cancellazione matematica di vettori di forza diagonali a 45 gradi. Sulle piastrelle morbide e irregolari in schiuma EVA, le forze normali disomogenee e lo slittamento dei rulli impediscono a questi vettori di bilanciarsi perfettamente, generando un'indesiderata imbardata rotazionale che si accumula con la distanza. Non servono costosi pod odometrici non motorizzati (dead wheel) per risolvere il problema: è possibile eliminare la stragrande maggioranza degli errori di traiettoria nella fase autonoma chiudendo il loop sull'orientamento tramite l'IMU integrata del REV Control Hub e limitando l'accelerazione per rimanere entro i limiti di attrito statico dei rulli.
La meccanica dello slittamento Mecanum
Una ruota di trazione standard applica una forza parallela alla rotazione della ruota stessa. Una ruota Mecanum trasferisce la forza attraverso rulli passivi inclinati a 45 gradi rispetto al piatto della ruota. Quando un motore fa ruotare in avanti una ruota Mecanum, l'area di contatto esercita un vettore diagonale: una componente spinge il robot in avanti e un'uguale componente trasversale spinge lateralmente.
Per procedere in linea retta in avanti, le ruote sinistre e destre esercitano forze trasversali uguali e opposte che si annullano a vicenda, lasciando solo la spinta in avanti. Per traslare puramente di lato, le coppie diagonali opposte ruotano in senso contrario tra loro, annullando la spinta in avanti e combinando la spinta trasversale.
Questa cancellazione vettoriale presuppone tre condizioni che non si verificano mai su un campo di gara:
- Forze normali simmetriche: se il baricentro del robot è spostato anche di poco verso la batteria o il meccanismo di sollevamento, gli angoli più pesanti subiscono una forza normale maggiore e una trazione superiore. Gli angoli più leggeri slittano, lasciando le forze trasversali non compensate.
- Trazione uniforme della superficie: le morbide piastrelle a incastro in schiuma EVA si deformano sotto il peso. I rulli affondano nella schiuma a profondità variabili, alterando l'angolo di contatto effettivo e la resistenza al rotolamento di millisecondo in millisecondo.
- Attrito cinetico identico: i rulli passivi in plastica e gomma delle ruote Mecanum commerciali standard presentano piccole tolleranze di fabbricazione, gioco assiale e differenze di attrito interno.
Quando i vettori di forza non si annullano perfettamente, il risultato immediato è una coppia di imbardata non comandata. Non appena il robot ruota anche solo di due o tre gradi rispetto all'orientamento previsto, ogni impulso successivo dell'encoder motore spinge il robot lungo una traiettoria ruotata, moltiplicando l'errore di posizione nel tempo.
La soluzione: correzione attiva dell'orientamento con IMU
Sebbene gli encoder dei motori misurino la rotazione degli alberi delle ruote, non possono rilevare lo slittamento dei rulli sul pavimento. Tuttavia, non è necessario un tracciamento cartesiano completo della posizione per risolvere la maggior parte delle imprecisioni nella fase autonoma. Se si impedisce al robot di deviare dall'orientamento desiderato, gli errori di traslazione dell'encoder rimangono lineari e prevedibili anziché rotazionali e disastrosi.
Ogni REV Control Hub contiene un'Unità di Misura Inerziale (IMU, Inertial Measurement Unit) integrata in grado di rilevare l'orientamento angolare assoluto (imbardata) con elevata precisione e una deriva minima durante il periodo autonomo di 30 secondi.
Implementare il loop di mantenimento dell'orientamento
Invece di inviare direttamente la potenza di traslazione grezza ai motori di trazione, convogliate l'errore di orientamento attraverso un anello di controllo Proporzionale-Derivativo (PD) che immette potenza rotazionale correttiva nelle equazioni cinematiche Mecanum in tempo reale.
Le equazioni cinematiche standard Mecanum per le potenze dei motori sono:
Front Left = Drive + Strafe + TurnFront Right = Drive - Strafe - TurnBack Left = Drive - Strafe + TurnBack Right = Drive + Strafe - Turn
In una routine ad anello aperto, Turn è impostato su zero durante gli spostamenti in linea retta o le traslazioni laterali pure. In una routine con blocco attivo dell'orientamento, Turn viene calcolato dinamicamente a ogni iterazione del ciclo in base al feedback dell'imbardata dell'IMU:
- Lettura dell'orientamento attuale: acquisire l'angolo di imbardata corrente dall'IMU.
- Calcolo dell'errore di orientamento: calcolare la differenza angolare minima tra l'orientamento target e quello attuale, assicurandosi di normalizzare l'angolo tra -180 e +180 gradi (o tra -π e +π radianti) per evitare errori di transizione periodica.
- Calcolo della correzione: moltiplicare l'errore per un guadagno proporzionale calibrato (
kP) e aggiungere la derivata dell'errore moltiplicata per un guadagno derivativo (kD) per smorzare le oscillazioni. - Applicazione e normalizzazione: sostituire questo valore di correzione nella variabile
Turn. Se uno dei calcoli per i motori supera una potenza di 1.0 (o -1.0), dividere tutte e quattro le potenze dei motori per il valore assoluto massimo, così da preservare i rapporti vettoriali desiderati senza saturazione.
La normalizzazione delle potenze dei motori è fondamentale. Se il robot avanza a piena potenza e il controller richiede una correzione di sterzata, la saturazione non normalizzata azzererà il differenziale correttivo, consentendo al robot di deviare indipendentemente dai guadagni software impostati.
Controllare lo slittamento cinetico limitando lo slew rate
La correzione attiva dell'orientamento gestisce la deviazione rotazionale, ma una rapida accelerazione provoca slittamenti longitudinali e laterali in cui le ruote girano più velocemente di quanto il telaio acceleri. Quando i rulli perdono aderenza statica sulla schiuma, gli encoder dei motori registrano una distanza mai percorsa.
Per correggere lo slittamento cinetico senza dead wheel:
- Limitare l'accelerazione (Slew Rate): non far mai passare la potenza target del motore da 0.0 a 1.0 in un singolo ciclo di loop. Incrementare la potenza gradualmente con una rampa usando un semplice limitatore di variazione (ad esempio, limitando l'accelerazione a un incremento non superiore a 0.05 di potenza per ciclo da 20 millisecondi).
- Decelerare con un profilo: utilizzare una profilatura della velocità trapezoidale o con curva a S per rallentare il robot prima di raggiungere il conteggio encoder target. Una frenata brusca fa slittare il robot sulle piastrelle, invalidando il punto di arresto stabilito.
- Contatto meccanico con il pavimento: assicurarsi che il telaio della trasmissione presenti una leggera flessibilità torsionale o una sospensione basculante su un asse. Se un telaio rigido a quattro ruote incontra una giunzione irregolare tra le piastrelle di schiuma, una ruota si solleva leggermente da terra, perdendo istantaneamente trazione e provocando slittamento.
Quando sono davvero necessarie le dead wheel?
Le squadre spesso ricorrono subito a pod odometrici ammortizzati a tre ruote perché ritengono che le ruote Mecanum non possano seguire un percorso autonomo affidabile di 30 secondi. In realtà, un loop di mantenimento dell'orientamento ben calibrato, combinato con una rampa di velocità basata su encoder, è sufficiente per completare task autonomi ad alto punteggio, allinearsi in modo affidabile con le sponde del campo e parcheggiare con costanza.
L'odometria con dead wheel diventa strettamente necessaria solo quando la strategia autonoma richiede percorsi spline complessi e ad alta velocità con molteplici waypoint (come le traiettorie complete di Road Runner o Pedro Pathing), in cui il robot deve conoscere la sua esatta coordinata (X, Y) dopo essere entrato in contatto con elementi di gioco o aver effettuato traslazioni laterali aggressive per l'intera larghezza del campo.
Se state costruendo e perfezionando trasmissioni FTC o volete padroneggiare la profilatura del movimento autonomo con la vostra squadra, esplorate le nostre guide di ingegneria per le competizioni su Sheen Robotics FTC Resources.



