Robot Serpente: La Navigazione si Ispira alla Natura con l’Apprendimento Ibrido!
Introduzione: Il Labirinto della Navigazione Robotica
Ciao a tutti! Oggi voglio parlarvi di qualcosa che mi appassiona da matti: i robot mobili. Pensateci un attimo: li vediamo spuntare ovunque, dalle consegne a domicilio alle missioni di ricerca e soccorso in ambienti pericolosi, passando per l’agricoltura di precisione e l’ispezione di cantieri. Sono macchine incredibili che promettono di rivoluzionare la nostra efficienza e produttività.
Esistono diversi tipi di robot mobili: quelli con le gambe, quelli cingolati, ma i più comuni, diciamocelo, sono quelli basati su ruote. Perché? Sono più semplici da progettare, più economici da costruire e, in generale, meno complessi da controllare. Ma c’è un “ma”, un aspetto cruciale che determina il successo o il fallimento della loro missione: la navigazione. Come fa un robot a sapere dove si trova e dove sta andando?
Normalmente, si affida a un arsenale di sensori: telecamere, LiDAR, sonar, GPS, sensori inerziali (IMU), odometri… Spesso, questi dati vengono fusi insieme usando filtri complessi, come il filtro di Kalman esteso. Il problema sorge quando il gioco si fa duro, quando l’ambiente diventa ostile. Immaginate un robot che deve muoversi al chiuso, dove il segnale GPS non arriva. O in condizioni di scarsa illuminazione, dove le telecamere diventano cieche. O ancora, in luoghi dove sistemi radio come UWB o WiFi non sono installati o sono bloccati da ostacoli. In questi scenari, molto più comuni di quanto si pensi, il robot si ritrova spesso a poter contare solo sui suoi sensori inerziali.
Il Tallone d’Achille: La Deriva dei Sensori Inerziali
Gli IMU, che contengono accelerometri e giroscopi, sono fantastici: piccoli, economici, semplici da installare e con un’alta frequenza di campionamento. C’è però un problema intrinseco: i loro dati sono rumorosi e affetti da errori. Quando integriamo queste letture nel tempo per calcolare posizione e orientamento (un processo chiamato Inertial Navigation System, o INS), questi piccoli errori si accumulano, portando a una deriva della soluzione di navigazione. In pratica, dopo un po’, il robot pensa di essere in un posto, ma in realtà è da tutt’altra parte! E più si muove in modo “liscio”, magari a velocità costante su una linea retta, peggio è, perché il rapporto segnale-rumore (SNR) dei sensori diventa bassissimo.
Negli ultimi anni, l’apprendimento automatico e il deep learning hanno mostrato risultati promettenti nel migliorare l’interpretazione dei dati inerziali in vari contesti, dai droni ai pedoni. Tuttavia, applicare queste tecniche ai robot mobili su ruote, specialmente quando si muovono lentamente e con poche variazioni dinamiche, presenta sfide uniche.
L’Ispirazione dalla Natura: Strisciare Come un Serpente!
E se potessimo “ravvivare” i dati dei sensori? Se potessimo far muovere il robot in un modo che generi segnali più ricchi e distintivi, aumentando quel famoso SNR? Qui entra in gioco un’ispirazione affascinante: il movimento dei serpenti!
I serpenti, privi di zampe, usano un movimento ondulatorio, detto “serpentino” (slithering), per muoversi efficientemente, risparmiare energia e mantenere una manovrabilità eccellente anche su terreni accidentati. Abbiamo pensato: perché non far muovere il nostro robot mobile in modo simile? Certo, magari consuma un po’ più di energia, ma questo movimento dinamico, con continue accelerazioni lineari e velocità angolari, arricchisce enormemente i segnali provenienti dagli IMU. È come dare ai sensori qualcosa di “interessante” da misurare!
Questo concetto non è totalmente nuovo. Era già stato esplorato con i quadricotteri. Recentemente, avevamo proposto un framework chiamato MoRPI (Mobile Robot Pure Inertial Navigation) che usava questo movimento periodico e una formula empirica per stimare la lunghezza del “passo” (la distanza tra due picchi del movimento). MoRPI era un buon passo avanti, ma aveva dei limiti: richiedeva una fase di calibrazione sensibile ai parametri del movimento e aggiornava la posizione solo da picco a picco, limitando la frequenza e la risoluzione.

