Robotica e Intelligenza Artificiale

Robo-Brush: Spazzolamento Dentale Autonomo con Apprendimento per Rinforzo Profondo e Apprendimento da Dimostrazione
L’igiene orale è una necessità quotidiana, ma per le persone con mobilità ridotta lo spazzolamento dei denti può risultare difficile o persino impossibile senza assistenza. Robo-Brush affronta questa sfida combinando l’Apprendimento per Rinforzo Profondo (DRL) con l’Apprendimento da Dimostrazione (LfD) per insegnare a un braccio robotico come spazzolare i denti in modo completo e sicuro. Utilizzando una simulazione ad alta fedeltà in MuJoCo con modelli dentali anatomicamente dettagliati, il sistema ha appreso strategie di spazzolamento simili a quelle umane, capaci di bilanciare la copertura con una forza delicata. I risultati hanno mostrato che l’aggiunta di una piccola quantità di dati dimostrativi ha migliorato la copertura dello spazzolamento di oltre il 6%, producendo al contempo movimenti più fluidi e naturali. Questo lavoro mette in evidenza il potenziale dei robot intelligenti, basati sull’apprendimento, di affrontare compiti delicati di cura personale nell’ambito dell’assistenza sanitaria.
|Pubblicazione| |Video|

Monitoraggio Riabilitativo in Tempo Reale tramite Integrazione di Visione Artificiale e Mano Virtuale
Il monitoraggio accurato dei progressi nella riabilitazione della mano è spesso limitato a costosi dispositivi clinici e a valutazioni in presenza. Per rendere questo processo più accessibile, abbiamo sviluppato un framework che combina la visione artificiale con la simulazione fisica per stimare in tempo reale la dinamica delle articolazioni delle dita. Utilizzando una singola videocamera, MediaPipe estrae i punti di riferimento della mano, che vengono mappati sul modello MANO in PyBullet. Un controllore PID, ottimizzato con algoritmi genetici, calcola le coppie ai giunti MCP e PIP, consentendo un tracciamento preciso del movimento e della generazione di forza delle dita. La validazione rispetto ai dati sperimentali provenienti da un esoscheletro ha confermato un’elevata accuratezza, con errori di coppia ridotti fino a 10⁻⁵ (N·m)². Quantificando la dinamica articolare della mano attraverso la sola visione, questo approccio offre una soluzione scalabile per la tele-riabilitazione, la progettazione di protesi e il controllo adattivo delle mani robotiche, contribuendo a colmare il divario tra la precisione clinica e l’accessibilità domestica.
|Pubblicazione| |Video|

Ottimizzazione Basata su Algoritmi Genetici delle Strategie di Controllo per un Manipolatore Robotico 3R Non Planare
Questo studio presenta una simulazione di un braccio robotico 3R non planare, che integra la pianificazione di traiettorie sinusoidali e il rumore gaussiano. Vengono implementate quattro strategie di controllo: PID, Logica Fuzzy, ANFIS e Controllo a Modo Scorrevole. I parametri di questi controllori sono ottimizzati mediante un Algoritmo Genetico (GA), e viene applicato un filtro a media mobile per attenuare gli effetti del rumore. Le prestazioni di questi controllori sono valutate in una simulazione realistica sotto condizioni identiche, consentendo un confronto dettagliato della loro efficacia.

Flexibot
È stato sviluppato un robot a continuum con 8 gradi di libertà (16 attuatori) che utilizza la visione artificiale come sensore. Il design di questo robot è ispirato alla natura, in particolare ai serpenti. In futuro, potrebbe essere impiegato come dito umano protesico. Attualmente sto lavorando al suo controllore: prima lo sto simulando in PyBullet per addestrare la prima policy del controllore tramite Reinforcement Learning. Dopo l’addestramento iniziale, la seconda fase avverrà nell’ambiente reale, ma utilizzando un dataset offline.
|Github|

Ambiente Scheletrico in PyBullet
Ho creato un ambiente in PyBullet per uno scheletro a 6 gradi di libertà. Questo ambiente può essere utilizzato per sviluppare i propri modelli o per addestrare un controllore RL per il tuo modello. Ho inoltre realizzato un ciclo del passo per gli angoli di caviglia, ginocchio e anca in `gait.py`, che può essere utilizzato come regola iniziale per l’addestramento del tuo modello.
Puoi progettare qualsiasi robot, di qualsiasi forma e per qualsiasi applicazione, seguendo semplicemente le istruzioni presenti nel mio repository su GitHub.
|Github|

