• Non ci sono risultati.

Evaluation of virtual reality bimanual teleoperationsystem in inspection and assembly tasks in hazardous environment

N/A
N/A
Protected

Academic year: 2021

Condividi "Evaluation of virtual reality bimanual teleoperationsystem in inspection and assembly tasks in hazardous environment"

Copied!
55
0
0

Testo completo

(1)

1

Dipartimento Ingegneria Dell’informazione

Laurea Magistrale in ingegneria Robotica e

dell’Automazione

Tesi sperimentale:

Evaluation of virtual reality bimanual teleoperation system in

inspection and assembly tasks in hazardous environment

Candidato: Kaoula Ibrahim Relatore : Bicchi Antonio Anno Accademico 2016/2017

(2)

2

(3)

3

Indice

1. Introduzione e stato dell’arte

……….. 7

2. Human Robot Interface

………..… 10

2.1. Motion Capture ……….11

2.1.1. Drift del Myo Armband 2.1.2. Calibrazione 2.1.3. Stima del drift del Myo Armband su un modello 1 – Link 2.1.4. Filtro di Madgwick esteso 2.1.5. Arm tracking 2.2. Controllo Mioelettrico ……….25

2.2.1. Il segnale sEMG: l’approccio in chiave Muscle synergy 2.2.2. Filtraggio dei dati sEMG 2.2.3. Algoritmi per l’estarzione delle sinergie 2.2.4. Non-Negative matrix factorization 2.2.5. Pattern Recognition Based control 2.2.6. DOF-Wise NMF Algorithm 2.2.7. Implementazione

3. Protocollo sperimentale

………..………. 45

3.1. Descrizione dei task ……… 45

3.2. Punteggi per i task ……….. 48

4. Risultati e conclusioni

……….. 48

Riferimenti bibliografici ... 53

Ringraziamenti … 55

(4)

4

Indice delle figure

Figura 1: a sinistra, Myo Armband, a destra utente che indossa i vari sensori ... 9

Figura 2: sistema teleoperato, dual arm -kuka- testa e softhand ... 10

Figura 3: orientazione del MYO: rappresentazione in forma di quaternione ... 11

Figura 4: fase di calibrazione: si ottiene un sistema inerziale a valle di questa fase ... 12

Figura 5: Modello del braccio (1 - Link rigido) per lo studio del drift del MYO ... 13

Figura 6: drift in posizione, caso di MYO fermo nella posizione di inizializzazione ... 14

Figura 7: drift in orientazione, caso MYO fermo nella posizione di inizializzazione ... 15

Figura 8: Drift in posizione; caso MYO in movimento ... 16

Figura 9: Drift in orientazione; caso MYO in Moviemnto ... 16

Figura 10: Modello del Braccio Umano; Notazione dei vari sistemi di riferimento in gioco ... 22

Figura 11: Sengnale sEMG rilevato direttamente dal MYO ... 29

Figura 12: Segnale di attivazione muscolare dopo il filtraggio ... 30

Figura 13: Profili di attivazione muscolare per i tasks scelti ... 39

Figura 14: procedura in tempo reale: distinzione dei movimenti a partire dai segnali sEMG ... 44

Figura 15: Primo task; Puzzle ... 46

Figura 16: Secondo task; Breakfast ... 47

Figura 17: fotosequenza che mostrano la presa del cono, l'appoggio e la ricostruzione ... 50

Figura 18: fotosequenza che mostra l'esecuzione del secondo task ... 50

(5)

5

Indice delle tabelle

Tabella 1: Drift di posizione/orientazione; caso MYO fermo ... 15

Tabella 2: Drift di posizione/orientazione; caso MYO in movimento ... 17

Tabella 3: Punteggi task puzzle ... 48

Tabella 4: Punteggi task brakfast table ... 48

Tabella 5: Punteggi task carry ... 48

(6)

6

Sommario esecutivo

La necessità dell’intervento della robotica negli ambienti pericolosi e difficili è in continua crescita. Ci sono stati progressi recenti nei sistemi robotici in grado di sostituire gli esseri umani a intraprendere attività pericolose in ambienti difficili e pericolosi. Spesso questi ambienti risultano non accessibili dalla parte degli esseri umani come risultano anche parzialmente o non strutturati. Queste esigenze spingono sempre per lo sviluppo di sistemi robotici complessi e altamente sensorizzati per far fronte alle diverse situazioni in cui si può trovare la piattaforma robotica atta a concludere la missione ad essa assegnata. Tuttavia, le abilità di un robot nei nostri giorni risultano ancora ben lontane da quelle possedute dall’uomo. La teleoperazione ha lo scopo di trasferire parte delle abilità dell’uomo al robot permettendogli di eseguire diversi tipi di tasks. Robot bimanuali dotati di due manipolatori e due mani come end effector hanno la capacità di eseguire diversi tasks, specialmente se integrati su una piattaforma mobile. In questo lavoro è stato sviluppato un sistema di teleoperazione bimanuale per manipolatori LBR kuka a rigidezza variabile dotati di Soft-Hand. In particolare, un interfaccia uomo-robot indossabile e leggera che permette la teleoperazione di : testa, riferimenti in posizione e rigidezza dei due manipolatori e la chiusura della mano. L’interfaccia di motion capture sfrutta informazioni provenienti da diversi sensori: IMUs, veloci ma derivano, depth camera, a basse velocità ma affidabili. Il sistema risulta stabile e utilizzabile, un protocollo sperimentale è stato definito e eseguito per validare il sistema sviluppato. I risultati mostrano l’efficacia dei metodi adottati.

(7)

7

1. Introduzione

Negli ultimi anni, l’intervento della robotica negli ambienti difficili e pericolosi sta

avendo una certa rilevanza. Diversi disastri sono accaduti in anni recenti, come il terremoto di Amatrice, in italia, nel 2016, anche il disastro dell’impianto nucleare di Fukushima, in giappone, nel 2011. Quest’ultimo ha spinto il dipartimento della difesa degli stati uniti DARPA a organizzare una gara di robotica DRC nella quale sono presenti 23 robot umanoidi, da diverse parti del mondo, che provavano a compiere una serie di task complessi, simulando le azioni potenzialmente richiesti negli ambienti pericolosi: guidare una machina, aprire una porta, attraversare un terreno difficile, salire le scale, aprire una valvola. Questi ambienti risultano anche non strutturata, motivo che spinge allo sviluppo di sistemi altamente sensorizzati. Tuttavia, nei nostri giorni, questi sistemi risultano ben lontane dalle abilità possedute dall’uomo. Nonostante ciò, se questi robot vengono teleoperati tale che una parte della conoscenza dell’uomo gli viene trasferita, riescano a eseguire diverse attività complessi. Il termine teleoperazione si riferisce al controllo umano di una macchina a distanza. È comunemente associato a sistemi in cui la macchina è rappresentata da robot. Tali sistemi sono sempre più utilizzati sui veicoli senza equipaggio per permettere una serie di applicazioni in diversi ambiti quali, l’esplorazione di ambienti particolarmente pericolosi per l’intervento umano. L’operatore è l’entità di controllo (l’utente) mentre il telerobot è il sistema oggetto del controllo; operatore e telerobot, nel caso di una teleoperazione, non sono fisicamente nello stesso spazio d’azione. Tradizionalmente la letteratura divide gli studi che trattano teleoperazione in due campi :

(8)

8

• Teleoperazione diretta, in cui l’operatore è visto come controllore e chiude tutti gli anelli di controllo

• Controllo supervisionato, in cui l’operatore umano è un elemento della catena di controllo, il telerobot compie una parte del controllo sotto la supervisione dell’operatore umano.

La capacità di influenzare gli ambienti attraverso la manipolazione di bracci robotici alle quali estremità sono collegati dei mani, permette agli operatori umani di proiettare i loro intenti e capacità da luoghi sicuri, ricevendo feedback da sensori e telecamere, fornendo un livello di telepresenza per l’operatore umano.

L’obiettivo di questo lavoro è la teleoperazione bimanuale di due bracci robotici KUKA dotati all’end effector di SoftHand. I manipolatori KUKA ci consentono di posizionarsi in un determinato workspace con una determinata orientazione mentre le SoftHand ci permettono l’interazione con l’ambiente esterno. La maniera più user-freindly per fare la teleoperazione è utilizzare come input il movimento del braccio dello stesso operatore umano [10] [11]. A tale scopo si è optato per un wireless weareable device : il MYO – Armband. Il dispositivo offre una dotazione hardware che comprende :

• Un accelerometro a 3 assi • Un giroscopio a 3 assi • Un magnetometro • 8 sensori sEMG

• Wireless communication

Per ogni braccio sono stati utilizzati due MYO per la stima della postura, uno sul braccio e l’altro sull’avambraccio. Condotti gli esperimenti iniziali si notava un consistente drift dovuto alla deriva intrinseca nei sensori inerziali e una sostanziale perdita del movimento del polso, perché il MYO sull’avambraccio non permette di

(9)

9

captare bene questi movimenti. questi problemi sono stati risolti introducendo una ulteriore IMU sul polso e impiegando la Kinectv2 per migliorare la stima della postura del braccio.

L’interfaccia Motion Capture impiega un filtro di madgwick [13] esteso che sfrutta le informazioni provenienti da diversi sensori, IMU e depth camera, facendo un sensor-fusion [14] e ottenendo dei buoni risultati. I segnali sEMG dell’avambraccio opportunamente elaborati [8] vanno a comandare la SoftHand mentre i segnali sEMG del braccio forniscono il controllo per la rigidezza del braccio.

Il robot è dotato ulteriormente di un sistema visivo che invia due immagini da una ZED camera, montata su di una base robotica a 3 gradi di libertà, ad un oculus, che ricostruisce lo scenario in 3D, montato sulla testa dell’operatore che gli permette di vedere ciò che il robot vede in tempo reale. La piattaforma resa cosi stabile e utilizzabile è stata validata definendo un protocollo sperimentale nel quale 10 utenti non esperti hanno tentato 3 task facenti parte della gara di cybathlon [15] per disabili. I risultati mostrano l’efficacia dei metodi adottati.

