8.2 Generazione Stimolo Aptico
8.2.1 Legge di Controllo
Nota la caratterizzazione del tessuto del fyd wearable discusso in precedenza, è stato doveroso trovare un’alternativa alla legge di controllo già in essere. Lo stato dell’arte fornisce infatti una legge di controllo a partire da un modello lineare del tipo
F = kx
Al fine di migliorarne la bontà è stato pensato di utilizzare il modello trovato riguardante i tessuti biologici al fine di avere un mapping diretto tra tessuto indentato e feedback aptico.
Per ogni curva, al variare dell’angolo dei motori, è stata quindi ricavata la stiffness del tessuto (per ogni configurazione) utilizzando una regressione tramite il seguente modello
F = kx2 + β ˙x (8.1)
Tramite questo algoritmo sono stati trovati i seguenti valori di stiffness del tessuto corrispondenti ad ogni variazione dell’angolo dei motori:
θ stiffness 0 0.0896 5 0.0956 10 0.1005 15 0.1056 20 0.1111 25 0.1168 30 0.1225 35 0.1273 40 0.1428 45 0.1451 50 0.1503 55 0.1557 60 0.1610 65 0.1672 70 0.1724 75 0.1783 80 0.1892 85 0.1960 90 0.2041
Effettuando un’interpolazione dei punti trovati è possibile ricavare la stiffness in funzione dell’angolo dei motori che risulta essere:
σ(θ) = aθ + b (8.2)
Figura 8.4: Stiffness W-FYD
Invertendo tale relazione è possibile quindi definire una legge di controllo da applicare al W-FYD al fine di ottenere un feedback aptico valido:
θ = (k − b)/a (8.3)
Capitolo 9
Binding Code
In informatica, un binding da un linguaggio di programmazione a una libreria è un API (application programming interface) che fornisce un glue code, co- dice eseguibile che serve ad "adattare" parti diverse del codice", per utilizzare tale libreria in un determinato linguaggio di programmazione.
Per binding ci si riferisce generalmente a una mappatura di una cosa in un’al- tra. Nel contesto delle librerie software i binding sono librerie wrapper che collegano due linguaggi di programmazione, in modo che una libreria scritta per un linguaggio possa essere utilizzata in un altro linguaggio.
Molte librerie infatti sono scritte in linguaggio come C o C++ e per utilizzare tali librerie in altri ambienti, come ad esempio Python o Java, è necessario un binding alla libreria di quel linguaggio.
Poichè come accennato le librerie per controlloare i due device (sSense e Fyd-Wearable) sono scritte interamente in C++, mentre la rete neurale è implementata in Python, è stato necessario effettuare il binding delle libre- rie.
Nello specifico è stato reso disponibile il codice C++ ad un ambiente Py- thon. In questo modo si è esteso il linguaggio Python e per questo motivo tale operazione è spesso conosciuta come Python extended.
9.1
Cython
Per permettere il binding delle librerie C++ è stato utilizzato Cython. Cython è un linguaggio di programmazione che mira ad essere un superset del linguaggio di programmazione Python, progettato per fornire prestazioni C-like con il codice che è scritto principalmente in Python.
Cython è un linguaggio compilato che viene in genere utilizzato per gene- rare moduli di estensione CPython. In questo modo i moduli di estensione
possono essere caricati e utilizzati dal normale codice Python utilizzando la classica istruzione import, ma con un sovraccarico computazionale significa- tivamente inferiore in fase di esecuzione.
Grazie all’utilizzo di Cython è stato possibile migliorare le prestazioni del codice. Infatti lo stesso codice scritto in Python avrebbe aumentato notevol- mente i tempi di esecuzione causando un rallentamento e quindi un danno all’acquisizione in real time. Infatti grazie a Cython è stato possibile sfrut- tare le potenzialità messe a disposizione di Python e la velocità del codice C++.
Capitolo 10
Esperimenti
Lo scopo ultimo di questo lavoro di tesi è quello di riuscire a discriminare la differenza di stiffness di vari tessuti, in particolar modo quelli fibromatosi. Per poter validare il lavoro fatto sono stati effettuati degli esperimenti in laboratorio su dei campioni di silicone costruiti durante il percorso di tesi. Gli esperimenti sono stati svolti nel laboratorio del centro di ricerca E. Piag- gio dell’università di Pisa con lo scopo di ottenere un feedback tattile, attra- vero il W-FYD, che permette di discriminare la durezza dei vari campioni. Poichè i campioni di silicone sono stati progettati a layer allora si è anche cercato di discriminare la profondità del layer più rigido.
10.1
Setup
Gi esperimenti consistono nell’effettuare un’indentazione con il dispositivo sSense sulla superficie dei campioni i silicone e mappare sull’interffaccia apri- va W-FYD i valori di stiffness calcolati per ottenere un ritorno di feedback tattile.
L’interfaccia aptica W-FYD viene fatta indossare sul dito della mano destra dell’utente che svolge l’esperimento e viene settata in modalità attiva. In questo modo l’untente comanderà in teleoperazione l’indentazione attra- verso il movimento del proprio dito.
Definiamo quindi il tipo di esperimento come task di profondità e rigidezza per cui è stato definito un protocollo.
10.1.1
Protocollo
L’utente viene fatto sedere davanti un tavolo, su cui poggia il dispositivo sSense. Sul dito indice dell’utente viene posizionato il W-FYD, vengono
inoltre fatti indossare un paio di occhiali oscurati per privarlo della vista ed un paio di cuffie per isolarlo dai rumori esterni facendogli ascoltare rumore rosa.
Per ogni esperimento vengono utilizzati tre campioni di silicone e vengono disposti davanti all’utente.
Si sceglie in maniera casuale uno dei tre campioni da posizionare sotto l’in- dentatore. A questo punto l’utente effettua una palpazione sul campione in teleoperazione ricevendo così un feedback tattile.
Una volta che l’utente ha percepito il feedback può palpare i tre campioni con il dito indice della mano sinistra in modo da cercare di trovare una cor- rispodenza con quello appena analizzato attraverso il W-FYD.
Per il task sono state effettuate sei prove dove ogni campione viene selezionato in maniera randomica.