8 agosto 2011
Recentemente, una grande quantità di prospettive si sono disponibile per sistemi interattivi uomo-robot. In questo lavoro delineare l'integrazione di un nuovo dispositivo robotico con software open source che può rapidamente rendere possibile una libreria di funzionalità interattive. Abbiamo poi delineare una applicazione clinica per un'applicazione neuroriabilitazione.
L'obiettivo generale di questa procedura è integrare un robot in una libreria di ambienti virtuali e successivamente utilizzare il robot per la terapia post-ictus. Questo viene realizzato innanzitutto creando una classe wrapper per estendere la libreria di haptics e quindi integrando la classe wrapper nella libreria di haptics. Il passo successivo consiste nel creare una classe wrapper per estendere la libreria grafica e poi integrare questa classe wrapper nella libreria grafica, una volta completate le classi wrapper.
L'interfaccia API H 3D viene utilizzata per configurare una macchina a stati finiti per il test di pazienti emiplegici. Il robot integrato viene quindi utilizzato per aiutare nella riabilitazione di pazienti emiplegici. Il vantaggio principale di questa tecnica è che non è più necessario scrivere un'applicazione software diversa per ogni robot.
Inoltre, queste applicazioni possono essere eseguite da scienziati in tutto il mondo indipendentemente dal tipo di robot utilizzato nel loro laboratorio. Questo metodo può contribuire a rispondere a domande fondamentali nei campi della riabilitazione, della robotica e del controllo motorio, ad esempio in che misura il nostro sistema nervoso possa trarre beneficio dall'amplificazione degli errori. Questo metodo può fornire informazioni sugli deficit post-ictus nonché approfondire la nostra comprensione del funzionamento fisiologico.
In generale, i pazienti colpiti da ictus e nuovi alla riabilitazione robotica devono superare determinate difficoltà, come imparare a impugnare il manubrio. Abbiamo avuto per la prima volta l'idea di questo metodo quando ci siamo resi conto della necessità di un robot dotato di un'ampia area operativa con compensazione della gravità. Desideravamo inoltre ridurre al minimo la riscrittura del software, in modo che futuri studenti laureati potessero avvalersi del lavoro dei predecessori senza dover ripetere le stesse attività.
Questo video fornisce istruzioni per l'integrazione di un robot per la manipolazione dell'intero braccio (WHAM) con il codice open source disponibile su www.hthreedpi.org. Per integrare un nuovo robot nella libreria di haptics, il primo passo consiste nello scrivere una classe wrapper per HAP, il motore di rendering aptico, utilizzato per controllare i movimenti del robot WHAM. Iniziare creando un file CPP e un file di intestazione.
I nomi dei file utilizzati per questo esempio sono happy, wham, cpp e happy wham h. Inserire il file happy wham cpp nella directory di origine. Happy slash source, quindi inserire happy.
Wham h nella directory dei file di intestazione. Happy barra include barra happy. In alto nel file happy wham h includere i file di intestazione principali del robot.
Si noti che è richiesto extern C per risolvere il name mangling del compilatore poiché la libreria inclusa è scritta in C e l'API H 3D è scritta in C++. In happy wham h creare la classe per il robot e includere al suo interno le quattro funzioni: rilascio del dispositivo aptico, dispositivo aptico, aggiornamento dei valori del dispositivo e invio dell'output. Assicurarsi che la classe erediti pubblicamente dalla classe happy haptics device.
Successivamente, crea una protezione d'intestazione per la classe. Quindi, crea gli attributi statici di output del dispositivo e di registrazione del dispositivo aptico all'interno della classe happy WHAM. Infine, crea le funzioni membro statiche per le callback specifiche del tuo robot.
Per un robot WHAM, la funzione di callback viene utilizzata nella funzione di dispositivo aptico e nel bull. Ora che i prototipi sono impostati nel file di intestazione, aprire happy wham dot cpp ed includere i file di intestazione e lo spazio dei nomi appropriati. Successivamente, definire il costruttore e il distruttore in Happy Wam cpp.
Quindi registrare il dispositivo in Happy Wam cpp. Ora definire le quattro funzioni ereditate e le relative callback in happy Wam cpp. La funzione update device values informa il computer sulla posizione del braccio del robot e sulla quantità di forza che il robot sta generando sull'ambiente.
Dopo aver creato la classe Happy Wrapper, il passaggio successivo consiste nell'inserire un wrap all'interno della libreria Happy. WAM dipende da alcune librerie che l'H 3D API non richiede nella sua forma originale. Pertanto, queste librerie devono essere aggiunte a happy.
Accedi alla directory H 3D 2.1/slash/happy/slash/build e modifica il file C make lists text. Aggiungi le librerie dipendenti dopo la riga che indica Set optional libs. Apri una console dei comandi e naviga fino a H 3D 2.1/slash/happy/slash/build, quindi digita in ordine: see make dot pseudo make e pseudo make install per completare l'integrazione del nuovo robot con il codice open source di H 3D.
Scrivere una seconda classe wrap per il grafo della scena. API denominata H 3D API. Questo esempio utilizza una classe wrap chiamata wam device.
Passare alla directory di origine, H 3D AP I slash source, e creare il file CPP del dispositivo WAM e wam device.Cpp. Aggiungere la sorgente standard per tutti i dispositivi H 3D PI. Successivamente, inserire Wam device H nella directory del file di intestazione.
Il dispositivo Wam H deve contenere il file di intestazione standard per tutti i dispositivi H 3D API. Ora che la classe wrapper è stata creata, ricompilare la libreria H 3D PI modificando il file di testo C make lists nella directory H three DPI / build. Infine, nella directory H 3D PI / build.
Ricostruire la libreria API 3D di H utilizzando i comandi CMake dot pseudo make e pseudo make install. Le nuove classi wrapper sono ora pronte per essere utilizzate con un robot. Una volta installate le classi wrapper appropriate, viene creata una macchina a stati finiti per controllare il protocollo sperimentale della prova di raggiungimento mirato utilizzata con il robot Barrett WHAM. Gli stati della macchina a stati sono inizio della prova, lancio, contatto con il bersaglio e fine della prova.
L'inizio dello stato della prova inizia con l'assegnazione di una destinazione. Le posizioni della destinazione possono essere impostate casualmente per ogni prova oppure possono essere impostate a partire da un file. Lo stato iniziale della prova termina e inizia lo stato di avvio.
Una volta che la mano del soggetto ha iniziato il movimento verso il bersaglio superando la soglia di velocità, tipicamente 0,06 metri al secondo, lo stato di lancio termina e inizia lo stato di contatto con il bersaglio. Quando viene stabilito il contatto, il bersaglio scompare e lo stato di contatto con il bersaglio termina, dando inizio allo stato di fine prova.
Lo stato di fine della prova indica al software di raccolta dati di contrassegnare il file dati con un delimitatore per la fine della prova. A meno che non sia stata completata l'ultima prova, la conclusione dello stato di fine della prova abilita l'avvio dello stato di inizio della prova e viene assegnato un nuovo bersaglio. Questa sezione illustra un robot diverso chiamato phantom, utilizzato nella riabilitazione di pazienti colpiti da ictus.
Sostituendo il codice della classe wrap del fantoccio nelle librerie appropriate, il nuovo robot può essere integrato nell'ambiente virtuale; qui viene utilizzato un sistema grafico aptico tridimensionale chiamato macchina virtuale per operazioni robotiche e ottiche, o ROOM. Questo sistema combina una resa stereo proiettata con tracciamento della testa su un display a specchio semiriflettente sovrapposto a un sistema robotico in grado di registrare la posizione del polso e generare un vettore di forza. Un proiettore digitale di qualità cinematografica visualizza le immagini su un display largo cinque piedi, ottenendo un angolo di visione largo 110 gradi.
Gli emettitori a infrarossi sincronizzano le immagini separate per l'occhio sinistro e destro attraverso occhiali con otturatore LCD. Il movimento della testa viene rilevato mediante il sistema magnetico Ascension Flock of Birds in modo che la visualizzazione grafica venga renderizzata con la corretta prospettiva centrata sulla testa. Un guanto esotendineo con un tutore per il polso assiste nell'allineamento neutro del polso e della mano.
Il centro dell'impugnatura del robot viene posizionato sull'avambraccio posteriormente all'articolazione radio-carpale. Ciò consente alle forze di agire sul polso, ma permette un movimento libero della mano. Il peso dell'arto del paziente viene ridotto mediante un'ortesi esoscheletrica robotica Wilmington bilanciata sulla gravità, azionata da una molla.
Il terapista seduto accanto al paziente utilizza un dispositivo di tracciamento per spostare un cursore sul display. Di fronte al paziente, viene richiesto di utilizzare la manopola robotica per inseguire il cursore. L'amplificazione dell'errore viene fornita sia visivamente sia mediante forze generate dal robot.
Quando il cursore del paziente si discosta dal cursore del terapista, l'errore istantaneo, indicato come vettore E, è definito come la differenza di posizione tra il cursore del terapista e la mano del paziente. L'errore viene amplificato visivamente di un fattore pari a 1,5 E nell'ambito dell'amplificazione dell'errore. Inoltre, viene applicata al braccio del paziente una forza di amplificazione dell'errore pari a 100 E, programmata per saturare a un massimo di quattro newton.
Per motivi di sicurezza, l'amplificazione dell'errore amplia gli errori percepiti dal paziente, migliorando così il processo di riapprendimento. Il protocollo di trattamento prevede che il paziente pratichi diversi movimenti specifici, tra cui afferrate in avanti e laterali con accoppiamento spalla-gomito e afferrate diagonali attraverso il corpo. Per la dimostrazione successiva, viene sostituito il codice della classe superiore e viene utilizzato il robot Barrett WHAM.
Lo scopo di questo compito successivo è che soggetti sani o pazienti emiplegici afferrino un proiettile virtuale all'interno della sfera verde semitrasparente. Se le mani del paziente escono dalla sfera, questa diventa rossa e il braccio del paziente riceve un feedback di amplificazione dell'errore da parte del robot. Quando il paziente afferra con successo il proiettile all'interno dello spazio definito, la sfera rimane verde.
Questa figura mostra l'errore mediano nel raggiungimento. Ogni punto rappresenta l'errore mediano misurato per un blocco di due minuti di movimenti funzionali tipici. Sebbene i pazienti mostrino un miglioramento nel corso del periodo di due settimane, non sempre si verifica un miglioramento giornaliero.
Questa figura mostra il beneficio risultante dell'aumento degli errori nel ridurre selettivamente la variabilità da movimento a movimento. I grafici superiori mostrano i dati del gruppo di controllo e quelli inferiori mostrano i dati del gruppo trattato. Ogni colore rappresenta un soggetto diverso.
Le due linee orizzontali mostrano la posizione dei limiti per l'attività. L'obiettivo del soggetto era intercettare il proiettile virtuale all'interno di questi limiti. La posizione di un punto indica dove un determinato soggetto si è avvicinato maggiormente al contatto.
Nel proiettile, gli istogrammi semitrasparenti blu sovrapposti ai dati grezzi mostrano la distribuzione dei movimenti del gruppo. Lungo l'asse anteriore, i pazienti emiplegici hanno eseguito 600 prove del compito di afferramento: nelle prime 200 prove non è stato fornito alcun feedback di amplificazione dell'errore, mentre nelle ultime 200 prove il robot ha fornito un feedback di amplificazione dell'errore per le prove da 201 a 400, determinando un miglioramento significativo nella capacità del paziente di afferrare il bersaglio entro i limiti specificati.
Seguendo questa procedura, i metodi tradizionali di riabilitazione possono comunque essere eseguiti, ma con il robot possiamo quantificare in ogni momento la posizione della mano del paziente durante molteplici prove ripetute. Questa tecnica ha aperto la strada a nuove ricerche nel campo dell'ingegneria neurale, in cui è possibile esplorare movimenti di raggiungimento simulati all'interno di una regione in cui esistono numerose soluzioni possibili. Dopo aver visto questo video, si dovrebbe essere in grado di comprendere come estendere la libreria API H 3D per un robot riabilitativo a scelta e applicare diverse interfacce grafiche aptiche per la valutazione e il trattamento dei pazienti colpiti da ictus.
Il lavoro con i robot può essere potenzialmente pericoloso, quindi è necessario valutare attentamente la scelta di un robot destinato a interagire con gli esseri umani. Per il nostro progetto più recente abbiamo scelto il Barrett WHAM perché è più potente e retroazionabile. Per retroazionabile si intende che può risultare quasi privo di resistenza se programmato in tal senso, e tuttavia rappresenta una delle opzioni più sicure disponibili per l'interazione uomo-macchina.
È un computer watchdog separato che monitora il computer principale e può disattivare il sistema se qualcosa non funziona correttamente, e la frenatura dinamica assicura che il sistema funga da smorzatore ogni volta che è inattivo. Sebbene molti robot si comportino in modo diverso, molte delle loro funzioni si sovrappongono. Pertanto, la portabilità delle nostre tecniche tra robot potrebbe favorire nuovi scambi tra laboratori.
È chiaro che trattamenti riabilitativi come quelli illustrati in questo studio forniscono evidenze incoraggianti per il recupero della funzionalità nei pazienti, oltre a potenziare l'allenamento nello sport, nella pilotaggio a distanza, nell'esecuzione musicale, nelle tecniche chirurgiche e in qualsiasi altra attività che richieda pratica ripetitiva.
In questo articolo si discute l'integrazione di un dispositivo robotico con software open source per applicazioni di neuroriabilitazione, in particolare rivolte alla terapia dell'ictus. L'approccio consente di utilizzare una libreria di funzionalità interattive in un ambiente virtuale.
Questo studio affronta un collo di bottiglia fondamentale nelle neuroscienze traslazionali e nell'ingegneria riabilitativa: la mancanza di interoperabilità software tra diverse piattaforme robotiche. Permettendo a un'unica codebase di interfacciarsi con dispositivi aptici diversi, l'approccio riduce il carico di sviluppo e favorisce la valutazione preclinica riproducibile di interventi sulle abilità motorie. Questa capacità migliora la fiducia predittiva nella validazione precoce di bersagli terapeutici per le terapie di neuroriabilitazione, standardizzando le misurazioni comportamentali tra diversi laboratori.
Il metodo si inserisce nel percorso dalla scoperta alla fase preclinica trasformando i sistemi robotici in strumenti standardizzati per la fenotipizzazione della modulazione dei circuiti motori, con un'applicabilità diretta all'identificazione di composti promettenti nello sviluppo di farmaci per la neuroriabilitazione.