(10)

10

2. Human Robot Interface

Il kuka LBR robot è un manipolatore a 7 giunti, controllato in stifness. Il sistema in teleoperazione è composto di due manipolatori kuka dotato di una stereo camera montata su una base robotica a 3 gradi di libertà. La ZED camera invia due immagini ad un oculus , indossato dal pilota, che ricostruisce l’ambiente, visto dal robot, in 3D. L’oculus controlla anche l’orientazione della testa permettendo l’esplorazione visiva dello spazio attorno del robot. La rigidezza del robot è controllata ttraverso un segnale 𝑥(𝑡) ∈ [0 1] ottenuto dall’elaborazione dei segnali sEMG provenienti dal braccio :

𝝉𝒄𝒎𝒅 = 𝒙(𝒕)(𝒒𝒅𝒆𝒔− 𝒒𝒎𝒔𝒓) + 𝒇𝒅𝒚𝒏𝒂𝒎𝒊𝒄𝒔(𝒒, 𝒒̇, 𝒒̈)

Per quanto riguarda l’inseguimento del braccio umano da parte del robot, la posizione cartesiana dell’end effector del robot; la SoftHand, è considerata il task a maggiore priorità mentre l’inseguimento del gomito, che viene proiettato sul quarto giunto del kuka, è considerato come un task prioritario. Un algoritmo di cinematica a task prioritari provvede al calcolo delle 𝑞𝑑𝑒𝑠 :

𝒒̇ = 𝑱†𝒙̇ + 𝑷𝒒̇𝐾 = 𝒒𝐾̇ + 𝑱†(𝒙̇ − 𝑱𝒒̇𝐾)

(11)

11

2.1. Motion capture

L’Human Motion Tracking [9] è una tecnologia che trova diversi sbocchi applicativi. L’attenzione di diversi studi si è focalizzata sulla Motion Capture Technology come strumento di interazione con robot umanoidi : l’approccio comune è di fare in modo che il robot imiti i movimenti umani cosi da assumere un comportamento human – like [10] [11]. Il sistema motion capture è basato su un’unità sensoristica IMU (Inertial

Measurement Unit) [12]. Un’unità IMU è economica e facilmente integrabile in

dispositivi non intrusivi, portabili ed indossabili (MYO Armband); tuttavia l’utilizzo della stessa IMU comporta problemi intrinseci legati alla natura dei sensori non inerziali quali :

• Sensor drift;

• Distorsione del campo magnetico dovuta alle interferenze dell’ambiente esterno;

2.1.1. Drift del MYO Armband

Come è noto dai sistemi di navigazione, le unità IMU sono affette da rumore di misura intrinseco e ciò dipende dal processo tecnologico di fabbricazione. Il Myo Armband elabora al suo interno le informazioni provenienti da giroscopio ed accelerometro e calcola l’orientazione del sensor frame (SF) rispetto ad un sistema inerziale fissato (NED). L’orientazione è fornita in forma di quaternione unitario 𝑞.

(12)

12

2.1.2. Calibrazione

Innanzitutto occorre effettuare la calibrazione del sistema di riferimento iniziale 𝑆0, a questo proposito si farà riferimento alla figura 4 :

Figura 4: fase di calibrazione: si ottiene un sistema inerziale a valle di questa fase

All’istante iniziale 𝑡0 = 0 si assume che 𝑆0 è coincidente con il sensor frame del Myo. La matrice di rotazione che si vuole ottenere è 𝑅𝑆0𝑆𝑟𝑢𝑛(𝑡𝑟𝑢𝑛), rotazione del sensor

frame Srun rispetto al sistema iniziale 𝑆0.

𝑅𝑛𝑆𝑟𝑢𝑛(𝑡𝑟𝑢𝑛) = 𝑅𝑛𝑆0(𝑡0) . 𝑅𝑆0𝑆𝑟𝑢𝑛(𝑡𝑟𝑢𝑛) → 𝑅𝑆0𝑆𝑟𝑢𝑛(𝑡𝑟𝑢𝑛) = 𝑅𝑛𝑆0

𝑇 (𝑡

0) . 𝑅𝑛𝑆𝑟𝑢𝑛(𝑡𝑟𝑢𝑛)

La matrice 𝑅𝑆0𝑆𝑟𝑢𝑛(𝑡𝑟𝑢𝑛) è utilizzata in run – time per descrivere l’assetto del sensor

frame rispetto alla sua orientazione iniziale 𝑆0.

2.1.3. Stima del drift del Myo Armband su un modello a 1 – Link

Una volta fatta la calibrazione, si procede alla quantificazione del Drift del Myo armband. A tal proposito si modella il braccio umano come 1 – Link rigido, come in figura (5).

Al fine di quantificare il drift del Myo si eseguono due prove: • Myo fermo

(13)

13

Figura 5: Modello del braccio (1 - Link rigido) per lo studio del drift del MYO

1. Myo fermo : la prima consiste nel mantenere il braccio rigidamente fermo nella posizione iniziale di calibrazione per 5 minuti registrando la posizione del polso considerato come end effector del braccio.

2. Myo in movimento : la seconda consiste nel muovere rigidamente tutto il braccio, dopo la fase di calibrazione, per 5 minuti e poi mettersi nella stessa posizione in cui si era fatta la calibrazione iniziale registrando da questo istante in poi i dati della posizione dell’end effector.

La posizione iniziale dell’end effector è data da 𝑃𝑖𝑛𝑖𝑡 = [𝑥𝑖 𝑦𝑖 𝑧𝑖]𝑇, e sia

𝑅𝑆0𝑆𝑟𝑢𝑛(𝑡𝑡𝑢𝑛) la matrice di rotazione che mi porta da 𝑆𝑟𝑢𝑛 in 𝑆0, allora è possibile

determinare la posizione del polso 𝑃𝑒𝑒 = [𝑥𝑒𝑒 𝑦𝑒𝑒 𝑧𝑒𝑒]𝑇 in run – time come :

𝑃𝑒𝑒 = 𝑅𝑆0𝑆𝑟𝑢𝑛(𝑡𝑟𝑢𝑛) . 𝑃𝑖𝑛𝑖𝑡

Data la posizione 𝑃𝑖𝑛𝑖𝑡 e la posizione in run – time del polso, considerato come end – effector, è possibile calcolare il Drift in posizione come :

∆= 1 𝑘∑(𝑃𝑒𝑒(𝑛) − 𝑃𝑖𝑛𝑖𝑡) 2 𝑘 𝑛=0 (3)

(14)

14

Ovviamente nelle due prove, le due posizioni 𝑃𝑖𝑛𝑖𝑡 e 𝑃𝑒𝑒 sono confrontati nella stessa posizione del Myo iniziale, cioè quella subito dopo la calibrazione. Quindi il confronto risulta coerente.

Come per la posizione, anche per la rotazione è possibile stimarne lo Drift in termini di angoli di eulero RPY (roll – pitch – yaw). Definiamo 𝜒𝑖𝑛𝑖𝑡 l’orientazione iniziale

dell’end effector rispetto a 𝑆0 e 𝜒𝑒𝑒 l’orientazione in run – time rispetto allo stesso 𝑆0. È ancora possibile quantificare lo drift in termini di orientazione come :

∆= 1

𝑘∑(𝜒𝑒𝑒(𝑛) − 𝜒𝑖𝑛𝑖𝑡)

2 𝑘

𝑛=0

Risultati : Myo fermo

Figura 6: drift in posizione, caso di MYO fermo nella posizione di inizializzazione

(15)

15

Figura 7: drift in orientazione, caso MYO fermo nella posizione di inizializzazione

La tabella sottostante riporta l’errore quadratico medio in posizione e orientazione calcolato su 5 minuti.

Variable (cm\ degree) Mean square error (𝝃) √𝝃

X 1,99 10−10 1,41 10−5 cm Y 7,21 10−4 0,02cm Z 2,21 10−5 0,0047cm Roll 0,0063 0,07 ° Pitch 7,97 10−5 0,0089 ° Yaw 0,0026 0,05 °

(16)

16

Risultati : Myo in movimento

Figura 8: Drift in posizione; caso MYO in movimento

(17)

17

La tabella sottostante riporta l’errore quadratico medio in posizione e orientazione calcolato su 5 minuti di movimento del Myo.

Variable (cm\ degree) Mean square error (𝝃) √𝝃

X 1,846 1,3574 cm Y 0,301 0,549 cm Z 79,301 8,905 cm Roll 10,278 3,206 ° Pitch 299,334 17,301 ° Yaw 0,011 0,105 °

Tabella 2: Drift di posizione/orientazione; caso MYO in movimento

Conclusioni

È facile notare dai risultati che il Myo armband presenta uno drift in orientazione sull’ asse 𝑦 del suo sensor frame. Questo asse risultava parallelo all’accelerazione gravitazionale nei test che sono stati fatti. tale risultato si poteva aspettare visto che il quaternione fornito dal Myo risulta calcolato dalle sole informazioni provenienti dall’accelerometro e dal giroscopio. Tale drift sussisterà fin quando non si abbia un contributo correttivo simile a quello che fa il magnetometro dove in questo caso non viene utilizzato perché risulta poco efficace negli ambienti indoor soggetti a interferenze e grande distorsioni del campo magnetico locale. Per ovviare a questo problema si sintetizza un filtro di Madgwick mettendo in gioco una misura assoluta simile a quella del magnetometro, tale misura è fornita dalla kinect.

(18)

18

2.1.4. Filtro di Madgwick

Il filtro di Madgwick [13] è un algoritmo per il calcolo dell’orientamento, applicabile alle unità IMU. Tali unità consistono in un agglomerato contenente giroscopi ed accelerometri triassici uniti a magnetometri triassici. Il filtro in questione si serve sostanzialmente di una tecnica sensor – fusion tra le informazioni ottenuti dai giroscopi, accelerometri e magnetometri. In particolare l’algoritmo prevede l’utilizzo dei dati prelevati dall’accelerometro e dal magnetometro come elemento correttivo dell’errore di misura della direzione ottenuta dall’integrazione delle misure del giroscopio. Inoltre, l’algoritmo utilizza rappresentazione di tipo quaternione che risolve i problemi di singolarità di rappresentazione presenti con l’utilizzo degli angoli di Eulero.