Controllo di Robot Mobili con Apprendimento per Rinforzo Profondo in Spazio Continuo con Ostacoli (utilizzando TD3)
In questo progetto è stato sviluppato un algoritmo di reinforcement learning utilizzando un agente TD3 per controllare un robot mobile con l’obiettivo di raggiungere uno stato obiettivo definito. Lo spazio degli stati includeva la posizione x e y del robot, l’orientamento (theta) e le distanze relative rispetto all’obiettivo, fornendo all’agente informazioni sufficienti per navigare efficacemente. Lo spazio delle azioni comprendeva le velocità lineari e angolari del robot, entrambe normalizzate tra -1 e 1 per garantire un controllo stabile e coerente.
Grazie a questa configurazione, il robot è stato in grado di apprendere un comportamento orientato all’obiettivo interagendo con l’ambiente e ricevendo feedback dal framework di reinforcement learning, dimostrando il potenziale degli algoritmi avanzati per compiti di navigazione autonoma.
Sistema di Avviso di Collisione Frontale Utilizzando Visione Stereo
Utilizzando due moduli fotocamera, è stato progettato e implementato un sensore a visione stereo per generare mappe di profondità accurate. Il sistema elabora i dati visivi in tempo reale per stimare la distanza degli oggetti circostanti, fornendo le basi per capacità di percezione avanzata nelle tecnologie di guida autonoma e assistita. Sfruttando i principi della visione artificiale, questa configurazione permette una mappatura ambientale precisa, superiore a quella ottenibile con una singola fotocamera.
Per aumentare la sicurezza, il sistema è stato ulteriormente sviluppato con funzionalità di rilevamento ostacoli e avviso di collisione. Ogni volta che oggetti nelle vicinanze entravano in un raggio critico, il sistema emetteva un avviso al conducente, riducendo il rischio di incidenti. Questo progetto ha dimostrato l’integrazione pratica dell’IA e della visione artificiale in applicazioni reali, combinando innovazione tecnica con un chiaro obiettivo di migliorare la sicurezza umana e l’interazione con le macchine.

Rilevamento della Postura Umana
I dati sono stati raccolti per quattro posture umane distinte e utilizzati per addestrare diverse reti neurali artificiali, al fine di confrontarne le prestazioni. Ogni modello è stato valutato in base alla capacità di riconoscere e classificare correttamente le posture, fornendo indicazioni sull’efficacia delle diverse architetture di rete per il riconoscimento della postura umana.
Per migliorare l’accuratezza e ridurre l’overfitting, sono state applicate diverse tecniche di data augmentation per ampliare il dataset. Questi metodi hanno aumentato la diversità dei campioni di addestramento, consentendo alle reti di generalizzare meglio su dati non visti e migliorando la robustezza complessiva del sistema.
|Github|

Cucchiaio Stabilizzatore
Questo progetto è stato ideato per assistere le persone con controllo della mano limitato o compromesso, come coloro che soffrono di Morbo di Parkinson o altri disturbi motori. Il sistema utilizza un sensore Inertial Measurement Unit (IMU) per catturare con precisione l’orientamento e il movimento della mano. Due servomotori sono integrati per tradurre i movimenti rilevati in risposte meccaniche precise, consentendo movimenti della mano più fluidi e controllati.
Per costruire la struttura fisica del sistema, sono stati stampati in 3D componenti plastici personalizzati, garantendo un design leggero ed ergonomico in grado di adattarsi comodamente alla mano dell’utente. Una delle principali sfide del sistema è stata ridurre al minimo il rumore nelle misurazioni e nel controllo, che può influire significativamente sulle prestazioni. Per affrontare questo problema, sono state applicate diverse tecniche di riduzione del rumore, inclusi algoritmi di filtraggio avanzati come il filtro di Kalman, che hanno eliminato efficacemente il rumore dei sensori e degli attuatori, ottenendo un sistema più stabile e affidabile.
Complessivamente, questa combinazione di sensori, attuatori e tecniche di filtraggio rende il dispositivo uno strumento pratico per migliorare la destrezza manuale e incrementare la qualità della vita delle persone con disabilità motorie.
|Github|

Robot autobilanciato con controllore PID
In questo progetto è stato sviluppato un robot a due ruote con l’obiettivo di mantenere stabilità e un controllo preciso del movimento. È stato utilizzato un sensore a ultrasuoni per rilevare ostacoli e misurare le distanze nell’ambiente del robot, fornendo feedback essenziali per una navigazione sicura. Due motori DC sono stati impiegati per azionare le ruote, consentendo movimenti controllati e manovrabilità.
Il sistema è stato alimentato e coordinato utilizzando un microcontrollore Arduino Uno, che ha funzionato come unità di elaborazione centrale per leggere i dati dei sensori e controllare l’uscita dei motori. Per garantire che il robot mantenesse l’equilibrio e rispondesse in modo fluido alle perturbazioni, è stato implementato un controllore Proporzionale-Integrale-Derivativo (PID). Questa strategia di controllo ha regolato continuamente le velocità dei motori in base ai feedback in tempo reale, riducendo le oscillazioni e migliorando la stabilità complessiva.
Grazie all’integrazione di sensori, attuatori e dell’algoritmo di controllo PID, il robot è stato in grado di mantenere un equilibrio affidabile su due ruote, dimostrando un controllo efficace in tempo reale e una navigazione consapevole degli ostacoli.
|Guthub|