“The future depends on what you do today.”
Gandhi
ARGait

Un sistema di realtà aumentata che fornisce agli utenti una visualizzazione in tempo reale della cinematica del piede nello spazio tridimensionale.
Permette all’utente di “vedere costantemente i propri piedi” mentre si muove, eliminando la necessità di ausili visivi esterni, come specchi. Consente una modifica immediata e autonoma del posizionamento del piede a ogni passo.
Come funziona
Il sistema utilizza la fotocamera dello smartphone per catturare continuamente video in tempo reale dell’ambiente circostante. Questo flusso video dal vivo viene visualizzato sul display del telefono come livello visivo principale. Sovrapposte a questo feed ci sono rappresentazioni grafiche dinamiche dei piedi dell’utente.
Questi modelli virtuali dei piedi sono allineati con la posizione fisica dei piedi dell’utente utilizzando:
-
Sensore TOF per determinare la distanza del piede dal suolo (VL53L1X)
-
Dati di giroscopio e accelerometro per misurare l’angolo del piede (BNO055)
-
Magnetometro per determinare la direzione magnetica complessiva del piede (idem)
Ci sono anche 4 sensori di pressione nelle suole di ciascun piede. I dati dei sensori vengono utilizzati quando entrambi i piedi sono a terra, in questo momento vengono impiegati per l’allenamento del carico.
Ogni piede ha il proprio bus i2C dedicato a un microcontrollore Teensy 4.1. Il Teensy è collegato alla parte posteriore della cintura e poi, tramite la sua porta USB, a un telefono Android nel visore.
La grafica è realizzata con il Unity Engine.
Interfaccia
Il sistema grafico ha due modalità che si attivano automaticamente a seconda di ciò che l’utente sta facendo. Le due modalità sono: 1) In movimento 2) In piedi.
1) Modalità in movimento: Quando uno dei piedi è sollevato da terra, l’utente vede la rappresentazione grafica di ciascun piede che si muove nello spazio 3D.
Il grafico a barre dinamico, nella parte superiore dell’interfaccia, indica la durata della fase di oscillazione di ciascun piede in millisecondi.

NB: Per chiarezza… la vista della fotocamera è stata rimossa da queste grafiche… ma non dal video sottostante.
2) Modalità in piedi: Quando il contatto bilaterale dei piedi viene mantenuto per più di 15 secondi, il sistema passa all’interfaccia della Modalità in piedi. In questa modalità, l’interfaccia grafica sullo schermo si aggiorna per visualizzare entrambi i piedi, rappresentando un confronto diretto del carico bilaterale.

Il sistema esegue un’analisi in tempo reale confrontando i dati di pressione dei gruppi di sensori corrispondenti: a) Confronto dell’avampiede: i valori di pressione dei sensori anteriori di ciascun piede vengono valutati l’uno rispetto all’altro. b) Confronto del tallone: i valori di pressione dei sensori posteriori vengono confrontati in modo simile.
Questa modalità fornisce una valutazione simmetrica della distribuzione del carico plantare tra il piede sinistro e quello destro.

Conclusione e considerazioni
Potenziale a lungo termine: 10/10
Limitationi
-
Durante un ciclo di camminata normale ci sono circa 7 angoli da analizzare per ogni gamba. Questo prototipo ne ha affrontati solo 2.
-
Problemi con i permessi di accesso su Android utilizzando Unity, sia con Bluetooth che con USB. (Non riesco a risolverli)
-
Problemi con il BNO055, che richiede una calibrazione frequente e presenta fenomeni di deriva. (Ora sto usando il BNO085 al suo posto)
Prossimi sviluppi
-
Per affrontare il problema del numero limitato di angoli analizzati, sto posizionando un piccolo modulo su ogni segmento della gamba, ciascuno con il proprio microcontrollore, per un totale di 16 sensori. I moduli comunicano in modalità wireless tramite ESP-NOW.
-
Mi piacerebbe collaborare con qualcuno per risolvere il problema di comunicazione: ci sto sbattendo la testa da troppo tempo! (Sono abbastanza sicuro che si tratti di un problema di permessi su Android…)
-
Le possibilità creative sono infinite, soprattutto con sfide di allenamento virtuali, ecc.
-
Attualmente sto studiando TinyML e TensorFlow. Sarà fantastico integrare l’intelligenza artificiale nell’interfaccia per fornire spiegazioni e indicazioni verbali in tempo reale.