Orientazione a partire dal giroscopio

Il giroscopio a 3 assi fornisce la misura della variazione angolare nel tempo, attorno agli assi 𝑥, 𝑦 e 𝑧 del sensor frame (𝑆𝐹) chiamati 𝜔𝑥, 𝜔𝑦 e 𝜔𝑧 rispettivamente. Avendo

queste velocità angolari in (𝑟𝑎𝑑. 𝑠−1) e ordinandoli in un vettore 𝜔𝑆 come in equazione (5), è possibile calcolare la variazione del quaternione 𝐸𝑆𝑞 rispetto al tempo il quale rappresenta l’orientazione del frame inerziale rispetto a 𝑆𝐹 come in equazione (6) 𝜔 𝑆 = [0 𝜔 𝑥 𝜔𝑦 𝜔𝑧] 𝑞̇ 𝐸𝑆 ≜ 1 2𝐸𝑞̂ 𝑆 × 𝜔𝑆

L’orientazione del sistema 𝑆𝐹 rispetto al sistema inerziale al tempo 𝑡, 𝑞𝐸𝑆

𝜔,𝑡 , può

essere calcolata integrando numericamente l’equazione (7) e conoscendo le condizioni iniziali :

(5)

(6)

(7)

(19)

19 𝑞̇𝜔,𝑡 𝐸𝑆 ≜ 1 2𝐸𝑞̂𝑒𝑠𝑡,𝑡−1 𝑆 × 𝜔 𝑡 𝑆 𝑞 𝐸𝑆 𝜔,𝑡 = 𝑞̂𝐸𝑆 𝑒𝑠𝑡,𝑡−1+ 𝑞̇𝐸𝑆 𝜔,𝑡 ∆𝑡

In quest’ultima equazione 𝜔𝑆 𝑡 è la velocità angolare misurata al tempo 𝑡, ∆𝑡 è il tempo

di campionamento e 𝐸𝑆𝑞̂𝑒𝑠𝑡,𝑡−1 è la stima dell’orientazione al passo precedente. Il pedice 𝜔 indica che il quaternione è stato calcolato a partire dalla velocità angolare. Orientazione a partire da un campo direzionale

L’accelerometro fornisce una misura del modulo e della direzione del campo gravitazionale nel sistema 𝑆𝐹 aggravato dall’accelerazione lineare dovuta al moto del sensore nello spazio. Allo stesso modo il magnetometro misura il modulo e la direzione del campo magnetico terrestre nel 𝑆𝐹 aggravato dal flusso magnetico locale e da altre distorsioni. Di seguito considereremo che l’accelerometro misuri solo l’accelerazione di gravità e il magnetometro misuri solo il campo magnetico terrestre. Conoscendo la direzione di un campo terrestre (gravitazionale o magnetico) ed avendo la misura della direzione dello stesso campo nel sistema 𝑆𝐹 è possibile calcolare l’orientazione relativa tra il 𝑆𝐹 e il sistema inerziale. Tuttavia per alcune misure non esiste una soluzione unica per l’orientazione ma piuttosto ne esistono infinite soluzioni rappresentate da tutte quelle orientazioni che hanno una rotazione attorno all’asse parallelo al campo terrestre misurato.

Sia 𝐸𝑑 la direzione predefinita del campo nel sistema inerziale e 𝑆𝑠̂ la direzione misurata del campo nel 𝑆𝐹, questi due vettori sono legati fra di loro dall’orientazione relativa fra il sistema inerziale e il 𝑆𝐹, impiegando l’operazione di moltiplicazione fra quaternioni si ha che:

𝑑

𝐸 = 𝑞̂

(20)

20 Dove 𝑞̂ 𝐸𝑆 = [𝑞1 𝑞2 𝑞3 𝑞4]𝑇 𝑑 𝐸 = [0 𝑑 𝑥 𝑑𝑦 𝑑𝑧]𝑇 𝑠̂ 𝑆 = [0 𝑠 𝑥 𝑠𝑦 𝑠𝑧]𝑇

L’incognita quindi risulta l’orientazione relativa fra il sistema inerziale e il 𝑆𝐹, 𝑞̂𝐸𝑆 , la

quale è calcolabile formulando un problema di ottimizzazione che abbia come funzionale (funzione costo)

𝑓( 𝑞̂𝐸𝑆 , 𝑑𝐸 , 𝑠̂𝑆 ) = 𝑞̂𝐸𝑆 𝑠̂𝑆 𝑞̂𝐸𝑆 ∗− 𝑑𝐸 = 𝑞̂𝐸𝑆 ∗𝐸𝑑 𝑞̂𝐸𝑆 − 𝑠̂𝑆 ∈ 𝑅3×1 Sviluppando i calcoli 𝑓 risulta:

𝑓( 𝑞̂𝐸𝑆 , 𝑑𝐸 , 𝑠̂𝑆 ) = [ 2𝑑𝑥(1 2− 𝑞3 2− 𝑞 42) + 2𝑑𝑦(𝑞1𝑞4+ 𝑞2𝑞3) + 2𝑑𝑧(𝑞2𝑞4− 𝑞1𝑞3) − 𝑠𝑥 2𝑑𝑥(𝑞2𝑞3− 𝑞1𝑞4) + 2𝑑𝑦(1 2− 𝑞2 2 − 𝑞 42) + 2𝑑𝑧(𝑞1𝑞2+ 𝑞3𝑞4) − 𝑠𝑦 2𝑑𝑥(𝑞1𝑞3+ 𝑞2𝑞4) + 2𝑑𝑦(𝑞3𝑞4− 𝑞1𝑞2) + 2𝑑𝑧( 1 2− 𝑞2 2− 𝑞 32) − 𝑠𝑧]

L’orientazione relativa 𝑞̂𝐸𝑆 è quindi calcolata andando a trovare le 𝑞

1, 𝑞2, 𝑞3 e 𝑞4 che

annullano ogni componente del funzionale 𝑓. Ogni riga in questo funzionale è variabile in 𝑞1, 𝑞2, 𝑞3 e 𝑞4 quindi andando a derivare ogni riga di 𝑓 rispetto a queste 4 variabili e mettendole in riga si ottiene il jacobiano di 𝑓, 𝐽( 𝑞̂𝐸𝑆 , 𝑑𝐸 ) ∈ 𝑅3×4.

𝐽( 𝑞̂𝐸𝑆 , 𝑑𝐸 ) = [ 2𝑑𝑦𝑞4− 2𝑑𝑧𝑞3 2𝑑𝑦𝑞3+ 2𝑑𝑧𝑞4 −4𝑑𝑥𝑞3+ 2𝑑𝑦𝑞2− 2𝑑𝑧𝑞1 −4𝑑𝑥𝑞4+ 2𝑑𝑦𝑞1+ 2𝑑𝑧𝑞2 −2𝑑𝑥𝑞4+ 2𝑑𝑧𝑞2 2𝑑𝑥𝑞3− 4𝑑𝑦𝑞2+ 2𝑑𝑧𝑞1 2𝑑𝑥𝑞2+ 2𝑑𝑧𝑞4 −2𝑑𝑥𝑞1− 4𝑑𝑦𝑞4+ 2𝑑𝑧𝑞3 2𝑑𝑥𝑞3− 2𝑑𝑦𝑞2 2𝑑𝑥𝑞4− 2𝑑𝑦𝑞1− 4𝑑𝑧𝑞2 2𝑑𝑥𝑞1+ 2𝑑𝑦𝑞4− 4𝑑𝑧𝑞3 2𝑑𝑥𝑞2+ 2𝑑𝑦𝑞3 ]

Definendo l’operatore nabla di 𝑓 come ∇𝑓( 𝑞̂𝐸𝑆 , 𝑑𝐸 , 𝑠̂𝑆 ) = 𝐽𝑇( 𝑞̂

𝐸𝑆 , 𝑑𝐸 ) 𝑓( 𝑞̂𝐸𝑆 , 𝑑𝐸 , 𝑠̂𝑆 ) ∈ 𝑅4×1

(10)

(21)

21

Dove la riga 𝑖 − 𝑒𝑠𝑖𝑚𝑎 dell’operatore nabla rappresenta la somma delle derivate di 𝑓1, 𝑓2 e 𝑓3 rispetto alla variabile 𝑞𝑖.

L’algoritmo utilizzato in questa sede per trovare la soluzione ottima è l’algoritmo a gradiente discendente poiché è uno dei più semplici da implementare. La soluzione ottima risulta quindi nella direzione opposta a quella del nabla di 𝑓, ∇𝑓:

𝑞

𝐸𝑆 𝑘+1= 𝑞̂𝐸𝑆 𝑘− 𝜇

∇𝑓( 𝑞̂𝐸𝑆 𝑘, 𝑑𝐸 , 𝑠̂𝑆 ) ‖∇𝑓( 𝑞̂𝐸𝑆 𝑘, 𝑑𝐸 , 𝑠̂𝑆 )‖

Dove 𝜇 è il passo dell’algoritmo e 𝑞̂𝐸𝑆 𝑘 è il quaternione stimato al passo precedente Fusione delle due stime

Una stima dell’orientazione è quindi ottenibile dalla fusione delle due stime fatte a partire dal giroscopio e dal campo direzionale [13]:

𝑞

𝐸𝑆 𝑒𝑠𝑡,𝑡= 𝛾 𝑞𝐸𝑆 ∇,t+ (1 − 𝛾) 𝑞𝐸𝑆 𝜔,𝑡 , 0 ≤ 𝛾 ≤ 1

Stima di orientazione per il braccio umano