MoRPINet: La Nostra Soluzione Ibrida con Apprendimento Profondo
Ed eccoci arrivati al cuore della nostra ricerca: abbiamo sviluppato MoRPINet, un nuovo approccio che combina il movimento serpentino con la potenza del deep learning per una navigazione puramente inerziale super accurata.
Come funziona? MoRPINet divide il compito in due parti:
- Stima della Distanza (D-Net): Abbiamo creato una rete neurale specifica, chiamata D-Net. È un’architettura relativamente semplice ma molto efficiente, basata su strati convoluzionali 1D (1DCNN) e strati fully connected (FC). D-Net prende in input una piccola finestra temporale di dati grezzi dagli accelerometri e giroscopi (senza bisogno di calibrazioni complesse!) e restituisce una stima della distanza percorsa in quella finestra. Il movimento serpentino assicura che i dati in input siano ricchi di informazioni utili per la rete.
- Stima della Direzione (Heading): Per determinare l’orientamento del robot, usiamo un filtro ben noto e computazionalmente leggero, il filtro di Madgwick, che processa anch’esso i dati inerziali.
Infine, combinando la distanza stimata da D-Net e la direzione fornita dal filtro di Madgwick, aggiorniamo la posizione del robot usando equazioni di navigazione stimata (dead reckoning). Il bello è che, a differenza di MoRPI, MoRPINet non si basa sui picchi del movimento, ma su finestre temporali fisse e brevi. Questo ci permette di avere aggiornamenti di posizione molto più frequenti (ad esempio, 5 Hz nei nostri esperimenti, circa 20 volte più veloce di MoRPI!), offrendo una risoluzione della traiettoria nettamente migliore.
Esperimenti sul Campo: Mettiamo alla Prova MoRPINet
Ovviamente, le idee vanno testate! Abbiamo equipaggiato un’auto radiocomandata (RC) con ben cinque IMU low-cost (Movella DOT a 120 Hz) e un sensore GNSS-RTK di alta precisione (Javad SIGMA-3 N, con accuratezza di 10 cm a 10 Hz) che ci ha fornito la “verità a terra” (ground truth, GT) per confrontare i nostri risultati.
Abbiamo registrato un bel po’ di dati: 13 traiettorie diverse, per un totale di 290 minuti di registrazioni inerziali (58 minuti per ciascun IMU). Abbiamo fatto muovere l’auto RC seguendo percorsi serpentini con frequenze e ampiezze variabili, ma anche percorsi rettilinei per i confronti. Una parte dei dati è stata usata per addestrare la nostra rete D-Net (e per calibrare il guadagno del metodo MoRPI, per un confronto equo), e un’altra parte è stata tenuta da parte per il test finale.
Un dettaglio importante: abbiamo reso pubblicamente disponibili sia il dataset che il codice sorgente di MoRPINet su GitHub! Crediamo nella scienza aperta e riproducibile.

Risultati Sorprendenti: MoRPINet Batte la Concorrenza (e di Molto!)
E ora, i risultati! Come ci aspettavamo, la soluzione INS tradizionale, basata sull’integrazione diretta dei sensori, accumula errori enormi molto rapidamente. Su traiettorie di circa 25 metri percorse in 40 secondi, l’errore medio (PRMSE) arrivava a migliaia di metri! Anche assumendo un movimento 2D planare, l’errore restava sui 200-300 metri. Praticamente inutilizzabile.
Il nostro precedente metodo, MoRPI, faceva già molto meglio. Nella sua versione migliore (MoRPI-A), l’errore medio si attestava intorno ai 2.75 metri (PRMSE). Un bel passo avanti, ma ancora migliorabile, soprattutto per la sua sensibilità ai parametri del movimento e la bassa frequenza di aggiornamento.
E MoRPINet? Beh, i numeri parlano da soli. Sullo stesso set di test, MoRPINet ha ottenuto un errore medio (PRMSE) di soli 1.92 metri e un errore medio assoluto (PMAE) di 1.59 metri. Si tratta di un miglioramento di circa il 30-33% rispetto a MoRPI! E ricordiamoci l’aggiornamento 20 volte più veloce, che fornisce una traiettoria molto più dettagliata e utile.
La nostra rete D-Net per la stima della distanza ha raggiunto un’accuratezza notevole, con un errore medio assoluto (DMAE) di solo il 13% rispetto alla distanza media percorsa in ogni finestra temporale.

Vantaggi e Prospettive Future: Dove Ci Porterà il Robot Serpente?
Ricapitolando, i vantaggi principali di MoRPINet rispetto agli approcci precedenti per la navigazione puramente inerziale sono:
- Accuratezza Migliorata: Riduzione dell’errore di posizionamento di almeno il 33% rispetto al miglior metodo precedente (MoRPI).
- Risoluzione Superiore: Frequenza di aggiornamento molto più alta (es. 5 Hz vs ~0.25 Hz di MoRPI), che permette di ricostruire traiettorie più dettagliate.
- Robustezza: Meno sensibile alle variazioni nella frequenza e ampiezza del movimento serpentino rispetto a MoRPI.
- Leggerezza Computazionale: La rete D-Net è piccola ed efficiente, adatta per essere implementata direttamente a bordo del robot (su dispositivi “edge”).
Certo, c’è ancora strada da fare. Nel nostro lavoro futuro, puntiamo a rendere MoRPINet ancora più robusto, capace di gestire manovre più complesse come curve strette e variazioni di altitudine. Vogliamo anche testarlo su terreni più accidentati per valutarne appieno le potenzialità in ambienti davvero difficili.
Conclusione: Un Passo Avanti per l’Autonomia
In conclusione, MoRPINet rappresenta, a mio avviso, un passo avanti significativo per la navigazione dei robot mobili in scenari dove ci si può affidare solo ai sensori inerziali. Ispirandoci al movimento dei serpenti e sfruttando l’intelligenza artificiale, siamo riusciti a trasformare un limite (la necessità di movimento dinamico) in un vantaggio (dati più ricchi per l’apprendimento). È un esempio affascinante di come l’osservazione della natura e l’innovazione tecnologica possano andare a braccetto per risolvere problemi complessi e spingere sempre più in là i confini dell’autonomia robotica. Chissà dove ci porterà la prossima “striscia” di innovazione!
Fonte: Springer