In questa sezione si fa riferimento alla figura (1) per la stima dell’orientazione dei link del braccio umano, in [14] è illustrato un metodo per la stima dell’orientazione dei link del braccio umano utilizzando un filtro di kalman esteso e sfruttando i vincoli geometrici del braccio, quest’approccio comporta un rilevante costo computazionale. Nel presente lavoro invece si introduce la misura della kinect al posto di quella del campo magnetico.La Kinect è un dispositivo sensibile al movimento del corpo umano dotata di una telecamera RGB, doppio sensore di profondità a raggi infrarossi composto da uno scanner laser a infrarossi e da una telecamera sensibile alla stessa banda. Uno schema in Simulink provvede a fornire lo scheletro impiegando le librerie fatte dalla Microsoft. Queste posizioni vengono poi utilizzate in tempo reale per effettuare la stima dei quaternioni di ogni link del braccio. Da qui in poi si fa riferimento

(12)

(22)

22

alla figura (12) per la stima dell’orientazione dei link del braccio umano. Ad ogni link è attaccata una IMU, la Kinect è posizionata di fronte all’operatore come in figura. l’algoritmo è illustrato per il braccio destro in quanto risulta il ragionamento si ripete per il braccio sinistro.

Figura 10: Modello del Braccio Umano; Notazione dei vari sistemi di riferimento in gioco

La Kinect fornisce la posizione dei giunti del braccio nel sistema di riferimento ad essa solidale 𝑆𝑘. Queste misure, per essere adeguatamente utilizzate, vengono riportate nel sistema inerziale 𝑆𝑛 ,centrato sulla spalla destra, tramite la matrice di rototraslazione 𝑇𝑘𝑛 = [ 0 0 −1 −𝑥𝑘 −1 0 0 −𝑦𝑘 0 1 0 −𝑧𝑘 0 0 0 1 ]

(23)

23

È possibile, a questo punto, scrivere per i diversi giunti del braccio delle relazioni che mettono in relazione la posizione nel frame 𝑆𝑛 (fornita dalla Kinect) e nei frame solidali

ad ogni link relativamente. Quindi date le posizioni dei giunti nei sistemi mobili 𝑃𝑝 = [−𝑙

𝑝 0 0]

𝑊𝑓 = [−𝑙𝑓 0 0]

𝐸𝑎 = [−𝑙𝑎 0 0]

Per ogni link è possibile scrivere

𝑃𝑛 = 𝑞̂ 𝑛 𝑝 ∗ 𝑃𝑝∗ 𝑞̂ 𝑛𝑝 ∗ 𝑊𝑛 = 𝑞̂ 𝑛 𝑓 ∗ 𝑊𝑓∗ 𝑞̂ 𝑛 𝑓 ∗ 𝐸𝑛 = 𝑞̂ 𝑛 𝑎 ∗ 𝐸𝑎∗ 𝑞̂ 𝑛 𝑎 ∗

Che non sono altro che le relazioni fra le posizioni dei diversi giunti del braccio nel sistema inerziale e nel sistema solidale al link considerato.

Lo stesso può essere fatto con il campo gravitazionale, quindi sapendo che per ogni link l’accelerazione gravitazionale

𝑎𝑛 = [0 0 0 1]𝑇

E siano 𝑎𝑎, 𝑎𝑓 e 𝑎𝑝 le accelerazioni misurate dalle IMU sul braccio, avambraccio e

sul palmo relativamente allora è possibile scrivere. 𝑎𝑛 = 𝑞̂𝑛𝑝 ∗ 𝑎𝑝∗ 𝑞̂𝑛𝑝 ∗ 𝑎𝑛 = 𝑞̂𝑛𝑓 ∗ 𝑎𝑓∗ 𝑞̂𝑛𝑓 ∗ 𝑎𝑛 = 𝑞̂𝑛𝑎 ∗ 𝑎𝑎∗ 𝑞̂𝑛𝑎 ∗

(24)

24 𝑓𝑎𝑟𝑚= [𝑓𝑝𝑜𝑠 𝑎𝑟𝑚 𝑓𝑎𝑎𝑟𝑚] , 𝑓𝑓𝑜𝑟𝑒𝑎𝑟𝑚 = [ 𝑓𝑝𝑜𝑠𝑓𝑜𝑟𝑒𝑎𝑟𝑚 𝑓𝑎𝑓𝑜𝑟𝑒𝑎𝑟𝑚] , 𝑓ℎ𝑎𝑛𝑑 = [ 𝑓𝑝𝑜𝑠ℎ𝑎𝑛𝑑 𝑓𝑎ℎ𝑎𝑛𝑑]

Infine, si effettua la stima dei quaternioni 𝑛𝑝𝑞̂, 𝑞̂𝑛𝑓 e 𝑛𝑎𝑞̂ come segue 𝑞̂𝑒𝑠𝑡,𝑡 𝑛𝑎 = 𝛾 𝑞̂𝑛𝑎 ∇,𝑡+ (1 − 𝛾) 𝑞̂𝑛𝑎 𝜔,𝑡 0 ≤ 𝛾 ≤ 1 𝑞̂𝑒𝑠𝑡,𝑡 𝑛𝑓 = 𝛾 𝑞̂𝑛𝑓 ∇,𝑡+ (1 − 𝛾) 𝑞̂𝑛𝑓 𝜔,𝑡 0 ≤ 𝛾 ≤ 1 𝑞̂𝑒𝑠𝑡,𝑡 𝑛𝑝 = 𝛾 𝑞̂𝑛𝑝 ∇,𝑡+ (1 − 𝛾) 𝑞̂𝑛𝑝 𝜔,𝑡 0 ≤ 𝛾 ≤ 1 2.1.5. Arm tracking

Al fine di teleoperare il KUKA si procede, una volta fatta la stima di orientazione dei diversi link, al calcolo in tempo reale della posizione del palmo, considerato come organo terminale del braccio umano, e del gomito. Facendo riferimento alla figura dove è possibile vedere che i due MYO sul braccio e sull’avambraccio e la IMU sul palmo hanno inizialmente i sensor frame allineati.

Date le posizioni 𝑃𝑝 = [−𝑙 𝑝 0 0] 𝑊𝑓 = [−𝑙𝑓 0 0] 𝐸𝑎 = [−𝑙 𝑎 0 0] Le matrici di rotazione 𝑅𝑎𝑛, 𝑅

𝑓𝑛 e 𝑅𝑝𝑛 sono state già calcolate nel paragrafo precedente

allora è possibile ricostruire le posizioni dei diversi giunti da semplici considerazioni cinematici come segue

(25)

25 𝐸𝑛 = 𝑅𝑎𝑛𝐸𝑎; 𝑊𝑛 = 𝐸𝑛+ 𝑅𝑓𝑎𝑊𝑓; 𝑃𝑛 = 𝐸𝑛+ 𝑊𝑛+ 𝑅𝑝 𝑓 𝐸𝑎 Dove 𝑅𝑓𝑎 = 𝑅𝑎𝑛𝑇𝑅 𝑓𝑛 , 𝑅𝑝 𝑓 = 𝑅𝑓𝑛𝑇𝑅𝑝𝑛

2.2. Controllo Mioelettrico

Il segnale elettromiografico è una rappresentazione dei potenziali elettrici generati dalla depolarizzazione/ripolarizzazione della membrana esterna delle fibre muscolari. È rilevato per mezzo di elettrodi posti ad una certa distanza dalle sorgenti, detti sensori elettromiografico (EMG)

I sensori EMG rilevano il segnale elettromiografico generato a seguito di una contrazione isometrica della fascia muscolare; essi si classificano in :

• Sensori EMG ad inserzione; • Sensori EMG superficiali (sEMG)

I primi fanno uso di aghi per raggiungere direttamente la singola unità motoria e rilevarne l’attività. Gli sEMG invece sono dispositivi cutanei e forniscono informazioni riguardo l’attività globale di un muscolo o gruppo muscolare. I sensori EMG sono utilizzati soprattutto in ambito protesico per pilotare i sistemi elettromeccanici atti al recupero delle funzionalità motorie perse. Il controllo del sistema protesico è di tipo :

• ON – OFF • Proporzionale

Nel primo caso il circuito di controllo che pilota gli attuatori del sistema protesico opera alternando la potenza fornita tra due livelli: potenza massima e potenza nulla. Questa tipologia di controllo si traduce in un’attuazione brusca (a scatti, poco

(26)

26

naturale) e obbliga il paziente a tante piccole correzioni per ottenere un movimento fine e preciso. Nel caso di controllo proporzionale invece, il circuito di controllo non solo rileva l’attività muscolare ma la quantifica e le assegna un valore reale compreso in un intervallo chiuso (solitamente [0−1]); in base a questo valore, si provvede a pilotare gli attuatori con più o meno potenza. In questo modo, ad una contrazione lieve corrisponderà un piccolo movimento del sistema protesico, ad una contrazione più forte corrisponderà un movimento più rapido ed ampio. Lo studio che segue è mirato all’estrapolazione di un segnale che risulti proporzionale ad un generico movimento del sistema mano-polso, partendo da un segnale di derivazione elettromiografica sEMG.

2.2.1. Il segnale sEMG : l’approccio in chiave Muscle Synergy

In questo lavoro sono stati utilizzati approcci alternativi ispirati alle strategie che il cervello umano adopera per il controllo dei movimenti: nell’ambito delle neuro-scienze ci si riferisce a tal proposito alle sinergie muscolari. Il concetto di sinergia indica l’azione combinata e contemporanea di più elementi in una stessa attività per il raggiungimento di uno stesso scopo. Le sinergie muscolari (o motorie) rappresentano la collaborazione contemporanea di più muscoli che permettono la realizzazione di un repertorio di movimenti semplici (movimenti naturali). Le sinergie sono proposte in definitiva come un set di soluzioni euristiche, la cui combinazione consente al sistema nervoso centrale di ricostruire pattern muscolari più complessi allo scopo di adempiere ad un certo task motorio; questa strategia semplifica il difficile compito di controllare un sistema meccanico di parecchie centinaia di gradi di libertà. Le sinergie muscolari

(27)

27

Dati 𝑚 muscoli coinvolti nell’analisi di un certo task motorio, una sinergia muscolare può essere definita come un pattern di 𝑚 valori di attivazione muscolare. In [2] d’Avella et. al formalizza il concetto di sinergia muscolare tempo-variante per mezzo di un modello matematico; nel presente studio si propone una semplificazione dello stesso modello valida per sinergie tempo – invarianti :

𝑢(𝑡) = ∑ 𝑎𝑖(𝑡)𝜔𝑖 + 𝜖(𝑡) 𝑘

𝑖=1

Nella precedente

• 𝑢(𝑡) ∈ 𝑅𝑚, rappresenta l’andamento temporale degli 𝑚 valori di attivazione

relativi a ciascun muscolo coinvolto durante l’esecuzione del task; • 𝜔𝑖 ∈ 𝑅𝑚 | ‖𝜔

𝑖‖ = 1, è il pattern relativo all’𝑖 − 𝑒𝑠𝑖𝑚𝑎 sinergia, o meglio la sua

struttura spaziale; le componenti del vettore unitario 𝜔𝑖 quantificano l’apporto dato da ciascun muscolo alla sinergia.

• 𝑎𝑖(𝑡) ∈ 𝑅, è un coefficiente scalare tempovariante che dà informazioni circa l’evoluzione temporale dell’𝑖 − 𝑒𝑠𝑖𝑚𝑎 sinergia nel corso dell’esecuzione del task; rappresenta la struttura temporale della sinergia;

• 𝜖(𝑡) ∈ 𝑅𝑚, è l’errore di fattorizzazione.

La (14) può essere scritta in forma matriciale come segue.

𝑢(𝑡) = [ 𝜔1 𝜔2 … 𝜔𝑘 ↓ ↓ ↓ ] [ 𝑎1(𝑡) 𝑎2(𝑡) ⋮ 𝑎𝑘(𝑡) ] = 𝑊𝑎(𝑡) + 𝜖(𝑡)

Nella (15) si sono introdotti:

• La matrice delle sinergie 𝑊 di dimensioni 𝑚 × 𝑘;

(14)

(28)

28

• Il vettore 𝑎(𝑡) ∈ 𝑅𝑘, che rappresenta il profilo temporale di attivazione delle

sinergie.

È evidente da un punto di vista computazionale come l’ipotesi per cui tanti muscoli possano essere controllati modulando un piccolo set di sinergie implica una riduzione della dimensionalità del problema del controllo motorio. In dettaglio se il numero 𝑘 di sinergie è minore del numero 𝑚 di muscoli coinvolti nell’analisi, lo spazio operativo si riduce da 𝑅𝑚 a 𝑅𝑘; è come se piuttosto che 𝑢(𝑡), si assumesse il profilo d’attivazione delle sinergie 𝑎(𝑡) come nuova variabile di controllo. È bene specificare che non esiste uno studio neuro – fisiologico che giustifichi appieno l’assunzione del modello delle sinergie muscolari come reale meccanismo di controllo del coordinamento muscolare. Tuttavia un’analisi dei dati elettromiografici in chiave muscle synergy resta uno strumento molto utile per ridurre le dimensioni dello spazio delle variabili e per facilitare la comparazione dei dati tra soggetti differenti in differenti condizioni patologiche.

2.2.2. Filtraggio dei dati sEMG

L’intensità del segnale sEMG può essere ragionevolmente considerata come misura di una combinazione lineare delle attività sugli assoni delle unità motorie coinvolte. Sugli assoni viaggiano segnali fisiologici che si assumono:

• Sempre positivi;

• Compresi nella banda [10 – 400] 𝐻𝑧

Si suppone infine che a partire dall’intensità del segnale sEMG si riesca a ottenere lo stato di attivazione muscolare per mezzo di un semplice filtraggio passa – basso. L’attività muscolare risiede infatti nel trend medio del segnale.

(29)

29

In pratica le operazione effettuate sui dati sEMG per ottenere informazioni circa lo stato di attivazione muscolare (precedentemente indicato col vettore 𝑢(𝑡)) sono nell’ordine:

• Eliminazione offset; • Rettificazione;

• Smoothing del segnale valutando il valor medio su finestra mobile (con finestre temporali comprese nell’intervallo 50 – 500 𝑚𝑠)

• Normalizzazione

Figura 11: Sengnale sEMG rilevato direttamente dal MYO

In alternativa per lo smoothing del segnale può essere utilizzato il valore 𝑟𝑜𝑜𝑡 𝑚𝑒𝑎𝑛 𝑠𝑞𝑢𝑎𝑟𝑒 su finestra mobile; 𝑙′𝑟𝑚𝑠 riflette la potenza media del segnale.

(30)

30

Figura 12: Segnale di attivazione muscolare dopo il filtraggio

2.2.3. Algoritmi per l’estrazione delle sinergie

Gli algorimti utilizzati per la ricerca delle sinergie muscolari coinvolte in un dato task motorio risolvono tutti lo stesso problema, che può essere ricondotto ad un problema di fattorizzazione, come evidenziato nello studio [2].

Def.1

Siano date 𝑁 misurazioni 𝑢(𝑡)|𝑡=1:𝑁 dei valori d’attivazione muscolare, 𝑢(𝑡) ∈ 𝑅𝑚. Si

cerca un algoritmo che:

• Fornisca in output

- 𝑚 vettori unitari 𝜔𝑖 ∈ 𝑅𝑘, ordinati per colonne a comporre una matrice

𝑊 di dimensione 𝑚 × 𝑘 (matrice delle sinergie)

- 𝑁 vettori 𝑎(𝑡)|𝑡=1:𝑁, 𝑎(𝑡) ∈ 𝑅𝑘 (profili di attivazione delle sinergie);

• Minimizzi il funzionale 𝑉 = ∑|𝑢(𝑡) − 𝑊𝑎(𝑡)|2 𝑁 𝑡=1 = ∑|𝜖(𝑡)|2 𝑁 𝑡=1

Il problema può essere equivalentemente espresso in forma matriciale.

(31)

31

Def.1bis

Sia data la matrice 𝑈 di dimensioni 𝑚 ×𝑁 ottenuta ordinando per colonne 𝑁 misurazioni 𝑢(𝑡)|𝑡=1:𝑁 dei valori d’attivazione muscolare, 𝑢(𝑡) ∈ 𝑅𝑚.

𝑈 = [

𝑢(1) 𝑢(2) … 𝑢(𝑁)

↓ ↓ ↓ ]

Si cerca un algoritmo che: • Fornisca in output

- Una matrice 𝑊 di dimensioni 𝑚 ×𝑘, composta da 𝑚 vettori colonna unitari;

- Una matrice 𝐴 di dimensioni 𝑘 ×𝑁 • Minimizza il funzionale

𝑉 = ‖𝑈 − 𝑊𝐴‖𝐹2

Le definizioni Def.1 e Def.1bis sono del tutto equivalenti. La matrice 𝐴, output di un algoritmo che minimizza il funzionale (18), si lega ai vettori 𝑎(𝑡) forniti in output da un algoritmo che minimizza il funzionale (16) attraverso la relazione:

𝐴 = [

𝑎(1) 𝑎(2) … 𝑎(𝑁)

↓ ↓ ↓ ]

Il funzionale (18) è espresso in maniera tale da evidenziare un importante concetto: un qualunque algoritmo mirato all’estrazione delle sinergie si riconduce alla ricerca di una coppia di matrici il cui prodotto approssimi una data matrice di partenza.

𝑊𝐴 ≈ 𝑈

(17)

(18)

(19)

(32)

32

Gli algoritmi principali utilizzati per l’interpretazione dei segnali sEMG in chiave muscle synergy sono la Non – Negative Matrix Factorization (NMF) e la Prncipal Components Analysis (PCA).

2.2.4. Non – Negative Matrix Factorization (NMF)

La Non – Negative Matrix Factorization è la tecnica più comune ed efficace tra quelle utilizzate per l’estrazione di pattern muscolari tempo – invarianti all’interno di un data – set di derivazione sEMG. Essa riconduce il problema definito nella Def.1 bis ad un semplice problema di ottimizzazione vincolato. L’NMF consiste in un algoritmo di ricerca iterativo: si pone come obiettivo la minimizzazione del funzionale di costo (18) ricercando le componenti delle due matrici 𝑊 e 𝐴 nell’insieme 𝑅0+. In dettaglio:

• Si sceglie in partenza un set di componenti casuale per 𝑊 e 𝐴;

• Si prosegue perturbando ciascuna componente del set accentandola come nuova soluzione se determina una diminuzione del funzionale di costo (18); • Ogni componente è vincolata ad assumere valori non negativi

• La ricerca termina quando è soddisfatto un criterio di arresto

Il funzionale è convesso in 𝑊 e lo è in 𝐴, ma non lo è in 𝑊𝐴: l’algoritmo di ricerca può dunque bloccarsi in minimi locali. È opportuno valutare l’output di varie istanze per assicurarsi che l’algoritmo converga al minimo globale ed eventualmente correggere il criterio d’arresto. Una procedura di semplice implementazione ed al contempo efficace è stata proposta da Lee e Seung [4]: consiste nell’applicare il metodo del gradiente (o dei gradienti coniugati) fissando alternativamente 𝑊 ed 𝐴 finché non si giunge a convergenza.

Si noti che il numero di vettori colonna, 𝑘, della matrice 𝑊 è fissato in partenza. Per valutare 𝑘 si potrebbero analizzare opportunamente gli output prodotti da diverse

(33)

33

istanze dell’algoritmo fissando un numero di sinergie via via crescente. In [3] sono state valutate diverse euristiche formulate ad hoc che risolvano efficacemente il problema.

2.2.5. Pattern Recognition – Based Control

Le prime protesi a controllo mioelettrico e gran parte di quelle disponibili attualmente sul mercato utilizzano per il controllo una stesso approccio semplice e diretto: attività muscolari provenienti da un muscolo o da due muscoli che agiscono indipendentemente controllano un sistema con un singolo grado di libertà. Mancano al presente tecniche robuste che permettano il controllo mioelettrico di sistemi protesici elettro-meccanici a più DOF. Diversi studi ben classificati da Ison M. e Artemiadis P. in [5] hanno cercato metodi che consentano di sopperire a tale mancanza di mercato. Si sono studiate strategie di controllo basate sul riconoscimento di pattern di attivazione muscolare; si tratta di tecniche che utilizzano un data-set per identificare un sistema che accetti in input segnali di derivazione sEMG e fornisca in output più segnali di controllo. In linea generale gli studi seguono uno stesso protocollo sperimentale, che prevede i seguenti step.

1. Determinazione di un training – set basato su 𝑘 task motori prestabiliti.

2. Acquisizione di un data – set di derivazione sEMG bel corso dell’esecuzione del training

3. Analisi del set acquisito ed estrazione di 𝑘 segnali di controllo.

4. Validazione della procedura attraverso una sperimentazione su un nuovo data-set sEMG (possibilmente acquisito in run – time)

La complessità del problema di identificazione dipende dalle caratteristiche dell’output di controllo desiderate:

(34)

34

• Segnali di controllo sequenziali

• Segnali di controllo proporzionali (simultanei), consentono la gestione contemporanea di più DOF

Gli studi che hanno ottenuto i risultai migliori applicano al problema di identificazione un metodo di regressione lineare.

2.2.6. DOF – Wise NMF Algorithm

Nella sezione 2.3 l’NMF è stata descritta come una tecnica d’analisi per l’estrazione di sinergie muscolari. L’algoritmo descritto produce in output due matrici a componenti non negative che decompongono un data-set di derivazione sEMG.

𝑈 = [ 𝑢(1) 𝑢(2) … 𝑢(𝑁) ↓ ↓ ↓ ] ≈ 𝑊𝐴 𝑈 ≈ [ 𝜔1 𝜔2 … 𝜔𝑘 ↓ ↓ ↓ ] [ 𝑎(1) 𝑎(2) … 𝑎(𝑁) ↓ ↓ ↓ ]

Diversi studi hanno applicato l’algoritmo NMF interpretando le colonne della matrice 𝑊 come 𝑘 pattern muscolari riconducibili concettualmente a sinergie muscolari tempovarianti. Tuttavia non sempre i pattern muscolari identificati possono essere direttamente associati ad un determinato movimento muscolo-scheletrico quale una flessione, una rotazione o un’estensione.

Nella maggior parte delle applicazioni nell’ambito della tele-operazione si ritiene necessario estrarre dal segnale sEMG output di controllo che siano direttamente riconducibili all’esecuzione di precisi task motori. Allo scopo di applicare la logica NMF nel contesto di un controllo mioelettrico Jiang, Englehart e Parker in [6] propongono di vincolare i profili di attivazione muscolare ad assumere una struttura predefinita in stretta relazione al training-set utilizzato in fase di acquisizione dati.

(21)

(35)

35

Supponendo che il training-set preveda l’esecuzione di 𝑀 task motori ciascuno dei quali coinvolga la coordinazione di due muscoli antagonisti si vincolano le matrici 𝑊 ed 𝐴 ad assumere la seguente struttura.

𝑈 ≈ [ 𝜔1+ 𝜔1− … 𝜔𝑀+ 𝜔𝑀− ↓ ↓ ↓ ↓ ] [ 𝑎1+(1) 𝑎1+(2) … 𝑎1+(𝑁) 𝑎1−(1) 𝑎1−(2) … 𝑎1−(𝑁) ⋮ ⋮ ⋮ 𝑎𝑀+(1) 𝑎𝑀+(2) 𝑎 𝑀 +(𝑁) 𝑎𝑀−(1) 𝑎𝑀(2) 𝑎 𝑀 −(𝑁)] 𝑈 ≈ [ 𝜔1+ 𝜔1 𝜔 𝑀 + 𝜔 𝑀 − ↓ ↓ ↓ ↓ ] [ 𝑎1+ → 𝑎1 ⋮ 𝑎𝑀+ → 𝑎𝑀− → ]

I 2𝑀 vettori riga 𝑎𝑖+, 𝑎𝑖−|𝑖=1:𝑀 sono forzati ad assumere per componenti 𝑁 valori reali compresi nell’intervallo [0, 1] che rispecchino l’evoluzione dell’𝑖 − 𝑒𝑠𝑖𝑚𝑜 task motorionel corso dell’esecuzione del training set. Dal momento che la matrice 𝐴 è ora fissata, l’algoritmo di ricerca descritto nella 2.2.3 si semplifica notevolmente:

• La ricerca si limita alla sola matrice 𝑊;

• Il funzionale di costo (18) è convesso in 𝑊, dunque un qualsiasi minimo locale coincide col minimo globale del funzionale;

• È sufficiente che converga una singola istanza.

Fissando i profili di attivazione ciascuna coppia di colonne 𝑤𝑖+, 𝑤𝑖− della matrice fornita in output dall’NMF viene ad assumere una precisa connotazione fisiologica; corrisponde ai due pattern muscolari caratteristici dell’𝑖 − 𝑒𝑠𝑖𝑚𝑜 task motorio (uno per ciascun muscolo antagonista). Avendo determinato la matrice 𝑊, è possibile calcolare in run – time i coefficienti d’attivazione di ciascun task motorio a partire dal vettore di misurazione 𝑢(𝑡) di derivazione sEMG [7].

(24)

(12) (25)

(36)

36 [ 𝑎1+(𝑡) 𝑎1−(𝑡) ⋮ 𝑎𝑀+(𝑡) 𝑎𝑀−(𝑡)] = 𝑊+𝑢(𝑡)

I 2𝑀 segnali ottenuti possono essere combinati per ottenere 𝑀 segnali di controllo proporzionali e simultanei, atti a controllare un sistema 𝑀 − 𝐷𝑂𝐹.

[ 𝑦1(𝑡) 𝑦2(𝑡) ⋮ 𝑦𝑀(𝑡) ] = [ 1 −1 0 0 … 0 0 0 0 1 −1 … 0 0 ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ 0 0 0 0 … 1 −1 ] 𝑊+𝑢(𝑡) 𝑦(𝑡) = 𝐽𝑊+𝑢(𝑡)

Ciascun segnale di controllo è direttamente riconducibile all’esecuzione di un determinato task motorio. Si è implicitamente assunto che per il controllo di un grado di libertà sia necessario un segnale che assuma valori sia positivi che negativi (come richiesto dalla maggior parte delle applicazioni pratiche). La robustezza di questo metodo di controllo dipende dall’effettiva dimensionalità del data-set rispetto al numero 𝑀 di gradi di libertà che si vuole controllare. In tal senso diventa importante la scelta dei task motori del training-set: perché la procedura funzioni correttamente è necessario che tutti i task motori siano tra loro distinguibili osservando il vettore delle misurazioni 𝑢(𝑡). In altre parole, in riferimento alla (24) a due task motori differenti devono corrispondere coppie di pattern caratteristici che siano tra loro “sufficientemente ortogonali”. Nel contesto NMF, in cui le componenti della matrice 𝑊 sono vincolate ad essere non – negative, la condizione di ortogonalità si riduce alla seguente: per ogni coppia di task motori (𝑖, 𝑗) i pattern corrispondenti (𝑤𝑖+, 𝑤𝑖−)(𝑤𝑗+, 𝑤𝑗−) devono avere componenti non nulle differenti, ovvero devono attivare differenti unità muscolari.

(26)

(37)

37

La condizione appena espressa è una condizione piuttosto stringente, e difficilmente ottenibile utilizzando sensori sEMG a causa del fenomeno del cross-talk.

2.2.7. Implementazione

Choi e Kim in [8] utilizzano l’algoritmo DOF – Wise NMF per estrarre due segnali di controllo a partire da segnali d’attivazione muscolare prelevati da sensori sEMG posizionati sull’avambraccio. Nel presente studio si sono utilizzati gli 8 sensori sEMG di cui è dotato il MYO Armband.

I sensori EMG in acciaio inossidabile sono classificati dalla Thalmics Lab come sensori “Medical Grade”. In realtà i sensori forniscono in output un segnale campionato a 500 Hz; i sensori professionali si spingono fino a 1200 Hz. I due segnali di controllo ottenuti sono utilizzati per pilotare una Pisa/IIT Softhand+ [1].

Task motori scelti

In teleoperazione il movimento del polso può essere confuso con la chiusura della mano, i movimenti più utilizzati sono estensione/flessione del polso e chiusura della mano. Quindi i task del training – set sono :

• Estensione del polso • Flessione del polso • Chiusura della mano

Lo studio sperimentale mira all’estrazione di 3 segnali di controllo a valori positivi che sia in stretta relazione ai 3 movimenti prescelti. Nella fase di acquisizione dati sEMG l’utente muove mano e polso cercando di replicare fedelmente i movimenti previsti dal training set. Nel corso dell’acquisizione dati, l’evoluzione dei movimenti prevista dal training set è suggerita all’utente attraverso un target visivo.

(38)

38

Non – Negative Muscle Sinergy Matrix

Per ciascun movimento presente nel training – set (𝑑 = 1 ∶ 3) il metodo ricerca un vettore riga che sia in grado di mappare il vettore delle attività muscolari 𝑢(𝑡) in un valore scalare compreso nell’intervallo [0, 1] che rappresenti il valore di attivazione del movimento 𝑎𝑑(𝑡)|𝑑=1:4.

𝑎𝑑(𝑡) ≈ [𝑠𝑑,1 𝑠𝑑,2 … 𝑠𝑑,8]𝑢(𝑡)

Le componenti del vettore 𝑢(𝑡) (risultanti da un filtraggio MAV deli 8 segnali sEMG) sono positive.

Gli elementi 𝑠𝑑,𝑖|𝑖=1:8, oggetto della ricerca sono supposti non negativi. I 3 vettori riga 𝑠𝑑|𝑑=1:3 sono ordinati per riga a formare una matrice non negativa 𝑆 ∈ 𝑅3×8; in [8] 𝑆 è

chiamata Muscle Synergy Matrix.

[ 𝑎1(𝑡) 𝑎2(𝑡) 𝑎3(𝑡) ] ≈ [ 𝑠1 → 𝑠2 → 𝑠3 → ] 𝑢(𝑡) 𝑎(𝑡) ≈ 𝑆𝑢(𝑡)

La matrice 𝑆 mappa dunque gli 8 valori di attivazione muscolare in 3 valori d’attivazione dei movimenti. per ottenere due segnali di controllo è necessaria un’ulteriore trasformazione 𝐽 ∈ 𝑅2×3.

𝑦(𝑡) = [1 −1 0

0 0 1] 𝑆𝑢(𝑡) = 𝐽𝑆𝑢(𝑡)

Il metodo si riconduce al DOF – Wise NMF Algorithm descritto nella sottosezione 2.5. Jiang et al. In [6] danno una precisa interpretazione alla matrice 𝑆 basata sulla teoria delle sinergie muscolari (proposta da d’Avella et al. in [2]).

𝑆 ≡ 𝑊+

(28)

(29)

(39)

39

Training – set

Il training – set si estende per un periodo 𝑇 = 65 𝑠. Si divide in 2 training intervallati da un periodo di riposo di 5 𝑠 in cui i muscoli restano rilassati. Nel corso del training i movimenti sono suggeriti all’utente per mezzo di un target che si muove su un piano 𝑥 − 𝑦; ad ogni semiasse è associato un movimento principale.

• Asse 𝑥+ → estensione del polso 𝑎 1(𝑡)

• Asse 𝑥− → flessione del polso 𝑎 2(𝑡)

• Asse 𝑦+ → chiusura della mano 𝑎 3(𝑡)

Figura 13: Profili di attivazione muscolare per i tasks scelti

Primo training

Il primo training si sviluppa lungo le direzioni principali; l’utente muove il polso esplorando in sequenza i 3 movimenti principali. In figura sono esposte le evoluzioni temporali dei valori di attivazione dei movimenti.

(40)

40 Secondo training

Il secondo training testa una semplice combinazione dei movimenti; il target si muove lungo gli assi a ±45°.

Acquisizione

Nel corso del training i dati sEMG forniti in output dagli 8 sensori sEMG del MYO Armband sono acquisiti e memorizzati su software Matlab ad una frequenza di campionamento 𝑓𝑐 = 500 𝐻𝑧. Ad acquisizione terminata si dispone di un data – set che raccoglie 𝑁 = 𝑇. 𝑓𝑐 campioni.

𝐸𝑀𝐺 𝐷𝑎𝑡𝑎 − 𝑠𝑒𝑡 ∶ 𝑈𝑡𝑠= [𝑢𝑡𝑠(1) 𝑢𝑡𝑠(2) 𝑢𝑡𝑠(𝑁)

↓ ↓ ↓ ] ∈ 𝑅

8×𝑁

Al data – set di derivazione sEMG, 𝑈𝑡𝑠, corrisponde un data – set che raccoglie i valori di attivazione dei movimenti previsto dal training – set, 𝐴𝑡𝑠. Affinché i due data – set

siano coerenti, le attivazioni dei movimenti devono essere raccolte con lo stesso passo di campionamento 𝑓𝑐.

𝑀𝑜𝑡𝑖𝑜𝑛𝑠 𝐴𝑐𝑡𝑖𝑣𝑎𝑡𝑖𝑜𝑛 𝐷𝑎𝑡𝑎 − 𝑠𝑒𝑡 ∶ 𝐴𝑡𝑠 = [𝑎𝑡𝑠(1) 𝑎𝑡𝑠(2) 𝑎𝑡𝑠(𝑁)

↓ ↓ ↓ ] ∈ 𝑅

4×𝑁.

Filtraggio dei segnali sEMG

I segnali sEMG provenienti dagli 8 sensori sEMG del MYO Armband raccolti nel data – set 𝑈𝑡𝑠 sono filtrati per ottenere 8 valori d’attivazione muscolare. Il filtraggio avviene in 3 step.

Eliminazione offset

L’offset per segnali sEMG bifasici non riscontra una valida interpretazione fisiologica; lo si attribuisce al rumore del sistema di misurazione. L’offset di cui è affetto il segnale

(41)

41

proveniente dall’𝑖 − 𝑒𝑠𝑖𝑚𝑜 sensore è stimato come media campionaria de data – set acquisito. 𝑜𝑓𝑓𝑠𝑒𝑡𝑖 = ∑ 𝑢𝑡𝑠,𝑖(𝑡) 𝑁 𝑡=1 𝑁 , 𝑖 = 1 ∶ 8 𝑢𝑡𝑠,𝑜𝑓𝑓𝑠𝑒𝑡 = [ 𝑜𝑓𝑓𝑠𝑒𝑡1 𝑜𝑓𝑓𝑠𝑒𝑡2 ⋮ 𝑜𝑓𝑓𝑠𝑒𝑡8 ]

Si prosegue rimuovendo l’offset dal data – set 𝑈𝑡𝑠; si ricava dunque un data – set centrato 𝑈𝑡𝑠,0.

𝑈𝑡𝑠,0 = [𝑢𝑡𝑠(1) − 𝑢𝑡𝑠,𝑜𝑓𝑓𝑠𝑒𝑡 𝑢𝑡𝑠(1) − 𝑢𝑡𝑠,𝑜𝑓𝑓𝑠𝑒𝑡 … 𝑢𝑡𝑠(1) − 𝑢𝑡𝑠,𝑜𝑓𝑓𝑠𝑒𝑡

↓ ↓ ↓ ]

Gli 8 valori 𝑜𝑓𝑓𝑠𝑒𝑡𝑖|𝑖=1:8 sono conservati in memoria e saranno richiamati in run – time.

Mean Absolute Value (MAV)

L’attività muscolare si evince dal trend medio del segnale sEMG. Il data – set centrato 𝑈𝑡𝑠,0 è quindi rettificato e “addolcito” (smoothing) con media mobile. La media è valutata su un numero di campioni pari a 𝑁𝑚𝑎 = 350 𝑠𝑎𝑚𝑝𝑙𝑒𝑠, che corrisponde ad

una finestra temporale 𝑇𝑚𝑎= 700𝑚𝑠.

𝑢𝑓(𝑡) = 1

𝑁𝑚𝑎 ∑ 𝑎𝑏𝑠[𝑢𝑡𝑠,0(𝜏)], 𝑡 = 1: 𝑁

𝑡+(𝑁𝑚𝑎2 )

𝜏=𝑡−(𝑁𝑚𝑎2 )+1

(42)

42 Normalizzazione

I dati sono normalizzati in modo che varino nell’intervallo [0, 100]. Si calcolano dunque il minimo ed il massimo valore assoluto del data – set filtrato; si procede ottenendo il data – set normalizzato 𝑈̃𝑓∈ 𝑅8×𝑁.

𝑚𝑖𝑛𝑈𝑓 = min[𝑢𝑡𝑠,𝑖(𝑡)]|𝑖=1:8,𝑡=1:𝑁

𝑚𝑎𝑥𝑈𝑓= max[𝑢𝑡𝑠,𝑖(𝑡)]𝑖=1:8,𝑡=1:𝑁

𝑢̃𝑓(𝑡) = 100

𝑚𝑎𝑥𝑈𝑓[𝑢𝑓(𝑡) − 𝑚𝑖𝑛𝑈𝑓], 𝑡 = 1: 𝑁

I due valori 𝑚𝑎𝑥𝑈𝑓, 𝑚𝑖𝑛𝑈𝑓 sono memorizzati e saranno richiamati in run – time.

Ricerca della Muscle Synergy Matrix

Per la ricerca della Muscle Synergy Matrix si imposta il problema seguente di ottimizzazione.

Date le matrici

𝑈̃𝑓∈ 𝑅8×𝑁, 𝐴𝑡𝑠∈ 𝑅4×𝑁

Si cerca una matrice a componenti non negative 𝑆 ∈ 𝑅4×8, 𝑠𝑖,𝑗 ≥ 0 ∀ 𝑖, 𝑗

Che minimizzi il seguente funzionale:

𝐽 = ‖𝐴𝑡𝑠− 𝑆𝑈̃𝑓

𝐹 2

Il problema è risolto su software Matlab configurando opportunamente la procedura 𝑓𝑚𝑖𝑛𝑐𝑜𝑛().

(43)

43

Matching sEMG Data – Motions Data

Perché l’algoritmo di ottimizzazione vada a buon fine è necessario che ci sia una buona corrispondenza tra i segnali sEMG e i valori delle attivazioni dei movimenti. se l’utente nel corso della fase di acquisizione non è stato in grado di contrarre i muscoli seguendo fedelmente il target visivo, ma ha anticipato o posticipato l’istante di massima contrazione, l’algoritmo fallisce. Via software è possibile venire incontro all’utente meno esperto manipolando opportunamente le attivazioni dei movimenti 𝑎𝑡𝑠(𝑡) in seguito alla fase di acqisizione.Una procedura confronta gli istanti di picco delle attivazioni 𝑎𝑡𝑠(𝑡) con gli istanti in cui è registrata la massima attività dei segnali sEMG 𝑢𝑡𝑠(𝑡); avendo valutato il mismatch temporale che intercorre tra i picchi delle

due funzioni, la procedura provvede a traslare le attivazioni dei movimenti 𝑎𝑡𝑠(𝑡) in

modo che risultino sincrone con le attività muscolari registrate. Tale procedura consente di ridurre del 10 – 20 % il valore del funzionale di costo (18) valutato alla convergenza dell’algoritmo di ottimizzazione.

Procedura in run – time

La procedura in run – time legge i dati sEMG forniti in output dal MYO Armband e li elabora per ottenere due segnali di controllo simultanei. L’elaborazione necessita delle seguenti costanti calcolati off-line:

• Gli 8 valori di offset relativi a ciascun sensore 𝑜𝑓𝑓𝑠𝑒𝑡𝑖|𝑖=1:8;

• Il valor minimo e massimo rispetto al quale normalizzare i dati 𝑚𝑎𝑥𝑈𝑓, 𝑚𝑖𝑛𝑈𝑓; • Muscle Synergy Matrix 𝑆

(44)

44

Figura 14: procedura in tempo reale: distinzione dei movimenti a partire dai segnali sEMG

2.2.8. Risultati e conclusioni

Il metodo si rivela subito efficace fin dal primo utilizzo. All’aumentare del tempo dedicato al training l’utente è in grado di controllare sempre meglio le attività muscolari connesse ai 3 task scelti, in modo da differenziarle rispetto alle tre direzioni del target. La prima raccomandazione è evitare di irrigidire i muscoli durante il training: più “leggeri” sono i movimenti nel corso dell’acquisizione, più robusta è la procedura. Il metodo risulta valido per il controllo della softHand.

(45)

45

3. Protocollo sperimentale

È stato definito un protocollo sperimentale per testare la piattaforma su 10 utenti che non hanno conoscenza pregressa del sistema.

Gli esperimenti sono svolti da 10 persone divisi in due gruppi di 5 persone.

Ogni persona deve effettuare un training e 3 task, che verranno descritti più in avanti, in due modalità diverse che sono

• Hand in Hand: utilizzando le softhand con gli handle

• In teleoperazione: kuka teleoperato dall’utente con l’oculus

Il training consiste nel fare provare all’utente il sistema in teleoperazione utilizzando l’oculus ed eventualmente fargli prendere qualche oggetto semplice (es: palla da tennis) con l’obiettivo di prendere fiducia con il movimento del robot e la vista attraverso l’oculus; questa fase è svolta in 5 minuti.

Il primo gruppo esegue per prima i test utilizzando le soft hand con gli handle e poi il sistema in teleoperazione con l’oculus mentre il secondo gruppo percorre la strada contraria.

L’utente ha la possibilità di ripetere ogni task 3 volte.

3.1. Descrizione dei task

I task eseguiti fanno parte della gara di cybathlon [15] per disabili. I task sono messi in ordine di difficoltà, la difficoltà di un task è data da diverse variabili come per esempio il numero di bracci che bisogna utilizzare o il numero di azioni da fare per portare il task a termine.

(46)

46

1. Puzzle :

1.1 all’operatore è richiesta la ricostruzione di un puzzle utilizzando il braccio. Il manico blu dei pezzi del puzzle differisce in peso, dimensioni e forma in modo da effettuare diverse manovre e manipolazioni.

1.2 Elementi : illustrazione del setup dei task

Figura 15: Primo task; Puzzle

Il quadrato a destra mostra inizialmente le posizioni iniziali dei pezzi del puzzle e il tavolo di destinazione dove bisogna ricostruire il puzzle. A sinistra sono mostrati gli oggetti : lastra, bastoncino, sfera, corda, gancio, disco, cono, cilindro, chiave.

1.3 Tabella dei pezzi coinvolti nel task : i pezzi sono fissati su una base in legno.

1.4 Regole del task

1.4.1 Il task del puzzle è considerato compiuto quando tutte le basi in legno con gli oggetti sono nella posizione finale sul tavolo target. L’ordine e l’orientazione dell’oggetto non è rilevante. Le basi in legno devono essere messi una di seguito all’altra in modo da garantire un’adeguata impilazione del frame di destinazione.

(47)

47

1.4.2 Il grasp coinvolge solamente la parte blu. Spingere o tirare le basi in legno del puzzle per mettere in posizione.

2 Breakfast Table

2.1 Questo task consiste nel tagliare un pezzo di pane con un coltello. Questi elementi sono posti su un tavolo.

2.2 Elementi : illustrazione del setup del task

Figura 16: Secondo task; Breakfast

2.3 Regole del task

2.3.1 Deve essere tagliata una fetta di pane con il coltello in modo da separarla dalla pagnotta. È fornita una pagnotta. 2.3.2 Gli elementi da utilizzare sono posti sul tavolo.

3 Carry

3.1 L’obiettivo di questo task è di prendere degli oggetti e metterli dentro una scatola dopodiché sollevare la scatola e riposarla

(48)

48

3.2.1 il task risulta concluso quando tutti gli oggetti sono nella scatola e risulta rimessa sul tavolo dopo che sia stata sollevata.

3.2. Punteggi per i task

Ad ogni task sono assegnati dei punteggi definiti nelle tabelle sottostanti :

TASK : PUZZLE PUNTEGGIO

PALLINA 10 CONO 10 LASTRA 10 BASTONCINO 10 CORDA 10 GANCIO 10 DISCO 10 CILINDRO 10 CHIAVE 10 TOTALE 90

Tabella 3: Punteggi task puzzle

Ad ogni oggetto che l’utente prende dei 9 oggetti del puzzle si ha l’incremento di 10 punti.

Per quanto riguarda il task del Breakfast table i punteggi sono :

TASK : BREAKFAST PUNTEGGIO

PRESA COLTELLO 10

FISSARE IL PANE 10

TAGLIO PANE 70

TOTALE 90

Tabella 4: Punteggi task brakfast table

E infine per il terzo task :

TASK : CARRY PUNTEGGIO

MAGLIETTA 10

PALLINA 10

ATTACCAPANNI 10

SPOSTAMENTO SCATOLA 60

TOTALE 90

Tabella 5: Punteggi task carry

4. Risultati e conclusioni

Gli esperimenti sono stati condotti sulla piattaforma reale presente al Centro E.Piaggio e i risultati sono riportati nelle tabelle sottostanti.

(49)

49

Utente/Task

Puzzle Carry Breakfast Totale

Teleoperazione Handle Teleoperazione Handle Teleoperazione Handle Teleoperazione Handle

Antonio 50 80 90 90 20 90 160 260 Federica 90 90 90 90 90 90 270 270 Federico 50 90 90 90 20 90 160 270 Ricardo 60 70 90 90 90 90 240 250 Fabio 60 90 90 90 20 90 170 270 Michele 70 80 90 90 90 90 250 260 Giovanni 50 90 90 90 90 90 230 270 Andrea 60 90 90 90 90 90 240 270 Marco 50 90 90 90 90 90 230 270

Tabella 6: Punteggi fatti da parte degli utenti

Per quanto riguarda il primo task (Puzzle) non tutti gli utenti sono riusciti ad ordinare gli oggetti in teleoperazione mentre con gli Handle il puzzle risulta ricostruito. La ricostruzione del puzzle in teleoperazione è limitata in parte dal ridotto workspace del robot rispetto alle dimensioni della tavola sulla quale venivano ordinati gli oggetti. Per il secondo task (Carry) risulta di particolare interesse il feedback tattile all’operatore in quanto l’utente riusciva a capire l’interazione con la scatola dalla sua deformazione attraverso il solo feedback visivo, dato dall’oculus, che risulta comunque incompleto e l’utente tendeva a esercitare più forza sulla scatola di quanto fosse necessario al suo sollevamento, questo problema non era presente utilizzando gli Handle che comunque forniscono un ritorno di forza dato che sono montati sulla mano dell’operatore. Infine per quanto riguarda il terzo task (Breakfast table) la difficoltà maggiore si manifestava nel tenere il pezzo di pane fermo con il braccio sinistro e allo stesso momento tagliare il pane con il braccio destro perché l’utente nel muovere il suo braccio destro per il taglio trasmetteva dei piccoli movimenti al braccio sinistro

(50)

50

che andavano al loro volta sulla posizione del robot e quindi il robot si spostava, questo problema non si ha con gli Handle per il maggiore controllo che si ha sui vari movimenti del corpo umano.

Figura 17: fotosequenza che mostrano la presa del cono, l'appoggio e la ricostruzione

(51)

51

Figura 19: fotosequenza che mostra il taglio del pane

In conclusione i test condotti mostrano la stabilità della piattaforma la trasparenza tra operatore e robot, la semplicità d’uso in quanto gli utenti riuscivano a teleoperare il robot dopo una piccola fase di addestramento e l’efficacia del sistema nel grasp di vari oggetti di diverse forme e peso e nella manipolazione bimanuale degli oggetti. Nonostante i vari punti positivi di questo sistema, ci sono una serie di mancanze :

• Mancanza di un feedback tattile o un ritorno di forza: risulta necessario soprattutto per oggetti poco deformabili e oggetti di piccola dimensione migliorando cosi l’approccio all’oggetto

• Il Kuka non è antropomorfo quindi l’utente cercava spesso di adattarsi a questo inconveniente facendo dei movimenti poco naturali

• Una più alta velocità rende la presa dell’oggetto più veloce in quanto l’utente a bassa velocità si muove e effettua una stima di dove potrebbe arrivare l’end effector e poi per la fase di approccio esercita opportune correzioni che si riducono quando il robot va veloce perché queste correzioni avvengono da quando l’operatore inizia a muoversi. Non per tutti i task si potrebbe utilizzare

Riferimenti

Documenti correlati

Mediante questa procedura sono facilmente ottenibili forme chiuse in una o in tutte e due le direzioni (u,v) come mostrato in Figura 2-23. Figura 2-22 Esempio di

Più della radio, la televisione, affidandosi quasi esclusivamente alla vista, invita ad una recezione passiva e acritica "Gli Strumenti del comunicare" di McLuhan può

Quindi, per il teorema di esistenza e unicit`a locale, il problema di Cauchy dato ammette esattamente una soluzione.. (b) Le soluzioni stazionarie si ottengono risolvendo

Corso di Laurea in Scienze Fisiche Prova finale del

Ovviamente no… andiamo direttamente a una pagina dove pensiamo di trovare cognomi che iniziano con la lettera giusta; se siamo precisi troviamo il nome nella pagina, altrimenti

[r]

[r]

Se tale problema di PL ha regione ammissibile vuota, che cosa possiamo dire per il problema di PLI..